Module: CGI::TagMaker

Extended by:
TagMaker
Included in:
TagMaker
Defined in:
lib/rubysl/cgi/cgi.rb

Overview

Base module for HTML-generation mixins.

Provides methods for code generation for tags following the various DTD element types.

Instance Method Summary collapse

Instance Method Details

#nn_element_def(element) ⇒ Object

Generate code for an element with required start and end tags.

- -


1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
# File 'lib/rubysl/cgi/cgi.rb', line 1252

def nn_element_def(element)
  nOE_element_def(element, "      if block_given?\n        yield.to_s\n      else\n        \"\"\n      end +\n      \"</\#{element.upcase}>\"\n  END\nend\n")

#nO_element_def(element) ⇒ Object

Generate code for an element for which the end (and possibly the start) tag is optional.

O O or - O


1286
1287
1288
1289
1290
1291
1292
1293
1294
# File 'lib/rubysl/cgi/cgi.rb', line 1286

def nO_element_def(element)
  nOE_element_def(element, "      if block_given?\n        yield.to_s + \"</\#{element.upcase}>\"\n      else\n        \"\"\n      end\n  END\nend\n")

#nOE_element_def(element, append = nil) ⇒ Object

Generate code for an empty element.

- O EMPTY


1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
# File 'lib/rubysl/cgi/cgi.rb', line 1266

def nOE_element_def(element, append = nil)
  s = "      \"<\#{element.upcase}\" + attributes.collect{|name, value|\n        next unless value\n        \" \" + CGI::escapeHTML(name) +\n        if true == value\n          \"\"\n        else\n          '=\"' + CGI::escapeHTML(value) + '\"'\n        end\n      }.to_s + \">\"\n  END\n  s.sub!(/\\Z/, \" +\") << append if append\n  s\nend\n"