Sha256: 0a9253df02203a4d15b73d4f4b2a20acb88ab1ad9431f19849bc79cb2f8b99b6

Contents?: true

Size: 659 Bytes

Versions: 14

Compression:

Stored size: 659 Bytes

Contents

module RecordFilter
  class Order # :nodoc: all
    include ColumnParser

    attr_reader :column, :direction, :table

    def initialize(column, direction, table)
      @column, @direction, @table = column, direction, table
    end

    def to_sql
      dir = case @direction
        when :asc then 'ASC'
        when :desc then 'DESC'
        else raise InvalidFilterException.new("An invalid order of #{@direction} was specified.") 
      end

      column, table = parse_column_in_table(@column, @table)

      if (table.has_column(column))
        "#{table.table_alias}.#{column} #{dir}"
      else
        "#{column} #{dir}"
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
aub-record_filter-0.9.10 lib/record_filter/order.rb
aub-record_filter-0.9.11 lib/record_filter/order.rb
aub-record_filter-0.9.12 lib/record_filter/order.rb
aub-record_filter-0.9.4 lib/record_filter/order.rb
aub-record_filter-0.9.5 lib/record_filter/order.rb
aub-record_filter-0.9.6 lib/record_filter/order.rb
aub-record_filter-0.9.7 lib/record_filter/order.rb
aub-record_filter-0.9.8 lib/record_filter/order.rb
aub-record_filter-0.9.9 lib/record_filter/order.rb
record_filter-0.9.16 lib/record_filter/order.rb
record_filter-0.9.15 lib/record_filter/order.rb
record_filter-0.9.14 lib/record_filter/order.rb
record_filter-0.9.13 lib/record_filter/order.rb
record_filter-0.9.12 lib/record_filter/order.rb