ballast 2.0.1 → 2.1.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -2
  3. data/.rubocop.yml +3 -0
  4. data/CHANGELOG.md +4 -0
  5. data/README.md +2 -2
  6. data/ballast.gemspec +1 -1
  7. data/doc/Ballast/AjaxResponse.html +312 -264
  8. data/doc/Ballast/Concerns/AjaxHandling.html +39 -34
  9. data/doc/Ballast/Concerns/Common.html +231 -93
  10. data/doc/Ballast/Concerns/ErrorsHandling.html +15 -14
  11. data/doc/Ballast/Concerns/View.html +43 -36
  12. data/doc/Ballast/Concerns.html +2 -2
  13. data/doc/Ballast/Configuration.html +23 -20
  14. data/doc/Ballast/Emoji/Character.html +19 -16
  15. data/doc/Ballast/Emoji/Utils.html +87 -82
  16. data/doc/Ballast/Emoji.html +2 -2
  17. data/doc/Ballast/Errors/Base.html +19 -17
  18. data/doc/Ballast/Errors/Failure.html +2 -2
  19. data/doc/Ballast/Errors/InvalidDomain.html +2 -2
  20. data/doc/Ballast/Errors/ValidationFailure.html +2 -2
  21. data/doc/Ballast/Errors.html +3 -3
  22. data/doc/Ballast/Middlewares/DefaultHost.html +19 -17
  23. data/doc/Ballast/Middlewares.html +2 -2
  24. data/doc/Ballast/RequestDomainMatcher.html +118 -112
  25. data/doc/Ballast/Service/Response.html +216 -208
  26. data/doc/Ballast/Service.html +172 -178
  27. data/doc/Ballast/Version.html +10 -6
  28. data/doc/Ballast.html +15 -14
  29. data/doc/_index.html +2 -2
  30. data/doc/file.README.html +4 -4
  31. data/doc/index.html +4 -4
  32. data/doc/method_list.html +24 -18
  33. data/doc/top-level-namespace.html +2 -39
  34. data/lib/ballast/ajax_response.rb +6 -1
  35. data/lib/ballast/concerns/common.rb +10 -0
  36. data/lib/ballast/errors.rb +1 -1
  37. data/lib/ballast/version.rb +3 -3
  38. data/spec/ballast/concerns/common_spec.rb +26 -0
  39. metadata +5 -19
  40. data/tmp/saikuro/index_cyclo.html +0 -158
  41. data/tmp/saikuro/lib/ballast/concerns/ajax.rb_cyclo.html +0 -21
  42. data/tmp/saikuro/lib/ballast/concerns/common.rb_cyclo.html +0 -20
  43. data/tmp/saikuro/lib/ballast/concerns/errors_handling.rb_cyclo.html +0 -14
  44. data/tmp/saikuro/lib/ballast/concerns/view.rb_cyclo.html +0 -20
  45. data/tmp/saikuro/lib/ballast/configuration.rb_cyclo.html +0 -10
  46. data/tmp/saikuro/lib/ballast/context.rb_cyclo.html +0 -11
  47. data/tmp/saikuro/lib/ballast/errors.rb_cyclo.html +0 -22
  48. data/tmp/saikuro/lib/ballast/middlewares/default_host.rb_cyclo.html +0 -14
  49. data/tmp/saikuro/lib/ballast/operation.rb_cyclo.html +0 -19
  50. data/tmp/saikuro/lib/ballast/operations_chain.rb_cyclo.html +0 -12
  51. data/tmp/saikuro/lib/ballast/request_domain_matcher.rb_cyclo.html +0 -11
  52. data/tmp/saikuro/lib/ballast/version.rb_cyclo.html +0 -9
  53. data/tmp/saikuro/lib/ballast.rb_cyclo.html +0 -8
@@ -375,9 +375,10 @@
375
375
  <td>
376
376
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 109</span>
377
377
 
378
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_owner'>owner</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
379
- <span class='ivar'>@owner</span> <span class='op'>=</span> <span class='id identifier rubyid_owner'>owner</span>
380
- <span class='kw'>end</span></pre>
378
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_initialize identifier id'>initialize</span><span class='lparen token'>(</span><span class='rubyid_owner identifier id'>owner</span> <span class='assign token'>=</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
379
+ <span class='rubyid_@owner ivar id'>@owner</span> <span class='assign token'>=</span> <span class='rubyid_owner identifier id'>owner</span>
380
+ <span class='rubyid_end end kw'>end</span>
381
+ </pre>
381
382
  </td>
382
383
  </tr>
383
384
  </table>
@@ -573,143 +574,144 @@
573
574
  <td>
574
575
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 11</span>
575
576
 
