Class: ModelView::Updater

Inherits:
Object
  • Object
show all
Defined in:
lib/model_view/updater.rb

Class Method Summary collapse

Class Method Details

.update(obj, scopes, data, scope = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/model_view/updater.rb', line 7

def update(obj, scopes, data, scope=nil)
  scope ||= ModelView::ROOT

  setters = setters_for_scope(scope, scopes)

  data.symbolize_keys.each do |key, value|
    setter = if !setters[key].nil?
      setter_for_key(setters, key)
    else
      nil
    end

    setter.call(obj, value) if setter
  end

  after_update = after_update_for_scope(scope, scopes)
  after_update.call(obj) if after_update
end