module Risky::CronList::ClassMethods

Provides methods which allow a Risky model to act as a chronological list of references to some other model.

Public Instance Methods

item_class(klass = nil) click to toggle source
# File lib/risky/cron_list.rb, line 6
def item_class(klass = nil)
  if klass
    @item_class = klass
  else
    @item_class or raise "no item class defined for #{self}"
  end
end
limit(limit = nil) click to toggle source
# File lib/risky/cron_list.rb, line 14
def limit(limit = nil)
  if limit
    @limit = limit
  else
    @limit
  end
end
merge(versions) click to toggle source
Calls superclass method
# File lib/risky/cron_list.rb, line 22
def merge(versions)
  # Order versions chronologically
  p = super(versions)
  items = sort_items(
    versions.inject([]) do |list, version|
      list |= version.items.reverse
    end.reverse
  )

  p.trim
  p
end
sort_items(items) click to toggle source

Sorts a list of items into the appropriate order.

# File lib/risky/cron_list.rb, line 36
def sort_items(items)
  items.sort { |a,b| b <=> a }
end