table_setter 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,172 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ describe TableSetter::Table do
4
+ it 'should return the latest yaml modification time' do
5
+ `touch #{TableSetter::Table.table_path('example')}`
6
+ assert_equal TableSetter::Table.fresh_yaml_time,
7
+ File.new(TableSetter::Table.table_path('example')).mtime
8
+ end
9
+ end
10
+
11
+ describe TableSetter::Table do
12
+ before do
13
+ @table = TableSetter::Table.new("example_local")
14
+ end
15
+
16
+ it "should load from a google key, and defer loading when asked" do
17
+ table = TableSetter::Table.new("example", :defer => true)
18
+ assert_equal table.data, nil
19
+ table.load
20
+ assert !table.data.nil?
21
+ assert !table.data.headers.nil?
22
+ end
23
+
24
+ it 'should be able to find out if a given table exists' do
25
+ assert TableSetter::Table.exists?("non_existent_table") == false
26
+ assert TableSetter::Table.exists?("example")
27
+ end
28
+
29
+ it "should have a slug" do
30
+ assert_equal @table.slug, "example_local"
31
+ end
32
+
33
+ it "should have a deck" do
34
+ assert !@table.deck.nil?
35
+ end
36
+
37
+ it "should have 250 items per page" do
38
+ assert_equal @table.per_page, 250
39
+ end
40
+
41
+ it "should be sortable" do
42
+ assert_equal @table.sortable?, false
43
+ end
44
+
45
+ it "should have a footer" do
46
+ assert !@table.footer.nil?
47
+ end
48
+
49
+ it "should have a title" do
50
+ assert !@table.title.nil?
51
+ end
52
+
53
+ it "should have 5805 rows" do
54
+ assert_equal @table.data.rows.length, 5805
55
+ end
56
+
57
+ it "should be stylish" do
58
+ assert_equal @table.data.rows[1].column_for('State').style, 'text-align:left;'
59
+ assert_equal @table.data.rows[1].column_for('Project Description').style, 'text-align:right;'
60
+ end
61
+
62
+ it "should have stylish headers" do
63
+ assert_equal @table.data.headers[0].style, 'text-align:left;'
64
+ assert_equal @table.data.headers[4].style.length, 0
65
+ end
66
+
67
+ it "should be formatted" do
68
+ assert_equal @table.data.rows[1].column_for('ARRA Funds Obligated').to_s, '$154,446'
69
+ end
70
+
71
+ end
72
+
73
+
74
+ describe TableSetter::Table, "with hard pagination" do
75
+ before do
76
+ @data = TableSetter::Table.new("example_local")
77
+ end
78
+
79
+ it "should not be sortable" do
80
+ assert_equal @data.sortable?, false
81
+ end
82
+
83
+ it "should be paginated" do
84
+ assert_equal @data.hard_paginate?, true
85
+ end
86
+
87
+ it "should paginate based on a page" do
88
+ @data.paginate! 3
89
+ assert_equal @data.page, 3
90
+ assert_equal @data.prev_page, 2
91
+ assert_equal @data.next_page, 4
92
+ assert_equal @data.data.rows.length, @data.per_page
93
+ assert_equal @data.data.rows[0].column_for('State').to_s, 'CALIFORNIA'
94
+ end
95
+
96
+ it 'should not paginate when given a bad value' do
97
+ assert_raises(ArgumentError) {@data.paginate!(-1)}
98
+ assert_raises(ArgumentError) {@data.paginate!(10000000)}
99
+ end
100
+
101
+ it 'should handle first page' do
102
+ @data.paginate! 1
103
+ assert_equal @data.page, 1
104
+ assert_equal @data.prev_page, nil
105
+ end
106
+
107
+ it 'should handle last page' do
108
+ @data.paginate! @data.total_pages
109
+ assert_equal @data.page, @data.total_pages
110
+ assert_equal @data.next_page, nil
111
+ end
112
+ end
113
+
114
+
115
+ describe TableSetter::Table, "with faceting and macros" do
116
+ before do
117
+ @data = TableSetter::Table.new("example_faceted")
118
+ @tables = @data.facets
119
+ end
120
+
121
+ it 'should load a faceted_table' do
122
+ data = TableSetter::Table.new("example_faceted", :defer=> true)
123
+ assert data.facets.nil?
124
+ data.load
125
+ tables = data.facets
126
+ assert_equal tables.length, 56
127
+ end
128
+
129
+ it "should be faceted" do
130
+ assert @data.faceted?
131
+ end
132
+
133
+ it "should not be sortable" do
134
+ assert_equal @data.sortable?, false
135
+ end
136
+
137
+
138
+ it "should have 3 tables" do
139
+ assert_equal @tables.length, 56
140
+ end
141
+
142
+ it "should have $212,774,529 for Alabama" do
143
+ assert_equal @tables[0].total_for('Total Appropriation').to_s, '$212,774,529'
144
+ end
145
+
146
+ it "should have $416,075,044 for North Carolina with dead row" do
147
+ assert_equal @tables[35].total_for('Total Appropriation').to_s, '$423,318,645'
148
+ end
149
+ end
150
+
151
+ describe TableSetter::Table, "group fetchers" do
152
+ it "should return live tables" do
153
+ assert_equal TableSetter::Table.all.length, 1
154
+ end
155
+ end
156
+
157
+ describe TableSetter::Table, "with urls and google bars" do
158
+ before do
159
+ @table = TableSetter::Table.new("example_formatted")
160
+ end
161
+
162
+ it "should have a link row" do
163
+ assert_equal @table.data.rows[1].column_for('Agency Webpage').to_s, "<a href=\"http://www.hhs.gov/recovery/\" title=\"Health and Human Services\">Health and Human Services</a>"
164
+ end
165
+
166
+ it 'should show a bar' do
167
+ assert_equal @table.data.rows[1].column_for('Spent (%)').to_s, "<div class=\"bar\" style=\"width:42.0%\">42.0%</div>"
168
+ end
169
+ end
170
+
171
+
172
+
@@ -1,11 +1,6 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
- require 'rubygems'
3
+
4
4
  require 'table_setter'
