Sha256: c2dadaea9a948e3bbddc3f44355c8bbadb24e6e300979bc58ac6286ea3c6657f
Contents?: true
Size: 1.21 KB
Versions: 8
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require "primer/classify" module Primer module Forms # :nodoc: class Builder < ActionView::Helpers::FormBuilder include Primer::ClassNameHelper UTILITY_KEYS = Primer::Classify::Utilities::UTILITIES.keys.freeze def label(*args, **options, &block) super(*args, classify(options), &block) end def check_box(*args, **options, &block) super(*args, classify(options), &block) end def radio_button(*args, **options, &block) super(*args, classify(options), &block) end def select(*args, **options, &block) super(*args, classify(options), &block) end def text_field(*args, **options, &block) super(*args, classify(options), &block) end def text_area(*args, **options, &block) super(*args, classify(options), &block) end private def classify(options) options[:classes] = class_names(options.delete(:class), options[:classes]) options.merge!(Primer::Classify.call(options)) options.except!(*UTILITY_KEYS) options[:class] = class_names(options[:class], options.delete(:classes)) options end end end end
Version data entries
8 entries across 8 versions & 1 rubygems