Sha256: 5b59d36d0a1add53aa391bea916133bd314e26efe0268e699cb8f84bec52f063

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

module Jobshop
  class Builder < ActionView::Helpers::FormBuilder # :nodoc:
    [ :email_field, :password_field, :text_field ].each do |field_method|
      define_method field_method do |field, options = {}|
        wrapper_classes = [
          "mdl-textfield",
          "mdl-js-textfield",
          ("is-invalid" if errors_on?(field))
        ].compact
        output  = ""
        output += @template.content_tag(:div, class: wrapper_classes) do
          content  = ""
          content += super(field, class: "mdl-textfield__input")
          content += label(field, class: "mdl-textfield__label")
          if errors_on?(field)
            content += @template.content_tag(:span, class: "mdl-textfield__error") do
              @object.errors[field].first
            end
          end
          content.html_safe
        end
        output.html_safe
      end
    end

    def check_box(field, *args)
      output = ""
      output += label(field, class: [ "mdl-checkbox", "mdl-js-checkbox", "mdl-js-ripple-effect" ]) do
        content  = ""
        content += super(field, class: [ "mdl-checkbox__input" ])
        content += @template.content_tag(:span, field.to_s.humanize, class: [ "mdl-checkbox__label" ])
        content.html_safe
      end
      output.html_safe
    end

    def button(value = nil, *args)
      button_classes = [ "mdl-button", "mdl-js-button", "mdl-button--raised",
        "mdl-button--colored", "mdl-js-ripple-effect" ]

      super(value, class: button_classes)
    end

    def errors_on?(attribute)
      @object.errors[attribute].present?
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jobshop-0.0.29 app/builders/jobshop/builder.rb
jobshop-0.0.23 app/builders/jobshop/builder.rb