Class: Redcar::NavigationHistory
- Inherits:
-
Array
- Object
- Array
- Redcar::NavigationHistory
- Defined in:
- plugins/application/lib/application/navigation_history.rb
Overview
A class that holds a cursor navigation history. The maximum length defaults to 100.
Instance Method Summary (collapse)
- - (Object) backward
- - (Boolean) can_backward?
- - (Boolean) can_forward?
- - (Object) forward
-
- (NavigationHistory) initialize
constructor
A new instance of NavigationHistory.
- - (Object) save(doc)
Constructor Details
- (NavigationHistory) initialize
A new instance of NavigationHistory
5 6 7 8 |
# File 'plugins/application/lib/application/navigation_history.rb', line 5 def initialize @max_history_size = 100 @current = 0 end |
Instance Method Details
- (Object) backward
25 26 27 |
# File 'plugins/application/lib/application/navigation_history.rb', line 25 def backward move_current_and_restore(-1) if can_backward? end |
- (Boolean) can_backward?
21 22 23 |
# File 'plugins/application/lib/application/navigation_history.rb', line 21 def can_backward? return @current > 0 end |
- (Boolean) can_forward?
29 30 31 |
# File 'plugins/application/lib/application/navigation_history.rb', line 29 def can_forward? return @current < self.size - 1 end |
- (Object) forward
33 34 35 |
# File 'plugins/application/lib/application/navigation_history.rb', line 33 def forward move_current_and_restore(1) if can_forward? end |
- (Object) save(doc)
10 11 12 13 14 15 16 17 18 19 |
# File 'plugins/application/lib/application/navigation_history.rb', line 10 def save(doc) return if last && last[:path] == doc.path && last[:cursor_offset] == doc.cursor_offset # Invoking this method means new future is about to be created, so remove old one. self.slice!(@current...self.size) ensure_size_less_than_max self << {:path => doc.path, :cursor_offset => doc.cursor_offset} @current += 1 end |