5
- require 'spec'
6
- require 'rack/test'
7
- require 'spec/autorun'
8
5
  TableSetter.configure(File.join(File.dirname(__FILE__), "..", "template"))
9
- Spec::Runner.configure do |config|
10
-
11
- end
6
+ require 'minitest/autorun'
metadata CHANGED
@@ -1,183 +1,156 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: table_setter
3
- version: !ruby/object:Gem::Version
4
- hash: 1
5
- prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 11
10
- version: 0.2.11
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.12
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Jeff Larson
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-03-09 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: rspec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
11
+ date: 2012-03-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
33
20
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rack
37
21
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 19
44
- segments:
45
- - 1
46
- - 1
47
- - 0
48
- version: 1.1.0
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
49
34
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: thin
53
35
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 23
60
- segments:
61
- - 1
62
- - 2
63
- - 4
64
- version: 1.2.4
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: thin
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
65
48
  type: :runtime
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: table_fu
69
49
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
71
- none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 27
76
- segments:
77
- - 0
78
- - 3
79
- - 4
80
- version: 0.3.4
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: table_fu
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
81
62
  type: :runtime
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: sinatra
85
63
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
87
- none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 29
92
- segments:
93
- - 1
94
- - 2
95
- - 1
96
- version: 1.2.1
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
97
76
  type: :runtime
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
- name: sinatra-static-assets
101
77
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
103
- none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 17
108
- segments:
109
- - 1
110
- - 0
111
- - 3
112
- version: 1.0.3
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sinatra-static-assets
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
113
90
  type: :runtime
114
- version_requirements: *id006
115
- - !ruby/object:Gem::Dependency
116
- name: emk-sinatra-url-for
117
91
  prerelease: false
118
- requirement: &id007 !ruby/object:Gem::Requirement
119
- none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- hash: 21
124
- segments:
125
- - 0
126
- - 2
127
- - 1
128
- version: 0.2.1
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: emk-sinatra-url-for
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
129
104
  type: :runtime
130
- version_requirements: *id007
131
- - !ruby/object:Gem::Dependency
132
- name: curb
133
105
  prerelease: false
