Class: Navigator
- Inherits:
-
Object
- Object
- Navigator
- Defined in:
- lib/espnscrape/Navigator.rb
Overview
Array Navigator
Instance Attribute Summary collapse
-
#list ⇒ Object
readonly
Array of data to Navigate.
Instance Method Summary collapse
-
#[](idx = nil) ⇒ Element
Updates the navigation cursor if out of bounds.
-
#curr ⇒ [Object]
Return the player located at the current navigation cursor.
-
#first ⇒ Object
Updates the cursor and returns the first element of the array.
-
#inbounds?(idx) ⇒ Boolean
Checks if the requested index is within the array bounderies.
-
#initialize(list) ⇒ Navigator
constructor
Store array and initialize cursor.
-
#last ⇒ Object
Updates the cursor and returns the last element of the array.
-
#next ⇒ [Object]
Increments the navigation cursor and return the item at that location.
-
#prev ⇒ [Object]
Decrements the navigation cursor and return the item at that location.
-
#size ⇒ Object
Returns the size of the underlying array.
Constructor Details
#initialize(list) ⇒ Navigator
Store array and initialize cursor
7 8 9 10 11 |
# File 'lib/espnscrape/Navigator.rb', line 7 def initialize(list) @list = list @bounds = [-1, list.size] @cursor = -1 end |
Instance Attribute Details
#list ⇒ Object (readonly)
Array of data to Navigate
4 5 6 |
# File 'lib/espnscrape/Navigator.rb', line 4 def list @list end |
Instance Method Details
#[](idx = nil) ⇒ Element
Updates the navigation cursor if out of bounds. Returns the item at the given location. Returns the underlying array if no index is given.
34 35 36 37 38 39 |
# File 'lib/espnscrape/Navigator.rb', line 34 def [](idx = nil) return @list if idx.nil? @cursor = @bounds[0] if @cursor < @bounds[0] @cursor = @bounds[1] if @cursor > @bounds[1] @list[idx] if [inbounds?(idx), !@list.nil?].all? end |
#curr ⇒ [Object]
Return the player located at the current navigation cursor
15 16 17 |
# File 'lib/espnscrape/Navigator.rb', line 15 def curr self[@cursor] if @cursor >= 0 end |
#first ⇒ Object
Updates the cursor and returns the first element of the array
47 48 49 |
# File 'lib/espnscrape/Navigator.rb', line 47 def first self[@cursor = 0] end |
#inbounds?(idx) ⇒ Boolean
Checks if the requested index is within the array bounderies
42 43 44 |
# File 'lib/espnscrape/Navigator.rb', line 42 def inbounds?(idx) (@bounds[0]..@bounds[1]).cover?(idx) end |
#last ⇒ Object
Updates the cursor and returns the last element of the array
52 53 54 |
# File 'lib/espnscrape/Navigator.rb', line 52 def last self[@cursor = @list.size - 1] end |
#next ⇒ [Object]
Increments the navigation cursor and return the item at that location
21 22 23 |
# File 'lib/espnscrape/Navigator.rb', line 21 def next self[(@cursor += 1)] end |
#prev ⇒ [Object]
Decrements the navigation cursor and return the item at that location
27 28 29 |
# File 'lib/espnscrape/Navigator.rb', line 27 def prev self[(@cursor -= 1)] end |
#size ⇒ Object
Returns the size of the underlying array
57 58 59 |
# File 'lib/espnscrape/Navigator.rb', line 57 def size @list.size end |