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 58
    58:       def self.attr_reader(*args)
    59:         super
    60:         comparison_attrs.concat args
    61:       end

comparison_attrs()

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

==(other)

Alias of `eql?`

[Source]

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

eql?(other)

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

hash()

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

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

lit()

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

[Source]

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

sql_literal(ds)

Alias of `to_s`

[Source]

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

[Validate]