Class: Sequel::SQL::Expression
Overview
Base class for all SQL fragments
Direct Known Subclasses
AliasedExpression, ColumnAll, ComplexExpression, GenericExpression, JoinClause, OrderedExpression, PlaceholderLiteralString, SQLArray, Window
Class Method Summary collapse
-
.attr_reader(*args) ⇒ Object
all instance variables declared to be readers are to be used for comparison.
- .comparison_attrs ⇒ Object
Instance Method Summary collapse
-
#eql?(other) ⇒ Boolean
(also: #==)
Returns true if the receiver is the same expression as the the
other
expression. -
#lit ⇒ Object
Returns self, because SQL::Expression already acts like LiteralString.
-
#sql_literal(ds) ⇒ Object
Alias for to_s.
Class Method Details
.attr_reader(*args) ⇒ Object
all instance variables declared to be readers are to be used for comparison.
54 55 56 57 |
# File 'lib/sequel/sql.rb', line 54 def self.attr_reader(*args) super comparison_attrs.concat args end |
.comparison_attrs ⇒ Object
59 60 61 |
# File 'lib/sequel/sql.rb', line 59 def self.comparison_attrs @comparison_attrs ||= self == Expression ? [] : superclass.comparison_attrs.clone end |
Instance Method Details
#eql?(other) ⇒ Boolean Also known as: ==
Returns true if the receiver is the same expression as the the other
expression.
84 85 86 |
# File 'lib/sequel/sql.rb', line 84 def eql?(other) other.is_a?(self.class) && !self.class.comparison_attrs.find {|a| send(a) != other.send(a)} end |
#lit ⇒ Object
Returns self, because SQL::Expression already acts like LiteralString.
73 74 75 |
# File 'lib/sequel/sql.rb', line 73 def lit self end |
#sql_literal(ds) ⇒ Object
Alias for to_s
78 79 80 |
# File 'lib/sequel/sql.rb', line 78 def sql_literal(ds) to_s(ds) end |