class Tagz::Namespace::Element

Attributes

name[R]

Public Class Methods

attributes(options) click to toggle source
# File lib/tagz.rb, line 305
def Element.attributes(options)
  unless options.empty?
    ' ' << 
      options.map do |key, value|
        key = Tagz.escape_key(key)
        value = Tagz.escape_value(value)
        if value =~ %r/"/
          raise ArgumentError, value if value =~ %r/'/
          value = "'#{ value }'"
        else
          raise ArgumentError, value if value =~ %r/"/
          value = "\"#{ value }\""
        end
        [key, value].join('=')
      end.join(' ')
  else
    ''
  end
end
new(name, *argv, &block) click to toggle source
# File lib/tagz.rb, line 327
def initialize(name, *argv, &block)
  options = {}
  content = []

  argv.each do |arg|
    case arg
      when Hash
        options.update arg
      else
        content.push arg
    end
  end

  content.push block.call if block
  content.compact!

  @name = name.to_s

  if content.empty?
    replace "<#{ @name }#{ Element.attributes options }>"
  else
    replace "<#{ @name }#{ Element.attributes options }>#{ content.join }</#{ name }>"
  end
end