Module: Disposable::Twin::Sync
- Includes:
- SyncOptions, ToNestedHash, Writeable
- Defined in:
- lib/disposable/twin/sync.rb
Defined Under Namespace
Modules: SkipGetter, SkipUnchanged, SyncOptions, ToNestedHash, Writeable
Instance Method Summary collapse
-
#sync!(options) ⇒ Object
Sync all scalar attributes, call sync! on nested and return model.
- #sync_models(options = {}) ⇒ Object (also: #sync)
Methods included from Writeable
Methods included from SyncOptions
Methods included from ToNestedHash
#nested_hash_source, #to_nested_hash
Instance Method Details
#sync!(options) ⇒ Object
Sync all scalar attributes, call sync! on nested and return model.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/disposable/twin/sync.rb', line 19 def sync!() # semi-public. = (Decorator::Options[]) schema.each() do |dfn| property_value = sync_read(dfn) # unless dfn[:twin] mapper.send(dfn.setter, property_value) # always sync the property next end nested_model = PropertyProcessor.new(dfn, self, property_value).() { |twin| twin.sync!({}) } next if nested_model.nil? mapper.send(dfn.setter, nested_model) # @model.artist = <Artist> end model end |
#sync_models(options = {}) ⇒ Object Also known as: sync
8 9 10 11 12 |
# File 'lib/disposable/twin/sync.rb', line 8 def sync_models(={}) return yield to_nested_hash if block_given? sync!() end |