table_setter 0.2.1 → 0.2.2
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/VERSION.yml +1 -1
- data/documentation/index.html.erb +3 -1
- data/index.html +4 -2
- data/lib/table_setter/command.rb +27 -28
- data/table_setter.gemspec +1 -1
- data/template/views/index.erb +1 -1
- metadata +3 -3
data/VERSION.yml
CHANGED
@@ -225,10 +225,12 @@ script/generate table-setter</pre>
|
|
225
225
|
<h2><a id="credits" href="#toc">Credits</a></h2>
|
226
226
|
<p><a href="http://github.com/thejefflarson">Jeff Larson</a> (Maintainer), <a href="http://github.com/brianboyer/">Brian Boyer</a>, <a href="http://github.com/kleinmatic">Scott Klein</a>, <a href="http://github.com/markpercival">Mark Percival</a>, <a href="http://github.com/seebq">Charles Brian Quinn</a>, <a href="http://github.com/bouvard">Christopher Groskopf</a>, and <a href="http://github.com/ryanmark">Ryan Mark</a>.</p>
|
227
227
|
<h2><a id="changes" href="#toc">Change Log</a></h2>
|
228
|
+
<strong>0.2.2</strong>
|
229
|
+
<p>Fixing long standing bug with empty prefixes in the <strong>build</strong> command.</p>
|
228
230
|
<strong>0.2.1</strong>
|
229
231
|
<p>Table Urls have an optional trailing slash. Fixes a bug in <strong>0.2.0</strong></p>
|
230
232
|
<strong>0.2.0</strong>
|
231
|
-
<p
|
233
|
+
<p>It's recommended not to use this version. <del><b>Backwards incompatible change:</b> Table urls no longer end in a trailing slash. Please modify the <strong>url_for</strong> calls in your templates to reflect the change.</del></p>
|
232
234
|
<strong>0.1.11</strong>
|
233
235
|
<p>Javascript Fixes. <b>Note:</b> You'll need to delete the javascript's folder in the config directory and run <strong>table-setter install</strong> to grab the changes.</p>
|
234
236
|
<strong>0.1.10</strong>
|
data/index.html
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
</head>
|
9
9
|
<body>
|
10
10
|
<a href="http://www.propublica.org" class="propublica"> </a>
|
11
|
-
<h1>TableSetter <small>– Version: 0.2.
|
11
|
+
<h1>TableSetter <small>– Version: 0.2.2</small></h1>
|
12
12
|
<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>
|
13
13
|
<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>
|
14
14
|
<h2><a id="toc">Table of Contents</a></h2>
|
@@ -222,10 +222,12 @@ script/generate table-setter</pre>
|
|
222
222
|
<h2><a id="credits" href="#toc">Credits</a></h2>
|
223
223
|
<p><a href="http://github.com/thejefflarson">Jeff Larson</a> (Maintainer), <a href="http://github.com/brianboyer/">Brian Boyer</a>, <a href="http://github.com/kleinmatic">Scott Klein</a>, <a href="http://github.com/markpercival">Mark Percival</a>, <a href="http://github.com/seebq">Charles Brian Quinn</a>, <a href="http://github.com/bouvard">Christopher Groskopf</a>, and <a href="http://github.com/ryanmark">Ryan Mark</a>.</p>
|
224
224
|
<h2><a id="changes" href="#toc">Change Log</a></h2>
|
225
|
+
<strong>0.2.2</strong>
|
226
|
+
<p>Fixing long standing bug with empty prefixes in the <strong>build</strong> command.</p>
|
225
227
|
<strong>0.2.1</strong>
|
226
228
|
<p>Table Urls have an optional trailing slash. Fixes a bug in <strong>0.2.0</strong></p>
|
227
229
|
<strong>0.2.0</strong>
|
228
|
-
<p
|
230
|
+
<p>It's recommended not to use this version. <del><b>Backwards incompatible change:</b> Table urls no longer end in a trailing slash. Please modify the <strong>url_for</strong> calls in your templates to reflect the change.</del></p>
|
229
231
|
<strong>0.1.11</strong>
|
230
232
|
<p>Javascript Fixes. <b>Note:</b> You'll need to delete the javascript's folder in the config directory and run <strong>table-setter install</strong> to grab the changes.</p>
|
231
233
|
<strong>0.1.10</strong>
|
data/lib/table_setter/command.rb
CHANGED
@@ -11,19 +11,20 @@ table-setter is a Sinatra application for rendering and processing CSVs from goo
|
|
11
11
|
|
12
12
|
Usage:
|
13
13
|
table-setter COMMAND path/to/table-setter/assets OPTIONS
|
14
|
-
|
14
|
+
|
15
15
|
commands:
|
16
16
|
start run the development server, for deployment use config.ru
|
17
17
|
install copy the table-setter assets into the the directory
|
18
18
|
build statically build tables in the ./out/ directory
|
19
|
-
|
19
|
+
|
20
20
|
options:
|
21
21
|
EOB
|
22
|
-
|
23
|
-
|
22
|
+
|
23
|
+
|
24
24
|
def initialize
|
25
25
|
@prefix = ""
|
26
26
|
parse_options
|
27
|
+
@prefix = "/#{@prefix}/".gsub(/^\/\//, "/")
|
27
28
|
command = ARGV.shift
|
28
29
|
@directory = ARGV.shift || '.'
|
29
30
|
TableSetter.configure @directory
|
@@ -34,12 +35,12 @@ options:
|
|
34
35
|
else puts BANNER
|
35
36
|
end
|
36
37
|
end
|
37
|
-
|
38
|
+
|
38
39
|
def start_server
|
39
40
|
app = build_rack
|
40
41
|
Rack::Handler::Thin.run app, :Port => "3000"
|
41
42
|
end
|
42
|
-
|
43
|
+
|
43
44
|
def install_assets
|
44
45
|
FileUtils.mkdir_p @directory unless File.exists? @directory
|
45
46
|
puts "\nInstalling TableSetter files...\n\n"
|
@@ -47,19 +48,17 @@ options:
|
|
47
48
|
copy_file path, File.join(TableSetter.config_path, path.gsub(ROOT + "/template/", "/"))
|
48
49
|
end
|
49
50
|
end
|
50
|
-
|
51
51
|
|
52
|
-
|
53
52
|
def build_out
|
54
53
|
@out_dir = File.join(TableSetter.config_path, 'out', @prefix)
|
55
54
|
puts "\nBuilding your TableSetter files...\n\n"
|
56
55
|
app = build_rack
|
57
|
-
request = Rack::MockRequest.new(app)
|
58
|
-
build_index
|
56
|
+
@request = Rack::MockRequest.new(app)
|
57
|
+
build_index
|
59
58
|
build_assets
|
60
|
-
build_tables
|
59
|
+
build_tables
|
61
60
|
end
|
62
|
-
|
61
|
+
|
63
62
|
private
|
64
63
|
# Option parsing
|
65
64
|
def parse_options
|
@@ -72,11 +71,11 @@ options:
|
|
72
71
|
@option_parser.banner = BANNER
|
73
72
|
@option_parser.parse! ARGV
|
74
73
|
end
|
75
|
-
|
74
|
+
|
76
75
|
def build_rack
|
77
76
|
prefix = @prefix
|
78
77
|
Rack::Builder.app do
|
79
|
-
map
|
78
|
+
map prefix do
|
80
79
|
use Rack::CommonLogger, STDERR
|
81
80
|
use Rack::ShowExceptions
|
82
81
|
use Rack::Lint
|
@@ -84,57 +83,57 @@ options:
|
|
84
83
|
end
|
85
84
|
end
|
86
85
|
end
|
87
|
-
|
88
|
-
def build_index
|
89
|
-
install_file(request.request("GET", "
|
86
|
+
|
87
|
+
def build_index
|
88
|
+
install_file(@request.request("GET", "#{@prefix}").body,
|
90
89
|
File.join(@out_dir, "index.html"))
|
91
90
|
end
|
92
|
-
|
91
|
+
|
93
92
|
def build_assets
|
94
93
|
Dir[TableSetter.config_path + "/public/**/*"].each do |path|
|
95
94
|
copy_file path, File.join(path.gsub(TableSetter.config_path + "/public/", "#{@out_dir}/"))
|
96
95
|
end
|
97
96
|
end
|
98
|
-
|
99
|
-
def build_tables
|
97
|
+
|
98
|
+
def build_tables
|
100
99
|
TableSetter::Table.all.each do |table|
|
101
100
|
return if !table.live
|
102
101
|
puts "Building #{table.slug}"
|
103
|
-
install_file(request.request("GET", "
|
102
|
+
install_file(@request.request("GET", "#{@prefix}#{table.slug}/").body,
|
104
103
|
File.join(@out_dir, table.slug, "index.html"))
|
105
104
|
if table.hard_paginate?
|
106
105
|
table.load
|
107
106
|
(1..table.total_pages).each do |page|
|
108
107
|
puts "Building #{table.slug} #{page} of #{table.total_pages}"
|
109
|
-
install_file(request.request("GET", "
|
108
|
+
install_file(@request.request("GET", "#{@prefix}#{table.slug}/#{page}/").body,
|
110
109
|
File.join(@out_dir, table.slug, page.to_s, "index.html"))
|
111
110
|
end
|
112
111
|
end
|
113
112
|
end
|
114
113
|
end
|
115
|
-
|
114
|
+
|
116
115
|
def base_files
|
117
116
|
Dir[ROOT + "/template/**/*"]
|
118
117
|
end
|
119
|
-
|
118
|
+
|
120
119
|
def copy_file(source, dest)
|
121
120
|
ensure_directory dest
|
122
121
|
exists = File.exists? dest
|
123
122
|
FileUtils.cp_r(source, dest) unless exists
|
124
123
|
puts "#{exists ? "exists" : "created"}\t#{dest}"
|
125
124
|
end
|
126
|
-
|
125
|
+
|
127
126
|
def ensure_directory(dest)
|
128
127
|
expanded_path = File.dirname dest
|
129
128
|
FileUtils.mkdir_p(expanded_path) unless File.exists?(expanded_path)
|
130
129
|
end
|
131
|
-
|
130
|
+
|
132
131
|
def install_file(body, dest)
|
133
132
|
ensure_directory dest
|
134
133
|
File.open(dest, "w") do |file|
|
135
134
|
file.write(body)
|
136
135
|
end
|
137
136
|
end
|
138
|
-
|
137
|
+
|
139
138
|
end
|
140
|
-
end
|
139
|
+
end
|
data/table_setter.gemspec
CHANGED
data/template/views/index.erb
CHANGED
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:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jeff Larson
|