ballast 1.7.0 → 1.8.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72d9e7b1097d75ed1e9fe9e8e056bc54b2d9f29a
4
- data.tar.gz: 706a582324c381cd7f9e90b89d6fb38e6ab3a1b0
3
+ metadata.gz: 6c802071fba8b05babb9c4577a90ac4e57f62c8c
4
+ data.tar.gz: ce018497207921be1527567a4d6ef4e7f3733675
5
5
  SHA512:
6
- metadata.gz: 70620c392ea9e428046389ebf1407cbe5fc0a5b82ab85838173327a950a6efd15b768a6bb605c293c75fe6a0d5326081368ab6f8f32013308660f12ebb42c32c
7
- data.tar.gz: a2a106dde8f4bf944dbd53a72c5b830a1ff01c9eecbe84a161d61a46ab5f56a896091039e5ccb3d3a823413b8a931c8ed896e1e6542f38200d7d97a29b0478ee
6
+ metadata.gz: a1e9bf785dc3ffb8aed3a4d0969b32cd8a12df3bd9b216e0555eafec957c19c375e24e4a4c144ab552e3d73d8f21e9c42de72abdae41e2fd95f03b9b284aa016
7
+ data.tar.gz: 97c56b3504e4e9573e97866def360a22cf9a926c56efcf78d27175f0d434a32aeb5a78936e88ff10d537928795ac6d9c3c4e96c488ebc501e1c14f12c3931184
@@ -1,3 +1,7 @@
1
+ ### 1.8.0 / 2014-01-29
2
+
3
+ * Added `Ballast.in_em_thread`.
4
+
1
5
  ### 1.7.0 / 2014-01-25
2
6
 
3
7
  * Added `Ballast::Concerns::View::set_layout_params`.
@@ -80,7 +80,7 @@
80
80
 
81
81
  <dt class="r1 last">Defined in:</dt>
82
82
  <dd class="r1 last">lib/ballast/errors.rb<span class="defines">,<br />
83
- lib/ballast/version.rb,<br /> lib/ballast/context.rb,<br /> lib/ballast/operation.rb,<br /> lib/ballast/configuration.rb,<br /> lib/ballast/concerns/view.rb,<br /> lib/ballast/concerns/ajax.rb,<br /> lib/ballast/concerns/common.rb,<br /> lib/ballast/operations_chain.rb,<br /> lib/ballast/request_domain_matcher.rb,<br /> lib/ballast/middlewares/default_host.rb,<br /> lib/ballast/concerns/errors_handling.rb</span>
83
+ lib/ballast.rb,<br /> lib/ballast/version.rb,<br /> lib/ballast/context.rb,<br /> lib/ballast/operation.rb,<br /> lib/ballast/configuration.rb,<br /> lib/ballast/concerns/view.rb,<br /> lib/ballast/concerns/ajax.rb,<br /> lib/ballast/concerns/common.rb,<br /> lib/ballast/operations_chain.rb,<br /> lib/ballast/request_domain_matcher.rb,<br /> lib/ballast/middlewares/default_host.rb,<br /> lib/ballast/concerns/errors_handling.rb</span>
84
84
  </dd>
85
85
 
86
86
  </dl>
@@ -116,12 +116,123 @@ Licensed under the MIT license, which can be found at http://www.opensource.org/
116
116
 
117
117
 
118
118
 
119
+
120
+ <h2>
121
+ Class Method Summary
122
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
123
+ </h2>
124
+
125
+ <ul class="summary">
126
+
127
+ <li class="public ">
128
+ <span class="summary_signature">
129
+
130
+ <a href="#in_em_thread-class_method" title="in_em_thread (class method)">+ (Object) <strong>in_em_thread</strong>(&amp;block) </a>
131
+
132
+
133
+
134
+ </span>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+ <span class="summary_desc"><div class='inline'><p>If running under eventmachine, run the block in a thread of its threadpool using EM::Synchrony, otherwise run the block normally.</p>
145
+ </div></span>
146
+
147
+ </li>
148
+
149
+
150
+ </ul>
151
+
152
+
119
153
 
