ruport 0.8.11 → 0.8.12
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/Rakefile +2 -2
- data/lib/ruport.rb +2 -2
- data/lib/ruport/data/record.rb +1 -1
- data/lib/ruport/data/table.rb +5 -5
- data/test/test_query.rb +191 -198
- data/test/test_record.rb +26 -14
- metadata +91 -91
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ end
|
|
23
23
|
|
24
24
|
spec = Gem::Specification.new do |spec|
|
25
25
|
spec.name = LEAN ? "lean-ruport" : "ruport"
|
26
|
-
spec.version = "0.8.
|
26
|
+
spec.version = "0.8.12"
|
27
27
|
spec.platform = Gem::Platform::RUBY
|
28
28
|
spec.summary = "A generalized Ruby report generation and templating engine."
|
29
29
|
spec.files = Dir.glob("{examples,lib,test,bin}/**/**/*") +
|
@@ -50,7 +50,7 @@ spec = Gem::Specification.new do |spec|
|
|
50
50
|
spec.author = "Gregory Brown"
|
51
51
|
spec.email = " gregory.t.brown@gmail.com"
|
52
52
|
spec.rubyforge_project = "ruport"
|
53
|
-
spec.homepage = "http://
|
53
|
+
spec.homepage = "http://code.rubyreports.org"
|
54
54
|
spec.description = <<END_DESC
|
55
55
|
Ruby Reports is a software library that aims to make the task of reporting
|
56
56
|
less tedious and painful. It provides tools for data acquisition,
|
data/lib/ruport.rb
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
module Ruport
|
14
14
|
|
15
|
-
VERSION = "0.8.
|
15
|
+
VERSION = "0.8.12"
|
16
16
|
|
17
17
|
# This method is Ruport's logging and error interface. It can generate
|
18
18
|
# warnings or raise fatal errors, logging +message+ to the file defined by
|
@@ -81,4 +81,4 @@ require "ruport/format"
|
|
81
81
|
require "ruport/query"
|
82
82
|
require "ruport/mailer"
|
83
83
|
require "ruport/layout"
|
84
|
-
require "ruport/renderer"
|
84
|
+
require "ruport/renderer"
|
data/lib/ruport/data/record.rb
CHANGED
data/lib/ruport/data/table.rb
CHANGED
@@ -204,7 +204,7 @@ module Ruport::Data
|
|
204
204
|
# one = Table.new :data => [[1,2], [3,4]],
|
205
205
|
# :column_names => %w[a b]
|
206
206
|
#
|
207
|
-
# two = one.reorder
|
207
|
+
# two = one.reorder([1,0])
|
208
208
|
#
|
209
209
|
def reorder(*indices)
|
210
210
|
indices = indices[0] if indices[0].kind_of? Array
|
@@ -370,8 +370,8 @@ module Ruport::Data
|
|
370
370
|
#
|
371
371
|
# Using column_names and a range:
|
372
372
|
#
|
373
|
-
# sub_table = table.sub_table(%w[a b],1..-
|
374
|
-
# sub_table == [[
|
373
|
+
# sub_table = table.sub_table(%w[a b],1..-1)
|
374
|
+
# sub_table == [[5,6],[9,10]].to_table(%w[a b]) #=> true
|
375
375
|
#
|
376
376
|
# Using just column_names:
|
377
377
|
#
|
@@ -381,7 +381,7 @@ module Ruport::Data
|
|
381
381
|
# Using column_names and a block:
|
382
382
|
#
|
383
383
|
# sub_table = table.sub_table(%w[d b]) { |r| r.a < 6 }
|
384
|
-
# sub_table == [[4,2],[8,6]].to_table(%w[b
|
384
|
+
# sub_table == [[4,2],[8,6]].to_table(%w[d b]) #=> true
|
385
385
|
#
|
386
386
|
# Using just a block:
|
387
387
|
#
|
@@ -401,7 +401,7 @@ module Ruport::Data
|
|
401
401
|
end
|
402
402
|
end
|
403
403
|
|
404
|
-
# returns an array of values for the given
|
404
|
+
# returns an array of values for the given column name
|
405
405
|
def column(name)
|
406
406
|
case(name)
|
407
407
|
when Integer
|
data/test/test_query.rb
CHANGED
@@ -4,10 +4,15 @@
|
|
4
4
|
begin
|
5
5
|
require 'mocha'
|
6
6
|
require 'stubba'
|
7
|
-
require 'dbi'
|
8
7
|
rescue LoadError
|
9
8
|
$stderr.puts "Warning: Mocha not found -- skipping some Query tests"
|
10
9
|
end
|
10
|
+
|
11
|
+
begin
|
12
|
+
require 'dbi'
|
13
|
+
rescue LoadError
|
14
|
+
$stderr.puts "Warning: DBI not found -- skipping some Query tests"
|
15
|
+
end
|
11
16
|
|
12
17
|
class TestQuery < Test::Unit::TestCase
|
13
18
|
def setup
|
@@ -44,199 +49,185 @@
|
|
44
49
|
}
|
45
50
|
@query[:precached].cached_data = @data[0]
|
46
51
|
end
|
52
|
+
|
53
|
+
if Object.const_defined? :Mocha and Object.const_defined? :DBI
|
47
54
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
setup_mock_dbi(1)
|
52
|
-
|
53
|
-
assert_equal nil, query.execute
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_execute_sourced
|
57
|
-
return unless Object.const_defined? :Mocha
|
58
|
-
query = @query[:sourced]
|
59
|
-
setup_mock_dbi(1, :source => :alternative)
|
60
|
-
|
61
|
-
assert_equal nil, query.execute
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_execute_paramed
|
65
|
-
return unless Object.const_defined? :Mocha
|
66
|
-
query = @query[:paramed]
|
67
|
-
setup_mock_dbi(1, :params => [ 42 ])
|
68
|
-
|
69
|
-
assert_equal nil, query.execute
|
70
|
-
end
|
55
|
+
def test_execute
|
56
|
+
query = @query[:uncached]
|
57
|
+
setup_mock_dbi(1)
|
71
58
|
|
72
|
-
|
73
|
-
|
74
|
-
query = @query[:uncached]
|
75
|
-
setup_mock_dbi(3)
|
76
|
-
|
77
|
-
assert_nothing_raised { query.result }
|
78
|
-
assert_equal @data[1], get_raw(query.result)
|
79
|
-
assert_equal @data[2], get_raw(query.result)
|
59
|
+
assert_equal nil, query.execute
|
60
|
+
end
|
80
61
|
|
81
|
-
end
|
82
62
|
|
83
|
-
|
84
|
-
|
85
|
-
|
63
|
+
def test_execute_sourced
|
64
|
+
query = @query[:sourced]
|
65
|
+
setup_mock_dbi(1, :source => :alternative)
|
66
|
+
|
67
|
+
assert_equal nil, query.execute
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_execute_paramed
|
71
|
+
query = @query[:paramed]
|
72
|
+
setup_mock_dbi(1, :params => [ 42 ])
|
73
|
+
|
74
|
+
assert_equal nil, query.execute
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_result_cache_disabled
|
78
|
+
query = @query[:uncached]
|
79
|
+
setup_mock_dbi(3)
|
80
|
+
|
81
|
+
assert_nothing_raised { query.result }
|
82
|
+
assert_equal @data[1], get_raw(query.result)
|
83
|
+
assert_equal @data[2], get_raw(query.result)
|
86
84
|
|
87
|
-
|
88
|
-
|
89
|
-
assert_nothing_raised { query.result }
|
90
|
-
assert_equal @data[0], get_raw(query.result)
|
91
|
-
assert_equal @data[0], get_raw(query.result)
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_result_resultless
|
95
|
-
return unless Object.const_defined? :Mocha
|
96
|
-
query = @query[:resultless]
|
97
|
-
setup_mock_dbi(1, :resultless => true, :sql => @sql[1])
|
98
|
-
|
99
|
-
assert_equal nil, query.result
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_result_multi
|
103
|
-
return unless Object.const_defined? :Mocha
|
104
|
-
query = @query[:multi]
|
105
|
-
setup_mock_dbi(2)
|
106
|
-
|
107
|
-
assert_equal @data[1], get_raw(query.result)
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_result_raw_disabled
|
111
|
-
return unless Object.const_defined? :Mocha
|
112
|
-
query = @query[:unraw]
|
113
|
-
setup_mock_dbi(1)
|
114
|
-
|
115
|
-
assert_equal @data[0].to_table(@columns), query.result
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_result_raw_enabled
|
119
|
-
return unless Object.const_defined? :Mocha
|
120
|
-
query = @query[:raw]
|
121
|
-
setup_mock_dbi(1)
|
122
|
-
|
123
|
-
assert_equal @data[0], query.result
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_update_cache
|
127
|
-
return unless Object.const_defined? :Mocha
|
128
|
-
query = @query[:cached]
|
129
|
-
setup_mock_dbi(2)
|
85
|
+
end
|
130
86
|
|
131
|
-
|
132
|
-
|
133
|
-
assert_equal @data[1], get_raw(query.cached_data)
|
134
|
-
assert_equal @data[1], get_raw(query.result)
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_clear_cache
|
138
|
-
return unless Object.const_defined? :Mocha
|
139
|
-
query = @query[:cached]
|
140
|
-
setup_mock_dbi(2)
|
141
|
-
|
142
|
-
assert_equal @data[0], get_raw(query.result)
|
87
|
+
def test_result_cache_enabled
|
88
|
+
query = @query[:cached]
|
143
89
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
90
|
+
setup_mock_dbi(1)
|
91
|
+
|
92
|
+
assert_nothing_raised { query.result }
|
93
|
+
assert_equal @data[0], get_raw(query.result)
|
94
|
+
assert_equal @data[0], get_raw(query.result)
|
95
|
+
end
|
148
96
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
97
|
+
def test_result_resultless
|
98
|
+
query = @query[:resultless]
|
99
|
+
setup_mock_dbi(1, :resultless => true, :sql => @sql[1])
|
100
|
+
|
101
|
+
assert_equal nil, query.result
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_result_multi
|
105
|
+
query = @query[:multi]
|
106
|
+
setup_mock_dbi(2)
|
107
|
+
|
108
|
+
assert_equal @data[1], get_raw(query.result)
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_result_raw_disabled
|
112
|
+
query = @query[:unraw]
|
113
|
+
setup_mock_dbi(1)
|
114
|
+
|
115
|
+
assert_equal @data[0].to_table(@columns), query.result
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_result_raw_enabled
|
119
|
+
query = @query[:raw]
|
120
|
+
setup_mock_dbi(1)
|
121
|
+
|
122
|
+
assert_equal @data[0], query.result
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_update_cache
|
126
|
+
query = @query[:cached]
|
127
|
+
setup_mock_dbi(2)
|
128
|
+
|
129
|
+
assert_equal @data[0], get_raw(query.result)
|
130
|
+
query.update_cache
|
131
|
+
assert_equal @data[1], get_raw(query.cached_data)
|
132
|
+
assert_equal @data[1], get_raw(query.result)
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_clear_cache
|
136
|
+
query = @query[:cached]
|
137
|
+
setup_mock_dbi(2)
|
138
|
+
|
139
|
+
assert_equal @data[0], get_raw(query.result)
|
140
|
+
|
141
|
+
query.clear_cache
|
142
|
+
assert_equal nil, query.cached_data
|
143
|
+
assert_equal @data[1], get_raw(query.result)
|
144
|
+
end
|
189
145
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
146
|
+
def test_disable_caching
|
147
|
+
query = @query[:cached]
|
148
|
+
setup_mock_dbi(3)
|
149
|
+
|
150
|
+
assert_equal @data[0], get_raw(query.result)
|
151
|
+
assert_equal @data[0], get_raw(query.result)
|
152
|
+
query.disable_caching
|
153
|
+
assert_equal @data[1], get_raw(query.result)
|
154
|
+
assert_equal @data[2], get_raw(query.result)
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_enable_caching
|
158
|
+
query = @query[:uncached]
|
159
|
+
setup_mock_dbi(3)
|
160
|
+
|
161
|
+
assert_equal @data[0], get_raw(query.result)
|
162
|
+
assert_equal @data[1], get_raw(query.result)
|
163
|
+
query.enable_caching
|
164
|
+
assert_equal @data[2], get_raw(query.result)
|
165
|
+
assert_equal @data[2], get_raw(query.result)
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_load_file
|
169
|
+
File.expects(:read).
|
170
|
+
with("query_test.sql").
|
171
|
+
returns("select * from foo\n")
|
172
|
+
|
205
173
|
query = Ruport::Query.new "query_test.sql"
|
174
|
+
assert_equal "select * from foo", query.sql
|
206
175
|
end
|
207
|
-
end
|
208
|
-
|
209
|
-
def test_each_cache_disabled
|
210
|
-
return unless Object.const_defined? :Mocha
|
211
|
-
query = @query[:uncached]
|
212
|
-
setup_mock_dbi(2)
|
213
|
-
|
214
|
-
result = []; query.each { |r| result << r.to_a }
|
215
|
-
assert_equal @data[0], result
|
216
|
-
|
217
|
-
result = []; query.each { |r| result << r.to_a }
|
218
|
-
assert_equal @data[1], result
|
219
|
-
end
|
220
176
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
177
|
+
def test_load_file_erb
|
178
|
+
@table = 'bar'
|
179
|
+
File.expects(:read).
|
180
|
+
with("query_test.sql").
|
181
|
+
returns("select * from <%= @table %>\n")
|
182
|
+
|
183
|
+
query = Ruport::Query.new "query_test.sql", :binding => binding
|
184
|
+
assert_equal "select * from bar", query.sql
|
185
|
+
end
|
186
|
+
|
187
|
+
def test_load_file_not_found
|
188
|
+
File.expects(:read).
|
189
|
+
with("query_test.sql").
|
190
|
+
raises(Errno::ENOENT)
|
191
|
+
Ruport.expects(:log).
|
192
|
+
with("Could not open query_test.sql",
|
193
|
+
:status => :fatal, :exception => LoadError).
|
194
|
+
raises(LoadError)
|
195
|
+
|
196
|
+
assert_raises LoadError do
|
197
|
+
query = Ruport::Query.new "query_test.sql"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def test_each_cache_disabled
|
202
|
+
query = @query[:uncached]
|
203
|
+
setup_mock_dbi(2)
|
204
|
+
|
205
|
+
result = []; query.each { |r| result << r.to_a }
|
206
|
+
assert_equal @data[0], result
|
207
|
+
|
208
|
+
result = []; query.each { |r| result << r.to_a }
|
209
|
+
assert_equal @data[1], result
|
210
|
+
end
|
225
211
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
212
|
+
def test_each_cache_enabled
|
213
|
+
query = @query[:cached]
|
214
|
+
setup_mock_dbi(1)
|
215
|
+
|
216
|
+
result = []; query.each { |r| result << r.to_a }
|
217
|
+
assert_equal @data[0], result
|
218
|
+
|
219
|
+
result = []; query.each { |r| result << r.to_a }
|
220
|
+
assert_equal @data[0], result
|
221
|
+
end
|
222
|
+
|
223
|
+
def test_each_multi
|
224
|
+
query = @query[:multi]
|
225
|
+
setup_mock_dbi(2)
|
226
|
+
|
227
|
+
result = []; query.each { |r| result << r.to_a }
|
228
|
+
assert_equal @data[1], result
|
229
|
+
end
|
230
|
+
|
240
231
|
end
|
241
232
|
|
242
233
|
def test_each_without_block
|
@@ -275,26 +266,28 @@
|
|
275
266
|
assert_equal @data[0][2], gen.next
|
276
267
|
assert_raise(EOFError) { gen.next }
|
277
268
|
end
|
269
|
+
|
270
|
+
if Object.const_defined? :Mocha and Object.const_defined? :DBI
|
278
271
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
272
|
+
def test_to_table
|
273
|
+
query = @query[:raw]
|
274
|
+
setup_mock_dbi(3, :returns => @data[0])
|
275
|
+
|
276
|
+
assert_equal @data[0], query.result
|
277
|
+
assert_equal @data[0].to_table(@columns), query.to_table
|
278
|
+
assert_equal @data[0], query.result
|
279
|
+
end
|
280
|
+
|
281
|
+
def test_to_csv
|
282
|
+
query = @query[:plain]
|
283
|
+
setup_mock_dbi(1)
|
284
|
+
|
285
|
+
csv = @data[0].to_table(@columns).as(:csv)
|
286
|
+
assert_equal csv, query.to_csv
|
287
|
+
end
|
288
|
+
|
287
289
|
end
|
288
|
-
|
289
|
-
def test_to_csv
|
290
|
-
return unless Object.const_defined? :Mocha
|
291
|
-
query = @query[:plain]
|
292
|
-
setup_mock_dbi(1)
|
293
290
|
|
294
|
-
csv = @data[0].to_table(@columns).as(:csv)
|
295
|
-
assert_equal csv, query.to_csv
|
296
|
-
end
|
297
|
-
|
298
291
|
private
|
299
292
|
def setup_mock_dbi(count, options={})
|
300
293
|
sql = options[:sql] || @sql[0]
|
data/test/test_record.rb
CHANGED
@@ -201,6 +201,21 @@ class TestRecord < Test::Unit::TestCase
|
|
201
201
|
assert_equal 3,r.length
|
202
202
|
assert_equal 3,r.size
|
203
203
|
end
|
204
|
+
|
205
|
+
def test_reindex
|
206
|
+
assert_equal %w[a b c d], @record.attributes
|
207
|
+
#old_object_id = @record.instance_variable_get(:@attributes).object_id
|
208
|
+
|
209
|
+
@record.send(:reindex, a=%w[apple banana courier django])
|
210
|
+
assert_equal %w[apple banana courier django], @record.attributes
|
211
|
+
|
212
|
+
new_object_id = @record.instance_variable_get(:@attributes).object_id
|
213
|
+
assert_equal a.object_id, new_object_id
|
214
|
+
end
|
215
|
+
|
216
|
+
#----------------------------------------------------------------------
|
217
|
+
# BUG Traps
|
218
|
+
#----------------------------------------------------------------------
|
204
219
|
|
205
220
|
def test_ensure_records_dup_source_data
|
206
221
|
a = [1,2,3]
|
@@ -216,17 +231,6 @@ class TestRecord < Test::Unit::TestCase
|
|
216
231
|
assert_equal 1, a["a"]
|
217
232
|
end
|
218
233
|
|
219
|
-
def test_reindex
|
220
|
-
assert_equal %w[a b c d], @record.attributes
|
221
|
-
#old_object_id = @record.instance_variable_get(:@attributes).object_id
|
222
|
-
|
223
|
-
@record.send(:reindex, a=%w[apple banana courier django])
|
224
|
-
assert_equal %w[apple banana courier django], @record.attributes
|
225
|
-
|
226
|
-
new_object_id = @record.instance_variable_get(:@attributes).object_id
|
227
|
-
assert_equal a.object_id, new_object_id
|
228
|
-
end
|
229
|
-
|
230
234
|
def test_ensure_tags_get_duped
|
231
235
|
a = Record.new([1,2,3])
|
232
236
|
a.tag :foo
|
@@ -234,8 +238,16 @@ class TestRecord < Test::Unit::TestCase
|
|
234
238
|
b = a.dup
|
235
239
|
assert b.tags.include?(:foo)
|
236
240
|
assert_not_same a.tags, b.tags
|
241
|
+
end
|
242
|
+
|
243
|
+
# Ticket #172
|
244
|
+
def test_ensure_get_really_indifferent
|
245
|
+
a = Record.new({"a" => 1, "b" => 2})
|
246
|
+
assert_equal(2,a.get("b"))
|
247
|
+
assert_equal(2,a.get(:b))
|
248
|
+
a = Record.new({:a => 1, :b => 2})
|
249
|
+
assert_equal(2,a.get("b"))
|
250
|
+
assert_equal(2,a.get(:b))
|
237
251
|
end
|
238
252
|
|
239
|
-
|
240
|
-
|
241
|
-
end
|
253
|
+
end
|
metadata
CHANGED
@@ -3,13 +3,13 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruport
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.8.
|
7
|
-
date: 2007-03-
|
6
|
+
version: 0.8.12
|
7
|
+
date: 2007-03-14 00:00:00 -04:00
|
8
8
|
summary: A generalized Ruby report generation and templating engine.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: " gregory.t.brown@gmail.com"
|
12
|
-
homepage: http://
|
12
|
+
homepage: http://code.rubyreports.org
|
13
13
|
rubyforge_project: ruport
|
14
14
|
description: Ruby Reports is a software library that aims to make the task of reporting less tedious and painful. It provides tools for data acquisition, database interaction, formatting, and parsing/munging.
|
15
15
|
autorequire:
|
@@ -29,128 +29,128 @@ post_install_message:
|
|
29
29
|
authors:
|
30
30
|
- Gregory Brown
|
31
31
|
files:
|
32
|
+
- examples/rope_examples
|
33
|
+
- examples/RWEmerson.jpg
|
32
34
|
- examples/centered_pdf_text_box.rb
|
33
|
-
- examples/
|
35
|
+
- examples/line_plotter.rb
|
34
36
|
- examples/invoice_report.rb
|
35
37
|
- examples/line_graph.rb
|
36
|
-
- examples/line_plotter.rb
|
37
38
|
- examples/pdf_complex_report.rb
|
39
|
+
- examples/invoice.rb
|
38
40
|
- examples/pdf_table_with_title.rb
|
39
|
-
- examples/rope_examples
|
40
|
-
- examples/RWEmerson.jpg
|
41
|
-
- examples/rope_examples/itunes
|
42
41
|
- examples/rope_examples/sales_report
|
43
|
-
- examples/rope_examples/itunes
|
44
|
-
- examples/rope_examples/
|
45
|
-
- examples/rope_examples/
|
46
|
-
- examples/rope_examples/
|
47
|
-
- examples/rope_examples/
|
48
|
-
- examples/rope_examples/itunes/Rakefile
|
49
|
-
- examples/rope_examples/itunes/README
|
50
|
-
- examples/rope_examples/itunes/sql
|
51
|
-
- examples/rope_examples/itunes/templates
|
52
|
-
- examples/rope_examples/itunes/test
|
53
|
-
- examples/rope_examples/itunes/util
|
54
|
-
- examples/rope_examples/itunes/config/ruport_config.rb
|
55
|
-
- examples/rope_examples/itunes/data/mix.txt
|
56
|
-
- examples/rope_examples/itunes/lib/helpers.rb
|
57
|
-
- examples/rope_examples/itunes/lib/init.rb
|
58
|
-
- examples/rope_examples/itunes/lib/reports
|
59
|
-
- examples/rope_examples/itunes/lib/reports.rb
|
60
|
-
- examples/rope_examples/itunes/lib/reports/playlist.rb
|
61
|
-
- examples/rope_examples/itunes/log/ruport.log
|
62
|
-
- examples/rope_examples/itunes/test/test_playlist.rb
|
63
|
-
- examples/rope_examples/itunes/util/build
|
64
|
-
- examples/rope_examples/itunes/util/sql_exec
|
42
|
+
- examples/rope_examples/itunes
|
43
|
+
- examples/rope_examples/sales_report/sql
|
44
|
+
- examples/rope_examples/sales_report/test
|
45
|
+
- examples/rope_examples/sales_report/output
|
46
|
+
- examples/rope_examples/sales_report/log
|
65
47
|
- examples/rope_examples/sales_report/config
|
66
|
-
- examples/rope_examples/sales_report/data
|
67
48
|
- examples/rope_examples/sales_report/lib
|
68
|
-
- examples/rope_examples/sales_report/
|
69
|
-
- examples/rope_examples/sales_report/
|
49
|
+
- examples/rope_examples/sales_report/data
|
50
|
+
- examples/rope_examples/sales_report/util
|
51
|
+
- examples/rope_examples/sales_report/templates
|
70
52
|
- examples/rope_examples/sales_report/Rakefile
|
71
53
|
- examples/rope_examples/sales_report/README
|
72
|
-
- examples/rope_examples/sales_report/
|
73
|
-
- examples/rope_examples/sales_report/
|
74
|
-
- examples/rope_examples/sales_report/
|
75
|
-
- examples/rope_examples/sales_report/
|
54
|
+
- examples/rope_examples/sales_report/test/test_sales.rb
|
55
|
+
- examples/rope_examples/sales_report/output/books.pdf
|
56
|
+
- examples/rope_examples/sales_report/output/books.txt
|
57
|
+
- examples/rope_examples/sales_report/log/ruport.log
|
76
58
|
- examples/rope_examples/sales_report/config/ruport_config.rb
|
77
|
-
- examples/rope_examples/sales_report/lib/helpers.rb
|
78
|
-
- examples/rope_examples/sales_report/lib/init.rb
|
79
59
|
- examples/rope_examples/sales_report/lib/reports
|
80
60
|
- examples/rope_examples/sales_report/lib/reports.rb
|
61
|
+
- examples/rope_examples/sales_report/lib/helpers.rb
|
62
|
+
- examples/rope_examples/sales_report/lib/init.rb
|
81
63
|
- examples/rope_examples/sales_report/lib/reports/sales.rb
|
82
|
-
- examples/rope_examples/sales_report/log/ruport.log
|
83
|
-
- examples/rope_examples/sales_report/output/books.pdf
|
84
|
-
- examples/rope_examples/sales_report/output/books.txt
|
85
|
-
- examples/rope_examples/sales_report/test/test_sales.rb
|
86
64
|
- examples/rope_examples/sales_report/util/build
|
87
65
|
- examples/rope_examples/sales_report/util/sql_exec
|
66
|
+
- examples/rope_examples/itunes/sql
|
67
|
+
- examples/rope_examples/itunes/test
|
68
|
+
- examples/rope_examples/itunes/output
|
69
|
+
- examples/rope_examples/itunes/log
|
70
|
+
- examples/rope_examples/itunes/config
|
71
|
+
- examples/rope_examples/itunes/lib
|
72
|
+
- examples/rope_examples/itunes/data
|
73
|
+
- examples/rope_examples/itunes/util
|
74
|
+
- examples/rope_examples/itunes/templates
|
75
|
+
- examples/rope_examples/itunes/Rakefile
|
76
|
+
- examples/rope_examples/itunes/README
|
77
|
+
- examples/rope_examples/itunes/test/test_playlist.rb
|
78
|
+
- examples/rope_examples/itunes/log/ruport.log
|
79
|
+
- examples/rope_examples/itunes/config/ruport_config.rb
|
80
|
+
- examples/rope_examples/itunes/lib/reports
|
81
|
+
- examples/rope_examples/itunes/lib/reports.rb
|
82
|
+
- examples/rope_examples/itunes/lib/helpers.rb
|
83
|
+
- examples/rope_examples/itunes/lib/init.rb
|
84
|
+
- examples/rope_examples/itunes/lib/reports/playlist.rb
|
85
|
+
- examples/rope_examples/itunes/data/mix.txt
|
86
|
+
- examples/rope_examples/itunes/util/build
|
87
|
+
- examples/rope_examples/itunes/util/sql_exec
|
88
88
|
- lib/ruport
|
89
|
-
- lib/ruport.rb
|
90
89
|
- lib/uport.rb
|
91
|
-
- lib/ruport
|
92
|
-
- lib/ruport/config.rb
|
93
|
-
- lib/ruport/data
|
94
|
-
- lib/ruport/data.rb
|
95
|
-
- lib/ruport/extensions.rb
|
90
|
+
- lib/ruport.rb
|
96
91
|
- lib/ruport/format
|
97
|
-
- lib/ruport/
|
98
|
-
- lib/ruport/
|
92
|
+
- lib/ruport/query
|
93
|
+
- lib/ruport/renderer
|
94
|
+
- lib/ruport/data
|
95
|
+
- lib/ruport/report
|
99
96
|
- lib/ruport/layout
|
100
97
|
- lib/ruport/layout.rb
|
101
|
-
- lib/ruport/
|
102
|
-
- lib/ruport/
|
98
|
+
- lib/ruport/attempt.rb
|
99
|
+
- lib/ruport/generator.rb
|
100
|
+
- lib/ruport/format.rb
|
101
|
+
- lib/ruport/extensions.rb
|
102
|
+
- lib/ruport/system_extensions.rb
|
103
103
|
- lib/ruport/query.rb
|
104
|
-
- lib/ruport/
|
104
|
+
- lib/ruport/config.rb
|
105
105
|
- lib/ruport/renderer.rb
|
106
|
-
- lib/ruport/
|
106
|
+
- lib/ruport/mailer.rb
|
107
|
+
- lib/ruport/data.rb
|
107
108
|
- lib/ruport/report.rb
|
108
|
-
- lib/ruport/system_extensions.rb
|
109
|
-
- lib/ruport/data/groupable.rb
|
110
|
-
- lib/ruport/data/record.rb
|
111
|
-
- lib/ruport/data/table.rb
|
112
|
-
- lib/ruport/data/taggable.rb
|
113
|
-
- lib/ruport/format/csv.rb
|
114
|
-
- lib/ruport/format/html.rb
|
115
109
|
- lib/ruport/format/latex.rb
|
116
|
-
- lib/ruport/format/pdf.rb
|
117
110
|
- lib/ruport/format/plugin.rb
|
118
111
|
- lib/ruport/format/svg.rb
|
119
|
-
- lib/ruport/format/text.rb
|
120
112
|
- lib/ruport/format/xml.rb
|
121
|
-
- lib/ruport/
|
113
|
+
- lib/ruport/format/html.rb
|
114
|
+
- lib/ruport/format/text.rb
|
115
|
+
- lib/ruport/format/pdf.rb
|
116
|
+
- lib/ruport/format/csv.rb
|
122
117
|
- lib/ruport/query/sql_split.rb
|
123
118
|
- lib/ruport/renderer/graph.rb
|
124
119
|
- lib/ruport/renderer/table.rb
|
120
|
+
- lib/ruport/data/record.rb
|
121
|
+
- lib/ruport/data/groupable.rb
|
122
|
+
- lib/ruport/data/taggable.rb
|
123
|
+
- lib/ruport/data/table.rb
|
125
124
|
- lib/ruport/report/graph.rb
|
126
|
-
-
|
125
|
+
- lib/ruport/layout/component.rb
|
127
126
|
- test/samples
|
128
|
-
- test/
|
129
|
-
- test/test_format_text.rb
|
130
|
-
- test/test_graph_renderer.rb
|
127
|
+
- test/test_record.rb
|
131
128
|
- test/test_groupable.rb
|
132
|
-
- test/
|
129
|
+
- test/test_table.rb
|
130
|
+
- test/test_graph_renderer.rb
|
131
|
+
- test/test_ruport.rb
|
132
|
+
- test/test_format_text.rb
|
133
|
+
- test/_test_database.rb
|
133
134
|
- test/test_query.rb
|
134
|
-
- test/
|
135
|
+
- test/test_config.rb
|
136
|
+
- test/test_taggable.rb
|
135
137
|
- test/test_renderer.rb
|
136
|
-
- test/
|
137
|
-
- test/test_ruport.rb
|
138
|
+
- test/test_mailer.rb
|
138
139
|
- test/test_sql_split.rb
|
139
|
-
- test/
|
140
|
+
- test/test_report.rb
|
140
141
|
- test/test_table_renderer.rb
|
141
|
-
- test/
|
142
|
-
- test/samples/
|
142
|
+
- test/samples/test.yaml
|
143
|
+
- test/samples/query_test.sql
|
143
144
|
- test/samples/data.csv
|
145
|
+
- test/samples/foo.rtxt
|
144
146
|
- test/samples/data.tsv
|
145
|
-
- test/samples/dates.csv
|
146
|
-
- test/samples/document.xml
|
147
147
|
- test/samples/erb_test.sql
|
148
|
-
- test/samples/foo.rtxt
|
149
|
-
- test/samples/query_test.sql
|
150
|
-
- test/samples/ruport_test.sql
|
151
148
|
- test/samples/stonecodeblog.sql
|
149
|
+
- test/samples/ruport_test.sql
|
150
|
+
- test/samples/addressbook.csv
|
151
|
+
- test/samples/dates.csv
|
152
|
+
- test/samples/document.xml
|
152
153
|
- test/samples/test.sql
|
153
|
-
- test/samples/test.yaml
|
154
154
|
- bin/rope
|
155
155
|
- Rakefile
|
156
156
|
- setup.rb
|
@@ -159,20 +159,20 @@ files:
|
|
159
159
|
- TODO
|
160
160
|
- AUTHORS
|
161
161
|
test_files:
|
162
|
-
- test/
|
163
|
-
- test/test_format_text.rb
|
164
|
-
- test/test_graph_renderer.rb
|
162
|
+
- test/test_record.rb
|
165
163
|
- test/test_groupable.rb
|
166
|
-
- test/
|
164
|
+
- test/test_table.rb
|
165
|
+
- test/test_graph_renderer.rb
|
166
|
+
- test/test_ruport.rb
|
167
|
+
- test/test_format_text.rb
|
167
168
|
- test/test_query.rb
|
168
|
-
- test/
|
169
|
+
- test/test_config.rb
|
170
|
+
- test/test_taggable.rb
|
169
171
|
- test/test_renderer.rb
|
170
|
-
- test/
|
171
|
-
- test/test_ruport.rb
|
172
|
+
- test/test_mailer.rb
|
172
173
|
- test/test_sql_split.rb
|
173
|
-
- test/
|
174
|
+
- test/test_report.rb
|
174
175
|
- test/test_table_renderer.rb
|
175
|
-
- test/test_taggable.rb
|
176
176
|
rdoc_options:
|
177
177
|
- --title
|
178
178
|
- Ruport Documentation
|