Parent

Slim::Splat::Builder

@api private

Public Class Methods

new(options) click to toggle source
# File lib/slim/splat/builder.rb, line 5
def initialize(options)
  @options = options
  @attrs = {}
end

Public Instance Methods

attr(name, value) click to toggle source
# File lib/slim/splat/builder.rb, line 27
def attr(name, value)
  if @attrs[name]
    if delim = @options[:merge_attrs][name]
      @attrs[name] << delim << value.to_s
    else
      raise("Multiple #{name} attributes specified")
    end
  else
    @attrs[name] = value
  end
end
build_attrs() click to toggle source
# File lib/slim/splat/builder.rb, line 49
def build_attrs
  attrs = @options[:sort_attrs] ? @attrs.sort_by(&:first) : @attrs
  attrs.map do |k, v|
    if v == true
      if @options[:format] == :xhtml
        " #{k}=#{@options[:attr_quote]}#{@options[:attr_quote]}"
      else
        " #{k}"
      end
    else
      " #{k}=#{@options[:attr_quote]}#{v}#{@options[:attr_quote]}"
    end
  end.join
end
build_tag() click to toggle source
# File lib/slim/splat/builder.rb, line 39
def build_tag
  tag = @attrs.delete('tag').to_s
  tag = @options[:default_tag] if tag.empty?
  if block_given?
    "<#{tag}#{build_attrs}>#{yield}</#{tag}>"
  else
    "<#{tag}#{build_attrs} />"
  end
end
code_attr(name, escape, value) click to toggle source
# File lib/slim/splat/builder.rb, line 10
def code_attr(name, escape, value)
  if delim = @options[:merge_attrs][name]
    value = Array === value ? value.join(delim) : value.to_s
    attr(name, escape ? Temple::Utils.escape_html(value) : value) unless value.empty?
  elsif @options[:hyphen_attrs].include?(name) && Hash === value
    hyphen_attr(name, escape, value)
  elsif value != false && value != nil
    attr(name, value != true && escape ? Temple::Utils.escape_html(value) : value)
  end
end
splat_attrs(splat) click to toggle source
# File lib/slim/splat/builder.rb, line 21
def splat_attrs(splat)
  splat.each do |name, value|
    code_attr(name.to_s, true, value)
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.