Method: Formup#params_for

Defined in:
lib/formup.rb

#params_for(key, *excludes_attrs) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/formup.rb', line 86

def params_for(key,*excludes_attrs)
  if excludes_attrs && excludes_attrs.first == false
     excludes = []
  else
    excludes = [excludes_attrs].flatten.compact
    excludes << :id if excludes.empty?
  end

  parameters = {}.with_indifferent_access
  return parameters unless self.class.sources.key?(key)

  source = self.class.sources[key]
  source.attribute_defs.inject(parameters) do |result, attr_def|
    result[attr_def.base] = __send__(attr_def.attr) if excludes.all? { |attr| attr.to_s != attr_def.base }
    result
  end
end