module Formalism::ModelForms::Base::ClassMethods

Module for Base form class methods

Attributes

primary_field_name[RW]

Public Instance Methods

included(something) click to toggle source
Calls superclass method
# File lib/formalism/model_forms/_base.rb, line 39
def included(something)
        super
        something.primary_field_name = primary_field_name
end
inherited(form) click to toggle source
Calls superclass method
# File lib/formalism/model_forms/_base.rb, line 27
def inherited(form)
        super

        form.primary_field_name = primary_field_name

        return if form.instance_name == :model
        return if form.method_defined?(form.instance_name.to_s)

        form.alias_method form.instance_name, :instance
        form.alias_method "#{form.instance_name}=", :instance=
end
instance_name() click to toggle source
# File lib/formalism/model_forms/_base.rb, line 76
        def instance_name
        model_name.underscore.to_sym
end
instance_variable_name() click to toggle source
# File lib/formalism/model_forms/_base.rb, line 80
        def instance_variable_name
        :"@#{instance_name}"
end
model() click to toggle source
# File lib/formalism/model_forms/_base.rb, line 72
        def model
        self::MODELS_NAMESPACE.const_get(model_name, false)
end
model_name() click to toggle source
# File lib/formalism/model_forms/_base.rb, line 67
        def model_name
        deconstantize.split('::')[2..-1].reverse
                .find { |part| self::MODELS_NAMESPACE&.const_defined?(part, false) || part == 'Model' }
end
namespace() click to toggle source
# File lib/formalism/model_forms/_base.rb, line 63
        def namespace
        self::FORMS_NAMESPACE.const_get(deconstantize)
end
primary_field(name, *args, **kwargs) click to toggle source
# File lib/formalism/model_forms/_base.rb, line 46
def primary_field(name, *args, **kwargs)
        remove_field primary_field_name if primary_field_name

        field name, *args, **kwargs

        self.primary_field_name = name
end
remove_field(name) click to toggle source
Calls superclass method
# File lib/formalism/model_forms/_base.rb, line 54
def remove_field(name)
        super

        self.primary_field_name = nil if name == primary_field_name
end