576
- <span class='kw'>class</span> <span class='const'>Service</span>
577
- <span class='comment'># A response to a service invocation.
578
- </span> <span class='comment'>#
579
- </span> <span class='comment'># @attribute [r] success
580
- </span> <span class='comment'># @return [Boolean] Whether the invocation was successful or not.
581
- </span> <span class='comment'># @attribute [r] data
582
- </span> <span class='comment'># @return [Object] The data returned by the operation.
583
- </span> <span class='comment'># @attribute [r] errors
584
- </span> <span class='comment'># @return [Array] The errors returned by the operation.
585
- </span> <span class='kw'>class</span> <span class='const'>Response</span>
586
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:success</span><span class='comma'>,</span> <span class='symbol'>:data</span><span class='comma'>,</span> <span class='symbol'>:errors</span>
587
-
588
- <span class='comment'># Creates a new service response.
589
- </span> <span class='comment'>#
590
- </span> <span class='comment'># @param success [Boolean] Whether the invocation was successful or not.
591
- </span> <span class='comment'># @param data [Object|NilClass] The data returned by the operation.
592
- </span> <span class='comment'># @param errors [Array|NilClass] The errors returned by the operation.
593
- </span> <span class='comment'># @param error [Object|NilClass] Alias for errors. *Ignored if `errors` is present.*
594
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_success'>success</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>errors:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
595
- <span class='id identifier rubyid_errors'>errors</span> <span class='op'>||=</span> <span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span>
596
-
597
- <span class='ivar'>@success</span> <span class='op'>=</span> <span class='id identifier rubyid_success'>success</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span>
598
- <span class='ivar'>@data</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span>
599
- <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_ensure_array'>ensure_array</span><span class='lparen'>(</span><span class='label'>no_duplicates:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>compact:</span> <span class='kw'>true</span><span class='rparen'>)</span>
600
- <span class='kw'>end</span>
601
-
602
- <span class='comment'># Returns whether the invocation was successful or not.
603
- </span> <span class='comment'>#
604
- </span> <span class='comment'># @return [Boolean] `true` if the service invocation was successful, `false` otherwise.
605
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_success?'>success?</span>
606
- <span class='comment'># TODO@PI: Ignore rubocop on this
607
- </span> <span class='ivar'>@success</span>
608
- <span class='kw'>end</span>
609
- <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:successful?</span><span class='comma'>,</span> <span class='symbol'>:success?</span>
610
- <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:succeeded?</span><span class='comma'>,</span> <span class='symbol'>:success?</span>
611
-
612
- <span class='comment'># Returns whether the invocation failed or not.
613
- </span> <span class='comment'>#
614
- </span> <span class='comment'># @return [Boolean] `true` if the service invocation failed, `false` otherwise.
615
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_fail?'>fail?</span>
616
- <span class='op'>!</span><span class='ivar'>@success</span>
617
- <span class='kw'>end</span>
618
- <span class='id identifier rubyid_alias_method'>alias_method</span> <span class='symbol'>:failed?</span><span class='comma'>,</span> <span class='symbol'>:fail?</span>
619
-
620
- <span class='comment'># Returns the first error returned by the operation.
621
- </span> <span class='comment'>#
622
- </span> <span class='comment'># @return [Object] The first error returned by the service.
623
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_error'>error</span>
624
- <span class='ivar'>@errors</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
625
- <span class='kw'>end</span>
626
-
627
- <span class='comment'># Converts this response to a AJAX response.
628
- </span> <span class='comment'>#
629
- </span> <span class='comment'># @param transport [Object|NilClass] The transport to use for sending. Must respond to `render`, `params`, `request.format` and `performed?`.
630
- </span> <span class='comment'># @return [AjaxResponse] The AJAX response, which will include only the first error.
631
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_as_ajax_response'>as_ajax_response</span><span class='lparen'>(</span><span class='id identifier rubyid_transport'>transport</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
632
- <span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_error_message'>error_message</span> <span class='op'>=</span>
633
- <span class='kw'>if</span> <span class='id identifier rubyid_successful?'>successful?</span>
634
- <span class='lbracket'>[</span><span class='symbol'>:ok</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rbracket'>]</span>
635
- <span class='kw'>elsif</span> <span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
636
- <span class='lbracket'>[</span><span class='id identifier rubyid_error'>error</span><span class='lbracket'>[</span><span class='symbol'>:status</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='lbracket'>[</span><span class='symbol'>:error</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
637
- <span class='kw'>else</span>
638
- <span class='lbracket'>[</span><span class='symbol'>:unknown</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='rbracket'>]</span>
639
- <span class='kw'>end</span>
640
-
641
- <span class='const'>AjaxResponse</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='id identifier rubyid_error_message'>error_message</span><span class='comma'>,</span> <span class='label'>transport:</span> <span class='id identifier rubyid_transport'>transport</span><span class='rparen'>)</span>
642
- <span class='kw'>end</span>
643
- <span class='kw'>end</span>
644
-
645
- <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:owner</span>
646
-
647
- <span class='comment'># Invokes one of the operations exposed by the service.
648
- </span> <span class='comment'>#
649
- </span> <span class='comment'># @param operation [String] The operation to invoke.
650
- </span> <span class='comment'># @param owner [Object|NilClass] The owner of the service.
651
- </span> <span class='comment'># @param raise_errors [Boolean] Whether to raise errors instead of returning a failure.
652
- </span> <span class='comment'># @param params [Hash] The parameters to pass to the service.
653
- </span> <span class='comment'># @param kwargs [Hash] Other modifiers to pass to the service.
654
- </span> <span class='comment'># @param block [Proc] A lambda to pass to the service.
655
- </span> <span class='comment'># @return [Response] The response of the service.
656
- </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span> <span class='op'>=</span> <span class='symbol'>:perform</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>raise_errors:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
657
- <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='int'>501</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unsupported operation </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_operation'>operation</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='rparen'>)</span>
658
- <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>true</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='id identifier rubyid_owner'>owner</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span><span class='rparen'>)</span>
659
- <span class='kw'>rescue</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_failure'>failure</span>
660
- <span class='id identifier rubyid_handle_failure'>handle_failure</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
661
- <span class='kw'>end</span>
662
-
663
- <span class='comment'># Marks the failure of the operation.
664
- </span> <span class='comment'>#
665
- </span> <span class='comment'># @param details [Object] The error(s) occurred.
666
- </span> <span class='comment'># @param on_validation [Boolean] Whether the error(s) was/were validation error(s).
667
- </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='kw'>false</span><span class='rparen'>)</span>
668
- <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='id identifier rubyid_on_validation'>on_validation</span> <span class='op'>?</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>ValidationFailure</span> <span class='op'>:</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span><span class='comma'>,</span> <span class='id identifier rubyid_details'>details</span><span class='rparen'>)</span>
669
- <span class='kw'>end</span>
670
-
671
- <span class='comment'># Creates a service object.
672
- </span> <span class='comment'>#
673
- </span> <span class='comment'># @param owner [Object|NilClass] The owner of the service.
674
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_owner'>owner</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
675
- <span class='ivar'>@owner</span> <span class='op'>=</span> <span class='id identifier rubyid_owner'>owner</span>
676
- <span class='kw'>end</span>
677
-
678
- <span class='comment'># Invokes one of the operations exposed by the service.
679
- </span> <span class='comment'>#
680
- </span> <span class='comment'># @param operation [String] The operation to invoke.
681
- </span> <span class='comment'># @param owner [Object|NilClass] The owner of the service.
682
- </span> <span class='comment'># @param raise_errors [Boolean] Whether to raise errors instead of returning a failure.
683
- </span> <span class='comment'># @param params [Hash] The parameters to pass to the service.
684
- </span> <span class='comment'># @param kwargs [Hash] Other modifiers to pass to the service.
685
- </span> <span class='comment'># @param block [Proc] A lambda to pass to the service.
686
- </span> <span class='comment'># @return [Response] The response of the service.
687
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span> <span class='op'>=</span> <span class='symbol'>:perform</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>raise_errors:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
688
- <span class='comment'># PI: Ignore Roodi on this method
689
- </span> <span class='ivar'>@owner</span> <span class='op'>=</span> <span class='id identifier rubyid_owner'>owner</span> <span class='kw'>if</span> <span class='id identifier rubyid_owner'>owner</span>
690
- <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='int'>501</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unsupported operation </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>#</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_operation'>operation</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='rparen'>)</span>
691
- <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>true</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span><span class='rparen'>)</span>
692
- <span class='kw'>rescue</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_failure'>failure</span>
693
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:handle_failure</span><span class='comma'>,</span> <span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
694
- <span class='kw'>end</span>
695
-
696
- <span class='comment'># Marks the failure of the operation.
697
- </span> <span class='comment'>#
698
- </span> <span class='comment'># @param details [Object] The error(s) occurred.
699
- </span> <span class='comment'># @param on_validation [Boolean] Whether the error(s) was/were validation error(s).
700
- </span> <span class='kw'>def</span> <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='kw'>false</span><span class='rparen'>)</span>
701
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='id identifier rubyid_on_validation'>on_validation</span><span class='rparen'>)</span>
702
- <span class='kw'>end</span>
703
-
704
- <span class='comment'># Handles a failure.
705
- </span> <span class='comment'>#
706
- </span> <span class='comment'># @param failure [Failure] The failure to handle.
707
- </span> <span class='comment'># @param raise_errors [Boolean] If `true` it will simply raise the error, otherwise it will return a failure as as Service::Response.
708
- </span> <span class='comment'># @return [Response] A failure response.
709
- </span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_handle_failure'>handle_failure</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
710
- <span class='id identifier rubyid_raise_errors'>raise_errors</span> <span class='op'>?</span> <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>false</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='id identifier rubyid_failure'>failure</span><span class='period'>.</span><span class='id identifier rubyid_details'>details</span><span class='rparen'>)</span>
711
- <span class='kw'>end</span>
712
- <span class='kw'>end</span></pre>
577
+ <span class='rubyid_class class kw'>class</span> <span class='rubyid_Service constant id'>Service</span>
578
+ <span class='comment val'># A response to a service invocation.</span>
579
+ <span class='comment val'>#</span>
580
+ <span class='comment val'># @attribute [r] success</span>
581
+ <span class='comment val'># @return [Boolean] Whether the invocation was successful or not.</span>
582
+ <span class='comment val'># @attribute [r] data</span>
583
+ <span class='comment val'># @return [Object] The data returned by the operation.</span>
584
+ <span class='comment val'># @attribute [r] errors</span>
585
+ <span class='comment val'># @return [Array] The errors returned by the operation.</span>
586
+ <span class='rubyid_class class kw'>class</span> <span class='rubyid_Response constant id'>Response</span>
587
+ <span class='rubyid_attr_reader identifier id'>attr_reader</span> <span class='symbol val'>:success</span><span class='comma token'>,</span> <span class='symbol val'>:data</span><span class='comma token'>,</span> <span class='symbol val'>:errors</span>
588
+
589
+ <span class='comment val'># Creates a new service response.</span>
590
+ <span class='comment val'>#</span>
591
+ <span class='comment val'># @param success [Boolean] Whether the invocation was successful or not.</span>
592
+ <span class='comment val'># @param data [Object|NilClass] The data returned by the operation.</span>
593
+ <span class='comment val'># @param errors [Array|NilClass] The errors returned by the operation.</span>
594
+ <span class='comment val'># @param error [Object|NilClass] Alias for errors. *Ignored if `errors` is present.*</span>
595
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_initialize identifier id'>initialize</span><span class='lparen token'>(</span><span class='rubyid_success identifier id'>success</span> <span class='assign token'>=</span> <span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>errors:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
596
+ <span class='rubyid_errors identifier id'>errors</span> <span class='opasgn op'>||=</span> <span class='rubyid_error identifier id'>error</span><span class='dot token'>.</span><span class='rubyid_ensure_array identifier id'>ensure_array</span>
597
+
598
+ <span class='rubyid_@success ivar id'>@success</span> <span class='assign token'>=</span> <span class='rubyid_success identifier id'>success</span><span class='dot token'>.</span><span class='rubyid_to_boolean identifier id'>to_boolean</span>
599
+ <span class='rubyid_@data ivar id'>@data</span> <span class='assign token'>=</span> <span class='rubyid_data identifier id'>data</span>
600
+ <span class='rubyid_@errors ivar id'>@errors</span> <span class='assign token'>=</span> <span class='rubyid_errors identifier id'>errors</span><span class='dot token'>.</span><span class='rubyid_ensure_array identifier id'>ensure_array</span><span class='lparen token'>(</span><span class='label val'>no_duplicates:</span> <span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>compact:</span> <span class='rubyid_true true kw'>true</span><span class='rparen token'>)</span>
601
+ <span class='rubyid_end end kw'>end</span>
602
+
603
+ <span class='comment val'># Returns whether the invocation was successful or not.</span>
604
+ <span class='comment val'>#</span>
605
+ <span class='comment val'># @return [Boolean] `true` if the service invocation was successful, `false` otherwise.</span>
606
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_success? fid id'>success?</span>
607
+ <span class='comment val'># TODO@PI: Ignore rubocop on this</span>
608
+ <span class='rubyid_@success ivar id'>@success</span>
609
+ <span class='rubyid_end end kw'>end</span>
610
+ <span class='rubyid_alias_method identifier id'>alias_method</span> <span class='symbol val'>:successful?</span><span class='comma token'>,</span> <span class='symbol val'>:success?</span>
611
+ <span class='rubyid_alias_method identifier id'>alias_method</span> <span class='symbol val'>:succeeded?</span><span class='comma token'>,</span> <span class='symbol val'>:success?</span>
612
+
613
+ <span class='comment val'># Returns whether the invocation failed or not.</span>
614
+ <span class='comment val'>#</span>
615
+ <span class='comment val'># @return [Boolean] `true` if the service invocation failed, `false` otherwise.</span>
616
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_fail? fid id'>fail?</span>
617
+ <span class='notop op'>!</span><span class='rubyid_@success ivar id'>@success</span>
618
+ <span class='rubyid_end end kw'>end</span>
619
+ <span class='rubyid_alias_method identifier id'>alias_method</span> <span class='symbol val'>:failed?</span><span class='comma token'>,</span> <span class='symbol val'>:fail?</span>
620
+
621
+ <span class='comment val'># Returns the first error returned by the operation.</span>
622
+ <span class='comment val'>#</span>
623
+ <span class='comment val'># @return [Object] The first error returned by the service.</span>
624
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_error identifier id'>error</span>
625
+ <span class='rubyid_@errors ivar id'>@errors</span><span class='dot token'>.</span><span class='rubyid_first identifier id'>first</span>
626
+ <span class='rubyid_end end kw'>end</span>
627
+
628
+ <span class='comment val'># Converts this response to a AJAX response.</span>
629
+ <span class='comment val'>#</span>
630
+ <span class='comment val'># @param transport [Object|NilClass] The transport to use for sending. Must respond to `render`, `params`, `request.format` and `performed?`.</span>
631
+ <span class='comment val'># @return [AjaxResponse] The AJAX response, which will include only the first error.</span>
632
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_as_ajax_response identifier id'>as_ajax_response</span><span class='lparen token'>(</span><span class='rubyid_transport identifier id'>transport</span> <span class='assign token'>=</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
633
+ <span class='rubyid_status identifier id'>status</span><span class='comma token'>,</span> <span class='rubyid_error_message identifier id'>error_message</span> <span class='assign token'>=</span>
634
+ <span class='rubyid_if if kw'>if</span> <span class='rubyid_successful? fid id'>successful?</span>
635
+ <span class='lbrack token'>[</span><span class='symbol val'>:ok</span><span class='comma token'>,</span> <span class='rubyid_nil nil kw'>nil</span><span class='rbrack token'>]</span>
636
+ <span class='rubyid_elsif elsif kw'>elsif</span> <span class='rubyid_error identifier id'>error</span><span class='dot token'>.</span><span class='rubyid_is_a? fid id'>is_a?</span><span class='lparen token'>(</span><span class='rubyid_Hash constant id'>Hash</span><span class='rparen token'>)</span>
637
+ <span class='lbrack token'>[</span><span class='rubyid_error identifier id'>error</span><span class='lbrack token'>[</span><span class='symbol val'>:status</span><span class='rbrack token'>]</span><span class='comma token'>,</span> <span class='rubyid_error identifier id'>error</span><span class='lbrack token'>[</span><span class='symbol val'>:error</span><span class='rbrack token'>]</span><span class='rbrack token'>]</span>
638
+ <span class='rubyid_else else kw'>else</span>
639
+ <span class='lbrack token'>[</span><span class='symbol val'>:unknown</span><span class='comma token'>,</span> <span class='rubyid_error identifier id'>error</span><span class='rbrack token'>]</span>
640
+ <span class='rubyid_end end kw'>end</span>
641
+
642
+ <span class='rubyid_AjaxResponse constant id'>AjaxResponse</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='label val'>status:</span> <span class='rubyid_status identifier id'>status</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_data identifier id'>data</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='rubyid_error_message identifier id'>error_message</span><span class='comma token'>,</span> <span class='label val'>transport:</span> <span class='rubyid_transport identifier id'>transport</span><span class='rparen token'>)</span>
643
+ <span class='rubyid_end end kw'>end</span>
644
+ <span class='rubyid_end end kw'>end</span>
645
+
646
+ <span class='rubyid_attr_reader identifier id'>attr_reader</span> <span class='symbol val'>:owner</span>
647
+
648
+ <span class='comment val'># Invokes one of the operations exposed by the service.</span>
649
+ <span class='comment val'>#</span>
650
+ <span class='comment val'># @param operation [String] The operation to invoke.</span>
651
+ <span class='comment val'># @param owner [Object|NilClass] The owner of the service.</span>
652
+ <span class='comment val'># @param raise_errors [Boolean] Whether to raise errors instead of returning a failure.</span>
653
+ <span class='comment val'># @param params [Hash] The parameters to pass to the service.</span>
654
+ <span class='comment val'># @param kwargs [Hash] Other modifiers to pass to the service.</span>
655
+ <span class='comment val'># @param block [Proc] A lambda to pass to the service.</span>
656
+ <span class='comment val'># @return [Response] The response of the service.</span>
657
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_call identifier id'>call</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span> <span class='assign token'>=</span> <span class='symbol val'>:perform</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>raise_errors:</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span>
658
+ <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='label val'>status:</span> <span class='integer val'>501</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='dstring node'>&quot;Unsupported operation #{self}.#{operation}.&quot;</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_respond_to? fid id'>respond_to?</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='rparen token'>)</span>
659
+ <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_owner identifier id'>owner</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='rubyid_params identifier id'>params</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
660
+ <span class='rubyid_rescue rescue kw'>rescue</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='rubyid_failure identifier id'>failure</span>
661
+ <span class='rubyid_handle_failure identifier id'>handle_failure</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
662
+ <span class='rubyid_end end kw'>end</span>
663
+
664
+ <span class='comment val'># Marks the failure of the operation.</span>
665
+ <span class='comment val'>#</span>
666
+ <span class='comment val'># @param details [Object] The error(s) occurred.</span>
667
+ <span class='comment val'># @param on_validation [Boolean] Whether the error(s) was/were validation error(s).</span>
668
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_false false kw'>false</span><span class='rparen token'>)</span>
669
+ <span class='rubyid_raise identifier id'>raise</span><span class='lparen token'>(</span><span class='rubyid_on_validation identifier id'>on_validation</span> <span class='integer val'>? </span><span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_ValidationFailure constant id'>ValidationFailure</span> <span class='colon op'>:</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span><span class='comma token'>,</span> <span class='rubyid_details identifier id'>details</span><span class='rparen token'>)</span>
670
+ <span class='rubyid_end end kw'>end</span>
671
+
672
+ <span class='comment val'># Creates a service object.</span>
673
+ <span class='comment val'>#</span>
674
+ <span class='comment val'># @param owner [Object|NilClass] The owner of the service.</span>
675
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_initialize identifier id'>initialize</span><span class='lparen token'>(</span><span class='rubyid_owner identifier id'>owner</span> <span class='assign token'>=</span> <span class='rubyid_nil nil kw'>nil</span><span class='rparen token'>)</span>
676
+ <span class='rubyid_@owner ivar id'>@owner</span> <span class='assign token'>=</span> <span class='rubyid_owner identifier id'>owner</span>
677
+ <span class='rubyid_end end kw'>end</span>
678
+
679
+ <span class='comment val'># Invokes one of the operations exposed by the service.</span>
680
+ <span class='comment val'>#</span>
681
+ <span class='comment val'># @param operation [String] The operation to invoke.</span>
682
+ <span class='comment val'># @param owner [Object|NilClass] The owner of the service.</span>
683
+ <span class='comment val'># @param raise_errors [Boolean] Whether to raise errors instead of returning a failure.</span>
684
+ <span class='comment val'># @param params [Hash] The parameters to pass to the service.</span>
685
+ <span class='comment val'># @param kwargs [Hash] Other modifiers to pass to the service.</span>
686
+ <span class='comment val'># @param block [Proc] A lambda to pass to the service.</span>
687
+ <span class='comment val'># @return [Response] The response of the service.</span>
688
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_call identifier id'>call</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span> <span class='assign token'>=</span> <span class='symbol val'>:perform</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>raise_errors:</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span>
689
+ <span class='comment val'># PI: Ignore Roodi on this method</span>
690
+ <span class='rubyid_@owner ivar id'>@owner</span> <span class='assign token'>=</span> <span class='rubyid_owner identifier id'>owner</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_owner identifier id'>owner</span>
691
+ <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='label val'>status:</span> <span class='integer val'>501</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='dstring node'>&quot;Unsupported operation #{self.class}##{operation}.&quot;</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_respond_to? fid id'>respond_to?</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='rparen token'>)</span>
692
+ <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='rubyid_params identifier id'>params</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
693
+ <span class='rubyid_rescue rescue kw'>rescue</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='rubyid_failure identifier id'>failure</span>
694
+ <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_class identifier id'>class</span><span class='dot token'>.</span><span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='symbol val'>:handle_failure</span><span class='comma token'>,</span> <span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
695
+ <span class='rubyid_end end kw'>end</span>
696
+
697
+ <span class='comment val'># Marks the failure of the operation.</span>
698
+ <span class='comment val'>#</span>
699
+ <span class='comment val'># @param details [Object] The error(s) occurred.</span>
700
+ <span class='comment val'># @param on_validation [Boolean] Whether the error(s) was/were validation error(s).</span>
701
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_false false kw'>false</span><span class='rparen token'>)</span>
702
+ <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_class identifier id'>class</span><span class='dot token'>.</span><span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_on_validation identifier id'>on_validation</span><span class='rparen token'>)</span>
703
+ <span class='rubyid_end end kw'>end</span>
704
+
705
+ <span class='comment val'># Handles a failure.</span>
706
+ <span class='comment val'>#</span>
707
+ <span class='comment val'># @param failure [Failure] The failure to handle.</span>
708
+ <span class='comment val'># @param raise_errors [Boolean] If `true` it will simply raise the error, otherwise it will return a failure as as Service::Response.</span>
709
+ <span class='comment val'># @return [Response] A failure response.</span>
710
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_handle_failure identifier id'>handle_failure</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
711
+ <span class='rubyid_raise_errors identifier id'>raise_errors</span> <span class='integer val'>? </span><span class='rubyid_raise identifier id'>raise</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='rparen token'>)</span> <span class='colon op'>:</span> <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='rubyid_failure identifier id'>failure</span><span class='dot token'>.</span><span class='rubyid_details identifier id'>details</span><span class='rparen token'>)</span>
712
+ <span class='rubyid_end end kw'>end</span>
713
+ <span class='rubyid_end end kw'>end</span>
714
+ </pre>
713
715
  </td>
