Class: Remap::Path::Input
- Inherits:
-
Unit
- Object
- Unit
- Remap::Path::Input
- Defined in:
- lib/remap/path/input.rb
Overview
Returns the value at a given path
Instance Method Summary collapse
-
#call(state, &iterator) ⇒ State
Selects the value at the path #segments.
- #segments ⇒ Array<Selector>
Instance Method Details
#call(state, &iterator) ⇒ State
Selects the value at the path #segments
26 27 28 29 30 31 32 33 34 |
# File 'lib/remap/path/input.rb', line 26 def call(state, &iterator) unless block_given? raise ArgumentError, "Input path requires an iterator block" end segments.reverse.reduce(iterator) do |inner_iterator, selector| -> inner_state { selector.call(inner_state, &inner_iterator) } end.call(state) end |