Sha256: 2f4c8a6e32b303ced77b082e8f54263395d803c540086e102d720ccc53250d17
Contents?: true
Size: 1.35 KB
Versions: 3
Compression:
Stored size: 1.35 KB
Contents
require 'activerecord/sortable/acts_as_sortable/instance_methods' require 'active_support' module ActiveRecord module Sortable module ActsAsSortable extend ::ActiveSupport::Concern module ClassMethods def acts_as_sortable(&block) options = { :relation => ->(instance) {instance.class}, :append => false, :position_column => :position } block.call(options) if block_given? cattr_accessor :sortable_relation, :instance_reader => false, :instance_writer => false cattr_accessor :sortable_append, :instance_reader => true, :instance_writer => false cattr_accessor :sortable_position_column, :instance_reader => true, :instance_writer => false self.sortable_relation = options[:relation] self.sortable_append = options[:append] self.sortable_position_column = options[:position_column] scope "ordered_by_#{self.sortable_position_column}_asc".to_sym, -> { order(self.sortable_position_column => :asc) } before_create :sortable_set_default_position after_destroy :sortable_shift_on_destroy include ActiveRecord::Sortable::ActsAsSortable::InstanceMethods end end end end end require 'active_record' ActiveRecord::Base.send :include, ActiveRecord::Sortable::ActsAsSortable
Version data entries
3 entries across 3 versions & 1 rubygems