Sha256: a6a7ae7edc9eab80787825b643b6657e54e9f9544043b5506ce5e97a5a37a8ba

Contents?: true

Size: 1.07 KB

Versions: 9

Compression:

Stored size: 1.07 KB

Contents

module BulmaFormBuilder
  module FormField
    extend ActiveSupport::Concern

    def form_field(*args, &block)
      name = args.first
      options = args.extract_options!

      content_tag(:div, class: form_field_classes(options)) do
        concat field_label(name, options) unless options[:hide_label]
        concat field_control(&block)
        concat field_help(name, options)
      end
    end

    private

    def field_control(&block)
      content_tag(:div, class: 'control', &block)
    end

    def field_help(name, options)
      if error?(name)
        content_tag(:p, error_messages_for(name), class: 'help is-danger')
      elsif options[:help].present?
        content_tag(:p, options[:help], class: 'help')
      end
    end

    def field_label(name, options)
      classes = %w[label]
      classes << 'required' if options[:required]
      label(name, options[:label], class: classes)
    end

    def form_field_classes(options)
      classes = %w[field]
      classes << options.delete(:wrapper_class) if options[:wrapper_class].present?
      classes
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
bulma_form_builder-0.4.3 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.4.2 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.4.1 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.4.0 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.3.1 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.3.0 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.2.1 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.2.0 lib/bulma_form_builder/form_field.rb
bulma_form_builder-0.1.1 lib/bulma_form_builder/form_field.rb