module Bemer::SimpleForm::Builder
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/bemer/simple_form/builder.rb, line 8 def initialize(*) super extract_block_options!(options) end
Public Instance Methods
Protected Instance Methods
block_entity()
click to toggle source
# File lib/bemer/simple_form/builder.rb, line 29 def block_entity @defaults.dig(:block_entity) end
extract_bem_cascade!(options)
click to toggle source
# File lib/bemer/simple_form/builder.rb, line 64 def extract_bem_cascade!(options) bem_cascade = options.delete(:bem_cascade) return bem_cascade if block_entity.nil? bem_cascade.nil? ? block_entity.instance_variable_get(:@bem_cascade) : bem_cascade end
extract_bem_options!(options)
click to toggle source
# File lib/bemer/simple_form/builder.rb, line 47 def extract_bem_options!(options) bem = options.delete(:bem) bem_cascade = extract_bem_cascade!(options) css_classes = [options.delete(:cls), options.delete(:class), options[:html]&.delete(:class)] js = options.delete(:js) mix = options.delete(:mix) mods = options.delete(:mods) { bem: bem, js: js, mods: mods, mix: mix, bem_cascade: bem_cascade, cls: css_classes } end
extract_block_options!(options)
click to toggle source
# File lib/bemer/simple_form/builder.rb, line 33 def extract_block_options!(options) @defaults ||= {} options ||= {} options[:html] ||= {} block = extract_name_for!(:block, object_name, options) options.delete(:elem) @defaults[:block_entity] = Bemer::EntityBuilder.new(block, extract_bem_options!(options)) options[:html].merge!(block_entity.attrs) end
extract_name_for!(key, default_name, options)
click to toggle source
# File lib/bemer/simple_form/builder.rb, line 58 def extract_name_for!(key, default_name, options) name = options.delete(key) name.nil? ? default_name.to_sym : name end