Class: Stacks::Items::MethodCall

Inherits:
Object
  • Object
show all
Defined in:
lib/stacks/items/method_call.rb

Instance Method Summary collapse

Constructor Details

#initialize(object, method, args) ⇒ MethodCall

Returns a new instance of MethodCall.



3
4
5
6
7
# File 'lib/stacks/items/method_call.rb', line 3

def initialize(object, method, args)
  @object = object
  @method = method
  @args = args
end

Instance Method Details

#keyObject



19
20
21
# File 'lib/stacks/items/method_call.rb', line 19

def key
  @key = Digest::SHA2.hexdigest(key_str)
end

#key_strObject



9
10
11
12
13
14
15
16
17
# File 'lib/stacks/items/method_call.rb', line 9

def key_str
  return @key_str if @key_str

  object_str = Marshal.dump(@object)
  method_str = @method.to_s
  arg_str = Marshal.dump(@args)

  @key_str ||= [object_str, method_str, arg_str].join(Stacks::key_separator)
end

#valueObject



23
24
25
# File 'lib/stacks/items/method_call.rb', line 23

def value
  @object.send(@method, *@args)
end