Module: Formup
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/formup.rb,
lib/formup/source.rb,
lib/formup/version.rb,
lib/formup/attr_def.rb
Defined Under Namespace
Modules: ClassMethods
Classes: AttrDef, Source
Constant Summary
collapse
- TRUE_VALUES =
[1, true, "1", "true", "t"]
- VERSION =
"1.0.0"
Instance Method Summary
collapse
Instance Method Details
#handle_extra_params(parameters) ⇒ Object
79
80
|
# File 'lib/formup.rb', line 79
def handle_extra_params(parameters)
end
|
#initialize(params = {}) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/formup.rb', line 67
def initialize(params = {})
return unless params
parameters = params.dup.with_indifferent_access
self.class.sources.each do |_, src|
src.attribute_defs.each do |attr_def|
__send__(attr_def.attr.to_s + "=", parameters.delete(attr_def.attr)) if parameters.key?(attr_def.attr)
end
end
handle_extra_params(parameters) unless parameters.empty?
end
|
#load(params = {}) ⇒ Object
104
105
106
107
108
109
110
111
112
113
114
|
# File 'lib/formup.rb', line 104
def load(params = {})
params.each do |k, v|
if self.class.sources.key?(k)
source = self.class.sources[k]
source.attribute_defs.each do |attr_def|
value = (v, attr_def.base)
__send__(attr_def.attr + "=", value) if value
end
end
end
end
|
#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
|
#persisted? ⇒ Boolean
82
83
84
|
# File 'lib/formup.rb', line 82
def persisted?
false
end
|