ballast 1.9.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +35 -0
  3. data/.travis-gemfile +4 -5
  4. data/.travis.yml +3 -2
  5. data/CHANGELOG.md +62 -6
  6. data/Gemfile +7 -8
  7. data/README.md +2 -2
  8. data/ballast.gemspec +9 -12
  9. data/doc/Ballast/AjaxResponse.html +1380 -0
  10. data/doc/Ballast/Concerns/AjaxHandling.html +662 -0
  11. data/doc/Ballast/Concerns/Common.html +81 -361
  12. data/doc/Ballast/Concerns/ErrorsHandling.html +18 -36
  13. data/doc/Ballast/Concerns/View.html +181 -157
  14. data/doc/Ballast/Concerns.html +6 -6
  15. data/doc/Ballast/Configuration.html +204 -31
  16. data/doc/Ballast/Emoji/Character.html +411 -0
  17. data/doc/Ballast/Emoji/Utils.html +794 -0
  18. data/doc/Ballast/Emoji.html +125 -0
  19. data/doc/Ballast/Errors/{BaseError.html → Base.html} +61 -34
  20. data/doc/Ballast/Errors/{PerformError.html → Failure.html} +21 -17
  21. data/doc/Ballast/Errors/InvalidDomain.html +11 -11
  22. data/doc/Ballast/Errors/{ValidationError.html → ValidationFailure.html} +24 -16
  23. data/doc/Ballast/Errors.html +5 -5
  24. data/doc/Ballast/Middlewares/DefaultHost.html +6 -6
  25. data/doc/Ballast/Middlewares.html +4 -4
  26. data/doc/Ballast/RequestDomainMatcher.html +28 -28
  27. data/doc/Ballast/Service/Response.html +1243 -0
  28. data/doc/Ballast/Service.html +1314 -0
  29. data/doc/Ballast/Version.html +7 -7
  30. data/doc/Ballast.html +15 -15
  31. data/doc/_index.html +59 -30
  32. data/doc/class_list.html +6 -2
  33. data/doc/css/style.css +1 -0
  34. data/doc/file.README.html +6 -6
  35. data/doc/file_list.html +5 -1
  36. data/doc/frames.html +1 -1
  37. data/doc/index.html +6 -6
  38. data/doc/js/full_list.js +4 -1
  39. data/doc/method_list.html +167 -79
  40. data/doc/top-level-namespace.html +41 -4
  41. data/lib/ballast/ajax_response.rb +76 -0
  42. data/lib/ballast/concerns/ajax_handling.rb +73 -0
  43. data/lib/ballast/concerns/common.rb +25 -47
  44. data/lib/ballast/concerns/errors_handling.rb +21 -30
  45. data/lib/ballast/concerns/view.rb +24 -22
  46. data/lib/ballast/configuration.rb +30 -10
  47. data/lib/ballast/emoji.rb +114 -0
  48. data/lib/ballast/errors.rb +16 -13
  49. data/lib/ballast/middlewares/default_host.rb +3 -3
  50. data/lib/ballast/request_domain_matcher.rb +7 -7
  51. data/lib/ballast/service.rb +147 -0
  52. data/lib/ballast/version.rb +3 -3
  53. data/lib/ballast.rb +22 -22
  54. data/spec/ballast/ajax_response_spec.rb +61 -0
  55. data/spec/ballast/concerns/ajax_handling_spec.rb +86 -0
  56. data/spec/ballast/concerns/common_spec.rb +17 -52
  57. data/spec/ballast/concerns/errors_handling_spec.rb +35 -29
  58. data/spec/ballast/concerns/view_spec.rb +21 -32
  59. data/spec/ballast/configuration_spec.rb +66 -16
  60. data/spec/ballast/emoji_spec.rb +103 -0
  61. data/spec/ballast/errors_spec.rb +5 -5
  62. data/spec/ballast/middlewares/default_host_spec.rb +3 -5
  63. data/spec/ballast/request_domain_matcher_spec.rb +4 -4
  64. data/spec/ballast/service_spec.rb +137 -0
  65. data/spec/spec_helper.rb +1 -13
  66. metadata +42 -80
  67. data/doc/Ballast/Concerns/Ajax.html +0 -945
  68. data/doc/Ballast/Context.html +0 -417
  69. data/doc/Ballast/Operation.html +0 -1304
  70. data/doc/Ballast/OperationsChain.html +0 -597
  71. data/lib/ballast/concerns/ajax.rb +0 -134
  72. data/lib/ballast/context.rb +0 -38
  73. data/lib/ballast/operation.rb +0 -136
  74. data/lib/ballast/operations_chain.rb +0 -45
  75. data/spec/ballast/concerns/ajax_spec.rb +0 -141
  76. data/spec/ballast/context_spec.rb +0 -23
  77. data/spec/ballast/operation_spec.rb +0 -177
  78. data/spec/ballast/operations_chain_spec.rb +0 -61
