1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
require 'rails_admin/config/model'
module RailsAdmin
module Config
class LazyModel < BasicObject
def initialize(entity, &block)
@entity = entity
@deferred_block = block
end
def target
unless @model
@model = ::RailsAdmin::Config::Model.new(@entity)
@model.instance_eval(&@deferred_block) if @deferred_block
end
@model
end
def method_missing(method, *args, &block)
target.send(method, *args, &block)
end
def respond_to?(method, include_private = false)
super || target.respond_to?(method, include_private)
end
end
end
end
|