Class: ArelExtensions::Nodes::RegexpReplace

Inherits:
Function
  • Object
show all
Defined in:
lib/arel_extensions/nodes/replace.rb

Constant Summary collapse

RETURN_TYPE =
:string

Constants inherited from Function

Function::MBSTRING

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Function

#!=, #==, #as, #convert_to_date_node, #convert_to_datetime_node, #convert_to_node, #convert_to_number, #convert_to_string_node, #expr, #return_type, #right, #type_of_attribute

Methods included from Predications

#cast, #convert_to_node, #imatches, #in, #matches, #not_in, #when

Constructor Details

#initialize(left, pattern, substitute) ⇒ RegexpReplace

Returns a new instance of RegexpReplace.



23
24
25
26
27
28
# File 'lib/arel_extensions/nodes/replace.rb', line 23

def initialize left, pattern, substitute
  @left = convert_to_node(left)
  @pattern = (pattern.is_a?(Regexp) ? pattern : %r[#{pattern}])
  @substitute = convert_to_node(substitute)
  super([@left,@pattern,@substitute])
end

Instance Attribute Details

#leftObject

Returns the value of attribute left.



21
22
23
# File 'lib/arel_extensions/nodes/replace.rb', line 21

def left
  @left
end

#patternObject

Returns the value of attribute pattern.



21
22
23
# File 'lib/arel_extensions/nodes/replace.rb', line 21

def pattern
  @pattern
end

#substituteObject

Returns the value of attribute substitute.



21
22
23
# File 'lib/arel_extensions/nodes/replace.rb', line 21

def substitute
  @substitute
end

Instance Method Details

#+(other) ⇒ Object



30
31
32
# File 'lib/arel_extensions/nodes/replace.rb', line 30

def +(other)
  return ArelExtensions::Nodes::Concat.new(self.expressions + [other])
end