Class: Zaid::Runtime::ZaidMethod

Inherits:
Object
  • Object
show all
Defined in:
lib/zaid/runtime/zaid_method.rb

Instance Method Summary collapse

Constructor Details

#initialize(params, body) ⇒ ZaidMethod

Returns a new instance of ZaidMethod.



8
9
10
11
# File 'lib/zaid/runtime/zaid_method.rb', line 8

def initialize(params, body)
  @params = params
  @body = body
end

Instance Method Details

#call(receiver, arguments) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/zaid/runtime/zaid_method.rb', line 13

def call(receiver, arguments)
  context = Context.new(receiver)

  @params.each_with_index do |param, index|
    context.locals[param] = arguments[index]
  end

  @body.eval(context)
end