Class: ActiveJsonModel::AfterLoadCallback
- Inherits:
-
Object
- Object
- ActiveJsonModel::AfterLoadCallback
- Defined in:
- lib/active_json_model/after_load_callback.rb
Instance Attribute Summary collapse
-
#block ⇒ Object
readonly
Returns the value of attribute block.
-
#method_name ⇒ Object
readonly
Returns the value of attribute method_name.
Instance Method Summary collapse
-
#initialize(method_name:, block:) ⇒ AfterLoadCallback
constructor
Data holder for an after-load callback.
-
#invoke(on_object) ⇒ Object
Invoke this callback on
on_object
the object just loaded from JSON.
Constructor Details
#initialize(method_name:, block:) ⇒ AfterLoadCallback
Data holder for an after-load callback
12 13 14 15 16 17 18 |
# File 'lib/active_json_model/after_load_callback.rb', line 12 def initialize(method_name:, block:) raise "ActiveJsonModel after load callback must either be a block or a method name" if method_name && block raise "ActiveJsonModel after load callback must either specify a block or method name" unless method_name || block @method_name = method_name&.to_sym @block = block end |
Instance Attribute Details
#block ⇒ Object (readonly)
Returns the value of attribute block.
6 7 8 |
# File 'lib/active_json_model/after_load_callback.rb', line 6 def block @block end |
#method_name ⇒ Object (readonly)
Returns the value of attribute method_name.
5 6 7 |
# File 'lib/active_json_model/after_load_callback.rb', line 5 def method_name @method_name end |
Instance Method Details
#invoke(on_object) ⇒ Object
Invoke this callback on on_object
the object just loaded from JSON
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/active_json_model/after_load_callback.rb', line 23 def invoke(on_object) if method_name on_object.send(method_name) else if block.arity == 1 block.call(on_object) else block.call end end end |