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: [], site: nil) ⇒ Navigator
constructor
A new instance of Navigator.
- #items ⇒ Object
- #last_item ⇒ Object
- #next_item(uri) ⇒ Object
- #previous_item(uri) ⇒ Object
Constructor Details
#initialize(items: [], site: nil) ⇒ Navigator
Returns a new instance of Navigator.
17 18 19 20 21 22 23 24 25 |
# File 'lib/mill/navigator.rb', line 17 def initialize(items: [], site: nil) @items = Hash[ items.map do |uri, title| item = Item.new(uri: uri, title: title) [item.uri, item] end ] @site = site end |
Instance Method Details
#first_item ⇒ Object
31 32 33 |
# File 'lib/mill/navigator.rb', line 31 def first_item @items.values.first end |
#items ⇒ Object
27 28 29 |
# File 'lib/mill/navigator.rb', line 27 def items @items.values end |
#last_item ⇒ Object
35 36 37 |
# File 'lib/mill/navigator.rb', line 35 def last_item @items.values.last end |
#next_item(uri) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/mill/navigator.rb', line 49 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
39 40 41 42 43 44 45 46 47 |
# File 'lib/mill/navigator.rb', line 39 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 |