module Formwandler::FormLoader

Public Instance Methods

load_form(opts = {}) click to toggle source
# File lib/formwandler/form_loader.rb, line 8
def load_form(opts = {})
  before_action(opts.except(:models)) do
    if opts.fetch(:models, true)
      models = {inferred_resource_name.to_sym => instance_variable_get("@#{inferred_resource_name}")}.compact
    end
    form_instance = form_class.new(models: models || {}, controller: self)
    instance_variable_set("@#{form_instance_name}", form_instance)
  end
end

Private Instance Methods

form_class() click to toggle source
# File lib/formwandler/form_loader.rb, line 25
def form_class
  form_class_name.constantize
end
form_class_name() click to toggle source
# File lib/formwandler/form_loader.rb, line 21
def form_class_name
  "#{namespace}::#{inferred_resource_name.camelize}Form"
end
form_instance_name() click to toggle source
# File lib/formwandler/form_loader.rb, line 29
def form_instance_name
  "#{inferred_resource_name}_form"
end
inferred_resource_name() click to toggle source
# File lib/formwandler/form_loader.rb, line 37
def inferred_resource_name
  controller_name.singularize
end
namespace() click to toggle source
# File lib/formwandler/form_loader.rb, line 33
def namespace
  self.class.name.split('::')[0..-2].join('::')
end