This class implements a group data structure for Ruport. Group is simply a subclass of Table that adds a :name attribute.
Creates a new Group based on the supplied options.
Valid options:
:name |
The name of the Group |
:data |
|
:column_names |
Example:
group = Group.new :name => 'My Group', :data => [[1,2,3], [3,4,5]], :column_names => %w[a b c]
# File lib/ruport/data/grouping.rb, line 41 def initialize(options={}) @name = options.delete(:name) @subgroups = {} super end
Creates subgroups for the group based on the supplied column name. Each subgroup is a hash whose keys are the unique values in the column.
Example:
main_group = Group.new :name => 'test', :data => [[1,2,3,4,5], [3,4,5,6,7]], :column_names => %w[a b c d e] main_group.create_subgroups("a")
# File lib/ruport/data/grouping.rb, line 92 def create_subgroups(group_column) if @subgroups.empty? @subgroups = grouped_data(group_column) else @subgroups.each {|name,group| group.create_subgroups(group_column) } end end
Compares this Group to another Group and returns true if the name, data, and column_names are equal.
Example:
one = Group.new :name => 'test', :data => [[1,2], [3,4]], :column_names => %w[a b] two = Group.new :name => 'test', :data => [[1,2], [3,4]], :column_names => %w[a b] one.eql?(two) #=> true
# File lib/ruport/data/grouping.rb, line 76 def eql?(other) name.eql?(other.name) && super end
Generated with the Darkfish Rdoc Generator 2.