Module: NullObjectLoader::ClassMethods

Defined in:
lib/null_object_loader.rb

Instance Method Summary collapse

Instance Method Details

#load_null_object(name, opts) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/null_object_loader.rb', line 11

def load_null_object(name, opts)
  null_class = opts[:null_class]
  load_if = opts[:load_if] || :nil?

  alias_method NullObjectLoader.temp_name_for_method(name), name
  define_method(name) do
    original_value = send(NullObjectLoader.temp_name_for_method(name))
    return original_value if !original_value.send(load_if)
    null_class.new
  end
end