Class: HTML::Table::ColGroup

Inherits:
Array
  • Object
show all
Includes:
Mixin::AttributeHandler, Mixin::HtmlHandler
Defined in:
lib/html/colgroup.rb

Overview

This class represents an HTML column group (<colgroup>). It is a subclass of Array. The only elements it may contain are instances of the ColGroup::Col class.

Defined Under Namespace

Classes: Col

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Mixin::HtmlHandler

#html

Methods included from Mixin::AttributeHandler

#abbr, #abbr=, #align, #align=, #axis, #axis=, #background, #background=, #bgcolor, #bgcolor=, #border, #border=, #bordercolor, #bordercolor=, #bordercolordark, #bordercolordark=, #bordercolorlight, #bordercolorlight=, #cellpadding, #cellpadding=, #cellspacing, #cellspacing=, #char, #char=, #charoff, #charoff=, #class_, #class_=, #col, #col=, #colspan, #colspan=, #configure, #content, #frame, #frame=, #height, #height=, #hspace, #hspace=, #nowrap, #nowrap=, #rowspan, #rowspan=, #rules, #rules=, #span, #span=, #style, #style=, #summary, #summary=, #valign, #valign=, #vspace, #vspace=, #width, #width=

Constructor Details

#initialize(arg = nil, &block) ⇒ ColGroup

Returns a new ColGroup object. Optionally takes a block. If an argument is provided, it is treated as content.



18
19
20
21
22
23
24
# File 'lib/html/colgroup.rb', line 18

def initialize(arg = nil, &block)
   @html_begin = '<colgroup'
   @html_body  = ''
   @html_end   = '</colgroup>'
   instance_eval(&block) if block_given?
   self.push(arg) if arg
end

Class Method Details

.end_tags=(bool) ⇒ Object

Sets whether or not end tags are included for each ColGroup object in the final HTML output. The default is true. Only true or false are valid arguments.



105
106
107
108
# File 'lib/html/colgroup.rb', line 105

def self.end_tags=(bool)
   expect(bool,[TrueClass,FalseClass])
   @end_tags = bool
end

.end_tags?Boolean

Returns a boolean indicating whether or not end tags are included for each ColGroup object in the final HTML output. The default is true.

Returns:

  • (Boolean)


97
98
99
# File 'lib/html/colgroup.rb', line 97

def self.end_tags?
   @end_tags
end

.indent_levelObject

Returns the indentation level for the tags of this class. The default is 3.



29
30
31
# File 'lib/html/colgroup.rb', line 29

def self.indent_level
   @indent_level
end

.indent_level=(num) ⇒ Object

Sets the indentation level for the tags of this class. The default is 3.

Raises:

  • (ArgumentError)


36
37
38
39
40
# File 'lib/html/colgroup.rb', line 36

def self.indent_level=(num)
   expect(num,Integer)
   raise ArgumentError,"indent_level must be >= 0" if num < 0
   @indent_level = num
end

Instance Method Details

#<<(obj) ⇒ Object

This method has been redefined to only allow ColGroup::Col objects to be pushed onto a ColGroup instance.



74
75
76
77
78
79
80
81
# File 'lib/html/colgroup.rb', line 74

def <<(obj)
   unless obj.kind_of?(Table::ColGroup::Col)
      msg = "Can only assign Col objects to ColGroup class"
      msg += ": " + obj.class.to_s
      raise TypeError, msg
   end
   super(obj)
end

#[]=(index, obj) ⇒ Object

This method has been redefined to only allow ColGroup::Col objects to be assigned.



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/html/colgroup.rb', line 45

def []=(index,obj)
   if obj.kind_of?(Array)
      expect(obj.first,Col) # In case of 0 length Array
      obj.each{ |o|
          expect(o,Col)
      }
   else
      expect(obj,Col)
   end
   super
end

#push(*args) ⇒ Object

This method has been redefined to only allow ColGroup::Col objects to be pushed onto a ColGroup instance.



60
61
62
63
64
65
66
67
68
69
# File 'lib/html/colgroup.rb', line 60

def push(*args)
   args.each do |obj|
      unless obj.kind_of?(Table::ColGroup::Col)
         msg = "Can only assign Col objects to ColGroup class"
         msg += ": " + obj.class.to_s
         raise TypeError, msg
      end
      super(obj)
   end
end

#unshift(obj) ⇒ Object

This method has been redefined to only allow ColGroup::Col objects to be unshifted onto a ColGroup instance.



86
87
88
89
90
91
92
# File 'lib/html/colgroup.rb', line 86

def unshift(obj)
   unless obj.kind_of?(Table::ColGroup::Col)
      msg = "Can only assign Data and Header objects to Row class"
      raise TypeError, msg
   end
   super
end