table_setter 0.2.5 → 0.2.6

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 CHANGED
@@ -13,13 +13,13 @@ begin
13
13
  gem.rubyforge_project = "table-setter"
14
14
  gem.add_development_dependency "rspec"
15
15
  gem.add_dependency "rack", ">= 1.1.0"
16
- gem.add_dependency "thin", ">= 1.2.5"
17
- gem.add_dependency "table_fu", ">= 0.3.2"
18
- gem.add_dependency "sinatra", ">= 1.0.0"
16
+ gem.add_dependency "thin", ">= 1.2.4"
17
+ gem.add_dependency "table_fu", ">= 0.3.4"
18
+ gem.add_dependency "sinatra", ">= 1.2.1"
19
19
  gem.add_dependency "sinatra-static-assets", ">= 0.5.0"
20
20
  gem.add_dependency "emk-sinatra-url-for", ">= 0.2.1"
21
- gem.add_dependency "curb", ">= 0.6.6.0"
22
- gem.add_dependency "rdiscount", ">= 1.6.3.1"
21
+ gem.add_dependency "curb", ">= 0.7.15"
22
+ gem.add_dependency "rdiscount", ">= 1.6.8"
23
23
  gem.executables << "table-setter"
24
24
  end
25
25
 
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- :patch: 5
3
- :build:
4
2
  :major: 0
3
+ :build:
5
4
  :minor: 2
5
+ :patch: 6
@@ -239,6 +239,12 @@ script/generate table-setter</pre>
239
239
  <a href="http://github.com/palewire">Ben Welsh</a>, and
240
240
  <a href="http://github.com/jpmckinney">James McKinney</a>.</p>
241
241
  <h2><a id="changes" href="#toc">Change Log</a></h2>
242
+ <strong>0.2.6</strong>
243
+ <p>Fixed a bug in <strong>table-setter start</strong> thanks to <a href="http://github.com/jfkeefe">John Keefe</a>
244
+ merged in some more changes from <a href="http://github.com/jpmckinney">James McKinney</a>
245
+ and added a <strong>lib/formatters.rb</strong> in the <strong>template</strong>, which is the standard
246
+ place to stash your custom formatters. Also, the <strong>build</strong> command
247
+ now errors loudly and exits if there's an error.</p>
242
248
  <strong>0.2.5</strong>
243
249
  <p>Loads of bullet-proofing from <a href="http://github.com/jpmckinney">James McKinney</a> and js fixes from <a href="http://github.com/palewire">Ben Welsh</a>, you'll want to re-run <strong>table-setter install</strong> to grab the changes, as with previous releases.</p>
244
250
  <strong>0.2.4</strong>
data/index.html CHANGED
@@ -9,7 +9,7 @@
9
9
  </head>
10
10
  <body>
11
11
  <a href="http://www.propublica.org" class="propublica">&nbsp;</a>
12
- <h1>TableSetter <small>&ndash; Version: 0.2.5</small></h1>
12
+ <h1>TableSetter <small>&ndash; Version: 0.2.6</small></h1>
13
13
  <p><a href="https://github.com/propublica/table-setter">TableSetter</a> is a Ruby app that provides an easy way to present CSVs hosted locally or remotely (e.g. on google, etc) in custom HTML. TableSetter in the wild: <a href="http://projects.propublica.org/tables/failed-banks">a list of all stimulus projects from last year</a>, <a href="http://projects.propublica.org/tables/stimulus-spending-progress">the stimulus spending progress</a>, or <a href="http://projects.propublica.org/tables/failed-banks">a list of failed banks due to the last recession</a>.</p>
14
14
  <p>Each table is filterable and sortable on multiple columns. Also each column can be formatted in one of many different styles. In production mode, <strong>TableSetter</strong> provides valid expires headers and can be coupled with an upstream cache like <a href="http://rtomayko.github.com/rack-cache/">Rack::Cache</a> or varnish for speedy presentation.</p>
15
15
  <h2><a id="toc">Table of Contents</a></h2>
@@ -234,6 +234,12 @@ script/generate table-setter</pre>
234
234
  <a href="http://github.com/palewire">Ben Welsh</a>, and
235
235
  <a href="http://github.com/jpmckinney">James McKinney</a>.</p>
236
236
  <h2><a id="changes" href="#toc">Change Log</a></h2>
