Sha256: fee73201de933a144953b9022d6f100ab875cccfb372eb42864a9e74a1cd2e94

Contents?: true

Size: 1.11 KB

Versions: 12

Compression:

Stored size: 1.11 KB

Contents

module Ambition
  module Adapters
    module ActiveRecord
      class Sort < Base
        def sort_by(method)
          "#{owner.table_name}.#{quote_column_name method}" 
        end

        def reverse_sort_by(method)
          "#{owner.table_name}.#{quote_column_name method} DESC" 
        end

        def chained_sort_by(receiver, method)
          if reflection = owner.reflections[receiver]
            stash[:include] ||= []
            stash[:include] << receiver
            "#{reflection.table_name}.#{quote_column_name method}"
          else 
            raise [ receiver, method ].inspect
          end
        end

        def chained_reverse_sort_by(receiver, method)
          if reflection = owner.reflections[receiver]
            stash[:include] ||= []
            stash[:include] << receiver
            "#{reflection.table_name}.#{quote_column_name method} DESC"
          else 
            raise [ receiver, method ].inspect
          end
        end

        def to_proc(symbol)
          "#{owner.table_name}.#{symbol}"
        end

        def rand
          'RAND()'
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
benhoskings-ambitious-activerecord-0.1.3.1 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.2 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.3 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.4 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.5 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.6 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.7 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3 lib/ambition/adapters/active_record/sort.rb
benhoskings-ambitious-activerecord-0.1.3.8 lib/ambition/adapters/active_record/sort.rb
ambitious-activerecord-0.1.0 lib/ambition/adapters/active_record/sort.rb
ambitious-activerecord-0.1.1 lib/ambition/adapters/active_record/sort.rb
ambitious-activerecord-0.1.3 lib/ambition/adapters/active_record/sort.rb