Module: AccessibleData::ClassMethods

Defined in:
lib/accessible_data.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



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

def [](key)
  to_h[key]
end

#[]=(key, value) ⇒ Object



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

def []=(key, value)
  DataAccessors.define_accessor(to_h, key)
  DataAccessors.define_accessor(self, key)
  to_h[key] = DataAccessors.accessor_for_data(value)
end

#data_load(data_source, namespace = nil) ⇒ Object



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

def data_load(data_source, namespace = nil)
  to_h.clear
  data_merge(data_source, namespace)
end

#data_merge(data_source, namespace = nil) ⇒ Object



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

def data_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)

  DataAccessors.accessor_for_obj(self)
  DataAccessors.accessor_for_data(to_h)

  to_h
end

#to_hObject Also known as: accessible_data



35
36
37
# File 'lib/accessible_data.rb', line 35

def to_h
  @data ||= {}
end