Class: Mill::Navigator
- Inherits:
-
Object
- Object
- Mill::Navigator
- Defined in:
- lib/mill/navigator.rb
Defined Under Namespace
Classes: Item
Instance Method Summary collapse
- #first_item ⇒ Object
-
#initialize(items: []) ⇒ Navigator
constructor
A new instance of Navigator.
- #items ⇒ Object
- #last_item ⇒ Object
- #next_item(uri) ⇒ Object
- #previous_item(uri) ⇒ Object
Constructor Details
#initialize(items: []) ⇒ Navigator
Returns a new instance of Navigator.
17 18 19 20 21 22 23 24 |
# File 'lib/mill/navigator.rb', line 17 def initialize(items: []) @items = Hash[ items.map do |uri, title| item = Item.new(uri: uri, title: title) [item.uri, item] end ] end |
Instance Method Details
#first_item ⇒ Object
30 31 32 |
# File 'lib/mill/navigator.rb', line 30 def first_item @items.values.first end |
#items ⇒ Object
26 27 28 |
# File 'lib/mill/navigator.rb', line 26 def items @items.values end |
#last_item ⇒ Object
34 35 36 |
# File 'lib/mill/navigator.rb', line 34 def last_item @items.values.last end |
#next_item(uri) ⇒ Object
48 49 50 51 52 53 54 55 56 |
# File 'lib/mill/navigator.rb', line 48 def next_item(uri) if (item = @items[uri]) i = @items.values.index(item) if i < @items.length - 1 return @items.values[i + 1] end end nil end |
#previous_item(uri) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/mill/navigator.rb', line 38 def previous_item(uri) if (item = @items[uri]) i = @items.values.index(item) if i > 0 return @items.values[i - 1] end end nil end |