Module: Fend::Plugins::Core::InstanceMethods
- Defined in:
- lib/fend.rb
Instance Method Summary collapse
-
#call(raw_data) ⇒ Object
Trigger data validation and return Result.
-
#param_class ⇒ Object
Get validation param class.
-
#process_input(input) ⇒ Object
Process input data.
-
#process_output(output) ⇒ Object
Process output data.
-
#result(args) ⇒ Object
Instantiate and return result.
-
#result_class ⇒ Object
Get validation result class.
-
#set_data(raw_data) ⇒ Object
Set: * raw input data * validation input data * result output data * input param.
-
#validate(&block) ⇒ Object
Execute validation block.
-
#validation_block ⇒ Object
Returns validation block set on class level.
Instance Method Details
#call(raw_data) ⇒ Object
Trigger data validation and return Result
108 109 110 111 112 113 |
# File 'lib/fend.rb', line 108 def call(raw_data) set_data(raw_data) validate(&validation_block) result(input: @_input_data, output: @_output_data, errors: @_input_param.errors) end |
#param_class ⇒ Object
Get validation param class
133 134 135 |
# File 'lib/fend.rb', line 133 def param_class self.class::Param end |
#process_input(input) ⇒ Object
Process input data
143 |
# File 'lib/fend.rb', line 143 def process_input(input); end |
#process_output(output) ⇒ Object
Process output data
146 |
# File 'lib/fend.rb', line 146 def process_output(output); end |
#result(args) ⇒ Object
Instantiate and return result
154 155 156 |
# File 'lib/fend.rb', line 154 def result(args) result_class.new(args) end |
#result_class ⇒ Object
Get validation result class
138 139 140 |
# File 'lib/fend.rb', line 138 def result_class self.class::Result end |
#set_data(raw_data) ⇒ Object
Set:
* raw input data
* validation input data
* result output data
* input param
120 121 122 123 124 125 |
# File 'lib/fend.rb', line 120 def set_data(raw_data) @_raw_data = raw_data @_input_data = process_input(raw_data) || raw_data @_output_data = process_output(@_input_data) || @_input_data @_input_param = param_class.new(:input, @_input_data) end |
#validate(&block) ⇒ Object
Execute validation block
149 150 151 |
# File 'lib/fend.rb', line 149 def validate(&block) instance_exec(@_input_param, &block) if block_given? end |
#validation_block ⇒ Object
Returns validation block set on class level
128 129 130 |
# File 'lib/fend.rb', line 128 def validation_block self.class.validation_block end |