Module: ActionView::Helpers::FormTagHelper

Defined in:
lib/label_builder/core.rb

Instance Method Summary collapse

Instance Method Details

#label_tag_with_modifiers(name = nil, content_or_options = nil, options = nil, &block) ⇒ Object

Add option to label_tag to suffix/prefix a string to the content



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/label_builder/core.rb', line 5

def label_tag_with_modifiers(name = nil, content_or_options = nil, options = nil, &block)
  # text to suffix
  if content_or_options && content_or_options.is_a?(Hash)
    suffix = content_or_options.delete("suffix") if content_or_options.keys.include?("suffix")
    suffix = content_or_options.delete(:suffix) if content_or_options.keys.include?(:suffix)
  elsif options && options.is_a?(Hash)
    suffix = options.delete("suffix") if options.keys.include?("suffix")
    suffix = options.delete(:suffix) if options.keys.include?(:suffix)
  end
  suffix ||= LabelBuilder.suffix

  # text to prefix
  if content_or_options && content_or_options.is_a?(Hash)
    prefix = content_or_options.delete("prefix") if content_or_options.keys.include?("prefix")
    prefix = content_or_options.delete(:prefix) if content_or_options.keys.include?(:prefix)
  elsif options && options.is_a?(Hash)
    prefix = options.delete("prefix") if options.keys.include?("prefix")
    prefix = options.delete(:prefix) if options.keys.include?(:prefix)
  end
  prefix ||= LabelBuilder.prefix

  html = label_tag_without_modifiers(
    name, 
    content_or_options, 
    options, 
    &block
  )
  html.gsub(
    /(<label for=".*">)(.*)(<\/label>)/, 
    '\1'+prefix+'\2'+suffix+'\3'
  )
end