ruport 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|