class So::And
Public Class Methods
and_(*args)
click to toggle source
# File lib/spec_object.rb, line 210 def self.and_(*args) args.map! do |arg| arg.to_so_expr end args1 = args.select do |arg| if arg.kind_of?(Const) if arg.value == false return arg elsif arg.value == true false else true end else true end end if args1.size == 1 args1[0] elsif args1.size == 0 true.to_so_expr else new(*args1) end end
new(*args)
click to toggle source
# File lib/spec_object.rb, line 206 def initialize(*args) @args = args end
Public Instance Methods
evaluate(calls)
click to toggle source
# File lib/spec_object.rb, line 248 def evaluate(calls) And.and_(*@args.map do |arg| arg.evaluate(calls) end) end
pp(n)
click to toggle source
# File lib/spec_object.rb, line 239 def pp(n) s = @args.map do |arg| arg.pp(n+2) end.join("\n") "#{' '*n}(and\n#{s})" end
substitute(v, e)
click to toggle source
# File lib/spec_object.rb, line 244 def substitute(v, e) And.and_(*@args.map do |arg| arg.substitute(v, e) end) end