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

attr_reader(*args)

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 68
    68:       def self.attr_reader(*args)
    69:         super
    70:         comparison_attrs.concat args
    71:       end

comparison_attrs()

All attributes used for equality and hash methods.

[Source]

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

### Public Instance methods

==(other)

Alias of `eql?`

[Source]

        # File lib/sequel/sql.rb, line 88
    88:       def ==(other)
    89:         eql?(other)
    90:       end

eql?(other)

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

[Source]

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

hash()

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

[Source]

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

inspect()

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 105
    105:       def inspect
    106:         "#<#{self.class} #{instance_variables.map{|iv| "#{iv}=>#{instance_variable_get(iv).inspect}"}.join(', ')}>"
    107:       end

lit()

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

[Source]

         # File lib/sequel/sql.rb, line 110
    110:       def lit
    111:         self
    112:       end

sql_literal(ds)

Alias of `to_s`

[Source]

         # File lib/sequel/sql.rb, line 115
    115:       def sql_literal(ds)
    116:         to_s(ds)
    117:       end

[Validate]