Module: DataAccessible::ClassMethods

Defined in:
lib/data_accessible.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



52
53
54
# File 'lib/data_accessible.rb', line 52

def [](key)
  to_h[key]
end

#[]=(key, value) ⇒ Object



56
57
58
59
60
# File 'lib/data_accessible.rb', line 56

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



31
32
33
34
# File 'lib/data_accessible.rb', line 31

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

#data_merge(data_source, namespace = nil) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/data_accessible.rb', line 36

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, data_accessible



48
49
50
# File 'lib/data_accessible.rb', line 48

def to_h
  @data ||= {}
end