class Estreet::Expression

Public Class Methods

coerce(thing) click to toggle source

Return an expression if at all possible

# File lib/estreet/expression.rb, line 12
def self.coerce(thing)
  case thing
  when Expression
    thing
  when Array
    ArrayExpression.new(thing.map {|element| element })
  when Symbol, String
    Identifier.new(thing)
  else
    raise TypeError, "Can't convert to expression: #{thing.inspect}"
  end
end

Public Instance Methods

[](member) click to toggle source

creates a computed MemberExpression

# File lib/estreet/expression.rb, line 37
def [](member)
  member = Literal[member] unless member.is_a? Expression
  MemberExpression.new(self, member, true)
end
call(*args) click to toggle source

Creates a call expression with the receiver as the callee and the specified arguments @param args [#to_expression]

# File lib/estreet/expression.rb, line 32
def call(*args)
  CallExpression.new(self, args)
end
property(prop) click to toggle source

creates a non-computed MemberExpression, e.g. ‘object.property` in JS

# File lib/estreet/expression.rb, line 26
def property(prop)
  MemberExpression.new(self, Identifier[prop], false)
end
to_expression() click to toggle source
# File lib/estreet/expression.rb, line 3
def to_expression
  self
end
to_statement() click to toggle source
# File lib/estreet/expression.rb, line 7
def to_statement
  ExpressionStatement.new(self, source_location)
end