Class: Hyde::Node Abstract
- Inherits:
-
Object
- Object
- Hyde::Node
- Defined in:
- lib/hyde/node.rb
Overview
This class is abstract.
Abstract class that reacts to request navigation. Does nothing by default, behaviour should be overriden through
reject and #process
Instance Attribute Summary collapse
-
#remap ⇒ Object
Returns the value of attribute remap.
-
#root ⇒ Object
Returns the value of attribute root.
Instance Method Summary collapse
-
#go(request) ⇒ Boolean
Try to navigate the path.
-
#initialize(path, parent:) ⇒ Node
constructor
A new instance of Node.
-
#process(_request) ⇒ Object
Method callback on successful request navigation.
-
#reject(_request) ⇒ Object
Method callback on failed request navigation.
Constructor Details
Instance Attribute Details
#remap ⇒ Object
Returns the value of attribute remap.
69 70 71 |
# File 'lib/hyde/node.rb', line 69 def remap @remap end |
#root ⇒ Object
Returns the value of attribute root.
69 70 71 |
# File 'lib/hyde/node.rb', line 69 def root @root end |
Instance Method Details
#go(request) ⇒ Boolean
Try to navigate the path. Run method callback in response.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/hyde/node.rb', line 38 def go(request) # rejected at pattern return reject(request) unless @pattern.match?(request.path) request.push_state path, splat, param = @pattern.match(request.path) do_filepath(request, request.path.delete_suffix(path)) request.path = path request.splat.append(*splat) request.param.merge!(param) value = process(request) # rejected at callback - restore state request.pop_state unless value # finally, return process value value end |
#process(_request) ⇒ Object
Method callback on successful request navigation
65 66 67 |
# File 'lib/hyde/node.rb', line 65 def process(_request) true end |
#reject(_request) ⇒ Object
Method callback on failed request navigation
58 59 60 |
# File 'lib/hyde/node.rb', line 58 def reject(_request) false end |