1 2 3 4 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 37 38 39 40 41 42 43 44 45 46
|
#!/usr/bin/env ruby -w
# encoding: UTF-8
#
# = HTMLElements.rb -- The TaskJuggler III Project Management Software
#
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
# by Chris Schlaeger <cs@taskjuggler.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
require 'taskjuggler/XMLElement'
class TaskJuggler
module HTMLElements
# A list of supported HTML tags.
htmlTags = %w( a b body br code col colgroup div em frame frameset footer
h1 h2 h3 head html hr meta p pre span table td title tr )
# A list of HTML tags that are self-closing.
closureTags = %w( area base basefont br hr input img link meta )
# For every HTML tag, we generate a class with the equivalent uppercase
# name. This class is derived off of XMLElement. This makes creating HTML
# code a lot simpler. Instead of
# XMLElement.new('h1')
# we now can write
# H1.new
htmlTags.each do |tag|
class_eval <<"EOT"
class #{tag.upcase} < XMLElement
def initialize(attrs = {}, &block)
super("#{tag}", attrs, #{closureTags.include?(tag)})
end
end
EOT
end
end
end
|