Class: Hanami::Action::Params
- Inherits:
-
BaseParams
- Object
- BaseParams
- Hanami::Action::Params
- Includes:
- Validations::Form
- Defined in:
- lib/hanami/action/params.rb
Overview
A set of params requested by the client
It’s able to extract the relevant params from a Rack env of from an Hash.
There are three scenarios:
* When used with Hanami::Router: it contains only the params from the request
* When used standalone: it contains all the Rack env
* Default: it returns the given hash as it is. It's useful for testing purposes.
Constant Summary
Constants inherited from BaseParams
BaseParams::RACK_INPUT, BaseParams::RACK_SESSION, BaseParams::ROUTER_PARAMS
Instance Attribute Summary
Attributes inherited from BaseParams
Class Method Summary collapse
-
._base_rules ⇒ Object
private
This is a Hanami::Validations extension point.
-
.params(&blk) ⇒ Object
Define params validations.
Instance Method Summary collapse
-
#error_messages(error_set = errors) ⇒ Array
Returns flat collection of full error messages.
-
#errors ⇒ Hash
Returns structured error messages.
-
#initialize(env) ⇒ Params
constructor
private
Initialize the params and freeze them.
-
#raw ⇒ Hash
Returns raw params from Rack env.
-
#to_h ⇒ ::Hash
(also: #to_hash)
Serialize params to Hash.
-
#valid? ⇒ TrueClass, FalseClass
Returns true if no validation errors are found, false otherwise.
Methods inherited from BaseParams
Constructor Details
#initialize(env) ⇒ Params
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Initialize the params and freeze them.
69 70 71 72 73 74 75 |
# File 'lib/hanami/action/params.rb', line 69 def initialize(env) @env = env super(_extract_params) @result = validate @params = _params freeze end |
Class Method Details
._base_rules ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is a Hanami::Validations extension point
23 24 25 26 27 |
# File 'lib/hanami/action/params.rb', line 23 def self._base_rules lambda do optional(:_csrf_token).filled(:str?) end end |
.params(&blk) ⇒ Object
Define params validations
57 58 59 |
# File 'lib/hanami/action/params.rb', line 57 def self.params(&blk) validations(&blk || ->() {}) end |
Instance Method Details
#error_messages(error_set = errors) ⇒ Array
Returns flat collection of full error messages
108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/hanami/action/params.rb', line 108 def (error_set = errors) error_set.each_with_object([]) do |(key, ), result| k = Utils::String.new(key).titleize = if .is_a?(Hash) () else .map { || "#{k} #{}" } end result.concat() end end |
#errors ⇒ Hash
Returns structured error messages
95 96 97 |
# File 'lib/hanami/action/params.rb', line 95 def errors @result. end |
#raw ⇒ Hash
Returns raw params from Rack env
82 83 84 |
# File 'lib/hanami/action/params.rb', line 82 def raw @input end |
#to_h ⇒ ::Hash Also known as: to_hash
Serialize params to Hash
140 141 142 |
# File 'lib/hanami/action/params.rb', line 140 def to_h @params end |
#valid? ⇒ TrueClass, FalseClass
Returns true if no validation errors are found, false otherwise.
131 132 133 |
# File 'lib/hanami/action/params.rb', line 131 def valid? @result.success? end |