Module: CGI::TagMaker

Defined in:
lib/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.

- -


1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
# File 'lib/cgi.rb', line 1238

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

#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


1272
1273
1274
1275
1276
1277
1278
1279
1280
# File 'lib/cgi.rb', line 1272

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

#nOE_element_def(element, append = nil) ⇒ Object

Generate code for an empty element.

- O EMPTY


1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
# File 'lib/cgi.rb', line 1252

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