714
716
  </tr>
715
717
  </table>
@@ -870,12 +872,13 @@
870
872
  <td>
871
873
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 91</span>
872
874
 
873
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span> <span class='op'>=</span> <span class='symbol'>:perform</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>raise_errors:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
874
- <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='int'>501</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unsupported operation </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_operation'>operation</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='rparen'>)</span>
875
- <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>true</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='id identifier rubyid_owner'>owner</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span><span class='rparen'>)</span>
876
- <span class='kw'>rescue</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_failure'>failure</span>
877
- <span class='id identifier rubyid_handle_failure'>handle_failure</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
878
- <span class='kw'>end</span></pre>
875
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_call identifier id'>call</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span> <span class='assign token'>=</span> <span class='symbol val'>:perform</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>raise_errors:</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span>
876
+ <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='label val'>status:</span> <span class='integer val'>501</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='dstring node'>&quot;Unsupported operation #{self}.#{operation}.&quot;</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_respond_to? fid id'>respond_to?</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='rparen token'>)</span>
877
+ <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_owner identifier id'>owner</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='rubyid_params identifier id'>params</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
878
+ <span class='rubyid_rescue rescue kw'>rescue</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='rubyid_failure identifier id'>failure</span>
879
+ <span class='rubyid_handle_failure identifier id'>handle_failure</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
880
+ <span class='rubyid_end end kw'>end</span>
881
+ </pre>
879
882
  </td>
