Module: Ruport

Defined in:
lib/ruport.rb,
lib/ruport/version.rb,
lib/ruport/formatter.rb,
lib/ruport/data/table.rb,
lib/ruport/formatter/csv.rb,
lib/ruport/formatter/html.rb,
lib/ruport/formatter/text.rb,
lib/ruport/controller/table.rb,
lib/ruport/formatter/markdown.rb,
lib/ruport/controller/grouping.rb,
lib/ruport/formatter/prawn_pdf.rb

Overview

Ruport : Extensible Reporting System

controller/grouping.rb : Group data controller for Ruby Reports

Written by Michael Milner, 2007. Copyright © 2007, All Rights Reserved

This is free software distributed under the same terms as Ruby 1.8 See LICENSE and COPYING for details.

Defined Under Namespace

Modules: Data, SystemExtensions Classes: Controller, Formatter, FormatterError

Constant Summary collapse

VERSION =
"1.8.0"

Class Method Summary collapse

Class Method Details

.quietObject

quiets warnings for block



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

def quiet #:nodoc:
  warns = $VERBOSE
  $VERBOSE = nil
  result = yield
  $VERBOSE = warns
  return result
end

.Table(*args, &block) ⇒ Object

Shortcut interface for creating Data::Tables

Examples:

t = Table(%w[a b c])   #=> creates a new empty table w. cols a,b,c
t = Table("a","b","c") #=> creates a new empty table w. cols a,b,c

# allows building table inside of block, returns table object
t = Table(%w[a b c]) { |t| t << [1,2,3] }

# allows loading table from CSV
# accepts all Data::Table.load options, including block (yields table,row)

t = Table("foo.csv")
t = Table("bar.csv", :has_names => false)


1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
# File 'lib/ruport/data/table.rb', line 1043

def self.Table(*args,&block)
  case(args[0])
  when Array
    opts = args[1] || {}
    Ruport::Data::Table.new(f={:column_names => args[0]}.merge(opts),&block)
  when /\.csv/
    Ruport::Data::Table.load(*args,&block)
  when Hash
    if file = args[0].delete(:file)
      Ruport::Data::Table.load(file,args[0],&block)
    elsif string = args[0].delete(:string)
      Ruport::Data::Table.parse(string,args[0],&block)
    else
      Ruport::Data::Table.new(args[0],&block)
    end
  else
     Ruport::Data::Table.new(:data => [], :column_names => args,&block)
  end
end