data/doc/method_list.html CHANGED
@@ -20,7 +20,11 @@
20
20
  </head>
21
21
  <body>
22
22
  <script type="text/javascript" charset="utf-8">
23
- if (window.top.frames.main) {
23
+ var hasFrames = false;
24
+ try {
25
+ hasFrames = window.top.frames.main ? true : false;
26
+ } catch (e) { }
27
+ if (hasFrames) {
24
28
  document.getElementById('base_target').target = 'main';
25
29
  document.body.className = 'frames';
26
30
  }
@@ -48,14 +52,26 @@
48
52
 
49
53
 
50
54
  <li class="r1 ">
51
- <span class='object_link'><a href="Ballast/Concerns/View.html#add_javascript_params-instance_method" title="Ballast::Concerns::View#add_javascript_params (method)">#add_javascript_params</a></span>
52
- <small>Ballast::Concerns::View</small>
55
+ <span class='object_link'><a href="Ballast/Concerns/AjaxHandling.html#ajax_request%3F-instance_method" title="Ballast::Concerns::AjaxHandling#ajax_request? (method)">#ajax_request?</a></span>
56
+ <small>Ballast::Concerns::AjaxHandling</small>
53
57
  </li>
54
58
 
55
59
 
56
60
  <li class="r2 ">
57
- <span class='object_link'><a href="Ballast/Concerns/Ajax.html#allow_cors-instance_method" title="Ballast::Concerns::Ajax#allow_cors (method)">#allow_cors</a></span>
58
- <small>Ballast::Concerns::Ajax</small>
61
+ <span class='object_link'><a href="Ballast/Concerns/AjaxHandling.html#allow_cors-instance_method" title="Ballast::Concerns::AjaxHandling#allow_cors (method)">#allow_cors</a></span>
62
+ <small>Ballast::Concerns::AjaxHandling</small>
63
+ </li>
64
+
65
+
66
+ <li class="r1 ">
67
+ <span class='object_link'><a href="Ballast/Service/Response.html#as_ajax_response-instance_method" title="Ballast::Service::Response#as_ajax_response (method)">#as_ajax_response</a></span>
68
+ <small>Ballast::Service::Response</small>
69
+ </li>
70
+
71
+
72
+ <li class="r2 ">
73
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#as_json-instance_method" title="Ballast::AjaxResponse#as_json (method)">#as_json</a></span>
74
+ <small>Ballast::AjaxResponse</small>
59
75
  </li>
60
76
 
61
77
 
@@ -78,14 +94,50 @@
78
94
 
79
95
 
80
96
  <li class="r2 ">
81
- <span class='object_link'><a href="Ballast/Context.html#build-class_method" title="Ballast::Context.build (method)">build</a></span>
82
- <small>Ballast::Context</small>
97
+ <span class='object_link'><a href="Ballast/Middlewares/DefaultHost.html#call-instance_method" title="Ballast::Middlewares::DefaultHost#call (method)">#call</a></span>
98
+ <small>Ballast::Middlewares::DefaultHost</small>
83
99
  </li>
84
100
 
85
101
 
86
102
  <li class="r1 ">
87
- <span class='object_link'><a href="Ballast/Middlewares/DefaultHost.html#call-instance_method" title="Ballast::Middlewares::DefaultHost#call (method)">#call</a></span>
88
- <small>Ballast::Middlewares::DefaultHost</small>
103
+ <span class='object_link'><a href="Ballast/Service.html#call-class_method" title="Ballast::Service.call (method)">call</a></span>
104
+ <small>Ballast::Service</small>
105
+ </li>
106
+
107
+
108
+ <li class="r2 ">
109
+ <span class='object_link'><a href="Ballast/Service.html#call-instance_method" title="Ballast::Service#call (method)">#call</a></span>
110
+ <small>Ballast::Service</small>
111
+ </li>
112
+
113
+
114
+ <li class="r1 ">
115
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#data-instance_method" title="Ballast::AjaxResponse#data (method)">#data</a></span>
116
+ <small>Ballast::AjaxResponse</small>
117
+ </li>
118
+
119
+
120
+ <li class="r2 ">
121
+ <span class='object_link'><a href="Ballast/Service/Response.html#data-instance_method" title="Ballast::Service::Response#data (method)">#data</a></span>
122
+ <small>Ballast::Service::Response</small>
123
+ </li>
124
+
125
+
126
+ <li class="r1 ">
127
+ <span class='object_link'><a href="Ballast/Configuration.html#default_environment-class_method" title="Ballast::Configuration.default_environment (method)">default_environment</a></span>
128
+ <small>Ballast::Configuration</small>
129
+ </li>
130
+
131
+
132
+ <li class="r2 ">
133
+ <span class='object_link'><a href="Ballast/Configuration.html#default_root-class_method" title="Ballast::Configuration.default_root (method)">default_root</a></span>
134
+ <small>Ballast::Configuration</small>
135
+ </li>
136
+
137
+
138
+ <li class="r1 ">
139
+ <span class='object_link'><a href="Ballast/Errors/Base.html#details-instance_method" title="Ballast::Errors::Base#details (method)">#details</a></span>
140
+ <small>Ballast::Errors::Base</small>
89
141
  </li>
90
142
 
91
143
 
@@ -96,8 +148,44 @@
96
148
 
97
149
 
98
150
  <li class="r1 ">
99
- <span class='object_link'><a href="Ballast/Operation.html#fail%21-instance_method" title="Ballast::Operation#fail! (method)">#fail!</a></span>
100
- <small>Ballast::Operation</small>
151
+ <span class='object_link'><a href="Ballast/Emoji/Utils.html#enumerate-instance_method" title="Ballast::Emoji::Utils#enumerate (method)">#enumerate</a></span>
152
+ <small>Ballast::Emoji::Utils</small>
153
+ </li>
154
+
155
+
156
+ <li class="r2 ">
157
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#error-instance_method" title="Ballast::AjaxResponse#error (method)">#error</a></span>
158
+ <small>Ballast::AjaxResponse</small>
159
+ </li>
160
+
161
+
162
+ <li class="r1 ">
163
+ <span class='object_link'><a href="Ballast/Service/Response.html#error-instance_method" title="Ballast::Service::Response#error (method)">#error</a></span>
164
+ <small>Ballast::Service::Response</small>
165
+ </li>
166
+
167
+
168
+ <li class="r2 ">
169
+ <span class='object_link'><a href="Ballast/Service/Response.html#errors-instance_method" title="Ballast::Service::Response#errors (method)">#errors</a></span>
170
+ <small>Ballast::Service::Response</small>
171
+ </li>
172
+
173
+
174
+ <li class="r1 ">
175
+ <span class='object_link'><a href="Ballast/Service.html#fail%21-instance_method" title="Ballast::Service#fail! (method)">#fail!</a></span>
176
+ <small>Ballast::Service</small>
177
+ </li>
178
+
179
+
180
+ <li class="r2 ">
181
+ <span class='object_link'><a href="Ballast/Service.html#fail%21-class_method" title="Ballast::Service.fail! (method)">fail!</a></span>
182
+ <small>Ballast::Service</small>
183
+ </li>
184
+
185
+
186
+ <li class="r1 ">
187
+ <span class='object_link'><a href="Ballast/Service/Response.html#fail%3F-instance_method" title="Ballast::Service::Response#fail? (method)">#fail?</a></span>
188
+ <small>Ballast::Service::Response</small>
101
189
  </li>
102
190
 
103
191
 
@@ -120,8 +208,8 @@
120
208
 
121
209
 
122
210
  <li class="r1 ">
123
- <span class='object_link'><a href="Ballast/Concerns/Ajax.html#generate_robots_txt-instance_method" title="Ballast::Concerns::Ajax#generate_robots_txt (method)">#generate_robots_txt</a></span>
124
- <small>Ballast::Concerns::Ajax</small>
211
+ <span class='object_link'><a href="Ballast/Concerns/AjaxHandling.html#generate_robots_txt-instance_method" title="Ballast::Concerns::AjaxHandling#generate_robots_txt (method)">#generate_robots_txt</a></span>
212
+ <small>Ballast::Concerns::AjaxHandling</small>
125
213
  </li>
126
214
 
127
215
 
@@ -132,32 +220,32 @@
132
220
 
133
221
 
134
222
  <li class="r1 ">
135
- <span class='object_link'><a href="Ballast/Operation.html#import_error-instance_method" title="Ballast::Operation#import_error (method)">#import_error</a></span>
136
- <small>Ballast::Operation</small>
223
+ <span class='object_link'><a href="Ballast/Service.html#handle_failure-class_method" title="Ballast::Service.handle_failure (method)">handle_failure</a></span>
224
+ <small>Ballast::Service</small>
137
225
  </li>
138
226
 
139
227
 
140
228
  <li class="r2 ">
141
- <span class='object_link'><a href="Ballast/Operation.html#import_response-instance_method" title="Ballast::Operation#import_response (method)">#import_response</a></span>
142
- <small>Ballast::Operation</small>
229
+ <span class='object_link'><a href="Ballast/Emoji/Character.html#image_tag-instance_method" title="Ballast::Emoji::Character#image_tag (method)">#image_tag</a></span>
230
+ <small>Ballast::Emoji::Character</small>
143
231
  </li>
144
232
 
145
233
 
146
234
  <li class="r1 ">
147
- <span class='object_link'><a href="Ballast/Operation.html#in_em_thread-instance_method" title="Ballast::Operation#in_em_thread (method)">#in_em_thread</a></span>
148
- <small>Ballast::Operation</small>
235
+ <span class='object_link'><a href="Ballast.html#in_em_thread-class_method" title="Ballast.in_em_thread (method)">in_em_thread</a></span>
236
+ <small>Ballast</small>
149
237
  </li>
150
238
 
151
239
 
152
240
  <li class="r2 ">
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>
241
+ <span class='object_link'><a href="Ballast/Service.html#initialize-instance_method" title="Ballast::Service#initialize (method)">#initialize</a></span>
242
+ <small>Ballast::Service</small>
155
243
  </li>
156
244
 
157
245
 
158
246
  <li class="r1 ">
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>
247
+ <span class='object_link'><a href="Ballast/Configuration.html#initialize-instance_method" title="Ballast::Configuration#initialize (method)">#initialize</a></span>
248
+ <small>Ballast::Configuration</small>
161
249
  </li>
162
250
 
163
251
 
@@ -168,50 +256,50 @@
168
256
 
169
257
 
170
258
  <li class="r1 ">
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>
259
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#initialize-instance_method" title="Ballast::AjaxResponse#initialize (method)">#initialize</a></span>
260
+ <small>Ballast::AjaxResponse</small>
173
261
  </li>
174
262
 
175
263
 
176
264
  <li class="r2 ">
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>
265
+ <span class='object_link'><a href="Ballast/Errors/Base.html#initialize-instance_method" title="Ballast::Errors::Base#initialize (method)">#initialize</a></span>
266
+ <small>Ballast::Errors::Base</small>
179
267
  </li>
180
268
 
181
269
 
182
270
  <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>
271
+ <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#initialize-instance_method" title="Ballast::RequestDomainMatcher#initialize (method)">#initialize</a></span>
272
+ <small>Ballast::RequestDomainMatcher</small>
185
273
  </li>
186
274
 
187
275
 
188
276
  <li class="r2 ">
189
- <span class='object_link'><a href="Ballast/Operation.html#initialize-instance_method" title="Ballast::Operation#initialize (method)">#initialize</a></span>
190
- <small>Ballast::Operation</small>
277
+ <span class='object_link'><a href="Ballast/Service/Response.html#initialize-instance_method" title="Ballast::Service::Response#initialize (method)">#initialize</a></span>
278
+ <small>Ballast::Service::Response</small>
191
279
  </li>
192
280
 
193
281
 
194
282
  <li class="r1 ">
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>
196
- <small>Ballast::Concerns::Ajax</small>
283
+ <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>
284
+ <small>Ballast::Concerns::View</small>
197
285
  </li>
198
286
 
199
287
 
200
288
  <li class="r2 ">
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>
289
+ <span class='object_link'><a href="Ballast/Concerns/Common.html#json%3F-instance_method" title="Ballast::Concerns::Common#json? (method)">#json?</a></span>
202
290
  <small>Ballast::Concerns::Common</small>
203
291
  </li>
204
292
 
205
293
 
206
294
  <li class="r1 ">
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>
295
+ <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
296
  <small>Ballast::Concerns::View</small>
209
297
  </li>
210
298
 
211
299
 
212
300
  <li class="r2 ">
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>
214
- <small>Ballast::Concerns::View</small>
301
+ <span class='object_link'><a href="Ballast/Emoji/Character.html#markup-instance_method" title="Ballast::Emoji::Character#markup (method)">#markup</a></span>
302
+ <small>Ballast::Emoji::Character</small>
215
303
  </li>
216
304
 
217
305
 
@@ -222,128 +310,128 @@
222
310
 
223
311
 
224
312
  <li class="r2 ">
225
- <span class='object_link'><a href="Ballast/Operation.html#method_missing-instance_method" title="Ballast::Operation#method_missing (method)">#method_missing</a></span>
226
- <small>Ballast::Operation</small>
313
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#numeric_status-instance_method" title="Ballast::AjaxResponse#numeric_status (method)">#numeric_status</a></span>
314
+ <small>Ballast::AjaxResponse</small>
227
315
  </li>
228
316
 
229
317
 
230
318
  <li class="r1 ">
231
- <span class='object_link'><a href="Ballast/Context.html#method_missing-instance_method" title="Ballast::Context#method_missing (method)">#method_missing</a></span>
232
- <small>Ballast::Context</small>
319
+ <span class='object_link'><a href="Ballast/Service.html#owner-instance_method" title="Ballast::Service#owner (method)">#owner</a></span>
320
+ <small>Ballast::Service</small>
233
321
  </li>
234
322
 
235
323
 
236
324
  <li class="r2 ">
237
- <span class='object_link'><a href="Ballast/OperationsChain.html#operations-instance_method" title="Ballast::OperationsChain#operations (method)">#operations</a></span>
238
- <small>Ballast::OperationsChain</small>
325
+ <span class='object_link'><a href="Ballast/Concerns/AjaxHandling.html#prepare_ajax_response-instance_method" title="Ballast::Concerns::AjaxHandling#prepare_ajax_response (method)">#prepare_ajax_response</a></span>
326
+ <small>Ballast::Concerns::AjaxHandling</small>
239
327
  </li>
240
328
 
241
329
 
242
330
  <li class="r1 ">
243
- <span class='object_link'><a href="Ballast/Operation.html#perform-class_method" title="Ballast::Operation.perform (method)">perform</a></span>
244
- <small>Ballast::Operation</small>
331
+ <span class='object_link'><a href="Ballast/Concerns/AjaxHandling.html#prevent_caching-instance_method" title="Ballast::Concerns::AjaxHandling#prevent_caching (method)">#prevent_caching</a></span>
332
+ <small>Ballast::Concerns::AjaxHandling</small>
245
333
  </li>
246
334
 
247
335
 
248
336
  <li class="r2 ">
249
- <span class='object_link'><a href="Ballast/OperationsChain.html#perform-class_method" title="Ballast::OperationsChain.perform (method)">perform</a></span>
250
- <small>Ballast::OperationsChain</small>
337
+ <span class='object_link'><a href="Ballast/Emoji/Utils.html#replace-instance_method" title="Ballast::Emoji::Utils#replace (method)">#replace</a></span>
338
+ <small>Ballast::Emoji::Utils</small>
251
339
  </li>
252
340
 
253
341
 
254
342
  <li class="r1 ">
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>
256
- <small>Ballast::Concerns::Common</small>
343
+ <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_block-instance_method" title="Ballast::RequestDomainMatcher#replace_block (method)">#replace_block</a></span>
344
+ <small>Ballast::RequestDomainMatcher</small>
257
345
  </li>
258
346
 
259
347
 
260
348
  <li class="r2 ">
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>
262
- <small>Ballast::Concerns::Common</small>
349
+ <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_pattern-instance_method" title="Ballast::RequestDomainMatcher#replace_pattern (method)">#replace_pattern</a></span>
350
+ <small>Ballast::RequestDomainMatcher</small>
263
351
  </li>
264
352
 
265
353
 
266
354
  <li class="r1 ">
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>
268
- <small>Ballast::Operation</small>
355
+ <span class='object_link'><a href="Ballast/Emoji/Utils.html#replace_regex-instance_method" title="Ballast::Emoji::Utils#replace_regex (method)">#replace_regex</a></span>
356
+ <small>Ballast::Emoji::Utils</small>
269
357
  </li>
270
358
 
271
359
 
272
360
  <li class="r2 ">
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>
274
- <small>Ballast::Concerns::Ajax</small>
361
+ <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_string-instance_method" title="Ballast::RequestDomainMatcher#replace_string (method)">#replace_string</a></span>
362
+ <small>Ballast::RequestDomainMatcher</small>
275
363
  </li>
276
364
 
277
365
 
278
366
  <li class="r1 ">
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>
280
- <small>Ballast::Concerns::Ajax</small>
367
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#reply-instance_method" title="Ballast::AjaxResponse#reply (method)">#reply</a></span>
368
+ <small>Ballast::AjaxResponse</small>
281
369
  </li>
282
370
 
283
371
 
284
372
  <li class="r2 ">
285
- <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_block-instance_method" title="Ballast::RequestDomainMatcher#replace_block (method)">#replace_block</a></span>
286
- <small>Ballast::RequestDomainMatcher</small>
373
+ <span class='object_link'><a href="Ballast/Concerns/Common.html#request_data%3F-instance_method" title="Ballast::Concerns::Common#request_data? (method)">#request_data?</a></span>
374
+ <small>Ballast::Concerns::Common</small>
287
375
  </li>
288
376
 
289
377
 
290
378
  <li class="r1 ">
291
- <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_pattern-instance_method" title="Ballast::RequestDomainMatcher#replace_pattern (method)">#replace_pattern</a></span>
292
- <small>Ballast::RequestDomainMatcher</small>
379
+ <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>
380
+ <small>Ballast::Concerns::View</small>
293
381
  </li>
294
382
 
295
383
 
296
384
  <li class="r2 ">
297
- <span class='object_link'><a href="Ballast/RequestDomainMatcher.html#replace_string-instance_method" title="Ballast::RequestDomainMatcher#replace_string (method)">#replace_string</a></span>
298
- <small>Ballast::RequestDomainMatcher</small>
385
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#status-instance_method" title="Ballast::AjaxResponse#status (method)">#status</a></span>
386
+ <small>Ballast::AjaxResponse</small>
299
387
  </li>
300
388
 
301
389
 
302
390
  <li class="r1 ">
303
- <span class='object_link'><a href="Ballast/Operation.html#resolve_error-instance_method" title="Ballast::Operation#resolve_error (method)">#resolve_error</a></span>
304
- <small>Ballast::Operation</small>
391
+ <span class='object_link'><a href="Ballast/Service/Response.html#success-instance_method" title="Ballast::Service::Response#success (method)">#success</a></span>
392
+ <small>Ballast::Service::Response</small>
305
393
  </li>
306
394
 
307
395
 
308
396
  <li class="r2 ">
309
- <span class='object_link'><a href="Ballast/Errors/BaseError.html#response-instance_method" title="Ballast::Errors::BaseError#response (method)">#response</a></span>
310
- <small>Ballast::Errors::BaseError</small>
397
+ <span class='object_link'><a href="Ballast/Service/Response.html#success%3F-instance_method" title="Ballast::Service::Response#success? (method)">#success?</a></span>
398
+ <small>Ballast::Service::Response</small>
311
399
  </li>
312
400
 
313
401
 
314
402
  <li class="r1 ">
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>
316
- <small>Ballast::Concerns::View</small>
403
+ <span class='object_link'><a href="Ballast/AjaxResponse.html#transport-instance_method" title="Ballast::AjaxResponse#transport (method)">#transport</a></span>
404
+ <small>Ballast::AjaxResponse</small>
317
405
  </li>
318
406
 
319
407
 
320
408
  <li class="r2 ">
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>
322
- <small>Ballast::Concerns::Ajax</small>
409
+ <span class='object_link'><a href="Ballast/Concerns/View.html#update_javascript_params-instance_method" title="Ballast::Concerns::View#update_javascript_params (method)">#update_javascript_params</a></span>
410
+ <small>Ballast::Concerns::View</small>
323
411
  </li>
324
412
 
325
413
 
326
414
  <li class="r1 ">
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>
328
- <small>Ballast::Concerns::Common</small>
415
+ <span class='object_link'><a href="Ballast/Concerns/View.html#update_layout_params-instance_method" title="Ballast::Concerns::View#update_layout_params (method)">#update_layout_params</a></span>
416
+ <small>Ballast::Concerns::View</small>
329
417
  </li>
330
418
 
331
419
 
332
420
  <li class="r2 ">
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>
334
- <small>Ballast::Concerns::View</small>
421
+ <span class='object_link'><a href="Ballast/Emoji/Character.html#url-instance_method" title="Ballast::Emoji::Character#url (method)">#url</a></span>
422
+ <small>Ballast::Emoji::Character</small>
335
423
  </li>
336
424
 
337
425
 
338
426
  <li class="r1 ">
339
- <span class='object_link'><a href="Ballast/Operation.html#setup_response-instance_method" title="Ballast::Operation#setup_response (method)">#setup_response</a></span>
340
- <small>Ballast::Operation</small>
427
+ <span class='object_link'><a href="Ballast/Emoji/Utils.html#url_for-instance_method" title="Ballast::Emoji::Utils#url_for (method)">#url_for</a></span>
428
+ <small>Ballast::Emoji::Utils</small>
341
429
  </li>
342
430
 
343
431
 
344
432
  <li class="r2 ">
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>
346
- <small>Ballast::Concerns::Ajax</small>
433
+ <span class='object_link'><a href="Ballast/Emoji/Utils.html#url_mapper-instance_method" title="Ballast::Emoji::Utils#url_mapper (method)">#url_mapper</a></span>
434
+ <small>Ballast::Emoji::Utils</small>
347
435
  </li>
348
436
 
349
437
 
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.8.7.3
9
+ &mdash; Documentation by YARD 0.8.7.6
10
10
 
11
11
  </title>
12
12
 
@@ -17,7 +17,7 @@
17
17
  <script type="text/javascript" charset="utf-8">
18
18
  hasFrames = window.top.frames.main ? true : false;
19
19
  relpath = '';
20
- framesUrl = "frames.html#!" + escape(window.location.href);
20
+ framesUrl = "frames.html#!top-level-namespace.html";
21
21
  </script>
22
22
 
23
23
 
@@ -73,8 +73,16 @@
73
73
 
74
74
 
75
75
 
76
+ <dt class="r1">Extended by:</dt>
77
+ <dd class="r1"><span class='object_link'><a href="Ballast/Emoji/Utils.html" title="Ballast::Emoji::Utils (module)">Ballast::Emoji::Utils</a></span></dd>
78
+
79
+
76
80
 
77
81
 
82
+ <dt class="r2">Includes:</dt>
83
+ <dd class="r2"><span class='object_link'><a href="Ballast/Emoji/Character.html" title="Ballast::Emoji::Character (module)">Ballast::Emoji::Character</a></span></dd>
84
+
85
+
78
86
 
79
87
 
80
88
 
@@ -97,15 +105,44 @@
97
105
 
98
106
 
99
107
 
108
+ <h2>Instance Attribute Summary</h2>
109
+
110
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="Ballast/Emoji/Utils.html" title="Ballast::Emoji::Utils (module)">Ballast::Emoji::Utils</a></span></h3>
111
+ <p class="inherited"><span class='object_link'><a href="Ballast/Emoji/Utils.html#url_mapper-instance_method" title="Ballast::Emoji::Utils#url_mapper (method)">#url_mapper</a></span></p>
112
+
113
+
100
114
 
115
+
116
+
117
+
118
+
119
+
120
+
121
+ <h2>Method Summary</h2>
122
+
123
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Ballast/Emoji/Utils.html" title="Ballast::Emoji::Utils (module)">Ballast::Emoji::Utils</a></span></h3>
124
+ <p class="inherited"><span class='object_link'><a href="Ballast/Emoji/Utils.html#enumerate-instance_method" title="Ballast::Emoji::Utils#enumerate (method)">enumerate</a></span>, <span class='object_link'><a href="Ballast/Emoji/Utils.html#replace-instance_method" title="Ballast::Emoji::Utils#replace (method)">replace</a></span>, <span class='object_link'><a href="Ballast/Emoji/Utils.html#replace_regex-instance_method" title="Ballast::Emoji::Utils#replace_regex (method)">replace_regex</a></span>, <span class='object_link'><a href="Ballast/Emoji/Utils.html#url_for-instance_method" title="Ballast::Emoji::Utils#url_for (method)">url_for</a></span></p>
101
125
 
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Ballast/Emoji/Character.html" title="Ballast::Emoji::Character (module)">Ballast::Emoji::Character</a></span></h3>
135
+ <p class="inherited"><span class='object_link'><a href="Ballast/Emoji/Character.html#image_tag-instance_method" title="Ballast::Emoji::Character#image_tag (method)">#image_tag</a></span>, <span class='object_link'><a href="Ballast/Emoji/Character.html#markup-instance_method" title="Ballast::Emoji::Character#markup (method)">#markup</a></span>, <span class='object_link'><a href="Ballast/Emoji/Character.html#url-instance_method" title="Ballast::Emoji::Character#url (method)">#url</a></span></p>
136
+
137
+
138
+
102
139
 
103
140
  </div>
104
141
 
105
142
  <div id="footer">
106
- Generated on Sat Mar 15 14:04:12 2014 by
143
+ Generated on Sun Nov 2 09:40:00 2014 by
107
144
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
- 0.8.7.3 (ruby-2.1.0).
145
+ 0.8.7.6 (ruby-2.1.3).
109
146
  </div>
110
147
 
111
148
  </body>
@@ -0,0 +1,76 @@
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
+ module Ballast
7
+ # An AJAX response.
8
+ #
9
+ # @attribute status
10
+ # @return [Symbol|Fixnum] The HTTP status of the response.
11
+ # @attribute data
12
+ # @return [Object|Hash|NilClass] The data to send to the client.
13
+ # @attribute error
14
+ # @return [Object|NilClass] A error message.
15
+ # @attribute transport
16
+ # @return [Object|NilClass] The transport to use for sending. Must respond to `render`, `params`, `request.format` and `performed?`.
17
+ class AjaxResponse
18
+ attr_accessor :status, :data, :error, :transport
19
+
20
+ # Creates an AJAX response.
21
+ #
22
+ # @param status [Symbol|Fixnum] The HTTP status of the response.
23
+ # @param data [Object|Hash|NilClass] Additional data to append to the response.
24
+ # @param error [Object|NilClass] A error to append to the response.
25
+ # @param transport [Object|NilClass] The transport to use for sending. Must respond to `render`, `params`, `request.format` and `performed?`.
26
+ def initialize(status: :ok, data: {}, error: nil, transport: nil)
27
+ @status = status
28
+ @data = data
29
+ @error = error
30
+ @transport = transport
31
+ end
32
+
33
+ # Returns the status as a number.
34
+ #
35
+ # @return [Fixnum] The status as a number.
36
+ def numeric_status
37
+ status.is_a?(Fixnum) ? status : Rack::Utils.status_code(status.ensure_string.to_sym)
38
+ end
39
+
40
+ # Returns a JSON representation of the response.
41
+ #
42
+ # @param options [Hash] The options to use for serializing. Currently only `original_status` is supported.
43
+ # @return [Hash] A JSON representation of the response.
44
+ def as_json(options = {})
45
+ {
46
+ status: options[:original_status] ? status : numeric_status,
47
+ data: data,
48
+ error: error
49
+ }
50
+ end
51
+
52
+ # Sends the response using the transport.
53
+ #
54
+ # @param format [Symbol] The content type of the response.
55
+ # @param pretty_json [Boolean] If JSON response must be pretty formatted.
56
+ def reply(format: :json, pretty_json: false)
57
+ return if transport.performed?
58
+
59
+ format, callback, content_type = format_reply(format)
60
+ data = (pretty_json ? Oj.dump(self) : ActiveSupport::JSON.encode(self)) if [:json, :jsonp, :text].include?(format)
61
+
62
+ transport.render(format => data, status: numeric_status, callback: callback, content_type: content_type)
63
+ end
64
+
65
+ private
66
+
67
+ # :nodoc:
68
+ def format_reply(format)
69
+ format = (format || transport.params[:format] || transport.request.format || "json").to_sym
70
+ callback = [:jsonp, :pretty_jsonp].include?(format) ? (transport.params[:callback] || "jsonp#{Time.now.to_i}") : nil
71
+ content_type = (format == :text) ? "text/plain" : nil
72
+
73
+ [format, callback, content_type]
74
+ end
75
+ end
76
+ end