apes 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 (122) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rubocop.yml +82 -0
  4. data/.travis-gemfile +15 -0
  5. data/.travis.yml +15 -0
  6. data/.yardopts +1 -0
  7. data/CHANGELOG.md +3 -0
  8. data/Gemfile +22 -0
  9. data/README.md +177 -0
  10. data/Rakefile +44 -0
  11. data/apes.gemspec +34 -0
  12. data/doc/Apes.html +130 -0
  13. data/doc/Apes/Concerns.html +127 -0
  14. data/doc/Apes/Concerns/Errors.html +1089 -0
  15. data/doc/Apes/Concerns/Pagination.html +636 -0
  16. data/doc/Apes/Concerns/Request.html +766 -0
  17. data/doc/Apes/Concerns/Response.html +940 -0
  18. data/doc/Apes/Controller.html +1100 -0
  19. data/doc/Apes/Errors.html +125 -0
  20. data/doc/Apes/Errors/AuthenticationError.html +133 -0
  21. data/doc/Apes/Errors/BadRequestError.html +157 -0
  22. data/doc/Apes/Errors/BaseError.html +320 -0
  23. data/doc/Apes/Errors/InvalidDataError.html +157 -0
  24. data/doc/Apes/Errors/MissingDataError.html +157 -0
  25. data/doc/Apes/Model.html +378 -0
  26. data/doc/Apes/PaginationCursor.html +2138 -0
  27. data/doc/Apes/RuntimeConfiguration.html +909 -0
  28. data/doc/Apes/Serializers.html +125 -0
  29. data/doc/Apes/Serializers/JSON.html +389 -0
  30. data/doc/Apes/Serializers/JWT.html +452 -0
  31. data/doc/Apes/Serializers/List.html +347 -0
  32. data/doc/Apes/UrlsParser.html +1432 -0
  33. data/doc/Apes/Validators.html +125 -0
  34. data/doc/Apes/Validators/BaseValidator.html +278 -0
  35. data/doc/Apes/Validators/BooleanValidator.html +494 -0
  36. data/doc/Apes/Validators/EmailValidator.html +350 -0
  37. data/doc/Apes/Validators/PhoneValidator.html +375 -0
  38. data/doc/Apes/Validators/ReferenceValidator.html +372 -0
  39. data/doc/Apes/Validators/TimestampValidator.html +640 -0
  40. data/doc/Apes/Validators/UuidValidator.html +372 -0
  41. data/doc/Apes/Validators/ZipCodeValidator.html +372 -0
  42. data/doc/Apes/Version.html +189 -0
  43. data/doc/ApplicationController.html +547 -0
  44. data/doc/Concerns.html +128 -0
  45. data/doc/Concerns/ErrorHandling.html +826 -0
  46. data/doc/Concerns/PaginationHandling.html +463 -0
  47. data/doc/Concerns/RequestHandling.html +512 -0
  48. data/doc/Concerns/ResponseHandling.html +579 -0
  49. data/doc/Errors.html +126 -0
  50. data/doc/Errors/AuthenticationError.html +123 -0
  51. data/doc/Errors/BadRequestError.html +147 -0
  52. data/doc/Errors/BaseError.html +289 -0
  53. data/doc/Errors/InvalidDataError.html +147 -0
  54. data/doc/Errors/MissingDataError.html +147 -0
  55. data/doc/Model.html +315 -0
  56. data/doc/PaginationCursor.html +764 -0
  57. data/doc/Serializers.html +126 -0
  58. data/doc/Serializers/JSON.html +253 -0
  59. data/doc/Serializers/JWT.html +253 -0
  60. data/doc/Serializers/List.html +245 -0
  61. data/doc/Validators.html +126 -0
  62. data/doc/Validators/BaseValidator.html +209 -0
  63. data/doc/Validators/BooleanValidator.html +391 -0
  64. data/doc/Validators/EmailValidator.html +298 -0
  65. data/doc/Validators/PhoneValidator.html +313 -0
  66. data/doc/Validators/ReferenceValidator.html +284 -0
  67. data/doc/Validators/TimestampValidator.html +476 -0
  68. data/doc/Validators/UuidValidator.html +310 -0
  69. data/doc/Validators/ZipCodeValidator.html +310 -0
  70. data/doc/_index.html +435 -0
  71. data/doc/class_list.html +58 -0
  72. data/doc/css/common.css +1 -0
  73. data/doc/css/full_list.css +57 -0
  74. data/doc/css/style.css +339 -0
  75. data/doc/file.README.html +252 -0
  76. data/doc/file_list.html +60 -0
  77. data/doc/frames.html +26 -0
  78. data/doc/index.html +252 -0
  79. data/doc/js/app.js +219 -0
  80. data/doc/js/full_list.js +181 -0
  81. data/doc/js/jquery.js +4 -0
  82. data/doc/method_list.html +615 -0
  83. data/doc/top-level-namespace.html +112 -0
  84. data/lib/apes.rb +40 -0
  85. data/lib/apes/concerns/errors.rb +111 -0
  86. data/lib/apes/concerns/pagination.rb +81 -0
  87. data/lib/apes/concerns/request.rb +237 -0
  88. data/lib/apes/concerns/response.rb +74 -0
  89. data/lib/apes/controller.rb +77 -0
  90. data/lib/apes/errors.rb +38 -0
  91. data/lib/apes/model.rb +94 -0
  92. data/lib/apes/pagination_cursor.rb +152 -0
  93. data/lib/apes/runtime_configuration.rb +80 -0
  94. data/lib/apes/serializers.rb +88 -0
  95. data/lib/apes/urls_parser.rb +233 -0
  96. data/lib/apes/validators.rb +234 -0
  97. data/lib/apes/version.rb +24 -0
  98. data/spec/apes/concerns/errors_spec.rb +141 -0
  99. data/spec/apes/concerns/pagination_spec.rb +114 -0
  100. data/spec/apes/concerns/request_spec.rb +244 -0
  101. data/spec/apes/concerns/response_spec.rb +79 -0
  102. data/spec/apes/controller_spec.rb +54 -0
  103. data/spec/apes/errors_spec.rb +14 -0
  104. data/spec/apes/models_spec.rb +148 -0
  105. data/spec/apes/pagination_cursor_spec.rb +113 -0
  106. data/spec/apes/runtime_configuration_spec.rb +100 -0
  107. data/spec/apes/serializers_spec.rb +70 -0
  108. data/spec/apes/urls_parser_spec.rb +150 -0
  109. data/spec/apes/validators_spec.rb +237 -0
  110. data/spec/spec_helper.rb +30 -0
  111. data/views/_included.json.jbuilder +9 -0
  112. data/views/_pagination.json.jbuilder +9 -0
  113. data/views/collection.json.jbuilder +4 -0
  114. data/views/errors/400.json.jbuilder +9 -0
  115. data/views/errors/403.json.jbuilder +7 -0
  116. data/views/errors/404.json.jbuilder +6 -0
  117. data/views/errors/422.json.jbuilder +19 -0
  118. data/views/errors/500.json.jbuilder +12 -0
  119. data/views/errors/501.json.jbuilder +7 -0
  120. data/views/layouts/general.json.jbuilder +36 -0
  121. data/views/object.json.jbuilder +4 -0
  122. metadata +262 -0
