Module: DataAccessible::ClassMethods
- Defined in:
- lib/data_accessible.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #data_load(data_source, namespace = nil) ⇒ Object
- #data_merge(data_source, namespace = nil) ⇒ Object
- #to_h ⇒ Object (also: #accessible_data, #data_accessible)
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_h ⇒ Object Also known as: accessible_data, data_accessible
48 49 50 |
# File 'lib/data_accessible.rb', line 48 def to_h @data ||= {} end |