module Formup::ClassMethods
Class methods {{{
Public Instance Methods
source(key, options={})
click to toggle source
# File lib/formup.rb, line 26 def source(key, options={}) initialize_sources attribute_defs = create_attribute_defs(key, options[:attributes], options[:aliases]) @sources[key] = Formup::Source.new(key, attribute_defs) deploy_attributes(attribute_defs) end
sources()
click to toggle source
# File lib/formup.rb, line 21 def sources initialize_sources @sources.dup end
Private Instance Methods
create_attribute_defs(key, attributes, aliases)
click to toggle source
# File lib/formup.rb, line 34 def create_attribute_defs(key, attributes, aliases) attribute_defs = {}.with_indifferent_access if attributes attributes.each do |attr| attribute_defs[attr.to_s] = "#{key}_#{attr}" end end if aliases aliases.each do |k, v| attribute_defs[k.to_s] = v.to_s end end attribute_defs end
deploy_attributes(defs)
click to toggle source
# File lib/formup.rb, line 50 def deploy_attributes(defs) defs.values.each do |attr| attr_accessor attr define_method "#{attr}?" do Formup::TRUE_VALUES.include?(self.__send__(attr)) end end end
initialize_sources()
click to toggle source
# File lib/formup.rb, line 60 def initialize_sources @sources ||= {}.with_indifferent_access end