module Formup
Constants
- TRUE_VALUES
- VERSION
Public Class Methods
new(params = {})
click to toggle source
Instance methods {{{
# 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
Public Instance Methods
handle_extra_params(parameters)
click to toggle source
# File lib/formup.rb, line 79 def handle_extra_params(parameters) end
load(params = {})
click to toggle source
# 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 = extract_value(v, attr_def.base) __send__(attr_def.attr + "=", value) if value end end end end
params_for(key,*excludes_attrs)
click to toggle source
# 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?()
click to toggle source
# File lib/formup.rb, line 82 def persisted? false end
Private Instance Methods
extract_value(obj, attr)
click to toggle source
# File lib/formup.rb, line 117 def extract_value(obj, attr) if obj.respond_to?(attr) obj.__send__(attr) elsif obj.respond_to?(:[]) obj[attr.to_s] || obj[attr.to_sym] else nil end end