ballast 1.0.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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis-gemfile +15 -0
  4. data/.travis.yml +7 -0
  5. data/.yardopts +1 -0
  6. data/CHANGELOG.md +4 -0
  7. data/Gemfile +21 -0
  8. data/README.md +40 -0
  9. data/Rakefile +28 -0
  10. data/ballast.gemspec +35 -0
  11. data/doc/Ballast/Concerns/Ajax.html +806 -0
  12. data/doc/Ballast/Concerns/Common.html +900 -0
  13. data/doc/Ballast/Concerns/ErrorsHandling.html +283 -0
  14. data/doc/Ballast/Concerns/View.html +664 -0
  15. data/doc/Ballast/Concerns.html +127 -0
  16. data/doc/Ballast/Context.html +417 -0
  17. data/doc/Ballast/Errors/BaseError.html +326 -0
  18. data/doc/Ballast/Errors/InvalidDomain.html +157 -0
  19. data/doc/Ballast/Errors/PerformError.html +157 -0
  20. data/doc/Ballast/Errors/ValidationError.html +157 -0
  21. data/doc/Ballast/Errors.html +125 -0
  22. data/doc/Ballast/Operation.html +1304 -0
  23. data/doc/Ballast/OperationsChain.html +585 -0
  24. data/doc/Ballast/Version.html +189 -0
  25. data/doc/Ballast.html +130 -0
  26. data/doc/_index.html +267 -0
  27. data/doc/class_list.html +54 -0
  28. data/doc/css/common.css +1 -0
  29. data/doc/css/full_list.css +57 -0
  30. data/doc/css/style.css +338 -0
  31. data/doc/file.README.html +115 -0
  32. data/doc/file_list.html +56 -0
  33. data/doc/frames.html +26 -0
  34. data/doc/index.html +115 -0
  35. data/doc/js/app.js +219 -0
  36. data/doc/js/full_list.js +178 -0
  37. data/doc/js/jquery.js +4 -0
  38. data/doc/method_list.html +269 -0
  39. data/doc/top-level-namespace.html +112 -0
  40. data/lib/ballast/concerns/ajax.rb +116 -0
  41. data/lib/ballast/concerns/common.rb +97 -0
  42. data/lib/ballast/concerns/errors_handling.rb +49 -0
  43. data/lib/ballast/concerns/view.rb +63 -0
  44. data/lib/ballast/context.rb +38 -0
  45. data/lib/ballast/errors.rb +34 -0
  46. data/lib/ballast/operation.rb +136 -0
  47. data/lib/ballast/operations_chain.rb +38 -0
  48. data/lib/ballast/version.rb +24 -0
  49. data/lib/ballast.rb +24 -0
  50. data/spec/ballast/concerns/ajax_spec.rb +124 -0
  51. data/spec/ballast/concerns/common_spec.rb +100 -0
  52. data/spec/ballast/concerns/errors_handling_spec.rb +63 -0
  53. data/spec/ballast/concerns/view_spec.rb +107 -0
  54. data/spec/ballast/context_spec.rb +23 -0
  55. data/spec/ballast/errors_spec.rb +16 -0
  56. data/spec/ballast/operation_spec.rb +175 -0
  57. data/spec/ballast/operations_chain_spec.rb +33 -0
  58. data/spec/coverage_helper.rb +19 -0
  59. data/spec/spec_helper.rb +19 -0
  60. metadata +225 -0
