Class: ActiveRecord::Refined::AST::Match
- Defined in:
- lib/active_record/refined/ast.rb
Overview
Regular expression match: REGEXP on MySQL, ~ on PostgreSQL. SQLite has no regexp operator built in, so Arel raises NotImplementedError there.
Instance Attribute Summary collapse
-
#negated ⇒ Object
readonly
Returns the value of attribute negated.
-
#operand ⇒ Object
readonly
Returns the value of attribute operand.
-
#pattern ⇒ Object
readonly
Returns the value of attribute pattern.
Instance Method Summary collapse
-
#initialize(operand, pattern, negated: false) ⇒ Match
constructor
A new instance of Match.
- #to_arel(table, model) ⇒ Object
Methods inherited from Predicate
Methods inherited from Node
Constructor Details
#initialize(operand, pattern, negated: false) ⇒ Match
Returns a new instance of Match.
1398 1399 1400 1401 1402 |
# File 'lib/active_record/refined/ast.rb', line 1398 def initialize(operand, pattern, negated: false) @operand = operand @pattern = pattern.is_a?(Regexp) ? regexp_source(pattern) : pattern @negated = negated end |
Instance Attribute Details
#negated ⇒ Object (readonly)
Returns the value of attribute negated.
1396 1397 1398 |
# File 'lib/active_record/refined/ast.rb', line 1396 def negated @negated end |
#operand ⇒ Object (readonly)
Returns the value of attribute operand.
1396 1397 1398 |
# File 'lib/active_record/refined/ast.rb', line 1396 def operand @operand end |
#pattern ⇒ Object (readonly)
Returns the value of attribute pattern.
1396 1397 1398 |
# File 'lib/active_record/refined/ast.rb', line 1396 def pattern @pattern end |
Instance Method Details
#to_arel(table, model) ⇒ Object
1404 1405 1406 1407 1408 1409 1410 1411 |
# File 'lib/active_record/refined/ast.rb', line 1404 def to_arel(table, model) arel_operand = to_arel_operand(operand, table, model) if negated arel_operand.does_not_match_regexp(pattern) else arel_operand.matches_regexp(pattern) end end |