880
883
  </tr>
881
884
  </table>
@@ -933,19 +936,6 @@
933
936
 
934
937
  </ul>
935
938
 
936
- <p class="tag_title">Raises:</p>
937
- <ul class="raise">
938
-
939
- <li>
940
-
941
-
942
- <span class='type'>(<tt>on_validation ? <span class='object_link'><a href="Errors/ValidationFailure.html" title="Ballast::Errors::ValidationFailure (class)">Errors::ValidationFailure</a></span> : <span class='object_link'><a href="Errors/Failure.html" title="Ballast::Errors::Failure (class)">Errors::Failure</a></span></tt>)</span>
943
-
944
-
945
-
946
- </li>
947
-
948
- </ul>
949
939
 
950
940
  </div><table class="source_code">
951
941
  <tr>
@@ -960,9 +950,10 @@
960
950
  <td>
961
951
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 102</span>
962
952
 
963
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='kw'>false</span><span class='rparen'>)</span>
964
- <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='id identifier rubyid_on_validation'>on_validation</span> <span class='op'>?</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>ValidationFailure</span> <span class='op'>:</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span><span class='comma'>,</span> <span class='id identifier rubyid_details'>details</span><span class='rparen'>)</span>
965
- <span class='kw'>end</span></pre>
953
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_false false kw'>false</span><span class='rparen token'>)</span>
954
+ <span class='rubyid_raise identifier id'>raise</span><span class='lparen token'>(</span><span class='rubyid_on_validation identifier id'>on_validation</span> <span class='integer val'>? </span><span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_ValidationFailure constant id'>ValidationFailure</span> <span class='colon op'>:</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span><span class='comma token'>,</span> <span class='rubyid_details identifier id'>details</span><span class='rparen token'>)</span>
955
+ <span class='rubyid_end end kw'>end</span>
956
+ </pre>
966
957
  </td>
967
958
  </tr>
968
959
  </table>
@@ -1051,9 +1042,10 @@
1051
1042
  <td>
1052
1043
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 144</span>
1053
1044
 
1054
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_handle_failure'>handle_failure</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
1055
- <span class='id identifier rubyid_raise_errors'>raise_errors</span> <span class='op'>?</span> <span class='id identifier rubyid_raise'>raise</span><span class='lparen'>(</span><span class='id identifier rubyid_failure'>failure</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>false</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='id identifier rubyid_failure'>failure</span><span class='period'>.</span><span class='id identifier rubyid_details'>details</span><span class='rparen'>)</span>
1056
- <span class='kw'>end</span></pre>
1045
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_handle_failure identifier id'>handle_failure</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
1046
+ <span class='rubyid_raise_errors identifier id'>raise_errors</span> <span class='integer val'>? </span><span class='rubyid_raise identifier id'>raise</span><span class='lparen token'>(</span><span class='rubyid_failure identifier id'>failure</span><span class='rparen token'>)</span> <span class='colon op'>:</span> <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='rubyid_failure identifier id'>failure</span><span class='dot token'>.</span><span class='rubyid_details identifier id'>details</span><span class='rparen token'>)</span>
1047
+ <span class='rubyid_end end kw'>end</span>
1048
+ </pre>
1057
1049
  </td>
