class Iba::Combinator
Public Class Methods
new(&blk)
click to toggle source
# File lib/iba.rb, line 3 def initialize &blk @block = blk end
Public Instance Methods
analyse()
click to toggle source
# File lib/iba.rb, line 19 def analyse str = "#{self} is #{call.inspect}" if expression.class == MethodCallExpression && expression._method == :== lft = expression._reciever rgt = expression._args.first exprs = [lft, rgt].map { |e| display_subexpression e }.compact str << "\n" str << exprs.join(', ') end str end
call()
click to toggle source
# File lib/iba.rb, line 7 def call @block.call end
expression()
click to toggle source
# File lib/iba.rb, line 15 def expression @expression ||= EmptyExpression.new._parse(&@block) end
to_s()
click to toggle source
# File lib/iba.rb, line 11 def to_s expression._to_s end
Private Instance Methods
display_subexpression(expr)
click to toggle source
# File lib/iba.rb, line 33 def display_subexpression expr if expr.class == LiteralExpression nil else str = expr._to_s value = expr._evaluate(@block.binding).inspect "#{str} is #{value}" end end