Sha256: 610b6135dcdf34a6207232032e2213a2dac07ad779d2ee8e0e29d247fdb608e8

Contents?: true

Size: 636 Bytes

Versions: 6

Compression:

Stored size: 636 Bytes

Contents

module RailsAdminSettings
  # we are inheriting from BasicObject so we don't get a bunch of methods from
  # Kernel or Object
  class Fallback < BasicObject

    DELEGATE = [:puts, :p, :block_given?].freeze

    def initialize(ns, fb)
      @ns = ns
      @fb = fb
    end

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

    def method_missing(name, *args, &block)
      return ::Kernel.send(name, *args, &block) if DELEGATE.include?(name)

      @ns.ns_mutex.synchronize do
        @ns.fallback = @fb
        @ns.__send__(name, *args, &block)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ack_rails_admin_settings-1.2.3.3 lib/rails_admin_settings/fallback.rb
ack_rails_admin_settings-1.2.3.2 lib/rails_admin_settings/fallback.rb
ack_rails_admin_settings-1.2.3.1 lib/rails_admin_settings/fallback.rb
ack_rails_admin_settings-1.2.3 lib/rails_admin_settings/fallback.rb
ack_rails_admin_settings-1.2.2.1 lib/rails_admin_settings/fallback.rb
ack_rails_admin_settings-1.2.2 lib/rails_admin_settings/fallback.rb