Module: Risky::CronList::ClassMethods
- Defined in:
- lib/risky/cron_list.rb
Overview
Provides methods which allow a Risky model to act as a chronological list of references to some other model.
Instance Method Summary collapse
- #item_class(klass = nil) ⇒ Object
- #limit(limit = nil) ⇒ Object
- #merge(versions) ⇒ Object
-
#sort_items(items) ⇒ Object
Sorts a list of items into the appropriate order.
Instance Method Details
#item_class(klass = nil) ⇒ Object
6 7 8 9 10 11 12 |
# 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) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/risky/cron_list.rb', line 14 def limit(limit = nil) if limit @limit = limit else @limit end end |
#merge(versions) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# 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) ⇒ Object
Sorts a list of items into the appropriate order.
36 37 38 |
# File 'lib/risky/cron_list.rb', line 36 def sort_items(items) items.sort { |a,b| b <=> a } end |