Method: Blacklight::NestedOpenStructWithHashAccess#initialize

Defined in:
lib/blacklight/nested_open_struct_with_hash_access.rb

#initialize(klass, hash = {}) ⇒ NestedOpenStructWithHashAccess

Returns a new instance of NestedOpenStructWithHashAccess.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/blacklight/nested_open_struct_with_hash_access.rb', line 13

def initialize(klass, hash = {})
  @nested_class = klass
  value = hash.each_with_object({}) do |(k, v), h|
    h[k] = if v.is_a? Hash
             nested_class.new({ key: k.to_sym }.merge(v))
           else
             v
           end
  end

  super(value)
  set_default_proc!
end