ruport 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +4 -4
- data/Rakefile +1 -1
- data/lib/ruport.rb +1 -1
- data/lib/ruport/acts_as_reportable.rb +34 -2
- data/lib/ruport/data/grouping.rb +6 -4
- data/lib/ruport/formatter/pdf.rb +54 -17
- data/lib/ruport/formatter/text.rb +6 -3
- data/test/acts_as_reportable_test.rb +95 -72
- data/test/csv_formatter_test.rb +40 -36
- data/test/grouping_test.rb +139 -134
- data/test/html_formatter_test.rb +24 -10
- data/test/pdf_formatter_test.rb +102 -8
- data/test/query_test.rb +0 -1
- data/test/record_test.rb +45 -33
- data/test/renderer_test.rb +236 -211
- data/test/sql_split_test.rb +8 -7
- data/test/table_test.rb +437 -425
- data/test/text_formatter_test.rb +62 -45
- metadata +2 -2
data/test/text_formatter_test.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "test/unit"
|
2
|
-
require "ruport"
|
3
|
-
|
2
|
+
require "ruport"
|
3
|
+
|
4
|
+
class TestRenderTextTable < Test::Unit::TestCase
|
4
5
|
|
5
6
|
def test_basic
|
6
7
|
|
@@ -13,75 +14,92 @@ class TestFormatText < Test::Unit::TestCase
|
|
13
14
|
assert_equal("#{tf}| a | b |\n#{tf}| 1 | 2 |\n| 3 | 4 |\n#{tf}", a)
|
14
15
|
|
15
16
|
end
|
16
|
-
|
17
|
-
def test_row_basic
|
18
|
-
actual = Ruport::Renderer::Row.render_text { |r| r.data = [1,2,3] }
|
19
|
-
assert_equal("| 1 | 2 | 3 |\n", actual)
|
20
|
-
end
|
21
|
-
|
22
|
-
|
17
|
+
|
23
18
|
def test_centering
|
24
19
|
tf = "+---------+\n"
|
25
20
|
|
26
21
|
a = [[1,2],[300,4]].to_table
|
27
22
|
assert_equal( "#{tf}| 1 | 2 |\n| 300 | 4 |\n#{tf}",
|
28
|
-
a.
|
23
|
+
a.to_text(:alignment => :center) )
|
29
24
|
|
30
25
|
tf = "+------------+\n"
|
31
26
|
a.column_names = %w[a bark]
|
32
27
|
assert_equal("#{tf}| a | bark |\n#{tf}| 1 | 2 |\n"+
|
33
|
-
"| 300 | 4 |\n#{tf}",
|
34
|
-
a.as(:text) { |e| e.options.alignment = :center })
|
35
|
-
|
28
|
+
"| 300 | 4 |\n#{tf}", a.to_text(:alignment => :center) )
|
36
29
|
end
|
37
30
|
|
38
31
|
def test_justified
|
39
32
|
tf = "+----------+\n"
|
40
33
|
a = [[1,'Z'],[300,'BB']].to_table
|
41
|
-
|
34
|
+
|
35
|
+
# justified alignment can be set explicitly
|
36
|
+
assert_equal "#{tf}| 1 | Z |\n| 300 | BB |\n#{tf}",
|
37
|
+
a.to_text(:alignment => :justified)
|
38
|
+
|
39
|
+
# justified alignment is also default
|
40
|
+
assert_equal "#{tf}| 1 | Z |\n| 300 | BB |\n#{tf}", a.to_s
|
42
41
|
end
|
43
42
|
|
44
43
|
def test_wrapping
|
45
|
-
a = [[1,2],[300,4]].to_table.
|
46
|
-
r.options { |l| l.table_width = 10 }
|
47
|
-
}
|
48
|
-
|
44
|
+
a = [[1,2],[300,4]].to_table.to_text(:table_width => 10)
|
49
45
|
assert_equal("+------->>\n| 1 | >>\n| 300 | >>\n+------->>\n",a)
|
50
46
|
end
|
51
47
|
|
52
48
|
def test_ignore_wrapping
|
53
|
-
|
54
|
-
|
55
|
-
l.table_width = 10
|
56
|
-
l.ignore_table_width = true
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
49
|
+
a = [[1,2],[300,4]].to_table.to_text(:table_width => 10,
|
50
|
+
:ignore_table_width => true )
|
60
51
|
assert_equal("+---------+\n| 1 | 2 |\n| 300 | 4 |\n+---------+\n",a)
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_render_empty_table
|
55
|
+
assert_raise(Ruport::FormatterError) { [].to_table.to_text }
|
56
|
+
assert_nothing_raised { Table(%w[a b c]).to_text }
|
57
|
+
|
58
|
+
a = Table(%w[a b c]).to_text
|
59
|
+
expected = "+-----------+\n"+
|
60
|
+
"| a | b | c |\n"+
|
61
|
+
"+-----------+\n"
|
62
|
+
assert_equal expected, a
|
61
63
|
end
|
64
|
+
|
65
|
+
# -- BUG TRAPS ------------------------------
|
62
66
|
|
63
|
-
def
|
67
|
+
def test_should_render_without_column_names
|
64
68
|
a = [[1,2,3]].to_table.to_text
|
65
69
|
expected = "+-----------+\n"+
|
66
70
|
"| 1 | 2 | 3 |\n"+
|
67
71
|
"+-----------+\n"
|
68
72
|
assert_equal(expected,a)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
69
77
|
|
78
|
+
class TestRenderTextRow < Test::Unit::TestCase
|
79
|
+
|
80
|
+
def test_row_basic
|
81
|
+
actual = Ruport::Renderer::Row.render_text(:data => [1,2,3])
|
82
|
+
assert_equal("| 1 | 2 | 3 |\n", actual)
|
70
83
|
end
|
71
84
|
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
class TestRenderTextGroup < Test::Unit::TestCase
|
89
|
+
|
72
90
|
def test_render_text_group
|
73
91
|
group = Ruport::Data::Group.new(:name => 'test',
|
74
92
|
:data => [ %w[is this more],
|
75
|
-
%w[interesting
|
93
|
+
%w[interesting red snapper]],
|
76
94
|
:column_names => %w[i hope so])
|
77
95
|
|
78
|
-
actual = Ruport::Renderer::Group.
|
96
|
+
actual = Ruport::Renderer::Group.render_text(:data => group)
|
79
97
|
expected = "test:\n\n"+
|
80
98
|
"+------------------------------+\n"+
|
81
|
-
"| i | hope
|
99
|
+
"| i | hope | so |\n"+
|
82
100
|
"+------------------------------+\n"+
|
83
|
-
"| is | this
|
84
|
-
"| interesting |
|
101
|
+
"| is | this | more |\n"+
|
102
|
+
"| interesting | red | snapper |\n"+
|
85
103
|
"+------------------------------+\n"
|
86
104
|
assert_equal(expected, actual)
|
87
105
|
end
|
@@ -89,36 +107,35 @@ class TestFormatText < Test::Unit::TestCase
|
|
89
107
|
def test_render_text_group_without_headers
|
90
108
|
group = Ruport::Data::Group.new(:name => 'test',
|
91
109
|
:data => [ %w[is this more],
|
92
|
-
|
110
|
+
%w[interesting red snapper]],
|
93
111
|
:column_names => %w[i hope so])
|
94
112
|
|
95
113
|
actual = Ruport::Renderer::Group.render(:text, :data => group,
|
96
114
|
:show_table_headers => false )
|
97
115
|
expected = "test:\n\n"+
|
98
116
|
"+------------------------------+\n"+
|
99
|
-
"| is | this
|
100
|
-
"| interesting |
|
117
|
+
"| is | this | more |\n"+
|
118
|
+
"| interesting | red | snapper |\n"+
|
101
119
|
"+------------------------------+\n"
|
102
120
|
assert_equal(expected, actual)
|
103
|
-
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
104
124
|
|
105
|
-
|
106
|
-
assert_raise(RuntimeError) { [].to_table.to_text }
|
107
|
-
assert_raise(RuntimeError) { [].to_table(%w[a b c]).to_text }
|
108
|
-
end
|
125
|
+
class TestRenderTextGrouping < Test::Unit::TestCase
|
109
126
|
|
110
127
|
def test_render_text_grouping
|
111
128
|
table = Ruport::Data::Table.new(:data => [ %w[is this more],
|
112
|
-
%w[interesting
|
129
|
+
%w[interesting red snapper]],
|
113
130
|
:column_names => %w[i hope so])
|
114
131
|
grouping = Grouping(table, :by => "i")
|
115
132
|
|
116
133
|
actual = Ruport::Renderer::Grouping.render(:text, :data => grouping)
|
117
134
|
expected = "interesting:\n\n"+
|
118
135
|
"+----------------+\n"+
|
119
|
-
"| hope
|
136
|
+
"| hope | so |\n"+
|
120
137
|
"+----------------+\n"+
|
121
|
-
"|
|
138
|
+
"| red | snapper |\n"+
|
122
139
|
"+----------------+\n\n"+
|
123
140
|
"is:\n\n"+
|
124
141
|
"+-------------+\n"+
|
@@ -134,7 +151,7 @@ class TestFormatText < Test::Unit::TestCase
|
|
134
151
|
|
135
152
|
def test_render_text_grouping_without_headers
|
136
153
|
table = Ruport::Data::Table.new(:data => [ %w[is this more],
|
137
|
-
%w[interesting
|
154
|
+
%w[interesting red snapper]],
|
138
155
|
:column_names => %w[i hope so])
|
139
156
|
grouping = Grouping(table, :by => "i")
|
140
157
|
|
@@ -142,7 +159,7 @@ class TestFormatText < Test::Unit::TestCase
|
|
142
159
|
:show_table_headers => false)
|
143
160
|
expected = "interesting:\n\n"+
|
144
161
|
"+----------------+\n"+
|
145
|
-
"|
|
162
|
+
"| red | snapper |\n"+
|
146
163
|
"+----------------+\n\n"+
|
147
164
|
"is:\n\n"+
|
148
165
|
"+-------------+\n"+
|
@@ -151,4 +168,4 @@ class TestFormatText < Test::Unit::TestCase
|
|
151
168
|
assert_equal(expected, actual)
|
152
169
|
end
|
153
170
|
|
154
|
-
end
|
171
|
+
end
|
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: 0.
|
7
|
-
date: 2007-05-
|
6
|
+
version: 0.12.0
|
7
|
+
date: 2007-05-08 00:00:00 -04:00
|
8
8
|
summary: A generalized Ruby report generation and templating engine.
|
9
9
|
require_paths:
|
10
10
|
- lib
|