class Mandrake::DSL::ConditionalExpression

A class for building conditional expressions @example

cond1 = Mandrake::DSL::If.new('env["PATH_INFO"] == "/"')
cond2 = Mandrake::DSL::Unless.new('env["REQUEST_METHOD"] == "GET"')
cond1 + cond2       #=> '(env["PATH_INFO"] == "/") && !(env["REQUEST_METHOD"] == "GET")'
cond1.concat(cond2) #=> '(env["PATH_INFO"] == "/") && !(env["REQUEST_METHOD"] == "GET")'
cond1               #=> '(env["PATH_INFO"] == "/") && !(env["REQUEST_METHOD"] == "GET")'

@!visibility private

Attributes

code[RW]

Public Class Methods

expression() click to toggle source

@!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 15
def self.expression
  @expression
end
new(code) click to toggle source

@param [Mandrake::DSL::Stringify::Relation, Proc] code @!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 27
def initialize(code)
  @code = code
end
template(text) click to toggle source

@param [String] text @!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 21
def self.template(text)
  @expression ||= text
end

Public Instance Methods

+(other_expression) click to toggle source

@param [Mandrake::DSL::ConditonalExpression] other_expression @!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 33
def +(other_expression)
  expression + " && " + other_expression.to_s
end
concat(other_expression) click to toggle source

Concatenates an other expression with self @param [Mandrake::DSL::ConditonalExpression] other_expression @!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 40
def concat(other_expression)
  @expression = send(:+, other_expression)
end
expression() click to toggle source

@!visibility private

# File lib/mandrake/dsl/conditional_expression.rb, line 45
def expression
  @expression ||= self.class.expression.gsub(/{:condition:}/, @code.to_s)
end
Also aliased as: to_s
to_s()
Alias for: expression