class ShadowForm::Core
Public Class Methods
give_name(new_name)
click to toggle source
# File lib/shadow_form.rb, line 13 def give_name(new_name) form_config[:new_name] = new_name end
new(*args)
click to toggle source
# File lib/shadow_form.rb, line 17 def new(*args) form_class.new(*args) end
shadow_of(klass)
click to toggle source
# File lib/shadow_form.rb, line 5 def shadow_of(klass) form_config[:shadow_of] = klass end
validation(&block)
click to toggle source
# File lib/shadow_form.rb, line 9 def validation(&block) form_config[:validation] = block end
Private Class Methods
form_class()
click to toggle source
# File lib/shadow_form.rb, line 23 def form_class @form_class ||= ( klass = form_config[:shadow_of] || fail('[ShadowForm] missing shadow class') klass_name = form_config.fetch(:new_name, name) Class.new(klass).tap do |m_class| self.const_set('ShadowForm', m_class) m_class.class_eval("def self.name; \"#{klass_name}\"; end") m_class.class_eval(&form_config[:validation]) if form_config[:validation] end ) end
form_config()
click to toggle source
# File lib/shadow_form.rb, line 35 def form_config @form_config ||= {} end