237
+ <strong>0.2.6</strong>
238
+ <p>Fixed a bug in <strong>table-setter start</strong> thanks to <a href="http://github.com/jfkeefe">John Keefe</a>
239
+ merged in some more changes from <a href="http://github.com/jpmckinney">James McKinney</a>
240
+ and added a <strong>lib/formatters.rb</strong> in the <strong>template</strong>, which is the standard
241
+ place to stash your custom formatters. Also, the <strong>build</strong> command
242
+ now errors loudly and exits if there's an error.</p>
237
243
  <strong>0.2.5</strong>
238
244
  <p>Loads of bullet-proofing from <a href="http://github.com/jpmckinney">James McKinney</a> and js fixes from <a href="http://github.com/palewire">Ben Welsh</a>, you'll want to re-run <strong>table-setter install</strong> to grab the changes, as with previous releases.</p>
239
245
  <strong>0.2.4</strong>
@@ -74,19 +74,24 @@ options:
74
74
 
75
75
  def build_rack
76
76
  prefix = @prefix
77
+ config = File.join(@directory, "config.ru")
78
+
77
79
  Rack::Builder.app do
78
80
  map prefix do
79
- use Rack::CommonLogger, STDERR
80
- use Rack::ShowExceptions
81
- use Rack::Lint
82
- run TableSetter::App
81
+ if(File.exists? config)
82
+ run Rack::Builder.parse_file(config).first
83
+ else
84
+ use Rack::CommonLogger, STDERR
85
+ use Rack::ShowExceptions
86
+ use Rack::Lint
87
+ run TableSetter::App
88
+ end
83
89
  end
84
90
  end
85
91
  end
86
92
 
87
93
  def build_index
88
- install_file(@request.request("GET", "#{@prefix}").body,
89
- File.join(@out_dir, "index.html"))
94
+ build_file("#{@prefix}", "index.html")
90
95
  end
91
96
 
92
97
  def build_assets
@@ -95,18 +100,26 @@ options:
95
100
  end
96
101
  end
97
102
 
103
+ def build_file(url, out)
104
+ response = @request.get(url)
105
+ if response.errors.length > 0
106
+ puts "ERROR on #{url}:\n#{response.errors}" and exit 1
107
+ end
108
+ install_file(response.body, File.join(@out_dir, out))
109
+ end
110
+
98
111
  def build_tables
99
112
  TableSetter::Table.all.each do |table|
100
- return if !table.live
113
+ next if !table.live
101
114
  puts "Building #{table.slug}"
102
- install_file(@request.request("GET", "#{@prefix}#{table.slug}/").body,
103
- File.join(@out_dir, table.slug, "index.html"))
115
+ build_file("#{@prefix}#{table.slug}/", File.join(table.slug, "index.html"))
116
+
104
117
  if table.hard_paginate?
105
118
  table.load
106
119
  (1..table.total_pages).each do |page|
107
120
  puts "Building #{table.slug} #{page} of #{table.total_pages}"
108
- install_file(@request.request("GET", "#{@prefix}#{table.slug}/#{page}/").body,
109
- File.join(@out_dir, table.slug, page.to_s, "index.html"))
121
+ build_file("#{@prefix}#{table.slug}/#{page}/",
122
+ File.join(table.slug, page.to_s, "index.html"))
110
123
  end
111
124
  end
112
125
  end
@@ -26,6 +26,9 @@ module TableSetter
26
26
  # We're keeping this explicit to control against unnecessary http requests.
27
27
  def load
28
28
  csv = csv_data
29
+ if @table_opts[:column_options]
30
+ @table_opts[:column_options]['style'] ||= {}
31
+ end
29
32
  @data = TableFu.new(csv_data, @table_opts[:column_options] || {})
30
33
  if @table_opts[:faceting]
31
34
  @data.col_opts[:ignored] = [@table_opts[:faceting][:facet_by]]
data/table_setter.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{table_setter}
8
- s.version = "0.2.5"
8
+ s.version = "0.2.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jeff Larson"]
12
- s.date = %q{2011-02-19}
12
+ s.date = %q{2011-04-03}
13
13
  s.description = %q{A sinatra based app for rendering CSVs hosted on google docs or locally in custom HTML}
14
14
  s.email = %q{thejefflarson@gmail.com}
15
15
  s.executables = ["table-setter", "table-setter"]
@@ -102,6 +102,7 @@ Gem::Specification.new do |s|
102
102
  "spec/table-setter_spec.rb",
