Class: Handlers::Attributes

Inherits:
Base
  • Object
show all
Defined in:
lib/handlers/attributes.rb

Instance Method Summary collapse

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

#handleObject



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!
  slice_unauthorized_attributes!
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 slice_unauthorized_attributes!
  authorized_attributes = upper(:@@attributes) || {}
  @params.slice!(*authorized_attributes)
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