Class: OrderQuery::OrderCondition

Inherits:
Object
  • Object
show all
Defined in:
lib/order_query/order_condition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope, line) ⇒ OrderCondition

Returns a new instance of OrderCondition.



5
6
7
8
9
10
11
12
13
# File 'lib/order_query/order_condition.rb', line 5

def initialize(scope, line)
  line              = line.dup
  @options          = line.extract_options!
  @name             = line[0]
  @order            = line[1] || :asc
  @order_order      = line[2] || :desc
  @scope            = scope
  @unique           = @options.key?(:unique) ? !!@options[:unique] : (name.to_s == scope.primary_key)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/order_query/order_condition.rb', line 3

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



3
4
5
# File 'lib/order_query/order_condition.rb', line 3

def options
  @options
end

#orderObject (readonly)

Returns the value of attribute order.



3
4
5
# File 'lib/order_query/order_condition.rb', line 3

def order
  @order
end

#order_orderObject (readonly)

Returns the value of attribute order_order.



3
4
5
# File 'lib/order_query/order_condition.rb', line 3

def order_order
  @order_order
end

#scopeObject (readonly)

Returns the value of attribute scope.



3
4
5
# File 'lib/order_query/order_condition.rb', line 3

def scope
  @scope
end

Instance Method Details

#col_name_sqlObject



19
20
21
22
23
24
25
26
27
# File 'lib/order_query/order_condition.rb', line 19

def col_name_sql
  sql = options[:sql]
  if sql
    sql = sql.call if sql.respond_to?(:call)
    sql
  else
    scope.connection.quote_table_name(scope.table_name) + '.' + scope.connection.quote_column_name(name)
  end
end

#unique?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/order_query/order_condition.rb', line 15

def unique?
  @unique
end