120
154
 
155
+ <div id="class_method_details" class="method_details_list">
156
+ <h2>Class Method Details</h2>
157
+
158
+
159
+ <div class="method_details first">
160
+ <h3 class="signature first" id="in_em_thread-class_method">
161
+
162
+ + (<tt>Object</tt>) <strong>in_em_thread</strong>(&amp;block)
163
+
164
+
165
+
166
+
167
+
168
+ </h3><div class="docstring">
169
+ <div class="discussion">
170
+ <p>If running under eventmachine, run the block in a thread of its threadpool using EM::Synchrony, otherwise run the block normally.</p>
171
+
172
+
173
+ </div>
174
+ </div>
175
+ <div class="tags">
176
+ <p class="tag_title">Parameters:</p>
177
+ <ul class="param">
178
+
179
+ <li>
180
+
181
+ <span class='name'>block</span>
182
+
183
+
184
+ <span class='type'>(<tt>Proc</tt>)</span>
185
+
186
+
187
+
188
+ &mdash;
189
+ <div class='inline'><p>The block to run.</p>
190
+ </div>
191
+
192
+ </li>
193
+
194
+ </ul>
195
+
196
+
197
+ </div><table class="source_code">
198
+ <tr>
199
+ <td>
200
+ <pre class="lines">
201
+
202
+
203
+ 35
204
+ 36
205
+ 37
206
+ 38
207
+ 39
208
+ 40
209
+ 41
210
+ 42
211
+ 43</pre>
212
+ </td>
213
+ <td>
214
+ <pre class="code"><span class="info file"># File 'lib/ballast.rb', line 35</span>
215
+
216
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_in_em_thread'>in_em_thread</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
217
+ <span class='kw'>if</span> <span class='const'>EM</span><span class='period'>.</span><span class='id identifier rubyid_reactor_running?'>reactor_running?</span> <span class='kw'>then</span>
218
+ <span class='const'>EM</span><span class='op'>::</span><span class='const'>Synchrony</span><span class='period'>.</span><span class='id identifier rubyid_defer'>defer</span> <span class='kw'>do</span>
219
+ <span class='const'>Fiber</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span> <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_resume'>resume</span>
220
+ <span class='kw'>end</span>
221
+ <span class='kw'>else</span>
222
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
223
+ <span class='kw'>end</span>
224
+ <span class='kw'>end</span></pre>
225
+ </td>
226
+ </tr>
227
+ </table>
228
+ </div>
229
+
230
+ </div>
231
+
121
232
  </div>
122
233
 
123
234
  <div id="footer">
124
- Generated on Sat Jan 25 13:47:00 2014 by
235
+ Generated on Wed Jan 29 14:58:29 2014 by
125
236
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
126
237
  0.8.7.3 (ruby-2.1.0).
127
238
  </div>
@@ -118,7 +118,7 @@
118
118
  </div>
119
119
 
120
120
  <div id="footer">
121
- Generated on Sat Jan 25 13:47:00 2014 by
121
+ Generated on Wed Jan 29 14:58:29 2014 by
122
122
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
123
123
  0.8.7.3 (ruby-2.1.0).
124
124
  </div>
@@ -895,7 +895,7 @@
895
895
  </div>
896
896
 
897
897
  <div id="footer">
898
- Generated on Sat Jan 25 13:47:00 2014 by
898
+ Generated on Wed Jan 29 14:58:29 2014 by
899
899
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
900
900
  0.8.7.3 (ruby-2.1.0).
901
901
  </div>
@@ -1098,7 +1098,7 @@ and <code>%:Z</code> for the zone name considering also DST.</p>
1098
1098
  </div>
1099
1099
 
1100
1100
  <div id="footer">
1101
- Generated on Sat Jan 25 13:47:00 2014 by
1101
+ Generated on Wed Jan 29 14:58:29 2014 by
1102
1102
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1103
1103
  0.8.7.3 (ruby-2.1.0).
1104
1104
  </div>
