Module: Pione::Lang::Callable
- Included in:
- Sequence
- Defined in:
- lib/pione/lang/expr.rb
Instance Method Summary collapse
-
#call_pione_method(env, name, args) ⇒ Object
Call the pione method.
Instance Method Details
#call_pione_method(env, name, args) ⇒ Object
Call the pione method.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/pione/lang/expr.rb', line 51 def call_pione_method(env, name, args) # check arguments raise ArgumentError.new(args) unless args.is_a?(Array) if pione_method = pione_type(env).find_method(env, name, self, args) # evaluate arguments if the method type is immediate if pione_method.method_type == :immediate args = args.map {|arg| arg.eval(env)} end # call it pione_method.call(env, self, args) else raise MethodNotFound.new(env, name, self, args) end end |