Class: ActiveInteraction::Inputs
- Inherits:
-
Object
- Object
- ActiveInteraction::Inputs
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/active_interaction/inputs.rb
Overview
Holds inputs passed to the interaction.
Instance Method Summary collapse
-
#given?(input, *rest) ⇒ Boolean
Returns
trueif the given key was in the hash passed to run. -
#to_h ⇒ Hash
Turn the inputs into a Hash.
Instance Method Details
#given?(input, *rest) ⇒ Boolean
Returns true if the given key was in the hash passed to run.
Otherwise returns false. Use this to figure out if an input was given,
even if it was nil. Keys within nested hash filter can also be checked
by passing them in series. Arrays can be checked in the same manor as
hashes by passing an index.
rubocop:disable all
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/active_interaction/inputs.rb', line 134 def given?(input, *rest) filter_level = @base.class input_level = @normalized_inputs [input, *rest].each do |key_or_index| if key_or_index.is_a?(Symbol) || key_or_index.is_a?(String) key = key_or_index.to_sym key_to_s = key_or_index.to_s filter_level = filter_level.filters[key] break false if filter_level.nil? || input_level.nil? break false unless input_level.key?(key) || input_level.key?(key_to_s) input_level = input_level[key] || input_level[key_to_s] else index = key_or_index filter_level = filter_level.filters.first.last break false if filter_level.nil? || input_level.nil? break false unless index.between?(-input_level.size, input_level.size - 1) input_level = input_level[index] end end && true end |
#to_h ⇒ Hash
Turn the inputs into a Hash.
57 58 59 |
# File 'lib/active_interaction/inputs.rb', line 57 def to_h @to_h ||= @inputs.transform_values(&:value).freeze end |