Class: Mill::Navigator

Inherits:
Object
  • Object
show all
Defined in:
lib/mill/navigator.rb

Defined Under Namespace

Classes: Item

Instance Method Summary collapse

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_itemObject



31
32
33
# File 'lib/mill/navigator.rb', line 31

def first_item
  @items.values.first
end

#itemsObject



27
28
29
# File 'lib/mill/navigator.rb', line 27

def items
  @items.values
end

#last_itemObject



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