class Iba::MethodCallExpression
Attributes
_args[R]
_method[R]
_reciever[R]
Public Class Methods
new(reciever, methodname, args)
click to toggle source
# File lib/iba.rb, line 167 def initialize reciever, methodname, args @_reciever = reciever @_method = methodname @_args = args.map { |a| _wrap(a) } end
Public Instance Methods
_evaluate(bnd)
click to toggle source
# File lib/iba.rb, line 196 def _evaluate bnd rcv = @_reciever._evaluate(bnd) args = @_args.map { |arg| arg._evaluate(bnd) } rcv.send @_method, *args end
_to_s()
click to toggle source
# File lib/iba.rb, line 173 def _to_s rcv = @_reciever._to_s args = @_args.map { |a| a.respond_to?(:_to_s) ? a._to_s : a.to_s } if @_method == :[] "#{rcv}[#{args[0]}]" elsif _method_is_operator? case @_args.length when 0 "#{@_method.to_s.sub(/@$/, '')}#{rcv}" when 1 "(#{rcv} #{@_method} #{args.first})" else raise NotImplementedError end else str = rcv == '' ? '' : "#{rcv}." str << @_method.to_s str << "(#{args.join(', ')})" unless @_args.empty? str end end
Private Instance Methods
_method_is_operator?()
click to toggle source
# File lib/iba.rb, line 204 def _method_is_operator? @_method.to_s !~ /^[a-z]/ end