Class: ActiveRecord::Refined::AST::DistinctFrom
- Defined in:
- lib/active_record/refined/ast.rb
Overview
IS [NOT] DISTINCT FROM, spelled IS / IS NOT on SQLite and <=> on MySQL. NULL compares as a value here, which is what separates these from = and <>.
Instance Attribute Summary collapse
-
#negated ⇒ Object
readonly
Returns the value of attribute negated.
-
#operand ⇒ Object
readonly
Returns the value of attribute operand.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
-
#initialize(operand, value, negated: false) ⇒ DistinctFrom
constructor
A new instance of DistinctFrom.
- #to_arel(table, model) ⇒ Object
Methods inherited from Predicate
Methods inherited from Node
Constructor Details
#initialize(operand, value, negated: false) ⇒ DistinctFrom
Returns a new instance of DistinctFrom.
1321 1322 1323 1324 1325 |
# File 'lib/active_record/refined/ast.rb', line 1321 def initialize(operand, value, negated: false) @operand = operand @value = value @negated = negated end |
Instance Attribute Details
#negated ⇒ Object (readonly)
Returns the value of attribute negated.
1319 1320 1321 |
# File 'lib/active_record/refined/ast.rb', line 1319 def negated @negated end |
#operand ⇒ Object (readonly)
Returns the value of attribute operand.
1319 1320 1321 |
# File 'lib/active_record/refined/ast.rb', line 1319 def operand @operand end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
1319 1320 1321 |
# File 'lib/active_record/refined/ast.rb', line 1319 def value @value end |
Instance Method Details
#to_arel(table, model) ⇒ Object
1327 1328 1329 1330 1331 1332 1333 1334 1335 |
# File 'lib/active_record/refined/ast.rb', line 1327 def to_arel(table, model) arel_operand = to_arel_operand(operand, table, model) arel_value = value.is_a?(Node) ? value.to_arel(table, model) : value if negated arel_operand.is_distinct_from(arel_value) else arel_operand.is_not_distinct_from(arel_value) end end |