103
103
  "table_setter.gemspec",
104
104
  "template/config.ru",
105
+ "template/lib/formatters.rb",
105
106
  "template/public/favicon.ico",
106
107
  "template/public/images/th_arrow_asc.gif",
107
108
  "template/public/images/th_arrow_desc.gif",
@@ -141,34 +142,34 @@ Gem::Specification.new do |s|
141
142
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
142
143
  s.add_development_dependency(%q<rspec>, [">= 0"])
143
144
  s.add_runtime_dependency(%q<rack>, [">= 1.1.0"])
144
- s.add_runtime_dependency(%q<thin>, [">= 1.2.5"])
145
- s.add_runtime_dependency(%q<table_fu>, [">= 0.3.2"])
146
- s.add_runtime_dependency(%q<sinatra>, [">= 1.0.0"])
145
+ s.add_runtime_dependency(%q<thin>, [">= 1.2.4"])
146
+ s.add_runtime_dependency(%q<table_fu>, [">= 0.3.4"])
147
+ s.add_runtime_dependency(%q<sinatra>, [">= 1.2.1"])
147
148
  s.add_runtime_dependency(%q<sinatra-static-assets>, [">= 0.5.0"])
148
149
  s.add_runtime_dependency(%q<emk-sinatra-url-for>, [">= 0.2.1"])
149
- s.add_runtime_dependency(%q<curb>, [">= 0.6.6.0"])
150
- s.add_runtime_dependency(%q<rdiscount>, [">= 1.6.3.1"])
150
+ s.add_runtime_dependency(%q<curb>, [">= 0.7.15"])
151
+ s.add_runtime_dependency(%q<rdiscount>, [">= 1.6.8"])
151
152
  else
152
153
  s.add_dependency(%q<rspec>, [">= 0"])
153
154
  s.add_dependency(%q<rack>, [">= 1.1.0"])
154
- s.add_dependency(%q<thin>, [">= 1.2.5"])
155
- s.add_dependency(%q<table_fu>, [">= 0.3.2"])
156
- s.add_dependency(%q<sinatra>, [">= 1.0.0"])
155
+ s.add_dependency(%q<thin>, [">= 1.2.4"])
156
+ s.add_dependency(%q<table_fu>, [">= 0.3.4"])
157
+ s.add_dependency(%q<sinatra>, [">= 1.2.1"])
157
158
  s.add_dependency(%q<sinatra-static-assets>, [">= 0.5.0"])
158
159
  s.add_dependency(%q<emk-sinatra-url-for>, [">= 0.2.1"])
159
- s.add_dependency(%q<curb>, [">= 0.6.6.0"])
160
- s.add_dependency(%q<rdiscount>, [">= 1.6.3.1"])
160
+ s.add_dependency(%q<curb>, [">= 0.7.15"])
161
+ s.add_dependency(%q<rdiscount>, [">= 1.6.8"])
161
162
  end
162
163
  else
163
164
  s.add_dependency(%q<rspec>, [">= 0"])
164
165
  s.add_dependency(%q<rack>, [">= 1.1.0"])
165
- s.add_dependency(%q<thin>, [">= 1.2.5"])
166
- s.add_dependency(%q<table_fu>, [">= 0.3.2"])
167
- s.add_dependency(%q<sinatra>, [">= 1.0.0"])
166
+ s.add_dependency(%q<thin>, [">= 1.2.4"])
167
+ s.add_dependency(%q<table_fu>, [">= 0.3.4"])
168
+ s.add_dependency(%q<sinatra>, [">= 1.2.1"])
168
169
  s.add_dependency(%q<sinatra-static-assets>, [">= 0.5.0"])
169
170
  s.add_dependency(%q<emk-sinatra-url-for>, [">= 0.2.1"])
170
- s.add_dependency(%q<curb>, [">= 0.6.6.0"])
171
- s.add_dependency(%q<rdiscount>, [">= 1.6.3.1"])
171
+ s.add_dependency(%q<curb>, [">= 0.7.15"])
172
+ s.add_dependency(%q<rdiscount>, [">= 1.6.8"])
172
173
  end
173
174
  end
174
175
 
data/template/config.ru CHANGED
@@ -4,10 +4,10 @@
4
4
  # enabled web server.
5
5
  #
6
6
  # For example this will spin up a thin instance:
7
- #
7
+ #
8
8
  # thin start -R ./config.ru
