Class: SimpleParams::Params
- Inherits:
-
Object
- Object
- SimpleParams::Params
- Extended by:
- ActiveModel::Naming
- Includes:
- ActiveModel::Validations, DateTimeHelpers, HasAttributes, HasTypedParams, HashHelpers, RailsHelpers, StrictParams, Validations
- Defined in:
- lib/simple_params/params.rb
Direct Known Subclasses
Constant Summary
Constants included from HasTypedParams
Class Attribute Summary collapse
-
.options ⇒ Object
Returns the value of attribute options.
Instance Attribute Summary collapse
-
#original_params ⇒ Object
(also: #original_hash, #raw_params)
Returns the value of attribute original_params.
Class Method Summary collapse
- .api_pie_documentation ⇒ Object
- .model_name ⇒ Object
- .nested_array(name, opts = {}, &block) ⇒ Object
- .nested_arrays ⇒ Object
- .nested_classes ⇒ Object
- .nested_hash(name, opts = {}, &block) ⇒ Object (also: nested_param, nested)
- .nested_hashes ⇒ Object
- .param(name, opts = {}) ⇒ Object
Instance Method Summary collapse
- #errors ⇒ Object
-
#initialize(params = {}) ⇒ Params
constructor
A new instance of Params.
- #to_hash ⇒ Object
Methods included from Validations
Constructor Details
#initialize(params = {}) ⇒ Params
Returns a new instance of Params.
121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/simple_params/params.rb', line 121 def initialize(params={}) set_strictness @original_params = hash_to_symbolized_hash(params) define_attributes(@original_params) # Nested Classes @nested_classes = nested_classes.keys set_accessors(params) end |
Class Attribute Details
.options ⇒ Object
Returns the value of attribute options.
18 19 20 |
# File 'lib/simple_params/params.rb', line 18 def end |
Instance Attribute Details
#original_params ⇒ Object Also known as: original_hash, raw_params
Returns the value of attribute original_params.
117 118 119 |
# File 'lib/simple_params/params.rb', line 117 def original_params @original_params end |
Class Method Details
.api_pie_documentation ⇒ Object
24 25 26 |
# File 'lib/simple_params/params.rb', line 24 def api_pie_documentation SimpleParams::ApiPieDoc.new(self).build end |
.model_name ⇒ Object
20 21 22 |
# File 'lib/simple_params/params.rb', line 20 def model_name ActiveModel::Name.new(self) end |
.nested_array(name, opts = {}, &block) ⇒ Object
52 53 54 55 |
# File 'lib/simple_params/params.rb', line 52 def nested_array(name, opts={}, &block) klass = NestedParams.define_new_array_class(self, name, opts, &block) add_nested_class(name, klass, opts) end |
.nested_arrays ⇒ Object
41 42 43 |
# File 'lib/simple_params/params.rb', line 41 def nested_arrays nested_classes.select { |key, klass| klass.array? } end |
.nested_classes ⇒ Object
33 34 35 |
# File 'lib/simple_params/params.rb', line 33 def nested_classes @nested_classes ||= {} end |
.nested_hash(name, opts = {}, &block) ⇒ Object Also known as: nested_param, nested
45 46 47 48 |
# File 'lib/simple_params/params.rb', line 45 def nested_hash(name, opts={}, &block) klass = NestedParams.define_new_hash_class(self, name, opts, &block) add_nested_class(name, klass, opts) end |
.nested_hashes ⇒ Object
37 38 39 |
# File 'lib/simple_params/params.rb', line 37 def nested_hashes nested_classes.select { |key, klass| klass.hash? } end |
.param(name, opts = {}) ⇒ Object
28 29 30 31 |
# File 'lib/simple_params/params.rb', line 28 def param(name, opts={}) define_attribute(name, opts) add_validations(name, opts) end |
Instance Method Details
#errors ⇒ Object
153 154 155 156 157 158 159 160 |
# File 'lib/simple_params/params.rb', line 153 def errors nested_class_hash = {} @nested_classes.each do |param| nested_class_hash[param.to_sym] = send(param) end @errors ||= SimpleParams::Errors.new(self, nested_class_hash) end |
#to_hash ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/simple_params/params.rb', line 133 def to_hash hash = {} attributes.each do |attribute| raw_attribute = send(attribute) if raw_attribute.is_a?(SimpleParams::Params) hash[attribute] = send(attribute).to_hash elsif raw_attribute.is_a?(Array) attribute_array = [] raw_attribute.each do |r_attr| attribute_array << r_attr.to_hash end hash[attribute] = attribute_array else hash[attribute] = send(attribute) end end hash end |