Sha256: 4cea0aeb71c639c80c7f75a6d6216277c57b30a9bdc48d3be7ce7e887d0e40ac
Contents?: true
Size: 857 Bytes
Versions: 1
Compression:
Stored size: 857 Bytes
Contents
module Para module Orderable extend ActiveSupport::Concern included do scope :ordered, -> { order('position ASC') } before_create :orederable_assign_position end def orederable_assign_position last_resource = self.class.order('position DESC') .where.not(position: nil) .select(:position) .first self.position = if last_resource && last_resource.position last_resource.position + 1 else 0 end end end module ActiveRecordOrderableMixin extend ActiveSupport::Concern included do class_attribute :orderable end module ClassMethods def acts_as_orderable return if orderable? self.orderable = true include Para::Orderable end def orderable? !!orderable end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
para-0.4.0 | lib/para/orderable.rb |