Class: ActiveJsonModel::AfterLoadCallback

Inherits:
Object
  • Object
show all
Defined in:
lib/active_json_model/after_load_callback.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(method_name:, block:) ⇒ AfterLoadCallback

Data holder for an after-load callback

Parameters:

  • method_name (Symbol)

    the name of method to be invoked as a callback

  • block (Proc)

    block to be executed as the 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

#blockObject (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_nameObject (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

Parameters:

  • on_object (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