2bb6ad5f61
Arrays and Hashes have to resolve to object creation calls Not to constants. In the future off course
25 lines
745 B
Ruby
25 lines
745 B
Ruby
module Ruby
|
|
# Logical Statements are guaranteed to return boolean
|
|
# either :and or :or, which may be written as && and ||
|
|
#
|
|
# Also they guarantee that the right expression does not get evaluated
|
|
# if the whole expression fails on the left expression.
|
|
# ie: false && non_existant_method
|
|
# will never call the non_existant_method , but instead evaluate to false
|
|
#
|
|
# Vool has no concept of this, so the Statement is expanded into the if
|
|
# that it really is
|
|
class LogicalStatement < Statement
|
|
attr_reader :name , :left , :right
|
|
|
|
def initialize(name , left , right)
|
|
@name , @left , @right = name , left , right
|
|
end
|
|
|
|
def to_s(depth = 0)
|
|
at_depth(depth , "#{left} #{name} #{right}")
|
|
end
|
|
|
|
end
|
|
end
|