@@ -0,0 +1,1100 @@
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
+ Class: Apes::Controller
8
+
9
+ &mdash; Documentation by YARD 0.8.7.6
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#!Apes/Controller.html";
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 (C)</a> &raquo;
35
+ <span class='title'><span class='object_link'><a href="../Apes.html" title="Apes (module)">Apes</a></span></span>
36
+ &raquo;
37
+ <span class="title">Controller</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>Class: Apes::Controller
67
+
68
+
69
+
70
+ </h1>
71
+
72
+ <dl class="box">
73
+
74
+ <dt class="r1">Inherits:</dt>
75
+ <dd class="r1">
76
+ <span class="inheritName">ActionController::API</span>
77
+
78
+ <ul class="fullTree">
79
+ <li>Object</li>
80
+
81
+ <li class="next">ActionController::API</li>
82
+
83
+ <li class="next">Apes::Controller</li>
84
+
85
+ </ul>
86
+ <a href="#" class="inheritanceTree">show all</a>
87
+
88
+ </dd>
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dt class="r2">Includes:</dt>
96
+ <dd class="r2">ActionController::ImplicitRender, ActionView::Layouts, <span class='object_link'><a href="Concerns/Errors.html" title="Apes::Concerns::Errors (module)">Apes::Concerns::Errors</a></span>, <span class='object_link'><a href="Concerns/Pagination.html" title="Apes::Concerns::Pagination (module)">Apes::Concerns::Pagination</a></span>, <span class='object_link'><a href="Concerns/Request.html" title="Apes::Concerns::Request (module)">Apes::Concerns::Request</a></span>, <span class='object_link'><a href="Concerns/Response.html" title="Apes::Concerns::Response (module)">Apes::Concerns::Response</a></span></dd>
97
+
98
+
99
+
100
+
101
+
102
+ <dt class="r1 last">Defined in:</dt>
103
+ <dd class="r1 last">lib/apes/controller.rb</dd>
104
+
105
+ </dl>
106
+ <div class="clear"></div>
107
+
108
+ <h2>Overview</h2><div class="docstring">
109
+ <div class="discussion">
110
+ <p>A ready to use controller for JSON API applications.</p>
111
+
112
+
113
+ </div>
114
+ </div>
115
+ <div class="tags">
116
+
117
+
118
+ </div>
119
+ <h2>Constant Summary</h2>
120
+
121
+
122
+
123
+
124
+ <h2>Constant Summary</h2>
125
+
126
+ <h3 class="inherited">Constants included
127
+ from <span class='object_link'><a href="Concerns/Errors.html" title="Apes::Concerns::Errors (module)">Apes::Concerns::Errors</a></span></h3>
128
+ <p class="inherited"><span class='object_link'><a href="Concerns/Errors.html#ERROR_HANDLERS-constant" title="Apes::Concerns::Errors::ERROR_HANDLERS (constant)">Apes::Concerns::Errors::ERROR_HANDLERS</a></span></p>
129
+
130
+
131
+
132
+ <h3 class="inherited">Constants included
133
+ from <span class='object_link'><a href="Concerns/Request.html" title="Apes::Concerns::Request (module)">Apes::Concerns::Request</a></span></h3>
134
+ <p class="inherited"><span class='object_link'><a href="Concerns/Request.html#CONTENT_TYPE-constant" title="Apes::Concerns::Request::CONTENT_TYPE (constant)">Apes::Concerns::Request::CONTENT_TYPE</a></span></p>
135
+
136
+
137
+ <h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
138
+ <ul class="summary">
139
+
140
+ <li class="public ">
141
+ <span class="summary_signature">
142
+
143
+ <a href="#current_account-instance_method" title="#current_account (instance method)">- (Object) <strong>current_account</strong> </a>
144
+
145
+
146
+
147
+ </span>
148
+
149
+
150
+
151
+
152
+ <span class="note title readonly">readonly</span>
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+ <span class="summary_desc"><div class='inline'><p>The current account making the request.</p>
163
+ </div></span>
164
+
165
+ </li>
166
+
167
+
168
+ <li class="public ">
169
+ <span class="summary_signature">
170
+
171
+ <a href="#cursor-instance_method" title="#cursor (instance method)">- (Apes::PaginationCursor) <strong>cursor</strong> </a>
172
+
173
+
174
+
175
+ </span>
176
+
177
+
178
+
179
+
180
+ <span class="note title readonly">readonly</span>
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ <span class="summary_desc"><div class='inline'><p>The pagination cursor for this request.</p>
191
+ </div></span>
192
+
193
+ </li>
194
+
195
+
196
+ <li class="public ">
197
+ <span class="summary_signature">
198
+
199
+ <a href="#request_cursor-instance_method" title="#request_cursor (instance method)">- (Apes::PaginationCursor) <strong>request_cursor</strong> </a>
200
+
201
+
202
+
203
+ </span>
204
+
205
+
206
+
207
+
208
+ <span class="note title readonly">readonly</span>
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+ <span class="summary_desc"><div class='inline'><p>The original pagination cursor sent from the client.</p>
219
+ </div></span>
220
+
221
+ </li>
222
+
223
+
224
+ </ul>
225
+
226
+
227
+
228
+
229
+
230
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="Concerns/Response.html" title="Apes::Concerns::Response (module)">Apes::Concerns::Response</a></span></h3>
231
+ <p class="inherited"><span class='object_link'><a href="Concerns/Response.html#included-instance_method" title="Apes::Concerns::Response#included (method)">#included</a></span></p>
232
+
233
+
234
+
235
+ <h2>
236
+ Instance Method Summary
237
+ <small>(<a href="#" class="summary_toggle">collapse</a>)</small>
238
+ </h2>
239
+
240
+ <ul class="summary">
241
+
242
+ <li class="public ">
243
+ <span class="summary_signature">
244
+
245
+ <a href="#default_url_options-instance_method" title="#default_url_options (instance method)">- (Hash) <strong>default_url_options</strong> </a>
246
+
247
+
248
+
249
+ </span>
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ <span class="summary_desc"><div class='inline'><p>Returns the default URL options for this request.</p>
260
+ </div></span>
261
+
262
+ </li>
263
+
264
+
265
+ <li class="public ">
266
+ <span class="summary_signature">
267
+
268
+ <a href="#handle_cors-instance_method" title="#handle_cors (instance method)">- (Object) <strong>handle_cors</strong> </a>
269
+
270
+
271
+
272
+ </span>
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+ <span class="summary_desc"><div class='inline'><p>Tiny handle to handle CORS OPTIONS requests.</p>
283
+ </div></span>
284
+
285
+ </li>
286
+
287
+
288
+ <li class="public ">
289
+ <span class="summary_signature">
290
+
291
+ <a href="#render_error-instance_method" title="#render_error (instance method)">- (Object) <strong>render_error</strong>(status, errors) </a>
292
+
293
+
294
+
295
+ </span>
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+ <span class="summary_desc"><div class='inline'><p>Default handler to render errors.</p>
306
+ </div></span>
307
+
308
+ </li>
309
+
310
+
311
+ </ul>
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Concerns/Errors.html" title="Apes::Concerns::Errors (module)">Apes::Concerns::Errors</a></span></h3>
324
+ <p class="inherited"><span class='object_link'><a href="Concerns/Errors.html#error_handle_bad_request-instance_method" title="Apes::Concerns::Errors#error_handle_bad_request (method)">#error_handle_bad_request</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_debug-instance_method" title="Apes::Concerns::Errors#error_handle_debug (method)">#error_handle_debug</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_exception-instance_method" title="Apes::Concerns::Errors#error_handle_exception (method)">#error_handle_exception</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_fordidden-instance_method" title="Apes::Concerns::Errors#error_handle_fordidden (method)">#error_handle_fordidden</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_general-instance_method" title="Apes::Concerns::Errors#error_handle_general (method)">#error_handle_general</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_invalid_data-instance_method" title="Apes::Concerns::Errors#error_handle_invalid_data (method)">#error_handle_invalid_data</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_missing_data-instance_method" title="Apes::Concerns::Errors#error_handle_missing_data (method)">#error_handle_missing_data</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_not_found-instance_method" title="Apes::Concerns::Errors#error_handle_not_found (method)">#error_handle_not_found</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_others-instance_method" title="Apes::Concerns::Errors#error_handle_others (method)">#error_handle_others</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_unknown_attribute-instance_method" title="Apes::Concerns::Errors#error_handle_unknown_attribute (method)">#error_handle_unknown_attribute</a></span>, <span class='object_link'><a href="Concerns/Errors.html#error_handle_validation-instance_method" title="Apes::Concerns::Errors#error_handle_validation (method)">#error_handle_validation</a></span>, <span class='object_link'><a href="Concerns/Errors.html#fail_request%21-instance_method" title="Apes::Concerns::Errors#fail_request! (method)">#fail_request!</a></span></p>
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Concerns/Pagination.html" title="Apes::Concerns::Pagination (module)">Apes::Concerns::Pagination</a></span></h3>
335
+ <p class="inherited"><span class='object_link'><a href="Concerns/Pagination.html#paginate-instance_method" title="Apes::Concerns::Pagination#paginate (method)">#paginate</a></span>, <span class='object_link'><a href="Concerns/Pagination.html#pagination_field-instance_method" title="Apes::Concerns::Pagination#pagination_field (method)">#pagination_field</a></span>, <span class='object_link'><a href="Concerns/Pagination.html#pagination_skip%3F-instance_method" title="Apes::Concerns::Pagination#pagination_skip? (method)">#pagination_skip?</a></span>, <span class='object_link'><a href="Concerns/Pagination.html#pagination_supported%3F-instance_method" title="Apes::Concerns::Pagination#pagination_supported? (method)">#pagination_supported?</a></span>, <span class='object_link'><a href="Concerns/Pagination.html#pagination_url-instance_method" title="Apes::Concerns::Pagination#pagination_url (method)">#pagination_url</a></span></p>
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Concerns/Response.html" title="Apes::Concerns::Response (module)">Apes::Concerns::Response</a></span></h3>
346
+ <p class="inherited"><span class='object_link'><a href="Concerns/Response.html#response_data-instance_method" title="Apes::Concerns::Response#response_data (method)">#response_data</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_include-instance_method" title="Apes::Concerns::Response#response_include (method)">#response_include</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_included-instance_method" title="Apes::Concerns::Response#response_included (method)">#response_included</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_links-instance_method" title="Apes::Concerns::Response#response_links (method)">#response_links</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_meta-instance_method" title="Apes::Concerns::Response#response_meta (method)">#response_meta</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_template_for-instance_method" title="Apes::Concerns::Response#response_template_for (method)">#response_template_for</a></span>, <span class='object_link'><a href="Concerns/Response.html#response_timestamp-instance_method" title="Apes::Concerns::Response#response_timestamp (method)">#response_timestamp</a></span></p>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="Concerns/Request.html" title="Apes::Concerns::Request (module)">Apes::Concerns::Request</a></span></h3>
357
+ <p class="inherited"><span class='object_link'><a href="Concerns/Request.html#request_cast_attributes-instance_method" title="Apes::Concerns::Request#request_cast_attributes (method)">#request_cast_attributes</a></span>, <span class='object_link'><a href="Concerns/Request.html#request_extract_model-instance_method" title="Apes::Concerns::Request#request_extract_model (method)">#request_extract_model</a></span>, <span class='object_link'><a href="Concerns/Request.html#request_handle_cors-instance_method" title="Apes::Concerns::Request#request_handle_cors (method)">#request_handle_cors</a></span>, <span class='object_link'><a href="Concerns/Request.html#request_source_host-instance_method" title="Apes::Concerns::Request#request_source_host (method)">#request_source_host</a></span>, <span class='object_link'><a href="Concerns/Request.html#request_valid_content_type-instance_method" title="Apes::Concerns::Request#request_valid_content_type (method)">#request_valid_content_type</a></span>, <span class='object_link'><a href="Concerns/Request.html#request_validate-instance_method" title="Apes::Concerns::Request#request_validate (method)">#request_validate</a></span></p>
358
+
359
+
360
+
361
+
362
+ <div id="instance_attr_details" class="attr_details">
363
+ <h2>Instance Attribute Details</h2>
364
+
365
+
366
+ <span id=""></span>
367
+ <div class="method_details first">
368
+ <h3 class="signature first" id="current_account-instance_method">
369
+
370
+ - (<tt>Object</tt>) <strong>current_account</strong> <span class="extras">(readonly)</span>
371
+
372
+
373
+
374
+
375
+
376
+ </h3><div class="docstring">
377
+ <div class="discussion">
378
+ <p>Returns The current account making the request</p>
379
+
380
+
381
+ </div>
382
+ </div>
383
+ <div class="tags">
384
+
385
+ <p class="tag_title">Returns:</p>
386
+ <ul class="return">
387
+
388
+ <li>
389
+
390
+
391
+ <span class='type'>(<tt>Object</tt>)</span>
392
+
393
+
394
+
395
+ &mdash;
396
+ <div class='inline'><p>The current account making the request</p>
397
+ </div>
398
+
399
+ </li>
400
+
401
+ </ul>
402
+
403
+ </div><table class="source_code">
404
+ <tr>
405
+ <td>
406
+ <pre class="lines">
407
+
408
+
409
+ 15
410
+ 16
411
+ 17
412
+ 18
413
+ 19
414
+ 20
415
+ 21
416
+ 22
417
+ 23
418
+ 24
419
+ 25
420
+ 26
421
+ 27
422
+ 28
423
+ 29
424
+ 30
425
+ 31
426
+ 32
427
+ 33
428
+ 34
429
+ 35
430
+ 36
431
+ 37
432
+ 38
433
+ 39
434
+ 40
435
+ 41
436
+ 42
437
+ 43
438
+ 44
439
+ 45
440
+ 46
441
+ 47
442
+ 48
443
+ 49
444
+ 50
445
+ 51
446
+ 52
447
+ 53
448
+ 54
449
+ 55
450
+ 56
451
+ 57
452
+ 58
453
+ 59
454
+ 60
455
+ 61
456
+ 62
457
+ 63
458
+ 64
459
+ 65
460
+ 66
461
+ 67
462
+ 68
463
+ 69
464
+ 70
465
+ 71
466
+ 72
467
+ 73
468
+ 74
469
+ 75
470
+ 76</pre>
471
+ </td>
472
+ <td>
473
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 15</span>
474
+
475
+ <span class='kw'>class</span> <span class='const'>Controller</span> <span class='op'>&lt;</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>API</span>
476
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>ImplicitRender</span>
477
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>Layouts</span>
478
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Request</span>
479
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Response</span>
480
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Pagination</span>
481
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Errors</span>
482
+
483
+ <span class='id identifier rubyid_layout'>layout</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>general</span><span class='tstring_end'>&quot;</span></span>
484
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_handle_cors</span>
485
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_validate</span>
486
+
487
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:current_account</span><span class='comma'>,</span> <span class='symbol'>:cursor</span><span class='comma'>,</span> <span class='symbol'>:request_cursor</span>
488
+
489
+ <span class='comment'># Exception handling
490
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>Exception</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:error_handle_exception</span>
491
+ <span class='comment'># This allows to avoid to declare all the views
492
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>MissingTemplate</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:render_default_views</span>
493
+
494
+ <span class='comment'># Returns the default URL options for this request.
495
+ </span> <span class='comment'># It ensures that the host is always included and that is set properly in development mode.
496
+ </span> <span class='comment'>#
497
+ </span> <span class='comment'># @return [Hash] Default URL options for the request.
498
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_default_url_options'>default_url_options</span>
499
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>only_path:</span> <span class='kw'>false</span><span class='rbrace'>}</span>
500
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='id identifier rubyid_request_source_host'>request_source_host</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>RuntimeConfiguration</span><span class='period'>.</span><span class='id identifier rubyid_development?'>development?</span>
501
+ <span class='id identifier rubyid_rv'>rv</span>
502
+ <span class='kw'>end</span>
503
+
504
+ <span class='comment'># Tiny handle to handle CORS OPTIONS requests. It just renders nothing as headers are handle in Apes::Concerns::Response module.
505
+ </span> <span class='comment'>#
506
+ </span> <span class='comment'># To enable this route, add the following to the routes.rb:
507
+ </span> <span class='comment'>#
508
+ </span> <span class='comment'># # This is to enable AJAX cross domain
509
+ </span> <span class='comment'># match &#39;*path&#39;, to: &#39;application#handle_cors&#39;, via: :options
510
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_handle_cors'>handle_cors</span>
511
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='label'>nothing:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='symbol'>:no_content</span><span class='rparen'>)</span>
512
+ <span class='kw'>end</span>
513
+
514
+ <span class='comment'># Default handler to render errors.
515
+ </span> <span class='comment'>#
516
+ </span> <span class='comment'># @param status [Symbol|Fixnum] The HTTP error code to return.
517
+ </span> <span class='comment'># @param errors [Array] The list of occurred errors.
518
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_error'>render_error</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_errors'>errors</span><span class='rparen'>)</span>
519
+ <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='id identifier rubyid_errors'>errors</span>
520
+ <span class='id identifier rubyid_status_code'>status_code</span> <span class='op'>=</span> <span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Fixnum</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_status'>status</span> <span class='op'>:</span> <span class='const'>Rack</span><span class='op'>::</span><span class='const'>Utils</span><span class='op'>::</span><span class='const'>SYMBOL_TO_STATUS_CODE</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='int'>500</span><span class='rparen'>)</span>
521
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>errors/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_status_code'>status_code</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
522
+ <span class='kw'>end</span>
523
+
524
+ <span class='id identifier rubyid_private'>private</span>
525
+
526
+ <span class='comment'># :nodoc:
527
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_default_views'>render_default_views</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
528
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@objects</span><span class='rparen'>)</span>
529
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/collection</span><span class='tstring_end'>&quot;</span></span>
530
+ <span class='kw'>elsif</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@object</span><span class='rparen'>)</span>
531
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/object</span><span class='tstring_end'>&quot;</span></span>
532
+ <span class='kw'>else</span>
533
+ <span class='id identifier rubyid_error_handle_exception'>error_handle_exception</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
534
+ <span class='kw'>end</span>
535
+ <span class='kw'>end</span>
536
+ <span class='kw'>end</span></pre>
537
+ </td>
538
+ </tr>
539
+ </table>
540
+ </div>
541
+
542
+
543
+ <span id=""></span>
544
+ <div class="method_details ">
545
+ <h3 class="signature " id="cursor-instance_method">
546
+
547
+ - (<tt><span class='object_link'><a href="PaginationCursor.html" title="Apes::PaginationCursor (class)">Apes::PaginationCursor</a></span></tt>) <strong>cursor</strong> <span class="extras">(readonly)</span>
548
+
549
+
550
+
551
+
552
+
553
+ </h3><div class="docstring">
554
+ <div class="discussion">
555
+ <p>Returns The pagination cursor for this request.</p>
556
+
557
+
558
+ </div>
559
+ </div>
560
+ <div class="tags">
561
+
562
+ <p class="tag_title">Returns:</p>
563
+ <ul class="return">
564
+
565
+ <li>
566
+
567
+
568
+ <span class='type'>(<tt><span class='object_link'><a href="PaginationCursor.html" title="Apes::PaginationCursor (class)">Apes::PaginationCursor</a></span></tt>)</span>
569
+
570
+
571
+
572
+ &mdash;
573
+ <div class='inline'><p>The pagination cursor for this request.</p>
574
+ </div>
575
+
576
+ </li>
577
+
578
+ </ul>
579
+
580
+ </div><table class="source_code">
581
+ <tr>
582
+ <td>
583
+ <pre class="lines">
584
+
585
+
586
+ 15
587
+ 16
588
+ 17
589
+ 18
590
+ 19
591
+ 20
592
+ 21
593
+ 22
594
+ 23
595
+ 24
596
+ 25
597
+ 26
598
+ 27
599
+ 28
600
+ 29
601
+ 30
602
+ 31
603
+ 32
604
+ 33
605
+ 34
606
+ 35
607
+ 36
608
+ 37
609
+ 38
610
+ 39
611
+ 40
612
+ 41
613
+ 42
614
+ 43
615
+ 44
616
+ 45
617
+ 46
618
+ 47
619
+ 48
620
+ 49
621
+ 50
622
+ 51
623
+ 52
624
+ 53
625
+ 54
626
+ 55
627
+ 56
628
+ 57
629
+ 58
630
+ 59
631
+ 60
632
+ 61
633
+ 62
634
+ 63
635
+ 64
636
+ 65
637
+ 66
638
+ 67
639
+ 68
640
+ 69
641
+ 70
642
+ 71
643
+ 72
644
+ 73
645
+ 74
646
+ 75
647
+ 76</pre>
648
+ </td>
649
+ <td>
650
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 15</span>
651
+
652
+ <span class='kw'>class</span> <span class='const'>Controller</span> <span class='op'>&lt;</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>API</span>
653
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>ImplicitRender</span>
654
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>Layouts</span>
655
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Request</span>
656
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Response</span>
657
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Pagination</span>
658
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Errors</span>
659
+
660
+ <span class='id identifier rubyid_layout'>layout</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>general</span><span class='tstring_end'>&quot;</span></span>
661
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_handle_cors</span>
662
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_validate</span>
663
+
664
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:current_account</span><span class='comma'>,</span> <span class='symbol'>:cursor</span><span class='comma'>,</span> <span class='symbol'>:request_cursor</span>
665
+
666
+ <span class='comment'># Exception handling
667
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>Exception</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:error_handle_exception</span>
668
+ <span class='comment'># This allows to avoid to declare all the views
669
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>MissingTemplate</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:render_default_views</span>
670
+
671
+ <span class='comment'># Returns the default URL options for this request.
672
+ </span> <span class='comment'># It ensures that the host is always included and that is set properly in development mode.
673
+ </span> <span class='comment'>#
674
+ </span> <span class='comment'># @return [Hash] Default URL options for the request.
675
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_default_url_options'>default_url_options</span>
676
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>only_path:</span> <span class='kw'>false</span><span class='rbrace'>}</span>
677
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='id identifier rubyid_request_source_host'>request_source_host</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>RuntimeConfiguration</span><span class='period'>.</span><span class='id identifier rubyid_development?'>development?</span>
678
+ <span class='id identifier rubyid_rv'>rv</span>
679
+ <span class='kw'>end</span>
680
+
681
+ <span class='comment'># Tiny handle to handle CORS OPTIONS requests. It just renders nothing as headers are handle in Apes::Concerns::Response module.
682
+ </span> <span class='comment'>#
683
+ </span> <span class='comment'># To enable this route, add the following to the routes.rb:
684
+ </span> <span class='comment'>#
685
+ </span> <span class='comment'># # This is to enable AJAX cross domain
686
+ </span> <span class='comment'># match &#39;*path&#39;, to: &#39;application#handle_cors&#39;, via: :options
687
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_handle_cors'>handle_cors</span>
688
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='label'>nothing:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='symbol'>:no_content</span><span class='rparen'>)</span>
689
+ <span class='kw'>end</span>
690
+
691
+ <span class='comment'># Default handler to render errors.
692
+ </span> <span class='comment'>#
693
+ </span> <span class='comment'># @param status [Symbol|Fixnum] The HTTP error code to return.
694
+ </span> <span class='comment'># @param errors [Array] The list of occurred errors.
695
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_error'>render_error</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_errors'>errors</span><span class='rparen'>)</span>
696
+ <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='id identifier rubyid_errors'>errors</span>
697
+ <span class='id identifier rubyid_status_code'>status_code</span> <span class='op'>=</span> <span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Fixnum</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_status'>status</span> <span class='op'>:</span> <span class='const'>Rack</span><span class='op'>::</span><span class='const'>Utils</span><span class='op'>::</span><span class='const'>SYMBOL_TO_STATUS_CODE</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='int'>500</span><span class='rparen'>)</span>
698
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>errors/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_status_code'>status_code</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
699
+ <span class='kw'>end</span>
700
+
701
+ <span class='id identifier rubyid_private'>private</span>
702
+
703
+ <span class='comment'># :nodoc:
704
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_default_views'>render_default_views</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
705
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@objects</span><span class='rparen'>)</span>
706
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/collection</span><span class='tstring_end'>&quot;</span></span>
707
+ <span class='kw'>elsif</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@object</span><span class='rparen'>)</span>
708
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/object</span><span class='tstring_end'>&quot;</span></span>
709
+ <span class='kw'>else</span>
710
+ <span class='id identifier rubyid_error_handle_exception'>error_handle_exception</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
711
+ <span class='kw'>end</span>
712
+ <span class='kw'>end</span>
713
+ <span class='kw'>end</span></pre>
714
+ </td>
715
+ </tr>
716
+ </table>
717
+ </div>
718
+
719
+
720
+ <span id=""></span>
721
+ <div class="method_details ">
722
+ <h3 class="signature " id="request_cursor-instance_method">
723
+
724
+ - (<tt><span class='object_link'><a href="PaginationCursor.html" title="Apes::PaginationCursor (class)">Apes::PaginationCursor</a></span></tt>) <strong>request_cursor</strong> <span class="extras">(readonly)</span>
725
+
726
+
727
+
728
+
729
+
730
+ </h3><div class="docstring">
731
+ <div class="discussion">
732
+ <p>Returns The original pagination cursor sent from the client.</p>
733
+
734
+
735
+ </div>
736
+ </div>
737
+ <div class="tags">
738
+
739
+ <p class="tag_title">Returns:</p>
740
+ <ul class="return">
741
+
742
+ <li>
743
+
744
+
745
+ <span class='type'>(<tt><span class='object_link'><a href="PaginationCursor.html" title="Apes::PaginationCursor (class)">Apes::PaginationCursor</a></span></tt>)</span>
746
+
747
+
748
+
749
+ &mdash;
750
+ <div class='inline'><p>The original pagination cursor sent from the client.</p>
751
+ </div>
752
+
753
+ </li>
754
+
755
+ </ul>
756
+
757
+ </div><table class="source_code">
758
+ <tr>
759
+ <td>
760
+ <pre class="lines">
761
+
762
+
763
+ 15
764
+ 16
765
+ 17
766
+ 18
767
+ 19
768
+ 20
769
+ 21
770
+ 22
771
+ 23
772
+ 24
773
+ 25
774
+ 26
775
+ 27
776
+ 28
777
+ 29
778
+ 30
779
+ 31
780
+ 32
781
+ 33
782
+ 34
783
+ 35
784
+ 36
785
+ 37
786
+ 38
787
+ 39
788
+ 40
789
+ 41
790
+ 42
791
+ 43
792
+ 44
793
+ 45
794
+ 46
795
+ 47
796
+ 48
797
+ 49
798
+ 50
799
+ 51
800
+ 52
801
+ 53
802
+ 54
803
+ 55
804
+ 56
805
+ 57
806
+ 58
807
+ 59
808
+ 60
809
+ 61
810
+ 62
811
+ 63
812
+ 64
813
+ 65
814
+ 66
815
+ 67
816
+ 68
817
+ 69
818
+ 70
819
+ 71
820
+ 72
821
+ 73
822
+ 74
823
+ 75
824
+ 76</pre>
825
+ </td>
826
+ <td>
827
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 15</span>
828
+
829
+ <span class='kw'>class</span> <span class='const'>Controller</span> <span class='op'>&lt;</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>API</span>
830
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionController</span><span class='op'>::</span><span class='const'>ImplicitRender</span>
831
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>Layouts</span>
832
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Request</span>
833
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Response</span>
834
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Pagination</span>
835
+ <span class='id identifier rubyid_include'>include</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>Concerns</span><span class='op'>::</span><span class='const'>Errors</span>
836
+
837
+ <span class='id identifier rubyid_layout'>layout</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>general</span><span class='tstring_end'>&quot;</span></span>
838
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_handle_cors</span>
839
+ <span class='id identifier rubyid_before_filter'>before_filter</span> <span class='symbol'>:request_validate</span>
840
+
841
+ <span class='id identifier rubyid_attr_reader'>attr_reader</span> <span class='symbol'>:current_account</span><span class='comma'>,</span> <span class='symbol'>:cursor</span><span class='comma'>,</span> <span class='symbol'>:request_cursor</span>
842
+
843
+ <span class='comment'># Exception handling
844
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>Exception</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:error_handle_exception</span>
845
+ <span class='comment'># This allows to avoid to declare all the views
846
+ </span> <span class='id identifier rubyid_rescue_from'>rescue_from</span> <span class='const'>ActionView</span><span class='op'>::</span><span class='const'>MissingTemplate</span><span class='comma'>,</span> <span class='label'>with:</span> <span class='symbol'>:render_default_views</span>
847
+
848
+ <span class='comment'># Returns the default URL options for this request.
849
+ </span> <span class='comment'># It ensures that the host is always included and that is set properly in development mode.
850
+ </span> <span class='comment'>#
851
+ </span> <span class='comment'># @return [Hash] Default URL options for the request.
852
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_default_url_options'>default_url_options</span>
853
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>only_path:</span> <span class='kw'>false</span><span class='rbrace'>}</span>
854
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='id identifier rubyid_request_source_host'>request_source_host</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>RuntimeConfiguration</span><span class='period'>.</span><span class='id identifier rubyid_development?'>development?</span>
855
+ <span class='id identifier rubyid_rv'>rv</span>
856
+ <span class='kw'>end</span>
857
+
858
+ <span class='comment'># Tiny handle to handle CORS OPTIONS requests. It just renders nothing as headers are handle in Apes::Concerns::Response module.
859
+ </span> <span class='comment'>#
860
+ </span> <span class='comment'># To enable this route, add the following to the routes.rb:
861
+ </span> <span class='comment'>#
862
+ </span> <span class='comment'># # This is to enable AJAX cross domain
863
+ </span> <span class='comment'># match &#39;*path&#39;, to: &#39;application#handle_cors&#39;, via: :options
864
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_handle_cors'>handle_cors</span>
865
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='label'>nothing:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='symbol'>:no_content</span><span class='rparen'>)</span>
866
+ <span class='kw'>end</span>
867
+
868
+ <span class='comment'># Default handler to render errors.
869
+ </span> <span class='comment'>#
870
+ </span> <span class='comment'># @param status [Symbol|Fixnum] The HTTP error code to return.
871
+ </span> <span class='comment'># @param errors [Array] The list of occurred errors.
872
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_error'>render_error</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_errors'>errors</span><span class='rparen'>)</span>
873
+ <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='id identifier rubyid_errors'>errors</span>
874
+ <span class='id identifier rubyid_status_code'>status_code</span> <span class='op'>=</span> <span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Fixnum</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_status'>status</span> <span class='op'>:</span> <span class='const'>Rack</span><span class='op'>::</span><span class='const'>Utils</span><span class='op'>::</span><span class='const'>SYMBOL_TO_STATUS_CODE</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='int'>500</span><span class='rparen'>)</span>
875
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>errors/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_status_code'>status_code</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
876
+ <span class='kw'>end</span>
877
+
878
+ <span class='id identifier rubyid_private'>private</span>
879
+
880
+ <span class='comment'># :nodoc:
881
+ </span> <span class='kw'>def</span> <span class='id identifier rubyid_render_default_views'>render_default_views</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
882
+ <span class='kw'>if</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@objects</span><span class='rparen'>)</span>
883
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/collection</span><span class='tstring_end'>&quot;</span></span>
884
+ <span class='kw'>elsif</span> <span class='kw'>defined?</span><span class='lparen'>(</span><span class='ivar'>@object</span><span class='rparen'>)</span>
885
+ <span class='id identifier rubyid_render'>render</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/object</span><span class='tstring_end'>&quot;</span></span>
886
+ <span class='kw'>else</span>
887
+ <span class='id identifier rubyid_error_handle_exception'>error_handle_exception</span><span class='lparen'>(</span><span class='id identifier rubyid_exception'>exception</span><span class='rparen'>)</span>
888
+ <span class='kw'>end</span>
889
+ <span class='kw'>end</span>
890
+ <span class='kw'>end</span></pre>
891
+ </td>
892
+ </tr>
893
+ </table>
894
+ </div>
895
+
896
+ </div>
897
+
898
+
899
+ <div id="instance_method_details" class="method_details_list">
900
+ <h2>Instance Method Details</h2>
901
+
902
+
903
+ <div class="method_details first">
904
+ <h3 class="signature first" id="default_url_options-instance_method">
905
+
906
+ - (<tt>Hash</tt>) <strong>default_url_options</strong>
907
+
908
+
909
+
910
+
911
+
912
+ </h3><div class="docstring">
913
+ <div class="discussion">
914
+ <p>Returns the default URL options for this request.
915
+ It ensures that the host is always included and that is set properly in development mode.</p>
916
+
917
+
918
+ </div>
919
+ </div>
920
+ <div class="tags">
921
+
922
+ <p class="tag_title">Returns:</p>
923
+ <ul class="return">
924
+
925
+ <li>
926
+
927
+
928
+ <span class='type'>(<tt>Hash</tt>)</span>
929
+
930
+
931
+
932
+ &mdash;
933
+ <div class='inline'><p>Default URL options for the request.</p>
934
+ </div>
935
+
936
+ </li>
937
+
938
+ </ul>
939
+
940
+ </div><table class="source_code">
941
+ <tr>
942
+ <td>
943
+ <pre class="lines">
944
+
945
+
946
+ 38
947
+ 39
948
+ 40
949
+ 41
950
+ 42</pre>
951
+ </td>
952
+ <td>
953
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 38</span>
954
+
955
+ <span class='kw'>def</span> <span class='id identifier rubyid_default_url_options'>default_url_options</span>
956
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>only_path:</span> <span class='kw'>false</span><span class='rbrace'>}</span>
957
+ <span class='id identifier rubyid_rv'>rv</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='id identifier rubyid_request_source_host'>request_source_host</span><span class='rbrace'>}</span> <span class='kw'>if</span> <span class='const'>Apes</span><span class='op'>::</span><span class='const'>RuntimeConfiguration</span><span class='period'>.</span><span class='id identifier rubyid_development?'>development?</span>
958
+ <span class='id identifier rubyid_rv'>rv</span>
959
+ <span class='kw'>end</span></pre>
960
+ </td>
961
+ </tr>
962
+ </table>
963
+ </div>
964
+
965
+ <div class="method_details ">
966
+ <h3 class="signature " id="handle_cors-instance_method">
967
+
968
+ - (<tt>Object</tt>) <strong>handle_cors</strong>
969
+
970
+
971
+
972
+
973
+
974
+ </h3><div class="docstring">
975
+ <div class="discussion">
976
+ <p>Tiny handle to handle CORS OPTIONS requests. It just renders nothing as headers are handle in Apes::Concerns::Response module.</p>
977
+
978
+ <p>To enable this route, add the following to the routes.rb:</p>
979
+
980
+ <pre class="code ruby"><code class="ruby"><span class='comment'># This is to enable AJAX cross domain
981
+ </span><span class='id identifier rubyid_match'>match</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>*path</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>to:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>application#handle_cors</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>via:</span> <span class='symbol'>:options</span>
982
+ </code></pre>
983
+
984
+
985
+ </div>
986
+ </div>
987
+ <div class="tags">
988
+
989
+
990
+ </div><table class="source_code">
991
+ <tr>
992
+ <td>
993
+ <pre class="lines">
994
+
995
+
996
+ 50
997
+ 51
998
+ 52</pre>
999
+ </td>
1000
+ <td>
1001
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 50</span>
1002
+
1003
+ <span class='kw'>def</span> <span class='id identifier rubyid_handle_cors'>handle_cors</span>
1004
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='label'>nothing:</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='label'>status:</span> <span class='symbol'>:no_content</span><span class='rparen'>)</span>
1005
+ <span class='kw'>end</span></pre>
1006
+ </td>
1007
+ </tr>
1008
+ </table>
1009
+ </div>
1010
+
1011
+ <div class="method_details ">
1012
+ <h3 class="signature " id="render_error-instance_method">
1013
+
1014
+ - (<tt>Object</tt>) <strong>render_error</strong>(status, errors)
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+ </h3><div class="docstring">
1021
+ <div class="discussion">
1022
+ <p>Default handler to render errors.</p>
1023
+
1024
+
1025
+ </div>
1026
+ </div>
1027
+ <div class="tags">
1028
+ <p class="tag_title">Parameters:</p>
1029
+ <ul class="param">
1030
+
1031
+ <li>
1032
+
1033
+ <span class='name'>status</span>
1034
+
1035
+
1036
+ <span class='type'>(<tt>Symbol|Fixnum</tt>)</span>
1037
+
1038
+
1039
+
1040
+ &mdash;
1041
+ <div class='inline'><p>The HTTP error code to return.</p>
1042
+ </div>
1043
+
1044
+ </li>
1045
+
1046
+ <li>
1047
+
1048
+ <span class='name'>errors</span>
1049
+
1050
+
1051
+ <span class='type'>(<tt>Array</tt>)</span>
1052
+
1053
+
1054
+
1055
+ &mdash;
1056
+ <div class='inline'><p>The list of occurred errors.</p>
1057
+ </div>
1058
+
1059
+ </li>
1060
+
1061
+ </ul>
1062
+
1063
+
1064
+ </div><table class="source_code">
1065
+ <tr>
1066
+ <td>
1067
+ <pre class="lines">
1068
+
1069
+
1070
+ 58
1071
+ 59
1072
+ 60
1073
+ 61
1074
+ 62</pre>
1075
+ </td>
1076
+ <td>
1077
+ <pre class="code"><span class="info file"># File 'lib/apes/controller.rb', line 58</span>
1078
+
1079
+ <span class='kw'>def</span> <span class='id identifier rubyid_render_error'>render_error</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_errors'>errors</span><span class='rparen'>)</span>
1080
+ <span class='ivar'>@errors</span> <span class='op'>=</span> <span class='id identifier rubyid_errors'>errors</span>
1081
+ <span class='id identifier rubyid_status_code'>status_code</span> <span class='op'>=</span> <span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Fixnum</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_status'>status</span> <span class='op'>:</span> <span class='const'>Rack</span><span class='op'>::</span><span class='const'>Utils</span><span class='op'>::</span><span class='const'>SYMBOL_TO_STATUS_CODE</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span><span class='comma'>,</span> <span class='int'>500</span><span class='rparen'>)</span>
1082
+ <span class='id identifier rubyid_render'>render</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>errors/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_status_code'>status_code</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>status:</span> <span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
1083
+ <span class='kw'>end</span></pre>
1084
+ </td>
1085
+ </tr>
1086
+ </table>
1087
+ </div>
1088
+
1089
+ </div>
1090
+
1091
+ </div>
1092
+
1093
+ <div id="footer">
1094
+ Generated on Sat Jun 4 12:41:54 2016 by
1095
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1096
+ 0.8.7.6 (ruby-2.3.0).
1097
+ </div>
1098
+
1099
+ </body>
1100
+ </html>