Class Sequel::SQL::Expression
In: lib/sequel/sql.rb
Parent: Object

Base class for all SQL expression objects.

Methods

==   attr_reader   comparison_attrs   eql?   hash   inspect   lit   sql_literal  

Public Class methods

Expression objects are assumed to be value objects, where their attribute values can‘t change after assignment. In order to make it easy to define equality and hash methods, subclass instances assume that the only values that affect the results of such methods are the values of the object‘s attributes.

[Source]

    # File lib/sequel/sql.rb, line 58
58:       def self.attr_reader(*args)
59:         super
60:         comparison_attrs.concat args
61:       end

All attributes used for equality and hash methods.

[Source]

    # File lib/sequel/sql.rb, line 64
64:       def self.comparison_attrs
65:         @comparison_attrs ||= self == Expression ? [] : superclass.comparison_attrs.clone
66:       end

Public Instance methods

Alias of eql?

[Source]

    # File lib/sequel/sql.rb, line 77
77:       def ==(other)
78:         eql?(other)
79:       end

Returns true if the receiver is the same expression as the the other expression.

[Source]

    # File lib/sequel/sql.rb, line 83
83:       def eql?(other)
84:         other.is_a?(self.class) && !self.class.comparison_attrs.find{|a| send(a) != other.send(a)}
85:       end

Make sure that the hash value is the same if the attributes are the same.

[Source]

    # File lib/sequel/sql.rb, line 88
88:       def hash
89:         ([self.class] + self.class.comparison_attrs.map{|x| send(x)}).hash
90:       end

Show the class name and instance variables for the object, necessary for correct operation on ruby 1.9.2.

[Source]

    # File lib/sequel/sql.rb, line 94
94:       def inspect
95:         "#<#{self.class} #{instance_variables.map{|iv| "#{iv}=>#{instance_variable_get(iv).inspect}"}.join(', ')}>"
96:       end

Returns self, because SQL::Expression already acts like LiteralString.

[Source]

     # File lib/sequel/sql.rb, line 99
 99:       def lit
100:         self
101:       end

Alias of to_s

[Source]

     # File lib/sequel/sql.rb, line 104
104:       def sql_literal(ds)
105:         to_s(ds)
106:       end

[Validate]