@@ -291,7 +291,7 @@
291
291
  </div>
292
292
 
293
293
  <div id="footer">
294
- Generated on Sat Jan 25 13:47:00 2014 by
294
+ Generated on Wed Jan 29 14:58:29 2014 by
295
295
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
296
296
  0.8.7.3 (ruby-2.1.0).
297
297
  </div>
@@ -850,7 +850,7 @@
850
850
  </div>
851
851
 
852
852
  <div id="footer">
853
- Generated on Sat Jan 25 13:47:00 2014 by
853
+ Generated on Wed Jan 29 14:58:29 2014 by
854
854
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
855
855
  0.8.7.3 (ruby-2.1.0).
856
856
  </div>
@@ -273,7 +273,7 @@ Subfolders are not supported.</p>
273
273
  </div>
274
274
 
275
275
  <div id="footer">
276
- Generated on Sat Jan 25 13:47:00 2014 by
276
+ Generated on Wed Jan 29 14:58:29 2014 by
277
277
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
278
278
  0.8.7.3 (ruby-2.1.0).
279
279
  </div>
@@ -408,7 +408,7 @@
408
408
  </div>
409
409
 
410
410
  <div id="footer">
411
- Generated on Sat Jan 25 13:47:00 2014 by
411
+ Generated on Wed Jan 29 14:58:29 2014 by
412
412
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
413
413
  0.8.7.3 (ruby-2.1.0).
414
414
  </div>
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Sat Jan 25 13:47:00 2014 by
119
+ Generated on Wed Jan 29 14:58:29 2014 by
120
120
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
121
  0.8.7.3 (ruby-2.1.0).
122
122
  </div>
@@ -317,7 +317,7 @@
317
317
  </div>
318
318
 
319
319
  <div id="footer">
320
- Generated on Sat Jan 25 13:47:00 2014 by
320
+ Generated on Wed Jan 29 14:58:29 2014 by
321
321
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
322
322
  0.8.7.3 (ruby-2.1.0).
323
323
  </div>
@@ -148,7 +148,7 @@
148
148
  </div>
149
149
 
150
150
  <div id="footer">
151
- Generated on Sat Jan 25 13:47:00 2014 by
151
+ Generated on Wed Jan 29 14:58:29 2014 by
152
152
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
153
153
  0.8.7.3 (ruby-2.1.0).
154
154
  </div>
@@ -148,7 +148,7 @@
148
148
  </div>
149
149
 
150
150
  <div id="footer">
151
- Generated on Sat Jan 25 13:47:00 2014 by
151
+ Generated on Wed Jan 29 14:58:29 2014 by
152
152
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
153
153
  0.8.7.3 (ruby-2.1.0).
154
154
  </div>
@@ -148,7 +148,7 @@
148
148
  </div>
149
149
 
150
150
  <div id="footer">
151
- Generated on Sat Jan 25 13:47:00 2014 by
151
+ Generated on Wed Jan 29 14:58:29 2014 by
152
152
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
153
153
  0.8.7.3 (ruby-2.1.0).
154
154
  </div>
@@ -116,7 +116,7 @@
116
116
  </div>
117
117
 
118
118
  <div id="footer">
119
- Generated on Sat Jan 25 13:47:00 2014 by
119
+ Generated on Wed Jan 29 14:58:29 2014 by
120
120
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
121
  0.8.7.3 (ruby-2.1.0).
122
122
  </div>
@@ -345,7 +345,7 @@
345
345
  </div>
346
346
 
347
347
  <div id="footer">
348
- Generated on Sat Jan 25 13:47:01 2014 by
348
+ Generated on Wed Jan 29 14:58:29 2014 by
349
349
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
350
350
  0.8.7.3 (ruby-2.1.0).
351
351
  </div>
@@ -994,7 +994,7 @@ as owner will be created.</p>
994
994
  <pre class="code"><span class="info file"># File 'lib/ballast/operation.rb', line 119</span>
995
995
 
996
996
  <span class='kw'>def</span> <span class='id identifier rubyid_in_em_thread'>in_em_thread</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
