Module: Accessible::ClassMethods

Defined in:
lib/accessible.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



39
40
41
# File 'lib/accessible.rb', line 39

def [](key)
  to_h[key]
end

#[]=(key, new_value) ⇒ Object



43
44
45
46
47
# File 'lib/accessible.rb', line 43

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

#load(data_source, namespace = nil) ⇒ Object



22
23
24
25
# File 'lib/accessible.rb', line 22

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

#merge(data_source, namespace = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/accessible.rb', line 27

def merge(data_source, namespace = nil)
  source_data = DataLoader.load_source(data_source)
  new_data = namespace ? source_data.fetch(namespace) : source_data

  @data = HashMethods.deep_merge(to_h, new_data)

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

  to_h
end

#to_hObject



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

def to_h
  @data ||= {}
end