134
- requirement: &id008 !ruby/object:Gem::Requirement
135
- none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 29
140
- segments:
141
- - 0
142
- - 7
143
- - 15
144
- version: 0.7.15
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: curb
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
145
118
  type: :runtime
146
- version_requirements: *id008
147
- - !ruby/object:Gem::Dependency
148
- name: rdiscount
149
119
  prerelease: false
150
- requirement: &id009 !ruby/object:Gem::Requirement
151
- none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 31
156
- segments:
157
- - 1
158
- - 6
159
- - 8
160
- version: 1.6.8
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rdiscount
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
161
132
  type: :runtime
162
- version_requirements: *id009
163
- description: A sinatra based app for rendering CSVs hosted on google docs or locally in custom HTML
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ description: A sinatra based app for rendering CSVs hosted on google docs or locally
140
+ in custom HTML
164
141
  email: thejefflarson@gmail.com
165
- executables:
166
- - table-setter
142
+ executables:
167
143
  - table-setter
168
144
  extensions: []
169
-
170
- extra_rdoc_files:
171
- - LICENSE
172
- - README
173
- - TODO
174
- files:
145
+ extra_rdoc_files: []
146
+ files:
175
147
  - .document
148
+ - .gitignore
149
+ - Gemfile
176
150
  - LICENSE
177
151
  - README
178
152
  - Rakefile
179
153
  - TODO
180
- - VERSION.yml
181
154
  - bin/table-setter
182
155
  - doc/TableFu/Formatting.html
183
156
  - doc/TableSetter.html
@@ -243,16 +216,11 @@ files:
243
216
  - documentation/tables/javascripts/jquery.tablesorter.multipagefilter.js
244
217
  - documentation/tables/javascripts/jquery.tablesorter.pager.js
245
218
  - documentation/tables/stylesheets/stylesheet.css
246
- - index.html
247
219
  - lib/table_setter.rb
248
220
  - lib/table_setter/app.rb
249
221
  - lib/table_setter/command.rb
250
222
  - lib/table_setter/table.rb
251
- - spec/spec.opts
252
- - spec/spec_helper.rb
253
- - spec/table-setter-app_spec.rb
254
- - spec/table-setter-command_spec.rb
255
- - spec/table-setter_spec.rb
223
+ - lib/table_setter/version.rb
256
224
  - table_setter.gemspec
257
225
  - template/config.ru
258
226
  - template/lib/formatters.rb
@@ -275,39 +243,32 @@ files:
275
243
  - template/views/index.erb
276
244
  - template/views/layout.erb
277
245
  - template/views/table.erb
278
- has_rdoc: true
246
+ - test/table-setter-app_test.rb
247
+ - test/table-setter-command_test.rb
248
+ - test/table-setter_test.rb
249
+ - test/test_helper.rb
279
250
  homepage: http://propublica.github.com/table-setter/
280
- licenses: []
281
-
251
+ licenses:
252
+ - MIT
253
+ metadata: {}
282
254
  post_install_message:
283
255
  rdoc_options: []
284
-
285
- require_paths:
256
+ require_paths:
286
257
  - lib
287
- required_ruby_version: !ruby/object:Gem::Requirement
288
- none: false
289
- requirements:
290
- - - ">="
291
- - !ruby/object:Gem::Version
292
- hash: 3
293
- segments:
294
- - 0
295
- version: "0"
296
- required_rubygems_version: !ruby/object:Gem::Requirement
297
- none: false
298
- requirements:
299
- - - ">="
300
- - !ruby/object:Gem::Version
301
- hash: 3
302
- segments:
303
- - 0
304
- version: "0"
258
+ required_ruby_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ! '>='
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ required_rubygems_version: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ! '>='
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
305
268
  requirements: []
306
-
307
- rubyforge_project: table-setter
308
- rubygems_version: 1.6.2
269
+ rubyforge_project:
270
+ rubygems_version: 2.0.0
309
271
  signing_key:
310
- specification_version: 3
272
+ specification_version: 4
311
273
  summary: A sinatra based app for rendering CSVs in custom HTML
312
274
  test_files: []
313
-