rapport 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,112 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ Bundler.setup(:default, :development)
6
+ rescue Bundler::BundlerError => e
7
+ $stderr.puts e.message
8
+ $stderr.puts "Run `bundle install` to install missing gems"
9
+ exit e.status_code
10
+ end
11
+ require 'test/unit'
12
+ require 'shoulda'
13
+ require 'mocha'
14
+ require 'shared_should'
15
+ require 'always_execute'
16
+
17
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
18
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
19
+ require 'rapport'
20
+
21
+ Rapport.logger = Logger.new(
22
+ File.open(
23
+ File.join(
24
+ File.dirname(__FILE__),
25
+ 'logs',
26
+ 'test.log'
27
+ ),
28
+ 'w'
29
+ )
30
+ )
31
+
32
+ unless defined?(Rapport::ReportGeneratorTest)
33
+
34
+ class Object
35
+ class Bypass
36
+ instance_methods.each do |m|
37
+ undef_method m unless m =~ /^__/
38
+ end
39
+
40
+ def initialize(ref)
41
+ @ref = ref
42
+ end
43
+
44
+ def method_missing(sym, *args)
45
+ @ref.__send__(sym, *args)
46
+ end
47
+ end
48
+
49
+ def bypass
50
+ Bypass.new(self)
51
+ end
52
+ end
53
+
54
+ class Test::Unit::TestCase
55
+ share_should("return nil") do
56
+ assert_equal nil, @execute_result
57
+ end
58
+ end
59
+
60
+ class Rapport::TestReport
61
+ include Rapport::Report
62
+
63
+ def initialize(options = {})
64
+ self.options = options
65
+ end
66
+
67
+ def each_model
68
+ struct = Struct.new(:calc0, :m1)
69
+ (0..2).each do |r|
70
+ (0..3).map { |c| yield struct.new(r, c), :type0 }
71
+ end
72
+ raise options[:exception] if options[:exception]
73
+ (0..2).each do |r|
74
+ (0..3).map { |c| yield struct.new(r, c), :type1 }
75
+ end
76
+ end
77
+
78
+ column "Column 0", :calc0
79
+
80
+ column "Column 1", :calc1, :type0 => lambda { |m| 'T0 ' + m.m1.to_s },
81
+ :type1 => lambda { |m| 'T1 ' + m.m1.to_s },
82
+ :format => :happy
83
+
84
+ column "Column 2", :calc2, :map_to => lambda { |m| '~' + m.m1.to_s },
85
+ :format => lambda { |value| "Formatted" + value }
86
+
87
+ column "Column 3", :calc3, :map_to => lambda { |m| row_data[:calc2] + '~' + m.calc0.to_s },
88
+ :format_special => lambda { |value| "Formatted Special" + value }
89
+
90
+ end
91
+
92
+ class Rapport::ReportGeneratorTest
93
+ include Rapport::ReportGenerator
94
+
95
+ generate_with do |report|
96
+ output = "START\n"
97
+ each_row do |row|
98
+ output << (0...row.length).to_a.zip(row).join("-")
99
+ output << "\n"
100
+ end
101
+ output << "END\n"
102
+ output
103
+ end
104
+
105
+ cell_format(:happy) {|value| "Happy#{value}"}
106
+
107
+ cell_format(Time) {|value| value.strftime("%H:%m")}
108
+ end
109
+
110
+ end
111
+
112
+
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rapport
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
11
+ platform: ruby
12
+ authors:
13
+ - Andrew Wheeler
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-01-10 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ type: :development
22
+ name: rake
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ hash: 49
29
+ segments:
30
+ - 0
31
+ - 8
32
+ - 7
33
+ version: 0.8.7
34
+ prerelease: false
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ type: :development
38
+ name: shoulda
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 37
45
+ segments:
46
+ - 2
47
+ - 11
48
+ - 3
49
+ version: 2.11.3
50
+ prerelease: false
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ type: :development
54
+ name: mocha
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - "="
59
+ - !ruby/object:Gem::Version
60
+ hash: 43
61
+ segments:
62
+ - 0
63
+ - 9
64
+ - 8
65
+ version: 0.9.8
66
+ prerelease: false
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ type: :development
70
+ name: shared_should
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - "="
75
+ - !ruby/object:Gem::Version
76
+ hash: 61
77
+ segments:
78
+ - 0
79
+ - 8
80
+ - 1
81
+ version: 0.8.1
82
+ prerelease: false
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
85
+ type: :development
86
+ name: always_execute
87
+ requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - "="
91
+ - !ruby/object:Gem::Version
92
+ hash: 27
93
+ segments:
94
+ - 0
95
+ - 0
96
+ - 2
97
+ version: 0.0.2
98
+ prerelease: false
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ type: :development
102
+ name: bundler
103
+ requirement: &id006 !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ~>
107
+ - !ruby/object:Gem::Version
108
+ hash: 23
109
+ segments:
110
+ - 1
111
+ - 0
112
+ - 0
113
+ version: 1.0.0
114
+ prerelease: false
115
+ version_requirements: *id006
116
+ - !ruby/object:Gem::Dependency
117
+ type: :development
118
+ name: jeweler
119
+ requirement: &id007 !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ hash: 7
125
+ segments:
126
+ - 1
127
+ - 6
128
+ - 4
129
+ version: 1.6.4
130
+ prerelease: false
131
+ version_requirements: *id007
132
+ - !ruby/object:Gem::Dependency
133
+ type: :development
134
+ name: rcov
135
+ requirement: &id008 !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ hash: 3
141
+ segments:
142
+ - 0
143
+ version: "0"
144
+ prerelease: false
145
+ version_requirements: *id008
146
+ - !ruby/object:Gem::Dependency
147
+ type: :development
148
+ name: rubyzip
149
+ requirement: &id009 !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - "="
153
+ - !ruby/object:Gem::Version
154
+ hash: 49
155
+ segments:
156
+ - 0
157
+ - 9
158
+ - 5
159
+ version: 0.9.5
160
+ prerelease: false
161
+ version_requirements: *id009
162
+ - !ruby/object:Gem::Dependency
163
+ type: :development
164
+ name: fastercsv
165
+ requirement: &id010 !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - "="
169
+ - !ruby/object:Gem::Version
170
+ hash: 1
171
+ segments:
172
+ - 1
173
+ - 5
174
+ - 1
175
+ version: 1.5.1
176
+ prerelease: false
177
+ version_requirements: *id010
178
+ description: Allows you to create tablular reports and output them to various formats interchangeably.
179
+ email: andrew.wheeler@bookrenter.com
180
+ executables: []
181
+
182
+ extensions: []
183
+
184
+ extra_rdoc_files:
185
+ - LICENSE.txt
186
+ - README.md
187
+ files:
188
+ - .document
189
+ - .tmtags
190
+ - Gemfile
191
+ - Gemfile.lock
192
+ - LICENSE.txt
193
+ - README.md
194
+ - Rakefile
195
+ - VERSION
196
+ - lib/helpers.rb
197
+ - lib/load_rapport.rb
198
+ - lib/rapport.rb
199
+ - lib/rapport/report.rb
200
+ - lib/rapport/report_generator.rb
201
+ - lib/rapport/report_generators/report_generator_csv.rb
202
+ - lib/rapport/report_generators/report_generator_fake.rb
203
+ - lib/test.rb
204
+ - rapport.gemspec
205
+ - test/logs/test.log
206
+ - test/rapport/report_generator_test.rb
207
+ - test/rapport/report_generators/report_generator_csv_test.rb
208
+ - test/rapport/report_test.rb
209
+ - test/test_helper.rb
210
+ homepage: http://github.com/jawheeler/rapport
211
+ licenses:
212
+ - MIT
213
+ post_install_message:
214
+ rdoc_options: []
215
+
216
+ require_paths:
217
+ - lib
218
+ required_ruby_version: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ hash: 3
224
+ segments:
225
+ - 0
226
+ version: "0"
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
235
+ version: "0"
236
+ requirements: []
237
+
238
+ rubyforge_project:
239
+ rubygems_version: 1.8.6
240
+ signing_key:
241
+ specification_version: 3
242
+ summary: Rapport Reporting
243
+ test_files: []
244
+