table_setter 0.2.11 → 0.2.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.
@@ -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
-