9
- #
10
- # To run it in apache you should have Passenger enabled, and follow the instructions in the
9
+ #
10
+ # To run it in apache you should have Passenger enabled, and follow the instructions in the
11
11
  # passenger docs:
12
12
  #
13
13
  # http://www.modrails.com/documentation/Users%20guide.html#_deploying_a_rack_based_ruby_application
@@ -16,6 +16,8 @@ require 'rubygems'
16
16
  require 'table_setter'
17
17
  TableSetter.configure(File.dirname(__FILE__))
18
18
 
19
+ # Include custom formatters
20
+ require "#{File.expand_path(File.dirname(__FILE__))}/lib/formatters.rb"
19
21
 
20
22
  # You should probably enable Rack::Cache if you're not behind a caching proxy, by uncommenting the
21
23
  # lines below:
@@ -26,7 +28,7 @@ TableSetter.configure(File.dirname(__FILE__))
26
28
  # :entitystore => "file:#{TableSetter.config_path}/tmp/body"
27
29
  #
28
30
  # You can tweak the cache timeout for TableSetter by setting the timeout variable on
29
- # TableSetter::App:
31
+ # TableSetter::App:
30
32
  #
31
33
  TableSetter::App.cache_timeout = 60 * 15 # 15 minutes
32
34
  #
@@ -0,0 +1,6 @@
1
+ class TableFu::Formatting
2
+ class << self
3
+ # If you want custom formatters for your tables include them here.
4
+ # Some examples: https://github.com/propublica/table-fu/blob/master/lib/table_fu/formatting.rb
5
+ end
6
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_setter
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 5
10
- version: 0.2.5
9
+ - 6
10
+ version: 0.2.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeff Larson
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-19 00:00:00 -05:00
18
+ date: 2011-04-03 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -56,12 +56,12 @@ dependencies:
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- hash: 21
59
+ hash: 23
60
60
  segments:
61
61
  - 1
62
62
  - 2
63
- - 5
64
- version: 1.2.5
63
+ - 4
64
+ version: 1.2.4
65
65
  type: :runtime
66
66
  version_requirements: *id003
67
67
  - !ruby/object:Gem::Dependency
@@ -72,12 +72,12 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- hash: 23
75
+ hash: 27
76
76
  segments:
77
77
  - 0
78
78
  - 3
79
- - 2
80
- version: 0.3.2
79
+ - 4
80
+ version: 0.3.4
81
81
  type: :runtime
82
82
  version_requirements: *id004
83
83
  - !ruby/object:Gem::Dependency
@@ -88,12 +88,12 @@ dependencies:
88
88
  requirements:
89
89
  - - ">="
90
90
  - !ruby/object:Gem::Version
91
- hash: 23
91
+ hash: 29
92
92
  segments:
93
93
  - 1
94
- - 0
95
- - 0
96
- version: 1.0.0
94
+ - 2
95
+ - 1
96
+ version: 1.2.1
97
97
  type: :runtime
98
98
  version_requirements: *id005
99
99
  - !ruby/object:Gem::Dependency
@@ -136,13 +136,12 @@ dependencies:
136
136
  requirements:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
- hash: 103
139
+ hash: 29
140
140
  segments:
141
141
  - 0
142
- - 6
143
- - 6
144
- - 0
145
- version: 0.6.6.0
142
+ - 7
143
+ - 15
144
+ version: 0.7.15
146
145
  type: :runtime
147
146
  version_requirements: *id008
148
147
  - !ruby/object:Gem::Dependency
@@ -153,13 +152,12 @@ dependencies:
153
152
  requirements:
154
153
  - - ">="
155
154
  - !ruby/object:Gem::Version
156
- hash: 97
155
+ hash: 31
157
156
  segments:
158
157
  - 1
159
158
  - 6
160
- - 3
161
- - 1
162
- version: 1.6.3.1
159
+ - 8
160
+ version: 1.6.8
163
161
  type: :runtime
164
162
  version_requirements: *id009
165
163
  description: A sinatra based app for rendering CSVs hosted on google docs or locally in custom HTML
@@ -257,6 +255,7 @@ files:
257
255
  - spec/table-setter_spec.rb
258
256
  - table_setter.gemspec
259
257
  - template/config.ru
258
+ - template/lib/formatters.rb
260
259
  - template/public/favicon.ico
261
260
  - template/public/images/th_arrow_asc.gif
262
261
  - template/public/images/th_arrow_desc.gif