Module: Accessible::ClassMethods

Defined in:
lib/accessible.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



36
37
38
# File 'lib/accessible.rb', line 36

def [](key)
  to_h[key]
end

#[]=(key, new_value) ⇒ Object



40
41
42
43
44
# File 'lib/accessible.rb', line 40

def []=(key, new_value)
  Accessorizers.define_accessors(to_h, key)
  Accessorizers.define_accessors(self, key)
  to_h[key] = Accessible::Accessorizers.accessorize_data(new_value)
end

#load(source, namespace = nil) ⇒ Object



16
17
18
19
# File 'lib/accessible.rb', line 16

def load(source, namespace = nil)
  to_h.clear
  merge(source, namespace)
end

#merge(source, namespace = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/accessible.rb', line 21

def merge(source, namespace = nil)
  new_data = DataLoader.load_source(source)

  if namespace
    @data = HashMethods.deep_merge(to_h, new_data.fetch(namespace))
  else
    @data = HashMethods.deep_merge(to_h, new_data)
  end

  Accessorizers.accessorize_obj(self)
  Accessorizers.accessorize_data(to_h)

  to_h
end

#to_hObject



12
13
14
# File 'lib/accessible.rb', line 12

def to_h
  @data ||= {}
end