1058
1050
  </tr>
1059
1051
  </table>
@@ -1215,14 +1207,15 @@
1215
1207
  <td>
1216
1208
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 122</span>
1217
1209
 
1218
- <span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span> <span class='op'>=</span> <span class='symbol'>:perform</span><span class='comma'>,</span> <span class='label'>owner:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>raise_errors:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1219
- <span class='comment'># PI: Ignore Roodi on this method
1220
- </span> <span class='ivar'>@owner</span> <span class='op'>=</span> <span class='id identifier rubyid_owner'>owner</span> <span class='kw'>if</span> <span class='id identifier rubyid_owner'>owner</span>
1221
- <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='label'>status:</span> <span class='int'>501</span><span class='comma'>,</span> <span class='label'>error:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unsupported operation </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>#</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_operation'>operation</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='rparen'>)</span>
1222
- <span class='const'>Response</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='kw'>true</span><span class='comma'>,</span> <span class='label'>data:</span> <span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='id identifier rubyid_operation'>operation</span><span class='comma'>,</span> <span class='label'>params:</span> <span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_kwargs'>kwargs</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span><span class='rparen'>)</span>
1223
- <span class='kw'>rescue</span> <span class='const'>Errors</span><span class='op'>::</span><span class='const'>Failure</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_failure'>failure</span>
1224
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_send'>send</span><span class='lparen'>(</span><span class='symbol'>:handle_failure</span><span class='comma'>,</span> <span class='id identifier rubyid_failure'>failure</span><span class='comma'>,</span> <span class='id identifier rubyid_raise_errors'>raise_errors</span><span class='rparen'>)</span>
1225
- <span class='kw'>end</span></pre>
1210
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_call identifier id'>call</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span> <span class='assign token'>=</span> <span class='symbol val'>:perform</span><span class='comma token'>,</span> <span class='label val'>owner:</span> <span class='rubyid_nil nil kw'>nil</span><span class='comma token'>,</span> <span class='label val'>raise_errors:</span> <span class='rubyid_false false kw'>false</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='lbrace token'>{</span><span class='rbrace token'>}</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span>
1211
+ <span class='comment val'># PI: Ignore Roodi on this method</span>
1212
+ <span class='rubyid_@owner ivar id'>@owner</span> <span class='assign token'>=</span> <span class='rubyid_owner identifier id'>owner</span> <span class='rubyid_if if_mod kw'>if</span> <span class='rubyid_owner identifier id'>owner</span>
1213
+ <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='label val'>status:</span> <span class='integer val'>501</span><span class='comma token'>,</span> <span class='label val'>error:</span> <span class='dstring node'>&quot;Unsupported operation #{self.class}##{operation}.&quot;</span><span class='rparen token'>)</span> <span class='rubyid_unless unless_mod kw'>unless</span> <span class='rubyid_respond_to? fid id'>respond_to?</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='rparen token'>)</span>
1214
+ <span class='rubyid_Response constant id'>Response</span><span class='dot token'>.</span><span class='rubyid_new identifier id'>new</span><span class='lparen token'>(</span><span class='rubyid_true true kw'>true</span><span class='comma token'>,</span> <span class='label val'>data:</span> <span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='rubyid_operation identifier id'>operation</span><span class='comma token'>,</span> <span class='label val'>params:</span> <span class='rubyid_params identifier id'>params</span><span class='comma token'>,</span> <span class='pow op'>**</span><span class='rubyid_kwargs identifier id'>kwargs</span><span class='comma token'>,</span> <span class='bitand op'>&amp;</span><span class='rubyid_block identifier id'>block</span><span class='rparen token'>)</span><span class='rparen token'>)</span>
1215
+ <span class='rubyid_rescue rescue kw'>rescue</span> <span class='rubyid_Errors constant id'>Errors</span><span class='colon2 op'>::</span><span class='rubyid_Failure constant id'>Failure</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='rubyid_failure identifier id'>failure</span>
1216
+ <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_class identifier id'>class</span><span class='dot token'>.</span><span class='rubyid_send identifier id'>send</span><span class='lparen token'>(</span><span class='symbol val'>:handle_failure</span><span class='comma token'>,</span> <span class='rubyid_failure identifier id'>failure</span><span class='comma token'>,</span> <span class='rubyid_raise_errors identifier id'>raise_errors</span><span class='rparen token'>)</span>
1217
+ <span class='rubyid_end end kw'>end</span>
1218
+ </pre>
1226
1219
  </td>
