module Polymorph::Orderable::ClassMethods

Public Instance Methods

ensure_resource(id_or_resource) click to toggle source
# File lib/polymorph/orderable.rb, line 16
def ensure_resource(id_or_resource)
  return id_or_resource if id_or_resource.is_a? self
  find(id_or_resource)
end
reorder(*new_order) click to toggle source
# File lib/polymorph/orderable.rb, line 15
def reorder(*new_order)
  def ensure_resource(id_or_resource)
    return id_or_resource if id_or_resource.is_a? self
    find(id_or_resource)
  end

  new_order.flatten.compact.map.each_with_index do |id_or_resource, index|
    resource = ensure_resource(id_or_resource)
    position = index * 10 + 10
    resource.update_attribute(:position, position)
    [resource, position]
  end
end