@@ -0,0 +1,806 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>
7
+ Module: Ballast::Concerns::Ajax
8
+
9
+ &mdash; Documentation by YARD 0.8.7.3
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../../css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="../../css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ hasFrames = window.top.frames.main ? true : false;
19
+ relpath = '../../';
20
+ framesUrl = "../../frames.html#!" + escape(window.location.href);
21
+ </script>
22
+
23
+
24
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
25
+
26
+ <script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
27
+
28
+
29
+ </head>
30
+ <body>
31
+ <div id="header">
32
+ <div id="menu">
33
+
34
+ <a href="../../_index.html">Index (A)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../../Ballast.html" title="Ballast (module)">Ballast</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Concerns.html" title="Ballast::Concerns (module)">Concerns</a></span></span>
36
+ &raquo;
37
+ <span class="title">Ajax</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a class="full_list_link" id="class_list_link"
46
+ href="../../class_list.html">
47
+ Class List
48
+ </a>
49
+
50
+ <a class="full_list_link" id="method_list_link"
51
+ href="../../method_list.html">
52
+ Method List
53
+ </a>
54
+
55
+ <a class="full_list_link" id="file_list_link"
56
+ href="../../file_list.html">
57
+ File List
58
+ </a>
59
+
60
+ </div>
61
+ <div class="clear"></div>
62
+ </div>
63
+
64
+ <iframe id="search_frame"></iframe>
65
+
66
+ <div id="content"><h1>Module: Ballast::Concerns::Ajax
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+
75
+
76
+ <dt class="r1">Extended by:</dt>
77
+ <dd class="r1">ActiveSupport::Concern</dd>
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+ <dt class="r2 last">Defined in:</dt>
86
+ <dd class="r2 last">lib/ballast/concerns/ajax.rb</dd>
87
+
88
+ </dl>
89
+ <div class="clear"></div>
90
+
91
+ <h2>Overview</h2><div class="docstring">
92
+ <div class="discussion">
93
+ <p>A concern to handle AJAX and HTTP requests.</p>
94
+
95
+
96
+ </div>
97
+ </div>
98
+ <div class="tags">
99
+
100
+
101
+ </div>
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+ <h2>
110
+ Instance Method Summary
111
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
112
+ </h2>
113
+
114
+ <ul class="summary">
115
+
116
+ <li class="public ">
117
+ <span class="summary_signature">
118
+
119
+ <a href="#allow_cors-instance_method" title="#allow_cors (instance method)">- (Object) <strong>allow_cors</strong> </a>
120
+
121
+
122
+
123
+ </span>
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ <span class="summary_desc"><div class='inline'><p>Allows HTTP Cross-Origin Resource Sharing.</p>
134
+ </div></span>
135
+
136
+ </li>
137
+
138
+
139
+ <li class="public ">
140
+ <span class="summary_signature">
141
+
142
+ <a href="#disallow_robots-instance_method" title="#disallow_robots (instance method)">- (Object) <strong>disallow_robots</strong> </a>
143
+
144
+
145
+
146
+ </span>
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+ <span class="summary_desc"><div class='inline'><p>Disallows web robots.</p>
157
+ </div></span>
158
+
159
+ </li>
160
+
161
+
162
+ <li class="public ">
163
+ <span class="summary_signature">
164
+
165
+ <a href="#is_ajax%3F-instance_method" title="#is_ajax? (instance method)">- (Boolean) <strong>is_ajax?</strong> </a>
166
+
167
+
168
+
169
+ </span>
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ <span class="summary_desc"><div class='inline'><p>Checks if the current request is AJAX.</p>
180
+ </div></span>
181
+
182
+ </li>
183
+
184
+
185
+ <li class="public ">
186
+ <span class="summary_signature">
187
+
188
+ <a href="#prepare_ajax-instance_method" title="#prepare_ajax (instance method)">- (Object) <strong>prepare_ajax</strong>(status = :ok, data = nil, error = nil) </a>
189
+
190
+
191
+
192
+ </span>
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+ <span class="summary_desc"><div class='inline'><p>Prepares an AJAX response.</p>
203
+ </div></span>
204
+
205
+ </li>
206
+
207
+
208
+ <li class="public ">
209
+ <span class="summary_signature">
210
+
211
+ <a href="#prevent_caching-instance_method" title="#prevent_caching (instance method)">- (Object) <strong>prevent_caching</strong> </a>
212
+
213
+
214
+
215
+ </span>
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ <span class="summary_desc"><div class='inline'><p>Prevents HTTP caching.</p>
226
+ </div></span>
227
+
228
+ </li>
229
+
230
+
231
+ <li class="public ">
232
+ <span class="summary_signature">
233
+
234
+ <a href="#send_ajax-instance_method" title="#send_ajax (instance method)">- (Object) <strong>send_ajax</strong>(data, status: :ok, format: :json) </a>
235
+
236
+
237
+
238
+ </span>
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ <span class="summary_desc"><div class='inline'><p>Sends an AJAX response to the client.</p>
249
+ </div></span>
250
+
251
+ </li>
252
+
253
+
254
+ <li class="public ">
255
+ <span class="summary_signature">
256
+
257
+ <a href="#update_ajax-instance_method" title="#update_ajax (instance method)">- (Hash) <strong>update_ajax</strong>(data, operation = nil) </a>
258
+
259
+
260
+
261
+ </span>
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+ <span class="summary_desc"><div class='inline'><p>Updates an AJAX response from a operation, taking either the response data or the first error.</p>
272
+ </div></span>
273
+
274
+ </li>
275
+
276
+
277
+ </ul>
278
+
279
+
280
+
281
+
282
+
283
+ <div id="instance_method_details" class="method_details_list">
284
+ <h2>Instance Method Details</h2>
285
+
286
+
287
+ <div class="method_details first">
288
+ <h3 class="signature first" id="allow_cors-instance_method">
289
+
290
+ - (<tt>Object</tt>) <strong>allow_cors</strong>
291
+
292
+
293
+
294
+
295
+
296
+ </h3><div class="docstring">
297
+ <div class="discussion">
298
+ <p>Allows HTTP Cross-Origin Resource Sharing.</p>
299
+
300
+
301
+ </div>
302
+ </div>
303
+ <div class="tags">
304
+
305
+
306
+ </div><table class="source_code">
307
+ <tr>
308
+ <td>
309
+ <pre class="lines">
310
+
311
+
312
+ 75
313
+ 76
314
+ 77
315
+ 78
316
+ 79
317
+ 80
318
+ 81
319
+ 82</pre>
320
+ </td>
321
+ <td>
322
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 75</span>
323
+
324
+ <span class='kw'>def</span> <span class='id identifier rubyid_allow_cors'>allow_cors</span>
325
+ <span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='lbrace'>{</span>
326
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Access-Control-Allow-Origin</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
327
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Access-Control-Allow-Methods</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>POST, GET, OPTIONS</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
328
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Access-Control-Allow-Headers</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
329
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Access-Control-Max-Age</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='int'>1</span><span class='period'>.</span><span class='id identifier rubyid_year'>year</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span>
330
+ <span class='rbrace'>}</span><span class='rparen'>)</span>
331
+ <span class='kw'>end</span></pre>
332
+ </td>
333
+ </tr>
334
+ </table>
335
+ </div>
336
+
337
+ <div class="method_details ">
338
+ <h3 class="signature " id="disallow_robots-instance_method">
339
+
340
+ - (<tt>Object</tt>) <strong>disallow_robots</strong>
341
+
342
+
343
+
344
+
345
+
346
+ </h3><div class="docstring">
347
+ <div class="discussion">
348
+ <p>Disallows web robots.</p>
349
+
350
+
351
+ </div>
352
+ </div>
353
+ <div class="tags">
354
+
355
+
356
+ </div><table class="source_code">
357
+ <tr>
358
+ <td>
359
+ <pre class="lines">
360
+
361
+
362
+ 85
363
+ 86
364
+ 87</pre>
365
+ </td>
366
+ <td>
367
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 85</span>
368
+
369
+ <span class='kw'>def</span> <span class='id identifier rubyid_disallow_robots'>disallow_robots</span>
370
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='label'>text:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>User-agent: *\nDisallow: /</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>content_type:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>text/plain</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
371
+ <span class='kw'>end</span></pre>
372
+ </td>
373
+ </tr>
374
+ </table>
375
+ </div>
376
+
377
+ <div class="method_details ">
378
+ <h3 class="signature " id="is_ajax?-instance_method">
379
+
380
+ - (<tt>Boolean</tt>) <strong>is_ajax?</strong>
381
+
382
+
383
+
384
+
385
+
386
+ </h3><div class="docstring">
387
+ <div class="discussion">
388
+ <p>Checks if the current request is AJAX.</p>
389
+
390
+
391
+ </div>
392
+ </div>
393
+ <div class="tags">
394
+
395
+ <p class="tag_title">Returns:</p>
396
+ <ul class="return">
397
+
398
+ <li>
399
+
400
+
401
+ <span class='type'>(<tt>Boolean</tt>)</span>
402
+
403
+
404
+
405
+ &mdash;
406
+ <div class='inline'><p><code>true</code> if the request is AJAX, <code>false</code> otherwise.</p>
407
+ </div>
408
+
409
+ </li>
410
+
411
+ </ul>
412
+
413
+ </div><table class="source_code">
414
+ <tr>
415
+ <td>
416
+ <pre class="lines">
417
+
418
+
419
+ 16
420
+ 17
421
+ 18</pre>
422
+ </td>
423
+ <td>
424
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 16</span>
425
+
426
+ <span class='kw'>def</span> <span class='id identifier rubyid_is_ajax?'>is_ajax?</span>
427
+ <span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:xhr?</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_xhr?'>xhr?</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:xhr</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
428
+ <span class='kw'>end</span></pre>
429
+ </td>
430
+ </tr>
431
+ </table>
432
+ </div>
433
+
434
+ <div class="method_details ">
435
+ <h3 class="signature " id="prepare_ajax-instance_method">
436
+
437
+ - (<tt>Object</tt>) <strong>prepare_ajax</strong>(status = :ok, data = nil, error = nil)
438
+
439
+
440
+
441
+
442
+
443
+ </h3><div class="docstring">
444
+ <div class="discussion">
445
+ <p>Prepares an AJAX response.</p>
446
+
447
+
448
+ </div>
449
+ </div>
450
+ <div class="tags">
451
+ <p class="tag_title">Parameters:</p>
452
+ <ul class="param">
453
+
454
+ <li>
455
+
456
+ <span class='name'>status</span>
457
+
458
+
459
+ <span class='type'>(<tt>Symbol|Fixnum</tt>)</span>
460
+
461
+
462
+ <em class="default">(defaults to: <tt>:ok</tt>)</em>
463
+
464
+
465
+ &mdash;
466
+ <div class='inline'><p>The HTTP status of the response.</p>
467
+ </div>
468
+
469
+ </li>
470
+
471
+ <li>
472
+
473
+ <span class='name'>data</span>
474
+
475
+
476
+ <span class='type'>(<tt>Object</tt>)</span>
477
+
478
+
479
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
480
+
481
+
482
+ &mdash;
483
+ <div class='inline'><p>Additional data to append to the response.</p>
484
+ </div>
485
+
486
+ </li>
487
+
488
+ <li>
489
+
490
+ <span class='name'>error</span>
491
+
492
+
493
+ <span class='type'>(<tt>Object</tt>)</span>
494
+
495
+
496
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
497
+
498
+
499
+ &mdash;
500
+ <div class='inline'><p>A error to append to the response.</p>
501
+ </div>
502
+
503
+ </li>
504
+
505
+ </ul>
506
+
507
+
508
+ </div><table class="source_code">
509
+ <tr>
510
+ <td>
511
+ <pre class="lines">
512
+
513
+
514
+ 25
515
+ 26
516
+ 27
517
+ 28
518
+ 29
519
+ 30</pre>
520
+ </td>
521
+ <td>
522
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 25</span>
523
+
524
+ <span class='kw'>def</span> <span class='id identifier rubyid_prepare_ajax'>prepare_ajax</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='symbol'>:ok</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
525
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_ensure_access'>ensure_access</span><span class='lparen'>(</span><span class='symbol'>:indifferent</span><span class='rparen'>)</span>
526
+ <span class='id identifier rubyid_rv'>rv</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_error'>error</span> <span class='kw'>if</span> <span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
527
+ <span class='id identifier rubyid_rv'>rv</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span> <span class='kw'>if</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
528
+ <span class='id identifier rubyid_rv'>rv</span>
529
+ <span class='kw'>end</span></pre>
530
+ </td>
531
+ </tr>
532
+ </table>
533
+ </div>
534
+
535
+ <div class="method_details ">
536
+ <h3 class="signature " id="prevent_caching-instance_method">
537
+
538
+ - (<tt>Object</tt>) <strong>prevent_caching</strong>
539
+
540
+
541
+
542
+
543
+
544
+ </h3><div class="docstring">
545
+ <div class="discussion">
546
+ <p>Prevents HTTP caching.</p>
547
+
548
+
549
+ </div>
550
+ </div>
551
+ <div class="tags">
552
+
553
+
554
+ </div><table class="source_code">
555
+ <tr>
556
+ <td>
557
+ <pre class="lines">
558
+
559
+
560
+ 66
561
+ 67
562
+ 68
563
+ 69
564
+ 70
565
+ 71
566
+ 72</pre>
567
+ </td>
568
+ <td>
569
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 66</span>
570
+
571
+ <span class='kw'>def</span> <span class='id identifier rubyid_prevent_caching'>prevent_caching</span>
572
+ <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='lbrace'>{</span>
573
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Cache-Control</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>no-cache, no-store, max-age=0, must-revalidate</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
574
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Pragma</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>no-cache</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
575
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Expires</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Fri, 01 Jan 1990 00:00:00 GMT</span><span class='tstring_end'>&quot;</span></span>
576
+ <span class='rbrace'>}</span><span class='rparen'>)</span>
577
+ <span class='kw'>end</span></pre>
578
+ </td>
579
+ </tr>
580
+ </table>
581
+ </div>
582
+
583
+ <div class="method_details ">
584
+ <h3 class="signature " id="send_ajax-instance_method">
585
+
586
+ - (<tt>Object</tt>) <strong>send_ajax</strong>(data, status: :ok, format: :json)
587
+
588
+
589
+
590
+
591
+
592
+ </h3><div class="docstring">
593
+ <div class="discussion">
594
+ <p>Sends an AJAX response to the client.</p>
595
+
596
+
597
+ </div>
598
+ </div>
599
+ <div class="tags">
600
+ <p class="tag_title">Parameters:</p>
601
+ <ul class="param">
602
+
603
+ <li>
604
+
605
+ <span class='name'>data</span>
606
+
607
+
608
+ <span class='type'>(<tt>Hash</tt>)</span>
609
+
610
+
611
+
612
+ &mdash;
613
+ <div class='inline'><p>The response to send.</p>
614
+ </div>
615
+
616
+ </li>
617
+
618
+ <li>
619
+
620
+ <span class='name'>status</span>
621
+
622
+
623
+ <span class='type'>(<tt>Symbol|Fixnum</tt>)</span>
624
+
625
+
626
+
627
+ &mdash;
628
+ <div class='inline'><p>The HTTP status of the response, <em>ignored if already set in data</em>.</p>
629
+ </div>
630
+
631
+ </li>
632
+
633
+ <li>
634
+
635
+ <span class='name'>format</span>
636
+
637
+
638
+ <span class='type'>(<tt>Symbol</tt>)</span>
639
+
640
+
641
+
642
+ &mdash;
643
+ <div class='inline'><p>The content type of the response.</p>
644
+ </div>
645
+
646
+ </li>
647
+
648
+ </ul>
649
+
650
+
651
+ </div><table class="source_code">
652
+ <tr>
653
+ <td>
654
+ <pre class="lines">
655
+
656
+
657
+ 37
658
+ 38
659
+ 39
660
+ 40
661
+ 41
662
+ 42
663
+ 43
664
+ 44
665
+ 45
666
+ 46
667
+ 47
668
+ 48
669
+ 49
670
+ 50
671
+ 51
672
+ 52</pre>
673
+ </td>
674
+ <td>
675
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 37</span>
676
+
677
+ <span class='kw'>def</span> <span class='id identifier rubyid_send_ajax'>send_ajax</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='symbol'>:ok</span><span class='comma'>,</span> <span class='label'>format:</span> <span class='symbol'>:json</span><span class='rparen'>)</span>
678
+ <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_performed?'>performed?</span> <span class='kw'>then</span>
679
+ <span class='comment'># Prepare data
680
+ </span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_prepare_ajax_send'>prepare_ajax_send</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
681
+
682
+ <span class='comment'># Setup callback and format
683
+ </span> <span class='id identifier rubyid_format'>format</span><span class='comma'>,</span> <span class='id identifier rubyid_callback'>callback</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span> <span class='op'>=</span> <span class='id identifier rubyid_format_ajax_send'>format_ajax_send</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
684
+ <span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span>
685
+
686
+ <span class='comment'># Prepare data for formatting
687
+ </span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='const'>ActiveSupport</span><span class='op'>::</span><span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_encode'>encode</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='lbracket'>[</span><span class='symbol'>:json</span><span class='comma'>,</span> <span class='symbol'>:jsonp</span><span class='comma'>,</span> <span class='symbol'>:pretty_json</span><span class='comma'>,</span> <span class='symbol'>:pretty_jsonp</span><span class='comma'>,</span> <span class='symbol'>:text</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span><span class='rparen'>)</span>
688
+
689
+ <span class='comment'># Render
690
+ </span> <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='id identifier rubyid_format'>format</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='label'>callback:</span> <span class='id identifier rubyid_callback'>callback</span><span class='comma'>,</span> <span class='label'>content_type:</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='rparen'>)</span>
691
+ <span class='kw'>end</span>
692
+ <span class='kw'>end</span></pre>
693
+ </td>
694
+ </tr>
695
+ </table>
696
+ </div>
697
+
698
+ <div class="method_details ">
699
+ <h3 class="signature " id="update_ajax-instance_method">
700
+
701
+ - (<tt>Hash</tt>) <strong>update_ajax</strong>(data, operation = nil)
702
+
703
+
704
+
705
+
706
+
707
+ </h3><div class="docstring">
708
+ <div class="discussion">
709
+ <p>Updates an AJAX response from a operation, taking either the response data or the first error.</p>
710
+
711
+
712
+ </div>
713
+ </div>
714
+ <div class="tags">
715
+ <p class="tag_title">Parameters:</p>
716
+ <ul class="param">
717
+
718
+ <li>
719
+
720
+ <span class='name'>data</span>
721
+
722
+
723
+ <span class='type'>(<tt>Hash</tt>)</span>
724
+
725
+
726
+
727
+ &mdash;
728
+ <div class='inline'><p>The current data.</p>
729
+ </div>
730
+
731
+ </li>
732
+
733
+ <li>
734
+
735
+ <span class='name'>operation</span>
736
+
737
+
738
+ <span class='type'>(<tt><span class='object_link'><a href="../Operation.html" title="Ballast::Operation (class)">Operation</a></span></tt>)</span>
739
+
740
+
741
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
742
+
743
+
744
+ &mdash;
745
+ <div class='inline'><p>The operation to gather data from.</p>
746
+ </div>
747
+
748
+ </li>
749
+
750
+ </ul>
751
+
752
+ <p class="tag_title">Returns:</p>
753
+ <ul class="return">
754
+
755
+ <li>
756
+
757
+
758
+ <span class='type'>(<tt>Hash</tt>)</span>
759
+
760
+
761
+
762
+ &mdash;
763
+ <div class='inline'><p>The updated data.</p>
764
+ </div>
765
+
766
+ </li>
767
+
768
+ </ul>
769
+
770
+ </div><table class="source_code">
771
+ <tr>
772
+ <td>
773
+ <pre class="lines">
774
+
775
+
776
+ 59
777
+ 60
778
+ 61
779
+ 62
780
+ 63</pre>
781
+ </td>
782
+ <td>
783
+ <pre class="code"><span class="info file"># File 'lib/ballast/concerns/ajax.rb', line 59</span>
784
+
785
+ <span class='kw'>def</span> <span class='id identifier rubyid_update_ajax'>update_ajax</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_operation'>operation</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
786
+ <span class='id identifier rubyid_operation'>operation</span> <span class='op'>||=</span> <span class='ivar'>@operation</span>
787
+ <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_merge!'>merge!</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='period'>.</span><span class='id identifier rubyid_success?'>success?</span> <span class='op'>?</span> <span class='lbrace'>{</span><span class='label'>data:</span> <span class='id identifier rubyid_operation'>operation</span><span class='period'>.</span><span class='id identifier rubyid_response'>response</span><span class='lbracket'>[</span><span class='symbol'>:data</span><span class='rbracket'>]</span><span class='rbrace'>}</span> <span class='op'>:</span> <span class='lbrace'>{</span><span class='label'>error:</span> <span class='id identifier rubyid_operation'>operation</span><span class='period'>.</span><span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='rbrace'>}</span><span class='rparen'>)</span>
788
+ <span class='id identifier rubyid_data'>data</span>
789
+ <span class='kw'>end</span></pre>
790
+ </td>
791
+ </tr>
792
+ </table>
793
+ </div>
794
+
795
+ </div>
796
+
797
+ </div>
798
+
799
+ <div id="footer">
800
+ Generated on Wed Dec 25 11:35:22 2013 by
801
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
802
+ 0.8.7.3 (ruby-2.0.0).
803
+ </div>
804
+
805
+ </body>
806
+ </html>