Class: Handlers::Attributes
Instance Method Summary collapse
-
#affect_prepared_values! ⇒ Object
DSL method : prepare.
-
#affect_relation_values! ⇒ Object
DSL method : relation.
- #handle ⇒ Object
-
#merge_overrided_params! ⇒ Object
DSL method : ensure_value.
- #merge_with_resource_attributes! ⇒ Object
-
#remap_attributes! ⇒ Object
DSL method : remap.
-
#slice_unauthorized_attributes! ⇒ Object
DSL method : attributes.
-
#start_with_default_params! ⇒ Object
DSL method : set_default.
Methods inherited from Base
handle, #initialize, #raise_error, #upper
Constructor Details
This class inherits a constructor from Handlers::Base
Instance Method Details
#affect_prepared_values! ⇒ Object
DSL method : prepare
26 27 28 29 30 |
# File 'lib/handlers/attributes.rb', line 26 def affect_prepared_values! (upper(:@@preparers) || []).each do |preparer| @params[preparer[:key]] = preparer[:lambda].try(:call, @params[preparer[:key]]) end end |
#affect_relation_values! ⇒ Object
DSL method : relation
51 52 53 |
# File 'lib/handlers/attributes.rb', line 51 def affect_relation_values! Relations.new(@klass).affect_relation_values! end |
#handle ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/handlers/attributes.rb', line 9 def handle start_with_default_params! affect_prepared_values! remap_attributes! merge_with_resource_attributes! affect_relation_values! merge_overrided_params! end |
#merge_overrided_params! ⇒ Object
DSL method : ensure_value
45 46 47 48 |
# File 'lib/handlers/attributes.rb', line 45 def merge_overrided_params! overrided_params = upper(:@@overrided_params) || {} @params.merge!(overrided_params) end |
#merge_with_resource_attributes! ⇒ Object
39 40 41 42 |
# File 'lib/handlers/attributes.rb', line 39 def merge_with_resource_attributes! return unless @resource.respond_to?(:attributes) @params.reverse_merge!(@resource.attributes.symbolize_keys) end |
#remap_attributes! ⇒ Object
DSL method : remap
33 34 35 36 37 |
# File 'lib/handlers/attributes.rb', line 33 def remap_attributes! (upper(:@@remaped_params) || []).each do |remaped| @params[remaped[:to]] = @raw_params[remaped[:key].to_s] if @raw_params.key?(remaped[:key].to_s) && @params[remaped[:to]].blank? end end |
#slice_unauthorized_attributes! ⇒ Object
DSL method : attributes
56 57 58 59 |
# File 'lib/handlers/attributes.rb', line 56 def = upper(:@@attributes) || {} @params.slice!(*) end |
#start_with_default_params! ⇒ Object
DSL method : set_default
20 21 22 23 |
# File 'lib/handlers/attributes.rb', line 20 def start_with_default_params! default_params = upper(:@@default_params) || {} @params.reverse_merge!(default_params) end |