module Webby::Helpers::TagHelper

Provides methods to generate HTML tags programmatically. By default, they output XHTML compliant tags.

Constants

BOOLEAN_ATTRIBUTES

Public Instance Methods

escape_once( html ) click to toggle source

Returns an escaped version of html without affecting existing escaped entities.

Examples

escape_once("1 > 2 & 3")
# => "1 < 2 & 3"

escape_once("<< Accept & Checkout")
# => "<< Accept & Checkout"
# File lib/webby/helpers/tag_helper.rb, line 36
def escape_once( html )
  html.to_s.gsub(/[\"><]|&(?!([a-zA-Z]+|(#\d+));)/) { |special| ERB::Util::HTML_ESCAPE[special] }
end

Private Instance Methods

tag_options( options, escape = true ) click to toggle source
# File lib/webby/helpers/tag_helper.rb, line 42
def tag_options( options, escape = true )
  unless options.empty?
    attrs = []
    if escape
      options.each do |key, value|
        next if value.nil?
        key = key.to_s
        value = BOOLEAN_ATTRIBUTES.include?(key) ? key : escape_once(value)
        attrs << %Q(#{key}="#{value}")
      end
    else
      attrs = options.map {|key, value| %Q(#{key}="#{value}")}
    end
    %Q( #{attrs.sort * ' '}) unless attrs.empty?
  end
end