Sha256: 93af9e5d2c68b927a5bb15b6a15efe8013a10da356715200576b6461bf0d2873

Contents?: true

Size: 1.07 KB

Versions: 5

Compression:

Stored size: 1.07 KB

Contents

module ExpressTemplates
  module Components
    module Forms
      class ExpressForm < Configurable
        include ExpressTemplates::Components::Capabilities::Resourceful

        emits -> (block) {
          form(form_tag_options ) {
            form_rails_support form_method
            block.call(self) if block
          }
        }

        def form_id
          "#{resource_name}_#{resource.id}"
        end

        def form_method
          config[:method].to_s.upcase || 'POST'
        end

        def form_action
          config[:action] || (resource.try(:persisted?) ? resource_path(ivar: true) : collection_path)
        end

        def form_tag_options
          args = {id: form_id, action: form_action}.merge!(config).merge!(method: 'POST')

          if html_options = args.delete(:html_options)
            args.merge!(html_options)
          end
          args
        end

        def resource_name_for_path
          config[:id].to_s
        end

        def resource_name
          (config[:resource_name] || config[:id]).to_s
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
express_admin-1.3.2 vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb
express_admin-1.3.1 vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb
express_templates-0.7.1 lib/express_templates/components/forms/express_form.rb
express_templates-0.7.0 lib/express_templates/components/forms/express_form.rb
express_admin-1.3.0 vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb