module Formalism::ModelForms
Module for model forms
Constants
- FORM_CLASSES
- VERSION
Public Class Methods
define_for_project( project_namespace, forms_namespace: project_namespace::Forms, models_namespace: (project_namespace::Models if project_namespace.const_defined?(:Models)) )
click to toggle source
# File lib/formalism/model_forms.rb, line 12 def define_for_project( project_namespace, forms_namespace: project_namespace::Forms, models_namespace: (project_namespace::Models if project_namespace.const_defined?(:Models)) ) forms_namespace.const_set :Model, Module.new define_model_base_form forms_namespace, models_namespace define_other_model_forms forms_namespace end
Private Class Methods
define_model_base_form(forms_namespace, models_namespace)
click to toggle source
# File lib/formalism/model_forms.rb, line 26 def define_model_base_form(forms_namespace, models_namespace) forms_namespace::Model.const_set :Base, (Class.new(forms_namespace::Base) do include ModelForms::Base const_set :FORMS_NAMESPACE, forms_namespace const_set :MODELS_NAMESPACE, models_namespace end) end
define_other_model_forms(forms_namespace)
click to toggle source
# File lib/formalism/model_forms.rb, line 42 def define_other_model_forms(forms_namespace) FORM_CLASSES.each do |form_name, parent_name| forms_namespace::Model.class_eval( <<~CODE, # class Update < FB::Forms::Model::Base # include ModelForms::Update # end class #{form_name} < #{forms_namespace}::Model::#{parent_name} include ModelForms::#{form_name} end CODE __FILE__, __LINE__ - 7 ) end end