997
- <span class='const'>EM</span><span class='period'>.</span><span class='id identifier rubyid_reactor_running?'>reactor_running?</span> <span class='op'>?</span> <span class='const'>EM</span><span class='op'>::</span><span class='const'>Synchrony</span><span class='period'>.</span><span class='id identifier rubyid_defer'>defer</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span>
997
+ <span class='const'>Ballast</span><span class='period'>.</span><span class='id identifier rubyid_in_em_thread'>in_em_thread</span><span class='lparen'>(</span><span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
998
998
  <span class='kw'>end</span></pre>
999
999
  </td>
1000
1000
  </tr>
@@ -1295,7 +1295,7 @@ as owner will be created.</p>
1295
1295
  </div>
1296
1296
 
1297
1297
  <div id="footer">
1298
- Generated on Sat Jan 25 13:47:00 2014 by
1298
+ Generated on Wed Jan 29 14:58:29 2014 by
1299
1299
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1300
1300
  0.8.7.3 (ruby-2.1.0).
1301
1301
  </div>
@@ -588,7 +588,7 @@ as owner will be created.</p>
588
588
  </div>
589
589
 
590
590
  <div id="footer">
591
- Generated on Sat Jan 25 13:47:00 2014 by
591
+ Generated on Wed Jan 29 14:58:29 2014 by
592
592
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
593
593
  0.8.7.3 (ruby-2.1.0).
594
594
  </div>
@@ -908,7 +908,7 @@
908
908
  </div>
909
909
 
910
910
  <div id="footer">
911
- Generated on Sat Jan 25 13:47:01 2014 by
911
+ Generated on Wed Jan 29 14:58:29 2014 by
912
912
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
913
913
  0.8.7.3 (ruby-2.1.0).
914
914
  </div>
@@ -134,7 +134,7 @@
134
134
 
135
135
  </div>
136
136
  </dt>
137
- <dd><pre class="code"><span class='int'>7</span></pre></dd>
137
+ <dd><pre class="code"><span class='int'>8</span></pre></dd>
138
138
 
139
139
  <dt id="PATCH-constant" class="">PATCH =
140
140
  <div class="docstring">
@@ -180,7 +180,7 @@
180
180
  </div>
181
181
 
182
182
  <div id="footer">
183
- Generated on Sat Jan 25 13:47:00 2014 by
183
+ Generated on Wed Jan 29 14:58:29 2014 by
184
184
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
185
185
  0.8.7.3 (ruby-2.1.0).
186
186
  </div>
@@ -310,7 +310,7 @@
310
310
  </div>
311
311
 
312
312
  <div id="footer">
313
- Generated on Sat Jan 25 13:46:59 2014 by
313
+ Generated on Wed Jan 29 14:58:28 2014 by
314
314
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
315
315
  0.8.7.3 (ruby-2.1.0).
316
316
  </div>
@@ -106,7 +106,7 @@
106
106
  </div></div>
107
107
 
108
108
  <div id="footer">
109
- Generated on Sat Jan 25 13:47:00 2014 by
109
+ Generated on Wed Jan 29 14:58:28 2014 by
110
110
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
111
111
  0.8.7.3 (ruby-2.1.0).
112
112
  </div>
@@ -106,7 +106,7 @@
106
106
  </div></div>
107
107
 
108
108
  <div id="footer">
109
- Generated on Sat Jan 25 13:47:00 2014 by
109
+ Generated on Wed Jan 29 14:58:28 2014 by
110
110
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
111
111
  0.8.7.3 (ruby-2.1.0).
112
112
  </div>
@@ -150,14 +150,14 @@
150
150
 
151
151
 
152
152
  <li class="r2 ">
153
- <span class='object_link'><a href="Ballast/Configuration.html#initialize-instance_method" title="Ballast::Configuration#initialize (method)">#initialize</a></span>
154
- <small>Ballast::Configuration</small>
153
+ <span class='object_link'><a href="Ballast.html#in_em_thread-class_method" title="Ballast.in_em_thread (method)">in_em_thread</a></span>
154
+ <small>Ballast</small>
155
155
  </li>
156
156
 
157
157
 
158
158
  <li class="r1 ">
159
- <span class='object_link'><a href="Ballast/Errors/BaseError.html#initialize-instance_method" title="Ballast::Errors::BaseError#initialize (method)">#initialize</a></span>
160
- <small>Ballast::Errors::BaseError</small>
159
+ <span class='object_link'><a href="Ballast/OperationsChain.html#initialize-instance_method" title="Ballast::OperationsChain#initialize (method)">#initialize</a></span>
160
+ <small>Ballast::OperationsChain</small>
161
161
  </li>
162
162
 
163
163
 
@@ -168,174 +168,180 @@
168
168
 
169
169
 
170
170
  <li class="r1 ">
171
- <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#initialize-instance_method" title="Ballast::RequestDomainMatcher#initialize (method)">#initialize</a></span>
172
- <small>Ballast::RequestDomainMatcher</small>
171
+ <span class='object_link'><a href="Ballast/Errors/BaseError.html#initialize-instance_method" title="Ballast::Errors::BaseError#initialize (method)">#initialize</a></span>
172
+ <small>Ballast::Errors::BaseError</small>
173
173
  </li>
174
174
 
175
175
 
176
176
  <li class="r2 ">
177
- <span class='object_link'><a href="Ballast/OperationsChain.html#initialize-instance_method" title="Ballast::OperationsChain#initialize (method)">#initialize</a></span>
178
- <small>Ballast::OperationsChain</small>
177
+ <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#initialize-instance_method" title="Ballast::RequestDomainMatcher#initialize (method)">#initialize</a></span>
178
+ <small>Ballast::RequestDomainMatcher</small>
179
179
  </li>
180
180
 
181
181
 
182
182
  <li class="r1 ">
183
+ <span class='object_link'><a href="Ballast/Configuration.html#initialize-instance_method" title="Ballast::Configuration#initialize (method)">#initialize</a></span>
184
+ <small>Ballast::Configuration</small>
185
+ </li>
186
+
187
+
188
+ <li class="r2 ">
183
189
  <span class='object_link'><a href="Ballast/Operation.html#initialize-instance_method" title="Ballast::Operation#initialize (method)">#initialize</a></span>
184
190
  <small>Ballast::Operation</small>
185
191
  </li>
186
192
 
187
193
 
188
- <li class="r2 ">
194
+ <li class="r1 ">
189
195
  <span class='object_link'><a href="Ballast/Concerns/Ajax.html#is_ajax%3F-instance_method" title="Ballast::Concerns::Ajax#is_ajax? (method)">#is_ajax?</a></span>
190
196
  <small>Ballast::Concerns::Ajax</small>
191
197
  </li>
192
198
 
193
199
 
194
- <li class="r1 ">
200
+ <li class="r2 ">
195
201
  <span class='object_link'><a href="Ballast/Concerns/Common.html#is_json%3F-instance_method" title="Ballast::Concerns::Common#is_json? (method)">#is_json?</a></span>
196
202
  <small>Ballast::Concerns::Common</small>
197
203
  </li>
198
204
 
199
205
 
200
- <li class="r2 ">
206
+ <li class="r1 ">
201
207
  <span class='object_link'><a href="Ballast/Concerns/View.html#javascript_params-instance_method" title="Ballast::Concerns::View#javascript_params (method)">#javascript_params</a></span>
202
208
  <small>Ballast::Concerns::View</small>
203
209
  </li>
204
210
 
205
211
 
206
- <li class="r1 ">
212
+ <li class="r2 ">
207
213
  <span class='object_link'><a href="Ballast/Concerns/View.html#layout_params-instance_method" title="Ballast::Concerns::View#layout_params (method)">#layout_params</a></span>
208
214
  <small>Ballast::Concerns::View</small>
209
215
  </li>
210
216
 
211
217
 
212
- <li class="r2 ">
218
+ <li class="r1 ">
213
219
  <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#matches%3F-instance_method" title="Ballast::RequestDomainMatcher#matches? (method)">#matches?</a></span>
214
220
  <small>Ballast::RequestDomainMatcher</small>
215
221
  </li>
216
222
 
217
223
 
218
- <li class="r1 ">
224
+ <li class="r2 ">
219
225
  <span class='object_link'><a href="Ballast/Operation.html#method_missing-instance_method" title="Ballast::Operation#method_missing (method)">#method_missing</a></span>
220
226
  <small>Ballast::Operation</small>
221
227
  </li>
222
228
 
223
229
 
224
- <li class="r2 ">
230
+ <li class="r1 ">
225
231
  <span class='object_link'><a href="Ballast/Context.html#method_missing-instance_method" title="Ballast::Context#method_missing (method)">#method_missing</a></span>
226
232
  <small>Ballast::Context</small>
227
233
  </li>
228
234
 
229
235
 
230
- <li class="r1 ">
236
+ <li class="r2 ">
231
237
  <span class='object_link'><a href="Ballast/OperationsChain.html#operations-instance_method" title="Ballast::OperationsChain#operations (method)">#operations</a></span>
232
238
  <small>Ballast::OperationsChain</small>
233
239
  </li>
234
240
 
235
241
 
236
- <li class="r2 ">
242
+ <li class="r1 ">
237
243
  <span class='object_link'><a href="Ballast/Operation.html#perform-class_method" title="Ballast::Operation.perform (method)">perform</a></span>
238
244
  <small>Ballast::Operation</small>
239
245
  </li>
240
246
 
241
247
 
242
- <li class="r1 ">
248
+ <li class="r2 ">
243
249
  <span class='object_link'><a href="Ballast/OperationsChain.html#perform-class_method" title="Ballast::OperationsChain.perform (method)">perform</a></span>
244
250
  <small>Ballast::OperationsChain</small>
245
251
  </li>
246
252
 
247
253
 
248
- <li class="r2 ">
254
+ <li class="r1 ">
249
255
  <span class='object_link'><a href="Ballast/Concerns/Common.html#perform_operation-instance_method" title="Ballast::Concerns::Common#perform_operation (method)">#perform_operation</a></span>
250
256
  <small>Ballast::Concerns::Common</small>
251
257
  </li>
252
258
 
253
259
 
254
- <li class="r1 ">
260
+ <li class="r2 ">
255
261
  <span class='object_link'><a href="Ballast/Concerns/Common.html#perform_operations_chain-instance_method" title="Ballast::Concerns::Common#perform_operations_chain (method)">#perform_operations_chain</a></span>
256
262
  <small>Ballast::Concerns::Common</small>
257
263
  </li>
258
264
 
259
265
 
260
- <li class="r2 ">
266
+ <li class="r1 ">
261
267
  <span class='object_link'><a href="Ballast/Operation.html#perform_with_handling-instance_method" title="Ballast::Operation#perform_with_handling (method)">#perform_with_handling</a></span>
262
268
  <small>Ballast::Operation</small>
263
269
  </li>
264
270
 
265
271
 
266
- <li class="r1 ">
272
+ <li class="r2 ">
267
273
  <span class='object_link'><a href="Ballast/Concerns/Ajax.html#prepare_ajax-instance_method" title="Ballast::Concerns::Ajax#prepare_ajax (method)">#prepare_ajax</a></span>
268
274
  <small>Ballast::Concerns::Ajax</small>
269
275
  </li>
270
276
 
271
277
 
272
- <li class="r2 ">
278
+ <li class="r1 ">
273
279
  <span class='object_link'><a href="Ballast/Concerns/Ajax.html#prevent_caching-instance_method" title="Ballast::Concerns::Ajax#prevent_caching (method)">#prevent_caching</a></span>
274
280
  <small>Ballast::Concerns::Ajax</small>
275
281
  </li>
276
282
 
277
283
 
278
- <li class="r1 ">
284
+ <li class="r2 ">
279
285
  <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_block-instance_method" title="Ballast::RequestDomainMatcher#replace_block (method)">#replace_block</a></span>
280
286
  <small>Ballast::RequestDomainMatcher</small>
281
287
  </li>
282
288
 
283
289
 
284
- <li class="r2 ">
290
+ <li class="r1 ">
285
291
  <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_pattern-instance_method" title="Ballast::RequestDomainMatcher#replace_pattern (method)">#replace_pattern</a></span>
286
292
  <small>Ballast::RequestDomainMatcher</small>
287
293
  </li>
288
294
 
289
295
 
290
- <li class="r1 ">
296
+ <li class="r2 ">
291
297
  <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_string-instance_method" title="Ballast::RequestDomainMatcher#replace_string (method)">#replace_string</a></span>
292
298
  <small>Ballast::RequestDomainMatcher</small>
293
299
  </li>
294
300
 
295
301
 
296
- <li class="r2 ">
302
+ <li class="r1 ">
297
303
  <span class='object_link'><a href="Ballast/Operation.html#resolve_error-instance_method" title="Ballast::Operation#resolve_error (method)">#resolve_error</a></span>
298
304
  <small>Ballast::Operation</small>
299
305
  </li>
300
306
 
301
307
 
302
- <li class="r1 ">
308
+ <li class="r2 ">
303
309
  <span class='object_link'><a href="Ballast/Errors/BaseError.html#response-instance_method" title="Ballast::Errors::BaseError#response (method)">#response</a></span>
304
310
  <small>Ballast::Errors::BaseError</small>
305
311
  </li>
306
312
 
307
313
 
308
- <li class="r2 ">
314
+ <li class="r1 ">
309
315
  <span class='object_link'><a href="Ballast/Concerns/View.html#scope_css-instance_method" title="Ballast::Concerns::View#scope_css (method)">#scope_css</a></span>
310
316
  <small>Ballast::Concerns::View</small>
311
317
  </li>
312
318
 
313
319
 
314
- <li class="r1 ">
320
+ <li class="r2 ">
315
321
  <span class='object_link'><a href="Ballast/Concerns/Ajax.html#send_ajax-instance_method" title="Ballast::Concerns::Ajax#send_ajax (method)">#send_ajax</a></span>
316
322
  <small>Ballast::Concerns::Ajax</small>
317
323
  </li>
318
324
 
319
325
 
320
- <li class="r2 ">
326
+ <li class="r1 ">
321
327
  <span class='object_link'><a href="Ballast/Concerns/Common.html#sending_data%3F-instance_method" title="Ballast::Concerns::Common#sending_data? (method)">#sending_data?</a></span>
322
328
  <small>Ballast::Concerns::Common</small>
323
329
  </li>
324
330
 
325
331
 
326
- <li class="r1 ">
332
+ <li class="r2 ">
327
333
  <span class='object_link'><a href="Ballast/Concerns/View.html#set_layout_params-instance_method" title="Ballast::Concerns::View#set_layout_params (method)">#set_layout_params</a></span>
328
334
  <small>Ballast::Concerns::View</small>
329
335
  </li>
330
336
 
331
337
 
332
- <li class="r2 ">
338
+ <li class="r1 ">
333
339
  <span class='object_link'><a href="Ballast/Operation.html#setup_response-instance_method" title="Ballast::Operation#setup_response (method)">#setup_response</a></span>
334
340
  <small>Ballast::Operation</small>
335
341
  </li>
336
342
 
337
343
 
338
- <li class="r1 ">
344
+ <li class="r2 ">
339
345
  <span class='object_link'><a href="Ballast/Concerns/Ajax.html#update_ajax-instance_method" title="Ballast::Concerns::Ajax#update_ajax (method)">#update_ajax</a></span>
340
346
  <small>Ballast::Concerns::Ajax</small>
341
347
  </li>
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Sat Jan 25 13:47:00 2014 by
106
+ Generated on Wed Jan 29 14:58:28 2014 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.3 (ruby-2.1.0).
109
109
  </div>
@@ -26,4 +26,19 @@ require "ballast/concerns/ajax"
26
26
  require "ballast/concerns/common"
27
27
  require "ballast/concerns/view"
28
28
  require "ballast/concerns/errors_handling"
29
- require "ballast/middlewares/default_host"
29
+ require "ballast/middlewares/default_host"
30
+
31
+ module Ballast
32
+ # If running under eventmachine, run the block in a thread of its threadpool using EM::Synchrony, otherwise run the block normally.
33
+ #
34
+ # @param block [Proc] The block to run.
35
+ def self.in_em_thread(&block)
36
+ if EM.reactor_running? then
37
+ EM::Synchrony.defer do
38
+ Fiber.new { block.call }.resume
39
+ end
40
+ else
41
+ block.call
42
+ end
43
+ end
44
+ end
@@ -117,7 +117,7 @@ module Ballast
117
117
  #
118
118
  # @param block [Proc] The block to run.
119
119
  def in_em_thread(&block)
120
- EM.reactor_running? ? EM::Synchrony.defer(&block) : block.call
120
+ Ballast.in_em_thread(&block)
121
121
  end
122
122
 
123
123
  # Forwards any missing method to the owner.
@@ -13,7 +13,7 @@ module Ballast
13
13
  MAJOR = 1
14
14
 
15
15
  # The minor version.
16
- MINOR = 7
16
+ MINOR = 8
17
17
 
18
18
  # The patch version.
19
19
  PATCH = 0
@@ -32,7 +32,9 @@ describe Ballast::Operation do
32
32
  end
33
33
 
34
34
  describe "#in_em_thread" do
35
- it "should yield the block in EM::Synchrony thread" do
35
+ it "should call Ballast.in_em_thread" do
36
+ expect(Ballast).to receive(:in_em_thread).and_call_original
37
+
36
38
  counter = 0
37
39
  allow(EM).to receive(:reactor_running?).and_return(true)
38
40
  expect(EM::Synchrony).to receive(:defer){|&block| block.call }
@@ -0,0 +1,28 @@
1
+ #
2
+ # This file is part of the ballast gem. Copyright (C) 2013 and above Shogun <shogun@cowtech.it>.
3
+ # Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
4
+ #
5
+
6
+ require "spec_helper"
7
+
8
+ describe Ballast do
9
+ describe "#in_em_thread" do
10
+ it "should yield the block in EM::Synchrony thread" do
11
+ counter = 0
12
+ allow(EM).to receive(:reactor_running?).and_return(true)
13
+ expect(EM::Synchrony).to receive(:defer){|&block| block.call }
14
+
15
+ Ballast.in_em_thread { counter = 1 }
16
+ expect(counter).to eq(1)
17
+ end
18
+
19
+ it "should call the block normally if EM::Synchrony is not running" do
20
+ counter = 0
21
+ allow(EM).to receive(:reactor_running?).and_return(false)
22
+ expect(EM::Synchrony).not_to receive(:defer)
23
+
24
+ Ballast.in_em_thread { counter = 1 }
25
+ expect(counter).to eq(1)
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ballast
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shogun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-25 00:00:00.000000000 Z
11
+ date: 2014-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -195,6 +195,7 @@ files:
195
195
  - spec/ballast/operation_spec.rb
196
196
  - spec/ballast/operations_chain_spec.rb
197
197
  - spec/ballast/request_domain_matcher_spec.rb
198
+ - spec/ballast_spec.rb
198
199
  - spec/coverage_helper.rb
199
200
  - spec/spec_helper.rb
200
201
  homepage: http://github.com/ShogunPanda/ballast
@@ -233,6 +234,7 @@ test_files:
233
234
  - spec/ballast/operation_spec.rb
234
235
  - spec/ballast/operations_chain_spec.rb
235
236
  - spec/ballast/request_domain_matcher_spec.rb
237
+ - spec/ballast_spec.rb
236
238
  - spec/coverage_helper.rb
237
239
  - spec/spec_helper.rb
238
240
  has_rdoc: