module RailsAdmin::Config::ConstLoadSuppressor

Public Class Methods

allowing() { || ... } click to toggle source
# File lib/rails_admin/config/const_load_suppressor.rb, line 22
def allowing
  if @original_const_missing
    begin
      Object.define_singleton_method(:const_missing, @original_const_missing)
      yield
    ensure
      intercept_const_missing
    end
  else
    yield
  end
end
suppressing() { || ... } click to toggle source
# File lib/rails_admin/config/const_load_suppressor.rb, line 9
def suppressing
  raise 'Constant Loading is already suppressed' if @original_const_missing

  begin
    @original_const_missing = Object.method(:const_missing)
    intercept_const_missing
    yield
  ensure
    Object.define_singleton_method(:const_missing, @original_const_missing)
    @original_const_missing = nil
  end
end

Private Class Methods

intercept_const_missing() click to toggle source
# File lib/rails_admin/config/const_load_suppressor.rb, line 37
def intercept_const_missing
  Object.define_singleton_method(:const_missing) do |name|
    ConstProxy.new(name.to_s)
  end
end