Class: ArelExtensions::Nodes::RegexpReplace

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

Constant Summary collapse

RETURN_TYPE =
:string

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.



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

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.



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

def left
  @left
end

#patternObject

Returns the value of attribute pattern.



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

def pattern
  @pattern
end

#substituteObject

Returns the value of attribute substitute.



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

def substitute
  @substitute
end

Instance Method Details

#+(other) ⇒ Object



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

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