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