ruport 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/examples/btree/commaleon/commaleon.rb +1 -2
- data/lib/ruport/acts_as_reportable.rb +1 -1
- data/lib/ruport/data/grouping.rb +1 -0
- data/lib/ruport/formatter/pdf.rb +7 -3
- data/lib/ruport/query/sql_split.rb +16 -16
- data/lib/ruport/renderer.rb +2 -2
- data/lib/ruport.rb +3 -6
- data/test/acts_as_reportable_test.rb +1 -5
- data/test/csv_formatter_test.rb +1 -8
- data/test/grouping_test.rb +1 -3
- data/test/helpers.rb +8 -0
- data/test/html_formatter_test.rb +1 -2
- data/test/pdf_formatter_test.rb +1 -10
- data/test/query_test.rb +1 -2
- data/test/record_test.rb +92 -80
- data/test/renderer_test.rb +59 -2
- data/test/sql_split_test.rb +1 -2
- data/test/table_test.rb +1 -4
- data/test/text_formatter_test.rb +1 -2
- data/util/bench/data/table/bench_manip.rb +2 -2
- metadata +69 -68
data/Rakefile
CHANGED
data/lib/ruport/data/grouping.rb
CHANGED
data/lib/ruport/formatter/pdf.rb
CHANGED
@@ -90,7 +90,7 @@ module Ruport
|
|
90
90
|
:paper_orientation
|
91
91
|
|
92
92
|
def initialize
|
93
|
-
quiet do
|
93
|
+
Ruport.quiet do
|
94
94
|
require "pdf/writer"
|
95
95
|
require "pdf/simpletable"
|
96
96
|
end
|
@@ -418,7 +418,10 @@ module Ruport
|
|
418
418
|
data.each do |name,group|
|
419
419
|
group_column = { data.grouped_by => "<b>#{name}</b>\n" }
|
420
420
|
group.each_with_index do |rec,i|
|
421
|
-
|
421
|
+
# FIXME - Find the source of the bug requiring to_a
|
422
|
+
i == 0 ?
|
423
|
+
table << group_column.merge(rec.to_hash) :
|
424
|
+
table << rec.to_a.unshift(nil)
|
422
425
|
end
|
423
426
|
table << Array.new(grouping_columns.length,' ') if style == :separated
|
424
427
|
end
|
@@ -429,7 +432,8 @@ module Ruport
|
|
429
432
|
table = table_with_grouped_by_column
|
430
433
|
data.each do |name,group|
|
431
434
|
table << ["<b>#{name}</b>\n",nil,nil]
|
432
|
-
|
435
|
+
# FIXME - Find the source of the bug requiring to_a
|
436
|
+
group.each {|r| table << r.to_a.unshift(nil) }
|
433
437
|
end
|
434
438
|
render_table table, options.to_hash.merge(:formatter => pdf_writer)
|
435
439
|
end
|
@@ -13,21 +13,21 @@ module Ruport
|
|
13
13
|
# This class properly splits up multi-statement SQL input for use with
|
14
14
|
# Ruby/DBI
|
15
15
|
class SqlSplit < Array #:nodoc:
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
16
|
+
def initialize( sql )
|
17
|
+
super()
|
18
|
+
next_sql = ''
|
19
|
+
sql.each do |line|
|
20
|
+
unless line =~ /^--/ or line =~ %r{^/\*.*\*/;} or line =~ /^\s*$/
|
21
|
+
next_sql << line
|
22
|
+
if line =~ /;$/
|
23
|
+
next_sql.gsub!( /;\s$/, '' )
|
24
|
+
self << next_sql
|
25
|
+
next_sql = ''
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
self << next_sql if next_sql != ''
|
30
|
+
end
|
31
|
+
end
|
32
32
|
end
|
33
33
|
end
|
data/lib/ruport/renderer.rb
CHANGED
@@ -168,8 +168,8 @@ class Ruport::Renderer
|
|
168
168
|
end
|
169
169
|
self.class.renderer.render(format,
|
170
170
|
self.class.rendering_options.merge(options)) do |rend|
|
171
|
-
|
172
|
-
|
171
|
+
rend.data = respond_to?(:renderable_data) ? renderable_data : self
|
172
|
+
yield(rend) if block_given?
|
173
173
|
end
|
174
174
|
end
|
175
175
|
end
|
data/lib/ruport.rb
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
module Ruport #:nodoc:#
|
14
14
|
|
15
|
-
VERSION = "1.0.
|
15
|
+
VERSION = "1.0.1"
|
16
16
|
|
17
17
|
class FormatterError < RuntimeError #:nodoc:
|
18
18
|
end
|
@@ -82,11 +82,6 @@ module Ruport #:nodoc:#
|
|
82
82
|
|
83
83
|
end
|
84
84
|
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
module Kernel
|
89
|
-
|
90
85
|
# quiets warnings for block
|
91
86
|
def quiet #:nodoc:
|
92
87
|
warnings = $VERBOSE
|
@@ -96,6 +91,8 @@ module Kernel
|
|
96
91
|
return result
|
97
92
|
end
|
98
93
|
|
94
|
+
module_function :quiet
|
95
|
+
|
99
96
|
end
|
100
97
|
|
101
98
|
require "enumerator"
|
data/test/csv_formatter_test.rb
CHANGED
data/test/grouping_test.rb
CHANGED
data/test/helpers.rb
ADDED
data/test/html_formatter_test.rb
CHANGED
data/test/pdf_formatter_test.rb
CHANGED
data/test/query_test.rb
CHANGED
data/test/record_test.rb
CHANGED
@@ -1,63 +1,72 @@
|
|
1
|
-
require "test/
|
2
|
-
require "ruport"
|
3
|
-
|
4
|
-
module RecordTestSetup
|
5
|
-
def setup
|
6
|
-
@attributes = %w[a b c d]
|
7
|
-
@record = Ruport::Data::Record.new [1,2,3,4], :attributes => @attributes
|
8
|
-
end
|
9
|
-
end
|
1
|
+
require "test/helpers"
|
10
2
|
|
11
3
|
class TestRecord < Test::Unit::TestCase
|
12
4
|
|
13
5
|
include Ruport::Data
|
14
|
-
include RecordTestSetup
|
15
|
-
|
16
|
-
def test_init
|
17
|
-
record = Ruport::Data::Record.new [1,2,3,4]
|
18
|
-
assert_equal 1, record[0]
|
19
|
-
assert_equal 2, record[1]
|
20
|
-
assert_equal 3, record[2]
|
21
|
-
assert_equal 4, record[3]
|
22
|
-
|
23
|
-
assert_equal 1, @record["a"]
|
24
|
-
assert_equal 4, @record["d"]
|
25
|
-
assert_equal 2, @record.b
|
26
|
-
assert_equal 3, @record.c
|
27
|
-
assert_raise(NoMethodError) { @record.f }
|
28
|
-
end
|
29
6
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
assert_equal 3, record[:c]
|
35
|
-
assert_equal 3, record.c
|
36
|
-
end
|
7
|
+
def setup
|
8
|
+
@attributes = %w[a b c d]
|
9
|
+
@record = Ruport::Data::Record.new [1,2,3,4], :attributes => @attributes
|
10
|
+
end
|
37
11
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
12
|
+
context "when initializing with an array with attributes" do
|
13
|
+
def specify_key_access_should_work
|
14
|
+
assert_equal 1, @record["a"]
|
15
|
+
assert_equal 4, @record["d"]
|
16
|
+
assert_equal 2, @record.b
|
17
|
+
assert_equal 3, @record.c
|
18
|
+
assert_raise(NoMethodError) { @record.f }
|
19
|
+
end
|
44
20
|
|
45
|
-
|
46
|
-
|
47
|
-
|
21
|
+
def specify_ordinal_access_should_work
|
22
|
+
assert_equal 1, @record[0]
|
23
|
+
assert_equal 2, @record[1]
|
24
|
+
assert_equal 3, @record[2]
|
25
|
+
assert_equal 4, @record[3]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "when initializing with an array without attributes" do
|
30
|
+
def specify_ordinal_access_should_work
|
31
|
+
record = Ruport::Data::Record.new [1,2,3,4]
|
32
|
+
assert_equal 1, record[0]
|
33
|
+
assert_equal 2, record[1]
|
34
|
+
assert_equal 3, record[2]
|
35
|
+
assert_equal 4, record[3]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "when initializing with a hash without attributes" do
|
40
|
+
def setup
|
41
|
+
@record = Ruport::Data::Record.new({:a => 1, :b => 2, :c => 3},{})
|
42
|
+
end
|
43
|
+
|
44
|
+
def specify_key_access_should_work
|
45
|
+
assert_equal 1, @record[:a]
|
46
|
+
assert_equal 2, @record[:b]
|
47
|
+
assert_equal 3, @record[:c]
|
48
|
+
assert_equal 3, @record.c
|
49
|
+
end
|
48
50
|
end
|
49
51
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
52
|
+
context "when initializing with a hash with attributes" do
|
53
|
+
def setup
|
54
|
+
@record = Record.new({:a => 1, :b => 2, :c => 3 },
|
55
|
+
:attributes => [:c,:b,:a])
|
56
|
+
end
|
57
|
+
|
58
|
+
def specify_key_access_should_work
|
59
|
+
assert_equal 1, @record[:a]
|
60
|
+
assert_equal 2, @record[:b]
|
61
|
+
assert_equal 3, @record[:c]
|
62
|
+
assert_equal 3, @record.c
|
63
|
+
end
|
64
|
+
|
65
|
+
def specify_ordinal_access_should_work
|
66
|
+
assert_equal 3, @record[0]
|
67
|
+
assert_equal 2, @record[1]
|
68
|
+
assert_equal 1, @record[2]
|
69
|
+
end
|
61
70
|
end
|
62
71
|
|
63
72
|
def test_bracket_equals
|
@@ -275,40 +284,43 @@ class TestRecord < Test::Unit::TestCase
|
|
275
284
|
assert_equal "1,2,3\n", a.to_csv
|
276
285
|
end
|
277
286
|
|
278
|
-
|
287
|
+
context "when rendering records" do
|
279
288
|
|
289
|
+
def specify_record_as_should_work
|
290
|
+
rendered_row = @record.as(:text)
|
291
|
+
assert_equal("| 1 | 2 | 3 | 4 |\n", rendered_row)
|
292
|
+
end
|
280
293
|
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
def test_to_hack
|
292
|
-
rendered_row = @record.to_text
|
293
|
-
assert_equal("| 1 | 2 | 3 | 4 |\n", rendered_row)
|
294
|
+
def specify_record_to_format_should_work_without_options
|
295
|
+
rendered_row = @record.to_text
|
296
|
+
assert_equal("| 1 | 2 | 3 | 4 |\n", rendered_row)
|
297
|
+
end
|
298
|
+
|
299
|
+
def specify_record_to_format_should_work_with_options
|
300
|
+
rendered_row = @record.to_csv(:format_options => { :col_sep => "\t"})
|
301
|
+
assert_equal("1\t2\t3\t4\n",rendered_row)
|
302
|
+
end
|
294
303
|
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
304
|
+
context "when given bad format names" do
|
305
|
+
def setup
|
306
|
+
@a = Record.new({ "a" => 1, "b" => 2 })
|
307
|
+
end
|
308
|
+
|
309
|
+
def specify_as_should_throw_proper_errors
|
310
|
+
assert_raises(Ruport::Renderer::UnknownFormatError) { @a.as(:nothing) }
|
311
|
+
end
|
312
|
+
|
313
|
+
def specify_to_format_should_throw_proper_errors
|
314
|
+
assert_raises(Ruport::Renderer::UnknownFormatError) { @a.to_nothing }
|
315
|
+
end
|
316
|
+
end
|
306
317
|
|
307
|
-
|
318
|
+
## -- BUG TRAPS --------------------
|
308
319
|
|
309
|
-
|
310
|
-
|
311
|
-
|
320
|
+
def specify_attributes_should_not_be_broken_by_to_hack
|
321
|
+
record = Ruport::Data::Record.new [1,2], :attributes => %w[a to_something]
|
322
|
+
assert_equal 2, record.to_something
|
323
|
+
end
|
312
324
|
end
|
313
325
|
|
314
326
|
end
|
data/test/renderer_test.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
require 'test/
|
2
|
-
require 'ruport'
|
1
|
+
require 'test/helpers'
|
3
2
|
|
4
3
|
###########################################################################
|
5
4
|
#
|
@@ -453,3 +452,61 @@ class TestSetupOrdering < Test::Unit::TestCase
|
|
453
452
|
end
|
454
453
|
|
455
454
|
end
|
455
|
+
|
456
|
+
class TestRendererHooks < Test::Unit::TestCase
|
457
|
+
|
458
|
+
context "when renderable_data omitted" do
|
459
|
+
|
460
|
+
require "mocha"
|
461
|
+
|
462
|
+
class DummyObject
|
463
|
+
include Ruport::Renderer::Hooks
|
464
|
+
renders_as_table
|
465
|
+
end
|
466
|
+
|
467
|
+
def specify_should_return_self
|
468
|
+
a = DummyObject.new
|
469
|
+
rend = mock("renderer")
|
470
|
+
rend.expects(:data=).with(a)
|
471
|
+
Ruport::Renderer::Table.expects(:render).with(:csv,{}).yields(rend)
|
472
|
+
a.as(:csv)
|
473
|
+
end
|
474
|
+
|
475
|
+
end
|
476
|
+
|
477
|
+
context "when using renderable_data" do
|
478
|
+
|
479
|
+
class DummyObject2
|
480
|
+
include Ruport::Renderer::Hooks
|
481
|
+
renders_as_table
|
482
|
+
|
483
|
+
def renderable_data
|
484
|
+
1
|
485
|
+
end
|
486
|
+
end
|
487
|
+
|
488
|
+
def specify_should_return_results_of_renderable_data
|
489
|
+
a = DummyObject2.new
|
490
|
+
rend = mock("renderer")
|
491
|
+
rend.expects(:data=).with(1)
|
492
|
+
Ruport::Renderer::Table.expects(:render).with(:csv,{}).yields(rend)
|
493
|
+
a.as(:csv)
|
494
|
+
end
|
495
|
+
|
496
|
+
class DummyObject3
|
497
|
+
include Ruport::Renderer::Hooks
|
498
|
+
renders_as_table
|
499
|
+
|
500
|
+
def renderable_data
|
501
|
+
raise ArgumentError
|
502
|
+
end
|
503
|
+
end
|
504
|
+
|
505
|
+
def specify_should_not_mask_errors
|
506
|
+
assert_raises(ArgumentError) { DummyObject3.new.as(:csv) }
|
507
|
+
end
|
508
|
+
|
509
|
+
|
510
|
+
end
|
511
|
+
|
512
|
+
end
|
data/test/sql_split_test.rb
CHANGED
data/test/table_test.rb
CHANGED
data/test/text_formatter_test.rb
CHANGED
@@ -41,7 +41,7 @@ bench_suite do
|
|
41
41
|
small_table << [1,2,3]
|
42
42
|
}
|
43
43
|
|
44
|
-
small_hash = small_table[0].
|
44
|
+
small_hash = small_table[0].to_hash
|
45
45
|
bench_case("Table#<< - small hash",SMALL_N) {
|
46
46
|
small_table << small_hash
|
47
47
|
}
|
@@ -56,7 +56,7 @@ bench_suite do
|
|
56
56
|
wide_table << wide_data[0]
|
57
57
|
}
|
58
58
|
|
59
|
-
large_hash = wide_table[0].
|
59
|
+
large_hash = wide_table[0].to_hash
|
60
60
|
bench_case("Table#<< - large hash",WIDE_N) {
|
61
61
|
wide_table << large_hash
|
62
62
|
}
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruport
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.0.1
|
7
|
+
date: 2007-06-12 00:00:00 -04:00
|
8
8
|
summary: A generalized Ruby report generation and templating engine.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,105 +30,106 @@ authors:
|
|
30
30
|
- Gregory Brown
|
31
31
|
files:
|
32
32
|
- examples/btree
|
33
|
-
- examples/centered_pdf_text_box.rb
|
34
|
-
- examples/data
|
35
|
-
- examples/example.csv
|
36
|
-
- examples/line_plotter.rb
|
37
|
-
- examples/pdf_report_with_common_base.rb
|
38
|
-
- examples/png_embed.rb
|
39
|
-
- examples/roadmap.png
|
40
|
-
- examples/row_renderer.rb
|
41
|
-
- examples/RWEmerson.jpg
|
42
|
-
- examples/simple_pdf_lines.rb
|
43
|
-
- examples/tattle_ruby_version.rb
|
44
|
-
- examples/tattle_rubygems_version.rb
|
45
|
-
- examples/trac_ticket_status.rb
|
46
33
|
- examples/btree/commaleon
|
47
|
-
- examples/btree/commaleon/commaleon.rb
|
48
34
|
- examples/btree/commaleon/sample_data
|
49
35
|
- examples/btree/commaleon/sample_data/ticket_count.csv
|
50
36
|
- examples/btree/commaleon/sample_data/ticket_count2.csv
|
37
|
+
- examples/btree/commaleon/commaleon.rb
|
38
|
+
- examples/data
|
51
39
|
- examples/data/tattle.dump
|
40
|
+
- examples/row_renderer.rb
|
41
|
+
- examples/RWEmerson.jpg
|
42
|
+
- examples/centered_pdf_text_box.rb
|
43
|
+
- examples/tattle_rubygems_version.rb
|
44
|
+
- examples/trac_ticket_status.rb
|
45
|
+
- examples/line_plotter.rb
|
46
|
+
- examples/png_embed.rb
|
47
|
+
- examples/pdf_report_with_common_base.rb
|
48
|
+
- examples/example.csv
|
49
|
+
- examples/tattle_ruby_version.rb
|
50
|
+
- examples/roadmap.png
|
51
|
+
- examples/simple_pdf_lines.rb
|
52
52
|
- lib/ruport
|
53
|
-
- lib/ruport.rb
|
54
|
-
- lib/uport.rb
|
55
|
-
- lib/ruport/acts_as_reportable.rb
|
56
|
-
- lib/ruport/data
|
57
|
-
- lib/ruport/data.rb
|
58
|
-
- lib/ruport/extensions.rb
|
59
53
|
- lib/ruport/formatter
|
60
|
-
- lib/ruport/formatter.rb
|
61
|
-
- lib/ruport/query
|
62
|
-
- lib/ruport/query.rb
|
63
|
-
- lib/ruport/renderer
|
64
|
-
- lib/ruport/renderer.rb
|
65
|
-
- lib/ruport/data/grouping.rb
|
66
|
-
- lib/ruport/data/record.rb
|
67
|
-
- lib/ruport/data/table.rb
|
68
|
-
- lib/ruport/formatter/csv.rb
|
69
54
|
- lib/ruport/formatter/html.rb
|
70
|
-
- lib/ruport/formatter/pdf.rb
|
71
55
|
- lib/ruport/formatter/text.rb
|
56
|
+
- lib/ruport/formatter/pdf.rb
|
57
|
+
- lib/ruport/formatter/csv.rb
|
58
|
+
- lib/ruport/query
|
72
59
|
- lib/ruport/query/sql_split.rb
|
73
|
-
- lib/ruport/renderer
|
60
|
+
- lib/ruport/renderer
|
74
61
|
- lib/ruport/renderer/table.rb
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
-
|
62
|
+
- lib/ruport/renderer/grouping.rb
|
63
|
+
- lib/ruport/data
|
64
|
+
- lib/ruport/data/record.rb
|
65
|
+
- lib/ruport/data/table.rb
|
66
|
+
- lib/ruport/data/grouping.rb
|
67
|
+
- lib/ruport/extensions.rb
|
68
|
+
- lib/ruport/formatter.rb
|
69
|
+
- lib/ruport/query.rb
|
70
|
+
- lib/ruport/renderer.rb
|
71
|
+
- lib/ruport/data.rb
|
72
|
+
- lib/ruport/acts_as_reportable.rb
|
73
|
+
- lib/uport.rb
|
74
|
+
- lib/ruport.rb
|
83
75
|
- test/samples
|
84
|
-
- test/
|
85
|
-
- test/
|
86
|
-
- test/text_formatter_test.rb
|
87
|
-
- test/samples/addressbook.csv
|
76
|
+
- test/samples/test.yaml
|
77
|
+
- test/samples/query_test.sql
|
88
78
|
- test/samples/data.csv
|
89
79
|
- test/samples/data.tsv
|
90
|
-
- test/samples/dates.csv
|
91
80
|
- test/samples/erb_test.sql
|
92
|
-
- test/samples/
|
81
|
+
- test/samples/ticket_count.csv
|
93
82
|
- test/samples/ruport_test.sql
|
83
|
+
- test/samples/addressbook.csv
|
84
|
+
- test/samples/dates.csv
|
94
85
|
- test/samples/test.sql
|
95
|
-
- test/
|
96
|
-
- test/
|
97
|
-
-
|
86
|
+
- test/csv_formatter_test.rb
|
87
|
+
- test/record_test.rb
|
88
|
+
- test/helpers.rb
|
89
|
+
- test/query_test.rb
|
90
|
+
- test/renderer_test.rb
|
91
|
+
- test/html_formatter_test.rb
|
92
|
+
- test/table_test.rb
|
93
|
+
- test/text_formatter_test.rb
|
94
|
+
- test/grouping_test.rb
|
95
|
+
- test/sql_split_test.rb
|
96
|
+
- test/acts_as_reportable_test.rb
|
97
|
+
- test/pdf_formatter_test.rb
|
98
98
|
- util/bench/formatter
|
99
|
+
- util/bench/formatter/bench_html.rb
|
100
|
+
- util/bench/formatter/bench_text.rb
|
101
|
+
- util/bench/formatter/bench_pdf.rb
|
102
|
+
- util/bench/formatter/bench_csv.rb
|
99
103
|
- util/bench/samples
|
100
|
-
- util/bench/
|
104
|
+
- util/bench/samples/tattle.csv
|
105
|
+
- util/bench/data
|
101
106
|
- util/bench/data/table
|
102
|
-
- util/bench/data/record/bench_as_vs_to.rb
|
103
|
-
- util/bench/data/record/bench_constructor.rb
|
104
|
-
- util/bench/data/record/bench_indexing.rb
|
105
|
-
- util/bench/data/record/bench_reorder.rb
|
106
|
-
- util/bench/data/record/bench_to_a.rb
|
107
107
|
- util/bench/data/table/bench_column_manip.rb
|
108
|
-
- util/bench/data/table/bench_dup.rb
|
109
108
|
- util/bench/data/table/bench_init.rb
|
110
109
|
- util/bench/data/table/bench_manip.rb
|
111
|
-
- util/bench/
|
112
|
-
- util/bench/
|
113
|
-
- util/bench/
|
114
|
-
- util/bench/
|
115
|
-
- util/bench/
|
110
|
+
- util/bench/data/table/bench_dup.rb
|
111
|
+
- util/bench/data/record
|
112
|
+
- util/bench/data/record/bench_reorder.rb
|
113
|
+
- util/bench/data/record/bench_to_a.rb
|
114
|
+
- util/bench/data/record/bench_constructor.rb
|
115
|
+
- util/bench/data/record/bench_indexing.rb
|
116
|
+
- util/bench/data/record/bench_as_vs_to.rb
|
116
117
|
- Rakefile
|
117
118
|
- README
|
118
119
|
- LICENSE
|
119
120
|
- AUTHORS
|
120
121
|
test_files:
|
121
|
-
- test/acts_as_reportable_test.rb
|
122
122
|
- test/csv_formatter_test.rb
|
123
|
-
- test/grouping_test.rb
|
124
|
-
- test/html_formatter_test.rb
|
125
|
-
- test/pdf_formatter_test.rb
|
126
|
-
- test/query_test.rb
|
127
123
|
- test/record_test.rb
|
124
|
+
- test/query_test.rb
|
128
125
|
- test/renderer_test.rb
|
129
|
-
- test/
|
126
|
+
- test/html_formatter_test.rb
|
130
127
|
- test/table_test.rb
|
131
128
|
- test/text_formatter_test.rb
|
129
|
+
- test/grouping_test.rb
|
130
|
+
- test/sql_split_test.rb
|
131
|
+
- test/acts_as_reportable_test.rb
|
132
|
+
- test/pdf_formatter_test.rb
|
132
133
|
rdoc_options:
|
133
134
|
- --title
|
134
135
|
- Ruport Documentation
|