rs-pro/rails_admin_settings

View on GitHub
lib/rails_admin_settings/fallback.rb

Summary

Maintainability
A
0 mins
Test Coverage
module RailsAdminSettings
  # we are inheriting from BasicObject so we don't get a bunch of methods from
  # Kernel or Object
  class Fallback < BasicObject
    def initialize(ns, fb)
      @ns = ns
      @fb = fb
    end

    def inspect
      "#<RailsAdminSettings::Fallback ns: #{@ns.inspect}, fb: #{@fb.inspect}>"
    end

    def method_missing(*args)
      @ns.ns_mutex.synchronize do
        @ns.fallback = @fb
        @ns.__send__(*args)
      end
    end
  end
end