class ActionView::Helpers::TagHelper::TagBuilder

:nodoc:

def boolean_tag_option(key)

def boolean_tag_option(key)
  %(#{key}="#{key}")
end

def content_tag_string(name, content, options, escape = true)

def content_tag_string(name, content, options, escape = true)
  tag_options = tag_options(options, escape) if options
  content     = ERB::Util.unwrapped_html_escape(content) if escape
  "<#{name}#{tag_options}>#{PRE_CONTENT_STRINGS[name]}#{content}</#{name}>".html_safe
end

def initialize(view_context)

def initialize(view_context)
  @view_context = view_context
end

def method_missing(called, *args, **options, &block)

def method_missing(called, *args, **options, &block)
  tag_string(called, *args, **options, &block)
end

def prefix_tag_option(prefix, key, value, escape)

def prefix_tag_option(prefix, key, value, escape)
  key = "#{prefix}-#{key.to_s.dasherize}"
  unless value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(BigDecimal)
    value = value.to_json
  end
  tag_option(key, value, escape)
end

def respond_to_missing?(*args)

def respond_to_missing?(*args)
  true
end

def tag_option(key, value, escape)

def tag_option(key, value, escape)
  if value.is_a?(Array)
    value = escape ? safe_join(value, " ") : value.join(" ")
  else
    value = escape ? ERB::Util.unwrapped_html_escape(value).dup : value.to_s.dup
  end
  value.gsub!('"', "&quot;")
  %(#{key}="#{value}")
end

def tag_options(options, escape = true)

def tag_options(options, escape = true)
  return if options.blank?
  output = +""
  sep    = " "
  options.each_pair do |key, value|
    if TAG_PREFIXES.include?(key) && value.is_a?(Hash)
      value.each_pair do |k, v|
        next if v.nil?
        output << sep
        output << prefix_tag_option(key, k, v, escape)
      end
    elsif BOOLEAN_ATTRIBUTES.include?(key)
      if value
        output << sep
        output << boolean_tag_option(key)
      end
    elsif !value.nil?
      output << sep
      output << tag_option(key, value, escape)
    end
  end
  output unless output.empty?
end

def tag_string(name, content = nil, escape_attributes: true, **options, &block)

def tag_string(name, content = nil, escape_attributes: true, **options, &block)
  content = @view_context.capture(self, &block) if block_given?
  if VOID_ELEMENTS.include?(name) && content.nil?
    "<#{name.to_s.dasherize}#{tag_options(options, escape_attributes)}>".html_safe
  else
    content_tag_string(name.to_s.dasherize, content || "", options, escape_attributes)
  end
end