Module: Mongoid::Orderable::Mixins::Listable
- Defined in:
- lib/mongoid/orderable/mixins/listable.rb
Instance Method Summary collapse
- #first?(field = nil) ⇒ Boolean
- #in_list?(field = nil) ⇒ Boolean
- #last?(field = nil) ⇒ Boolean
-
#next_item(field = nil) ⇒ Object
Returns the next item in the list.
-
#next_items(field = nil) ⇒ Object
Returns items below the current document.
-
#previous_item(field = nil) ⇒ Object
(also: #prev_item)
Returns the previous item in the list.
-
#previous_items(field = nil) ⇒ Object
(also: #prev_items)
Returns items above the current document.
Instance Method Details
#first?(field = nil) ⇒ Boolean
39 40 41 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 39 def first?(field = nil) in_list?(field) && orderable_position(field) == orderable_top(field) end |
#in_list?(field = nil) ⇒ Boolean
7 8 9 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 7 def in_list?(field = nil) persisted? && !orderable_position(field).nil? end |
#last?(field = nil) ⇒ Boolean
43 44 45 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 43 def last?(field = nil) in_list?(field) && orderable_position(field) == orderable_bottom(field) end |
#next_item(field = nil) ⇒ Object
Returns the next item in the list
34 35 36 37 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 34 def next_item(field = nil) field ||= default_orderable_field orderable_scope(field).where(orderable_field(field) => send(field) + 1).first end |
#next_items(field = nil) ⇒ Object
Returns items below the current document. Items with a position greater than this document’s position.
21 22 23 24 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 21 def next_items(field = nil) field ||= default_orderable_field orderable_scope(field).gt(orderable_field(field) => send(field)) end |
#previous_item(field = nil) ⇒ Object Also known as: prev_item
Returns the previous item in the list
27 28 29 30 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 27 def previous_item(field = nil) field ||= default_orderable_field orderable_scope(field).where(orderable_field(field) => send(field) - 1).first end |
#previous_items(field = nil) ⇒ Object Also known as: prev_items
Returns items above the current document. Items with a position lower than this document’s position.
13 14 15 16 |
# File 'lib/mongoid/orderable/mixins/listable.rb', line 13 def previous_items(field = nil) field ||= default_orderable_field orderable_scope(field).lt(orderable_field(field) => send(field)) end |