1227
1220
  </tr>
1228
1221
  </table>
@@ -1294,9 +1287,10 @@
1294
1287
  <td>
1295
1288
  <pre class="code"><span class="info file"># File 'lib/ballast/service.rb', line 135</span>
1296
1289
 
1297
- <span class='kw'>def</span> <span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='kw'>false</span><span class='rparen'>)</span>
1298
- <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_fail!'>fail!</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='label'>on_validation:</span> <span class='id identifier rubyid_on_validation'>on_validation</span><span class='rparen'>)</span>
1299
- <span class='kw'>end</span></pre>
1290
+ <span class='rubyid_def def kw'>def</span> <span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_false false kw'>false</span><span class='rparen token'>)</span>
1291
+ <span class='rubyid_self self kw'>self</span><span class='dot token'>.</span><span class='rubyid_class identifier id'>class</span><span class='dot token'>.</span><span class='rubyid_fail! fid id'>fail!</span><span class='lparen token'>(</span><span class='rubyid_details identifier id'>details</span><span class='comma token'>,</span> <span class='label val'>on_validation:</span> <span class='rubyid_on_validation identifier id'>on_validation</span><span class='rparen token'>)</span>
1292
+ <span class='rubyid_end end kw'>end</span>
1293
+ </pre>
1300
1294
  </td>
1301
1295
  </tr>
1302
1296
  </table>
@@ -1307,9 +1301,9 @@
1307
1301
  </div>
1308
1302
 
1309
1303
  <div id="footer">
1310
- Generated on Fri Dec 26 11:54:47 2014 by
1304
+ Generated on Sun Jan 18 13:27:09 2015 by
1311
1305
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1312
- 0.8.7.6 (ruby-2.1.3).
1306
+ 0.8.7.6 (ruby-2.2.0).
1313
1307
  </div>
1314
1308
 
1315
1309
  </body>