son_of_a_batch 0.0.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.
@@ -0,0 +1,8 @@
1
+ #
2
+ # Private settings -- DO NOT check this into your repo.
3
+ #
4
+ # copy this file (@config/son_of_a_batch-private.example.rb@) to
5
+ # @config/son_of_a_batch-private.rb@ and enter your keys, etc.
6
+ #
7
+
8
+ config[:infochimps_apikey] = 'your_mom'
@@ -0,0 +1,5 @@
1
+ #
2
+ # Private settings -- DO NOT check this into your repo.
3
+ #
4
+
5
+ config[:infochimps_apikey] = 'your_mom'
@@ -0,0 +1,19 @@
1
+ #
2
+ # General settings -- check this into your repo.
3
+ # For private settings, copy @config/son_of_a_batch-private.example.rb@ to
4
+ # @config/son_of_a_batch-private.rb@ and enter your keys, etc.
5
+ #
6
+
7
+ p ['loading config', __FILE__]
8
+
9
+ import 'son_of_a_batch-private'
10
+
11
+ config[:template] = {
12
+ :layout_engine => :haml,
13
+ :views => './app/views'
14
+ }
15
+ config[:template_engines] = {
16
+ :haml => {
17
+ :escape_html => true
18
+ }
19
+ }
@@ -0,0 +1,72 @@
1
+ RACK_ENV = ENV["RACK_ENV"] ||= "development" unless defined? RACK_ENV
2
+ module Goliath
3
+ Goliath::ROOT_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..')) unless defined?(Goliath::ROOT_DIR)
4
+ def self.root_path *dirs
5
+ File.join(Goliath::ROOT_DIR, *dirs)
6
+ end
7
+ end
8
+ $LOAD_PATH.unshift(Goliath.root_path("lib")) unless $LOAD_PATH.include?(Goliath.root_path("lib"))
9
+ is_production = !!ENV['GEM_STRICT']
10
+
11
+ if is_production
12
+ # Verify the environment has been bootstrapped by checking that the
13
+ # .bundle/loadpath file exists.
14
+ if !File.exist?(Goliath.root_path(".bundle/loadpath"))
15
+ warn "WARN The gem environment is out-of-date or has yet to be bootstrapped."
16
+ warn " Run config/bootstrap.rb to remedy this situation."
17
+ fail "gem environment not configued"
18
+ end
19
+ else
20
+ # Run a more exhaustive bootstrap check in non-production environments by making
21
+ # sure the Gemfile matches the .bundle/loadpath file checksum.
22
+ #
23
+ # Verify the environment has been bootstrapped by checking that the
24
+ # .bundle/loadpath file exists.
25
+ if !File.exist?(Goliath.root_path(".bundle/loadpath"))
26
+ warn "WARN The gem environment is out-of-date or has yet to be bootstrapped."
27
+ warn " Runnning #{Goliath.root_path("config/bootstrap.rb")} to remedy this situation..."
28
+ system Goliath.root_path("config/bootstrap.rb --local")
29
+
30
+ if !File.exist?(Goliath.root_path(".bundle/loadpath"))
31
+ warn "WARN The gem environment is STILL out-of-date."
32
+ warn " Please contact your network administrator."
33
+ fail "gem environment not configued"
34
+ end
35
+ end
36
+
37
+ checksum = File.read(Goliath.root_path(".bundle/checksum")).to_i rescue nil
38
+ if `cksum <'#{Goliath.root_path}/Gemfile'`.to_i != checksum
39
+ warn "WARN The gem environment is out-of-date or has yet to be bootstrapped."
40
+ warn " Runnning config/bootstrap.rb to remedy this situation..."
41
+ system Goliath.root_path("config/bootstrap.rb --local")
42
+
43
+ checksum = File.read(Goliath.root_path(".bundle/checksum")).to_i rescue nil
44
+ if `cksum <'#{Goliath.root_path}/Gemfile'`.to_i != checksum
45
+ warn "WARN The gem environment is STILL out-of-date."
46
+ warn " Please contact your network administrator."
47
+ fail "gem environment not configued"
48
+ end
49
+ end
50
+ end
51
+
52
+ # Disallow use of system gems by default in staging and production environments
53
+ # or when the GEM_STRICT environment variable is set. This ensures the gem
54
+ # environment is totally isolated to only stuff specified in the Gemfile.
55
+ if is_production
56
+ ENV['GEM_PATH'] = Goliath.root_path("vendor/gems")
57
+ ENV['GEM_HOME'] = Goliath.root_path("vendor/gems")
58
+ elsif !ENV['GEM_PATH'].to_s.include?(Goliath.root_path("vendor/gems"))
59
+ ENV['GEM_PATH'] =
60
+ [Goliath.root_path("vendor/gems"), ENV['GEM_PATH']].compact.join(':')
61
+ end
62
+
63
+ # Setup bundled gem load path.
64
+ paths = File.read(Goliath.root_path(".bundle/loadpath")).split("\n")
65
+ paths.each do |path|
66
+ next if path =~ /^[ \t]*(?:#|$)/
67
+ path = Goliath.root_path(path)
68
+ $: << path if !$:.include?(path)
69
+ end
70
+
71
+ # Child processes inherit our load path.
72
+ ENV['RUBYLIB'] = $:.compact.join(':')
File without changes
@@ -0,0 +1,296 @@
1
+
2
+ /* ==== Scroll down to find where to put your styles :) ==== */
3
+
4
+ /* HTML5 - Boilerplate */
5
+
6
+ html, body, div, span, object, iframe,
7
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
+ abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
9
+ small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
10
+ fieldset, form, label, legend,
11
+ table, caption, tbody, tfoot, thead, tr, th, td,
12
+ article, aside, canvas, details, figcaption, figure,
13
+ footer, header, hgroup, menu, nav, section, summary,
14
+ time, mark, audio, video {
15
+ margin: 0;
16
+ padding: 0;
17
+ border: 0;
18
+ font-size: 100%;
19
+ font: inherit;
20
+ vertical-align: baseline;
21
+ }
22
+
23
+ article, aside, details, figcaption, figure,
24
+ footer, header, hgroup, menu, nav, section {
25
+ display: block;
26
+ }
27
+
28
+ blockquote, q { quotes: none; }
29
+ blockquote:before, blockquote:after,
30
+ q:before, q:after { content: ''; content: none; }
31
+ ins { background-color: #ff9; color: #000; text-decoration: none; }
32
+ mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
33
+ del { text-decoration: line-through; }
34
+ abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
35
+ table { border-collapse: collapse; border-spacing: 0; }
36
+ hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
37
+ input, select { vertical-align: middle; }
38
+
39
+ body { font:13px/1.231 sans-serif; *font-size:small; }
40
+ select, input, textarea, button { font:99% sans-serif; }
41
+ pre, code, kbd, samp { font-family: monospace, sans-serif; }
42
+
43
+ html { overflow-y: scroll; }
44
+ a:hover, a:active { outline: none; }
45
+ ul, ol { margin-left: 2em; }
46
+ ol { list-style-type: decimal; }
47
+ nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
48
+ small { font-size: 85%; }
49
+ strong, th { font-weight: bold; }
50
+ td { vertical-align: top; }
51
+
52
+ sub, sup { font-size: 75%; line-height: 0; position: relative; }
53
+ sup { top: -0.5em; }
54
+ sub { bottom: -0.25em; }
55
+
56
+ pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
57
+ textarea { overflow: auto; }
58
+ .ie6 legend, .ie7 legend { margin-left: -7px; }
59
+ input[type="radio"] { vertical-align: text-bottom; }
60
+ input[type="checkbox"] { vertical-align: bottom; }
61
+ .ie7 input[type="checkbox"] { vertical-align: baseline; }
62
+ .ie6 input { vertical-align: text-bottom; }
63
+ label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
64
+ button, input, select, textarea { margin: 0; }
65
+ input:valid, textarea:valid { }
66
+ input:invalid, textarea:invalid { border-radius: 1px; -moz-box-shadow: 0px 0px 5px red; -webkit-box-shadow: 0px 0px 5px red; box-shadow: 0px 0px 5px red; }
67
+ .no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
68
+
69
+ ::-moz-selection{ background: #eFdEe9; color:#fff; text-shadow: none; }
70
+ ::selection { background:#eFdEe9; color:#fff; text-shadow: none; }
71
+ a:link { -webkit-tap-highlight-color: #eFdEe9; }
72
+
73
+ button { width: auto; overflow: visible; }
74
+ .ie7 img { -ms-interpolation-mode: bicubic; }
75
+
76
+ body, select, input, textarea { color: #444; }
77
+ h1, h2, h3, h4, h5, h6 { font-weight: bold; }
78
+ a, a:active, a:visited { color: #607890; }
79
+ a:hover { color: #036; }
80
+
81
+ /*
82
+ // ========================================== \\
83
+ || ||
84
+ || Your styles ! ||
85
+ || ||
86
+ \\ ========================================== //
87
+ */
88
+
89
+
90
+ body{
91
+ font-family:Helvetica, Helvetica Neue, Arial, sans-serif;
92
+ }
93
+
94
+ .wrapper{
95
+ margin:auto;
96
+ width:960px;
97
+ }
98
+
99
+ #logo {
100
+ float: left;
101
+ margin-top: 10px;
102
+ margin-right: 20px;
103
+ }
104
+
105
+ #header-container{
106
+ background-color:#e4edf6;
107
+ height:80px;
108
+ border-bottom:20px solid #f1e5d9;
109
+ margin-bottom:50px;
110
+ }
111
+
112
+ #title{
113
+ font-weight:normal;
114
+ font-size: 50px;
115
+ color:white;
116
+ padding: 15px 5px 10px 0;
117
+ float:left;
118
+ clear: none;
119
+ }
120
+ #title a{ text-decoration: none }
121
+
122
+ h1 { font-size: 185%; padding-top: 14px; padding-bottom: 5px; }
123
+ h2 { font-size: 154%; padding-top: 20px; padding-bottom: 4px; }
124
+ h3 { font-size: 139%; padding-top: 6px; padding-bottom: 4px; }
125
+ h4 { font-size: 116%; padding-top: 4px; padding-bottom: 2px; }
126
+
127
+ nav{
128
+ float:right;
129
+ margin-top:10px;
130
+ }
131
+
132
+ nav ul, nav ul li{
133
+ display:inline;
134
+ }
135
+
136
+ nav a, nav a:visited, nav a:active{
137
+ padding:10px 20px;
138
+ color:#666;
139
+ text-decoration:none;
140
+ background-color:#d4dde6;
141
+ }
142
+
143
+ aside{
144
+ color:#444;
145
+ padding:20px;
146
+ float:right;
147
+ height:500px;
148
+ width:200px;
149
+ background-color:#e4edf6;
150
+ border-bottom:20px solid #e44d26;
151
+ margin-bottom:50px;
152
+ }
153
+
154
+ #main {
155
+ min-height: 550px;
156
+ }
157
+
158
+ #main p{
159
+ font:16px/26px Helvetica, Helvetica Neue, Arial;
160
+ width:620px;
161
+ text-shadow:none;
162
+ }
163
+
164
+ #main header h2{
165
+ padding-bottom:30px;
166
+ }
167
+
168
+ article header{
169
+ margin-bottom:50px;
170
+ padding-bottom:30px;
171
+ width:700px;
172
+ }
173
+
174
+ #footer-container{
175
+ background-color:#e4edf6;
176
+ height:240px;
177
+ border-top:40px solid #e4edf6;
178
+ margin-top:50px;
179
+ }
180
+
181
+ #footer-container footer{
182
+ color:#888;
183
+ text-align:right;
184
+ }
185
+ #footer-container footer a, #footer-container footer a:active, #footer-container footer a:visited { color: #88a; }
186
+
187
+ .info{
188
+ position:absolute;
189
+ top:5px;
190
+ background-color:white;
191
+ padding:10px;
192
+ }
193
+
194
+ #jquery-test{
195
+ top:45px;
196
+ }
197
+
198
+ .ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
199
+ .hidden { display: none; visibility: hidden; }
200
+ .visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
201
+ .visuallyhidden.focusable:active,
202
+ .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
203
+ .invisible { visibility: hidden; }
204
+ .clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
205
+ .clearfix:after { clear: both; }
206
+ .clearfix { zoom: 1; }
207
+
208
+
209
+ .meter {
210
+ margin: 3em;
211
+ background-color: #eee;
212
+ padding: 2em;
213
+ font-size: 154%;
214
+ }
215
+
216
+
217
+ /* Nice table styling for greater dashboard justice */
218
+ table {
219
+ text-align: left;
220
+ }
221
+ table th, table td {
222
+ text-align: left;
223
+ }
224
+ table th {
225
+ font-weight: bold;
226
+ }
227
+ table th, table td {
228
+ min-width: 30px;
229
+ padding: 4px 0 4px 10px;
230
+ }
231
+ table th:first-child, table td:first-child {
232
+ padding-left: 0;
233
+ }
234
+ table tbody tr:hover {
235
+ background-color: #e8f0ff;
236
+ }
237
+
238
+ table.full {
239
+ width: 960px;
240
+ }
241
+ table.horizontal th {
242
+ border-bottom: 2px solid #6678b1;
243
+ }
244
+ table.horizontal th, table.horizontal td {
245
+ min-width: 70px;
246
+ }
247
+
248
+ table.vertical {
249
+ margin: 16px 0;
250
+ }
251
+ table.vertical th {
252
+ width: 180px;
253
+ padding: 4px 5px 3px 5px;
254
+ border-bottom: 1px solid #51ded8;
255
+ }
256
+ table.vertical td {
257
+ padding: 4px 0 3px 10px;
258
+ border-bottom: 1px solid #f1eee8;
259
+ }
260
+ table.vertical th:first-child {
261
+ white-space: nowrap;
262
+ }
263
+ table.vertical tr:last-child {
264
+ border: none;
265
+ }
266
+
267
+
268
+
269
+ @media all and (orientation:portrait) {
270
+
271
+ }
272
+
273
+ @media all and (orientation:landscape) {
274
+
275
+ }
276
+
277
+ @media screen and (max-device-width: 480px) {
278
+
279
+ /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
280
+ }
281
+
282
+
283
+ @media print {
284
+ * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
285
+ -ms-filter: none !important; }
286
+ a, a:visited { color: #444 !important; text-decoration: underline; }
287
+ a[href]:after { content: " (" attr(href) ")"; }
288
+ abbr[title]:after { content: " (" attr(title) ")"; }
289
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
290
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
291
+ thead { display: table-header-group; }
292
+ tr, img { page-break-inside: avoid; }
293
+ @page { margin: 0.5cm; }
294
+ p, h2, h3 { orphans: 3; widows: 3; }
295
+ h2, h3{ page-break-after: avoid; }
296
+ }
@@ -0,0 +1,96 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{son_of_a_batch}
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Philip (flip) Kromer for Infochimps"]
12
+ s.date = %q{2011-04-23}
13
+ s.description = %q{Smelt from a plentiferous gallimaufry of requests an agglomerated bale of responses. With, y'know, concurrency and all that.}
14
+ s.email = %q{coders@infochimps.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.textile"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.textile",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "app/endpoints/sleepy.rb",
29
+ "app/views/debug.haml",
30
+ "app/views/layout.haml",
31
+ "app/views/root.haml",
32
+ "config/bootstrap.rb",
33
+ "config/son_of_a_batch-private.example.rb",
34
+ "config/son_of_a_batch-private.rb",
35
+ "config/son_of_a_batch.rb",
36
+ "lib/boot.rb",
37
+ "lib/son_of_a_batch.rb",
38
+ "public/stylesheets/style.css",
39
+ "son_of_a_batch.gemspec",
40
+ "son_of_a_batch.rb",
41
+ "spec/son_of_a_batch_spec.rb",
42
+ "spec/spec_helper.rb"
43
+ ]
44
+ s.homepage = %q{http://infochimps.com/labs}
45
+ s.licenses = ["MIT"]
46
+ s.require_paths = ["lib"]
47
+ s.rubygems_version = %q{1.5.0}
48
+ s.summary = %q{Smelt from a plentiferous gallimaufry of requests an agglomerated bale of responses. With, y'know, concurrency and all that.}
49
+ s.test_files = [
50
+ "spec/son_of_a_batch_spec.rb",
51
+ "spec/spec_helper.rb"
52
+ ]
53
+
54
+ if s.respond_to? :specification_version then
55
+ s.specification_version = 3
56
+
57
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
+ s.add_runtime_dependency(%q<em-synchrony>, [">= 0"])
59
+ s.add_runtime_dependency(%q<em-http-request>, [">= 0"])
60
+ s.add_runtime_dependency(%q<yajl-ruby>, ["~> 0.8.2"])
61
+ s.add_runtime_dependency(%q<gorillib>, ["~> 0.0.4"])
62
+ s.add_runtime_dependency(%q<rack-respond_to>, [">= 0"])
63
+ s.add_runtime_dependency(%q<rack-abstract-format>, [">= 0"])
64
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.12"])
65
+ s.add_development_dependency(%q<yard>, ["~> 0.6.7"])
66
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
67
+ s.add_development_dependency(%q<rspec>, ["~> 2.5.0"])
68
+ s.add_development_dependency(%q<rcov>, [">= 0"])
69
+ else
70
+ s.add_dependency(%q<em-synchrony>, [">= 0"])
71
+ s.add_dependency(%q<em-http-request>, [">= 0"])
72
+ s.add_dependency(%q<yajl-ruby>, ["~> 0.8.2"])
73
+ s.add_dependency(%q<gorillib>, ["~> 0.0.4"])
74
+ s.add_dependency(%q<rack-respond_to>, [">= 0"])
75
+ s.add_dependency(%q<rack-abstract-format>, [">= 0"])
76
+ s.add_dependency(%q<bundler>, ["~> 1.0.12"])
77
+ s.add_dependency(%q<yard>, ["~> 0.6.7"])
78
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
79
+ s.add_dependency(%q<rspec>, ["~> 2.5.0"])
80
+ s.add_dependency(%q<rcov>, [">= 0"])
81
+ end
82
+ else
83
+ s.add_dependency(%q<em-synchrony>, [">= 0"])
84
+ s.add_dependency(%q<em-http-request>, [">= 0"])
85
+ s.add_dependency(%q<yajl-ruby>, ["~> 0.8.2"])
86
+ s.add_dependency(%q<gorillib>, ["~> 0.0.4"])
87
+ s.add_dependency(%q<rack-respond_to>, [">= 0"])
88
+ s.add_dependency(%q<rack-abstract-format>, [">= 0"])
89
+ s.add_dependency(%q<bundler>, ["~> 1.0.12"])
90
+ s.add_dependency(%q<yard>, ["~> 0.6.7"])
91
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
92
+ s.add_dependency(%q<rspec>, ["~> 2.5.0"])
93
+ s.add_dependency(%q<rcov>, [">= 0"])
94
+ end
95
+ end
96
+