Sha256: c0a690a9caa843c7f2593c8ac1fecb1c01fa24a5a520020ed5a648a1140a9b6d

Contents?: true

Size: 756 Bytes

Versions: 2

Compression:

Stored size: 756 Bytes

Contents

module ActiveCollection
  module Order

    def self.included(mod)
      mod.extend ClassMethods
      mod.class_eval do
        find_scope :order_options
      end
    end

    module ClassMethods
      def order_by(order = "id ASC")
        @order = order
      end

      def default_order
        @order || (superclass != ActiveCollection::Base && superclass.default_order) || nil
      end
    end

    def order
      @order ||= self.class.default_order
    end

    def order_by(order)
      ac = unloading_dup
      ac.order_by! order
      ac
    end

    def order_by!(order)
      raise_if_loaded
      @order = order
    end

    def order_options
      ord = @order || self.class.default_order
      { :order => ord } if ord
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_collection-0.2.6 lib/active_collection/order.rb
active_collection-0.2.5 lib/active_collection/order.rb