wsc_sdk 1.3.1

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 (265) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +146 -0
  3. data/.circleci/docker/build/Dockerfile +3 -0
  4. data/.circleci/helpers/add_preamble.rb +29 -0
  5. data/.circleci/helpers/build_docs.sh +5 -0
  6. data/.circleci/helpers/build_gem.sh +5 -0
  7. data/.circleci/helpers/debundle-context.sh +14 -0
  8. data/.circleci/helpers/finalize_release.sh +24 -0
  9. data/.circleci/helpers/publish_docs.sh +10 -0
  10. data/.circleci/helpers/release_gem.sh +8 -0
  11. data/.circleci/helpers/setup.sh +11 -0
  12. data/.circleci/helpers/setup_aws.sh +13 -0
  13. data/.circleci/helpers/setup_gem.sh +2 -0
  14. data/.circleci/helpers/setup_git.sh +27 -0
  15. data/.circleci/helpers/setup_rubygems.sh +15 -0
  16. data/.circleci/helpers/test_integration.sh +12 -0
  17. data/.circleci/helpers/test_unit.sh +6 -0
  18. data/.circleci/jobs/publish-production.sh +17 -0
  19. data/.circleci/jobs/publish-staging.sh +17 -0
  20. data/.circleci/jobs/release-production.sh +21 -0
  21. data/.circleci/jobs/test-integration.sh +9 -0
  22. data/.circleci/jobs/test-unit.sh +9 -0
  23. data/.circleci/tag_repo.rb +46 -0
  24. data/.gitignore +28 -0
  25. data/.rspec +2 -0
  26. data/.yard/config +2 -0
  27. data/.yard/template/default/fulldoc/html/css/custom.css +151 -0
  28. data/.yard/template/default/layout/html/footer.erb +0 -0
  29. data/.yard/template/default/layout/html/headers.erb +10 -0
  30. data/.yard/template/default/layout/html/layout.erb +45 -0
  31. data/.yard/template/default/layout/html/setup.rb +24 -0
  32. data/.yardopts +1 -0
  33. data/CODE_OF_CONDUCT.md +74 -0
  34. data/Gemfile +6 -0
  35. data/Gemfile.lock +99 -0
  36. data/LICENSE.txt +28 -0
  37. data/README.md +397 -0
  38. data/Rakefile +2 -0
  39. data/bin/console +14 -0
  40. data/bin/setup +8 -0
  41. data/doc/Hash.html +291 -0
  42. data/doc/WscSdk.html +570 -0
  43. data/doc/WscSdk/ApiResponse.html +242 -0
  44. data/doc/WscSdk/Attributes.html +128 -0
  45. data/doc/WscSdk/Attributes/Mode.html +191 -0
  46. data/doc/WscSdk/Attributes/Type.html +389 -0
  47. data/doc/WscSdk/Client.html +2677 -0
  48. data/doc/WscSdk/Configuration.html +595 -0
  49. data/doc/WscSdk/Endpoint.html +2974 -0
  50. data/doc/WscSdk/Endpoints.html +141 -0
  51. data/doc/WscSdk/Endpoints/CustomStreamTargets.html +383 -0
  52. data/doc/WscSdk/Endpoints/LiveStreams.html +197 -0
  53. data/doc/WscSdk/Endpoints/OutputStreamTargets.html +180 -0
  54. data/doc/WscSdk/Endpoints/Outputs.html +180 -0
  55. data/doc/WscSdk/Endpoints/StreamTargets.html +446 -0
  56. data/doc/WscSdk/Endpoints/Transcoders.html +197 -0
  57. data/doc/WscSdk/Endpoints/UllStreamTargets.html +383 -0
  58. data/doc/WscSdk/Endpoints/WowzaStreamTargets.html +383 -0
  59. data/doc/WscSdk/Enum.html +225 -0
  60. data/doc/WscSdk/Enums.html +321 -0
  61. data/doc/WscSdk/Enums/BillingMode.html +188 -0
  62. data/doc/WscSdk/Enums/BroadcastLocation.html +396 -0
  63. data/doc/WscSdk/Enums/BufferSize.html +301 -0
  64. data/doc/WscSdk/Enums/ClosedCaptionType.html +221 -0
  65. data/doc/WscSdk/Enums/CustomProvider.html +252 -0
  66. data/doc/WscSdk/Enums/DeliveryMethod.html +188 -0
  67. data/doc/WscSdk/Enums/DeliveryType.html +188 -0
  68. data/doc/WscSdk/Enums/Encoder.html +460 -0
  69. data/doc/WscSdk/Enums/Errors.html +555 -0
  70. data/doc/WscSdk/Enums/IdleTimeout.html +398 -0
  71. data/doc/WscSdk/Enums/ImagePosition.html +220 -0
  72. data/doc/WscSdk/Enums/ModelMode.html +175 -0
  73. data/doc/WscSdk/Enums/ModelType.html +373 -0
  74. data/doc/WscSdk/Enums/PlayerType.html +188 -0
  75. data/doc/WscSdk/Enums/Protocol.html +204 -0
  76. data/doc/WscSdk/Enums/TargetDeliveryProtocol.html +188 -0
  77. data/doc/WscSdk/Enums/TranscoderType.html +188 -0
  78. data/doc/WscSdk/Enums/UserRegion.html +383 -0
  79. data/doc/WscSdk/Enums/WowzaProvider.html +188 -0
  80. data/doc/WscSdk/Errors.html +683 -0
  81. data/doc/WscSdk/Loggable.html +346 -0
  82. data/doc/WscSdk/Model.html +3316 -0
  83. data/doc/WscSdk/ModelList.html +442 -0
  84. data/doc/WscSdk/ModelTemplate.html +267 -0
  85. data/doc/WscSdk/Models.html +141 -0
  86. data/doc/WscSdk/Models/CustomStreamTarget.html +192 -0
  87. data/doc/WscSdk/Models/Error.html +351 -0
  88. data/doc/WscSdk/Models/LiveStream.html +601 -0
  89. data/doc/WscSdk/Models/LiveStreamConnectionCode.html +192 -0
  90. data/doc/WscSdk/Models/LiveStreamState.html +200 -0
  91. data/doc/WscSdk/Models/LiveStreamStats.html +200 -0
  92. data/doc/WscSdk/Models/LiveStreamThumbnailUrl.html +200 -0
  93. data/doc/WscSdk/Models/Output.html +294 -0
  94. data/doc/WscSdk/Models/OutputStreamTarget.html +274 -0
  95. data/doc/WscSdk/Models/StreamTarget.html +273 -0
  96. data/doc/WscSdk/Models/Transcoder.html +793 -0
  97. data/doc/WscSdk/Models/TranscoderBooleanStat.html +278 -0
  98. data/doc/WscSdk/Models/TranscoderConnectionCode.html +192 -0
  99. data/doc/WscSdk/Models/TranscoderFloatStat.html +278 -0
  100. data/doc/WscSdk/Models/TranscoderIntegerStat.html +278 -0
  101. data/doc/WscSdk/Models/TranscoderState.html +196 -0
  102. data/doc/WscSdk/Models/TranscoderStats.html +196 -0
  103. data/doc/WscSdk/Models/TranscoderStreamTargetState.html +192 -0
  104. data/doc/WscSdk/Models/TranscoderStringStat.html +278 -0
  105. data/doc/WscSdk/Models/TranscoderThumbnailUrl.html +196 -0
  106. data/doc/WscSdk/Models/UllStreamTarget.html +360 -0
  107. data/doc/WscSdk/Models/WowzaStreamTarget.html +380 -0
  108. data/doc/WscSdk/Pagination.html +1277 -0
  109. data/doc/WscSdk/Schema.html +861 -0
  110. data/doc/WscSdk/SchemaAttribute.html +2400 -0
  111. data/doc/WscSdk/Templates.html +141 -0
  112. data/doc/WscSdk/Templates/CustomStreamTarget.html +1045 -0
  113. data/doc/WscSdk/Templates/LiveStream.html +1432 -0
  114. data/doc/WscSdk/Templates/Output.html +829 -0
  115. data/doc/WscSdk/Templates/Transcoder.html +699 -0
  116. data/doc/WscSdk/Templates/UllStreamTarget.html +411 -0
  117. data/doc/WscSdk/Templates/WowzaStreamTarget.html +447 -0
  118. data/doc/WscSdk/TranscoderSharedMethods.html +1113 -0
  119. data/doc/_index.html +705 -0
  120. data/doc/class_list.html +51 -0
  121. data/doc/css/bootstrap.css +5 -0
  122. data/doc/css/common.css +1 -0
  123. data/doc/css/custom.css +151 -0
  124. data/doc/css/full_list.css +58 -0
  125. data/doc/css/style.css +496 -0
  126. data/doc/file.README.html +570 -0
  127. data/doc/file_list.html +56 -0
  128. data/doc/frames.html +17 -0
  129. data/doc/images/wsc-ruby-1800x400.png +0 -0
  130. data/doc/index.html +570 -0
  131. data/doc/js/app.js +292 -0
  132. data/doc/js/full_list.js +216 -0
  133. data/doc/js/jquery.js +4 -0
  134. data/doc/method_list.html +1731 -0
  135. data/doc/top-level-namespace.html +182 -0
  136. data/examples/client.rb +40 -0
  137. data/examples/helpers.rb +100 -0
  138. data/examples/live_streams/create.rb +39 -0
  139. data/examples/live_streams/delete.rb +32 -0
  140. data/examples/live_streams/find.rb +22 -0
  141. data/examples/live_streams/flood.rb +126 -0
  142. data/examples/live_streams/list.rb +24 -0
  143. data/examples/live_streams/regenerate_connection_code.rb +29 -0
  144. data/examples/live_streams/reset.rb +32 -0
  145. data/examples/live_streams/reset_and_wait.rb +51 -0
  146. data/examples/live_streams/start.rb +33 -0
  147. data/examples/live_streams/start_and_wait.rb +51 -0
  148. data/examples/live_streams/state.rb +33 -0
  149. data/examples/live_streams/stats.rb +43 -0
  150. data/examples/live_streams/stop.rb +33 -0
  151. data/examples/live_streams/stop_and_wait.rb +51 -0
  152. data/examples/live_streams/thumbnail_url.rb +46 -0
  153. data/examples/live_streams/update.rb +43 -0
  154. data/examples/live_streams/workflow.rb +165 -0
  155. data/examples/output_stream_targets/create.rb +56 -0
  156. data/examples/output_stream_targets/delete.rb +45 -0
  157. data/examples/output_stream_targets/find.rb +37 -0
  158. data/examples/output_stream_targets/list.rb +36 -0
  159. data/examples/output_stream_targets/update.rb +56 -0
  160. data/examples/outputs/create.rb +49 -0
  161. data/examples/outputs/delete.rb +39 -0
  162. data/examples/outputs/find.rb +31 -0
  163. data/examples/outputs/list.rb +29 -0
  164. data/examples/outputs/update.rb +50 -0
  165. data/examples/stream_targets/custom/create.rb +42 -0
  166. data/examples/stream_targets/custom/delete.rb +31 -0
  167. data/examples/stream_targets/custom/find.rb +23 -0
  168. data/examples/stream_targets/custom/list.rb +24 -0
  169. data/examples/stream_targets/custom/update.rb +43 -0
  170. data/examples/stream_targets/list.rb +24 -0
  171. data/examples/stream_targets/ull/create.rb +41 -0
  172. data/examples/stream_targets/ull/delete.rb +31 -0
  173. data/examples/stream_targets/ull/find.rb +23 -0
  174. data/examples/stream_targets/ull/list.rb +24 -0
  175. data/examples/stream_targets/ull/update.rb +43 -0
  176. data/examples/stream_targets/wowza/create.rb +42 -0
  177. data/examples/stream_targets/wowza/delete.rb +31 -0
  178. data/examples/stream_targets/wowza/find.rb +23 -0
  179. data/examples/stream_targets/wowza/list.rb +23 -0
  180. data/examples/stream_targets/wowza/update.rb +43 -0
  181. data/examples/transcoders/create.rb +39 -0
  182. data/examples/transcoders/delete.rb +31 -0
  183. data/examples/transcoders/find.rb +23 -0
  184. data/examples/transcoders/list.rb +24 -0
  185. data/examples/transcoders/reset.rb +32 -0
  186. data/examples/transcoders/reset_and_wait.rb +48 -0
  187. data/examples/transcoders/start.rb +33 -0
  188. data/examples/transcoders/start_and_wait.rb +50 -0
  189. data/examples/transcoders/state.rb +33 -0
  190. data/examples/transcoders/stats.rb +43 -0
  191. data/examples/transcoders/stop.rb +33 -0
  192. data/examples/transcoders/stop_and_wait.rb +50 -0
  193. data/examples/transcoders/thumbnail_url.rb +46 -0
  194. data/examples/transcoders/update.rb +43 -0
  195. data/images/wsc-ruby-1800x400.png +0 -0
  196. data/lib/wsc_sdk.rb +81 -0
  197. data/lib/wsc_sdk/client.rb +417 -0
  198. data/lib/wsc_sdk/configuration.rb +21 -0
  199. data/lib/wsc_sdk/constants.rb +29 -0
  200. data/lib/wsc_sdk/endpoint.rb +492 -0
  201. data/lib/wsc_sdk/endpoints/custom_stream_targets.rb +44 -0
  202. data/lib/wsc_sdk/endpoints/live_streams.rb +34 -0
  203. data/lib/wsc_sdk/endpoints/output_stream_targets.rb +17 -0
  204. data/lib/wsc_sdk/endpoints/outputs.rb +17 -0
  205. data/lib/wsc_sdk/endpoints/stream_targets.rb +45 -0
  206. data/lib/wsc_sdk/endpoints/transcoders.rb +38 -0
  207. data/lib/wsc_sdk/endpoints/ull_stream_targets.rb +44 -0
  208. data/lib/wsc_sdk/endpoints/wowza_stream_targets.rb +44 -0
  209. data/lib/wsc_sdk/enums.rb +31 -0
  210. data/lib/wsc_sdk/enums/billing_mode.rb +20 -0
  211. data/lib/wsc_sdk/enums/broadcast_location.rb +58 -0
  212. data/lib/wsc_sdk/enums/buffer_size.rb +41 -0
  213. data/lib/wsc_sdk/enums/closed_caption_type.rb +26 -0
  214. data/lib/wsc_sdk/enums/custom_provider.rb +32 -0
  215. data/lib/wsc_sdk/enums/delivery_method.rb +20 -0
  216. data/lib/wsc_sdk/enums/delivery_type.rb +20 -0
  217. data/lib/wsc_sdk/enums/encoder.rb +71 -0
  218. data/lib/wsc_sdk/enums/idle_timeout.rb +50 -0
  219. data/lib/wsc_sdk/enums/image_position.rb +26 -0
  220. data/lib/wsc_sdk/enums/player_type.rb +20 -0
  221. data/lib/wsc_sdk/enums/protocol.rb +23 -0
  222. data/lib/wsc_sdk/enums/target_delivery_protocol.rb +20 -0
  223. data/lib/wsc_sdk/enums/transcoder_type.rb +20 -0
  224. data/lib/wsc_sdk/enums/wowza_provider.rb +20 -0
  225. data/lib/wsc_sdk/errors.rb +115 -0
  226. data/lib/wsc_sdk/model.rb +515 -0
  227. data/lib/wsc_sdk/model_list.rb +42 -0
  228. data/lib/wsc_sdk/model_template.rb +27 -0
  229. data/lib/wsc_sdk/models/custom_stream_target.rb +34 -0
  230. data/lib/wsc_sdk/models/error.rb +53 -0
  231. data/lib/wsc_sdk/models/live_stream.rb +130 -0
  232. data/lib/wsc_sdk/models/live_stream_connection_code.rb +31 -0
  233. data/lib/wsc_sdk/models/live_stream_state.rb +20 -0
  234. data/lib/wsc_sdk/models/live_stream_stats.rb +20 -0
  235. data/lib/wsc_sdk/models/live_stream_thumbnail_url.rb +20 -0
  236. data/lib/wsc_sdk/models/output.rb +61 -0
  237. data/lib/wsc_sdk/models/output_stream_target.rb +37 -0
  238. data/lib/wsc_sdk/models/stream_target.rb +29 -0
  239. data/lib/wsc_sdk/models/transcoder.rb +135 -0
  240. data/lib/wsc_sdk/models/transcoder_boolean_stat.rb +41 -0
  241. data/lib/wsc_sdk/models/transcoder_connection_code.rb +29 -0
  242. data/lib/wsc_sdk/models/transcoder_float_stat.rb +40 -0
  243. data/lib/wsc_sdk/models/transcoder_integer_stat.rb +40 -0
  244. data/lib/wsc_sdk/models/transcoder_state.rb +31 -0
  245. data/lib/wsc_sdk/models/transcoder_stats.rb +51 -0
  246. data/lib/wsc_sdk/models/transcoder_stream_target_state.rb +29 -0
  247. data/lib/wsc_sdk/models/transcoder_string_stat.rb +40 -0
  248. data/lib/wsc_sdk/models/transcoder_thumbnail_url.rb +29 -0
  249. data/lib/wsc_sdk/models/ull_stream_target.rb +54 -0
  250. data/lib/wsc_sdk/models/wowza_stream_target.rb +60 -0
  251. data/lib/wsc_sdk/modules/api_response.rb +24 -0
  252. data/lib/wsc_sdk/modules/loggable.rb +44 -0
  253. data/lib/wsc_sdk/modules/transcoder_shared_methods.rb +221 -0
  254. data/lib/wsc_sdk/pagination.rb +89 -0
  255. data/lib/wsc_sdk/schema.rb +140 -0
  256. data/lib/wsc_sdk/schema_attribute.rb +349 -0
  257. data/lib/wsc_sdk/templates/custom_stream_target.rb +154 -0
  258. data/lib/wsc_sdk/templates/live_stream.rb +234 -0
  259. data/lib/wsc_sdk/templates/output.rb +133 -0
  260. data/lib/wsc_sdk/templates/transcoder.rb +97 -0
  261. data/lib/wsc_sdk/templates/ull_stream_target.rb +49 -0
  262. data/lib/wsc_sdk/templates/wowza_stream_target.rb +57 -0
  263. data/lib/wsc_sdk/version.rb +7 -0
  264. data/wsc_sdk.gemspec +48 -0
  265. metadata +460 -0
@@ -0,0 +1,861 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Wowza Streaming Cloud - SDK Code Documentation</title>
7
+
8
+ <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
9
+
10
+ <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
11
+
12
+ <link rel="stylesheet" href="../css/custom.css" type="text/css" charset="utf-8" />
13
+
14
+ <script type="text/javascript" charset="utf-8">
15
+ pathId = "WscSdk::Schema";
16
+ relpath = '../';
17
+ </script>
18
+
19
+
20
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
23
+
24
+
25
+ </head>
26
+ <body>
27
+ <div id="wowza-wrapper">
28
+ <header>
29
+ <div class="logo">
30
+ <a href="https://www.wowza.com">
31
+ <img src="https://cloud.wowza.com/apidocs/assets/logo.png" alt="Wowza Logo" />
32
+ </a>
33
+ <h1>Wowza Streaming Cloud<br/>SDK Code Documentation</h1>
34
+ <div class="clearfix"></div>
35
+ </div>
36
+ <div class="links">
37
+ <a href="https://www.wowza.com/">Wowza Home</a>
38
+ <a href="https://www.wowza.com/docs">Docs & APIS</a>
39
+ <a href="https://www.wowza.com/community/index.html">Forums</a>
40
+ <a href="https://www.wowza.com/support">Support</a>
41
+ </div>
42
+ <div class="clearfix"></div>
43
+ </header>
44
+
45
+ <div id="content">
46
+ <div class="nav_wrap">
47
+ <iframe id="nav" src="../class_list.html?1"></iframe>
48
+ <div id="resizer"></div>
49
+ </div>
50
+
51
+ <div id="main" tabindex="-1">
52
+ <div id="header">
53
+ <div id="menu">
54
+
55
+ <a href="../_index.html">Index (S)</a> &raquo;
56
+ <span class='title'><span class='object_link'><a href="../WscSdk.html" title="WscSdk (module)">WscSdk</a></span></span>
57
+ &raquo;
58
+ <span class="title">Schema</span>
59
+
60
+ </div>
61
+
62
+ <div id="search">
63
+
64
+ <a class="full_list_link" id="class_list_link"
65
+ href="../class_list.html">
66
+
67
+ <svg width="24" height="24">
68
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
69
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
70
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
71
+ </svg>
72
+ </a>
73
+
74
+ </div>
75
+ <div class="clear"></div>
76
+ </div>
77
+
78
+ <div id="content"><h1>Class: WscSdk::Schema
79
+
80
+
81
+
82
+ </h1>
83
+ <div class="box_info">
84
+
85
+ <dl>
86
+ <dt>Inherits:</dt>
87
+ <dd>
88
+ <span class="inheritName">Hash</span>
89
+
90
+ <ul class="fullTree">
91
+ <li>Object</li>
92
+
93
+ <li class="next">Hash</li>
94
+
95
+ <li class="next">WscSdk::Schema</li>
96
+
97
+ </ul>
98
+ <a href="#" class="inheritanceTree">show all</a>
99
+
100
+ </dd>
101
+ </dl>
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ <dl>
114
+ <dt>Defined in:</dt>
115
+ <dd>lib/wsc_sdk/schema.rb</dd>
116
+ </dl>
117
+
118
+ </div>
119
+
120
+ <h2>Overview</h2><div class="docstring">
121
+ <div class="discussion">
122
+
123
+ <p>A class that manages the data schema for an SDK model.</p>
124
+
125
+
126
+ </div>
127
+ </div>
128
+ <div class="tags">
129
+
130
+
131
+ </div>
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+ <h2>
140
+ Instance Method Summary
141
+ <small><a href="#" class="summary_toggle">collapse</a></small>
142
+ </h2>
143
+
144
+ <ul class="summary">
145
+
146
+ <li class="public ">
147
+ <span class="summary_signature">
148
+
149
+ <a href="#add_attribute-instance_method" title="#add_attribute (instance method)">#<strong>add_attribute</strong>(name, type, options = {}) &#x21d2; Object </a>
150
+
151
+
152
+
153
+ </span>
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+ <span class="summary_desc"><div class='inline'>
164
+ <p>Adds an attribute to the schema.</p>
165
+ </div></span>
166
+
167
+ </li>
168
+
169
+
170
+ <li class="public ">
171
+ <span class="summary_signature">
172
+
173
+ <a href="#defaults-instance_method" title="#defaults (instance method)">#<strong>defaults</strong>(model) &#x21d2; Object </a>
174
+
175
+
176
+
177
+ </span>
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+ <span class="summary_desc"><div class='inline'>
188
+ <p>Generates a hash of default values for the given model.</p>
189
+ </div></span>
190
+
191
+ </li>
192
+
193
+
194
+ <li class="public ">
195
+ <span class="summary_signature">
196
+
197
+ <a href="#has_attribute%3F-instance_method" title="#has_attribute? (instance method)">#<strong>has_attribute?</strong>(attribute) &#x21d2; Boolean </a>
198
+
199
+
200
+
201
+ </span>
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+ <span class="summary_desc"><div class='inline'>
212
+ <p>Determine if the schema has an attribute.</p>
213
+ </div></span>
214
+
215
+ </li>
216
+
217
+
218
+ <li class="public ">
219
+ <span class="summary_signature">
220
+
221
+ <a href="#transform_value-instance_method" title="#transform_value (instance method)">#<strong>transform_value</strong>(attribute, model, value) &#x21d2; Any </a>
222
+
223
+
224
+
225
+ </span>
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+ <span class="summary_desc"><div class='inline'>
236
+ <p>Transforms a value into the appropriate type.</p>
237
+ </div></span>
238
+
239
+ </li>
240
+
241
+
242
+ <li class="public ">
243
+ <span class="summary_signature">
244
+
245
+ <a href="#valid_type%3F-instance_method" title="#valid_type? (instance method)">#<strong>valid_type?</strong>(attribute, value) &#x21d2; Boolean </a>
246
+
247
+
248
+
249
+ </span>
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ <span class="summary_desc"><div class='inline'>
260
+ <p>Determines if the value is a valid type for the attribute.</p>
261
+ </div></span>
262
+
263
+ </li>
264
+
265
+
266
+ </ul>
267
+
268
+
269
+
270
+
271
+
272
+ <div id="instance_method_details" class="method_details_list">
273
+ <h2>Instance Method Details</h2>
274
+
275
+
276
+ <div class="method_details first">
277
+ <h3 class="signature first" id="add_attribute-instance_method">
278
+
279
+ #<strong>add_attribute</strong>(name, type, options = {}) &#x21d2; <tt>Object</tt>
280
+
281
+
282
+
283
+
284
+
285
+ </h3><div class="docstring">
286
+ <div class="discussion">
287
+
288
+ <p>Adds an attribute to the schema</p>
289
+
290
+
291
+ </div>
292
+ </div>
293
+ <div class="tags">
294
+ <p class="tag_title">Parameters:</p>
295
+ <ul class="param">
296
+
297
+ <li>
298
+
299
+ <span class='name'>name</span>
300
+
301
+
302
+ <span class='type'>(<tt>Symbol</tt>)</span>
303
+
304
+
305
+
306
+ &mdash;
307
+ <div class='inline'>
308
+ <p>The name of the attribute.</p>
309
+ </div>
310
+
311
+ </li>
312
+
313
+ <li>
314
+
315
+ <span class='name'>type</span>
316
+
317
+
318
+ <span class='type'>(<tt>Symbol</tt>)</span>
319
+
320
+
321
+
322
+ &mdash;
323
+ <div class='inline'>
324
+ <p>The type of the attribute. The type must be in the list of
325
+ WscSdk::SchemaAttribute::TYPES</p>
326
+ </div>
327
+
328
+ </li>
329
+
330
+ <li>
331
+
332
+ <span class='name'>options</span>
333
+
334
+
335
+ <span class='type'>(<tt>Hash</tt>)</span>
336
+
337
+
338
+ <em class="default">(defaults to: <tt>{}</tt>)</em>
339
+
340
+
341
+ &mdash;
342
+ <div class='inline'>
343
+ <p>A hash of options</p>
344
+ </div>
345
+
346
+ </li>
347
+
348
+ </ul>
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+ <p class="tag_title">Options Hash (<tt>options</tt>):</p>
358
+ <ul class="option">
359
+
360
+ <li>
361
+ <span class="name">:default</span>
362
+ <span class="type">(<tt>Any</tt>, <tt>Proc</tt>, <tt>Symbol</tt>)</span>
363
+ <span class="default">
364
+
365
+ </span>
366
+
367
+ &mdash; <div class='inline'>
368
+ <p>The default value of the attribute. This value must match the assigned
369
+ type of the attribute. The default value can be determined by a direct
370
+ value, a Proc or a Symbol that represents a method in the model.</p>
371
+
372
+ <p>If a <strong>Proc</strong> is provided it will be passed an instance of the
373
+ model, which can be used to determine the default value for the attribute.
374
+ The Proc should return a value that is the same type as the attribute.</p>
375
+
376
+ <p>If a <strong>Symbol</strong> is provided, the Symbol will be checked
377
+ against the model to determine if there is a method available that has the
378
+ same name. If one exists, that method will be passed an instance of the
379
+ model, which can be used to determine the default value for the attribute.
380
+ The method should return a value that is the same type as the attribute. If
381
+ no method is found that matches the symbol, the symbol itself is used as
382
+ the default.</p>
383
+ </div>
384
+
385
+ </li>
386
+
387
+ <li>
388
+ <span class="name">:required</span>
389
+ <span class="type">(<tt>Array</tt>, <tt>Proc</tt>, <tt>Symbol</tt>)</span>
390
+ <span class="default">
391
+
392
+ </span>
393
+
394
+ &mdash; <div class='inline'>
395
+ <p>Determines if the attribute is required.</p>
396
+
397
+ <p>If a <strong>Proc</strong> is provided it will be passed an instance of the
398
+ model, which can be used to determine if the value is required. The Proc
399
+ should return a boolean value.</p>
400
+
401
+ <p>If a <strong>Symbol</strong> is provided, the Symbol will be checked
402
+ against the model to determine if there is a method available that has the
403
+ same name. If one exists, that method will be called. The method should
404
+ return a boolean value.</p>
405
+ </div>
406
+
407
+ </li>
408
+
409
+ <li>
410
+ <span class="name">:validate</span>
411
+ <span class="type">(<tt>Array</tt>, <tt>Proc</tt>, <tt>Symbol</tt>)</span>
412
+ <span class="default">
413
+
414
+ </span>
415
+
416
+ &mdash; <div class='inline'>
417
+ <p>Determines if the attribute is valid.</p>
418
+
419
+ <p>If a <strong>Proc</strong> is provided it will be passed an instance of the
420
+ model, which can be used to determine if the value is valid. The Proc
421
+ should return a string describing why the attribute is not valid, otherwise
422
+ it should return nil.</p>
423
+
424
+ <p>If a <strong>Symbol</strong> is provided, the Symbol will be checked
425
+ against the model to determine if there is a method available that has the
426
+ same name. If one exists, that method will be passed an instance of the
427
+ model, which can be used to determine if the value is valid. The Proc
428
+ should return a string describing why the attribute is not valid, otherwise
429
+ it should return nil.</p>
430
+ </div>
431
+
432
+ </li>
433
+
434
+ </ul>
435
+
436
+
437
+ <p class="tag_title">Raises:</p>
438
+ <ul class="raise">
439
+
440
+ <li>
441
+
442
+
443
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
444
+
445
+
446
+
447
+ &mdash;
448
+ <div class='inline'>
449
+ <p>If the type is not in the WscSdk::SchemaAttribute::TYPES list.</p>
450
+ </div>
451
+
452
+ </li>
453
+
454
+ <li>
455
+
456
+
457
+ <span class='type'>(<tt>IndexError</tt>)</span>
458
+
459
+
460
+
461
+ &mdash;
462
+ <div class='inline'>
463
+ <p>If the attribute name is already defined in the schema.</p>
464
+ </div>
465
+
466
+ </li>
467
+
468
+ </ul>
469
+
470
+ </div><table class="source_code">
471
+ <tr>
472
+ <td>
473
+ <pre class="lines">
474
+
475
+
476
+ 73
477
+ 74
478
+ 75
479
+ 76
480
+ 77</pre>
481
+ </td>
482
+ <td>
483
+ <pre class="code"><span class="info file"># File 'lib/wsc_sdk/schema.rb', line 73</span>
484
+
485
+ <span style="color:#080;font-weight:bold">def</span> <span style="color:#06B;font-weight:bold">add_attribute</span>(name, type, options={})
486
+ name = name.to_sym
487
+ raise <span style="color:#036;font-weight:bold">IndexError</span>.new(<span style="background-color:hsla(0,100%,50%,0.05)"><span style="color:#710">&quot;</span><span style="color:#D20">The attribute `</span><span style="background-color:hsla(0,0%,0%,0.07);color:black"><span style="font-weight:bold;color:#666">#{</span>name<span style="font-weight:bold;color:#666">}</span></span><span style="color:#D20">` is already defined in the schema</span><span style="color:#710">&quot;</span></span>) <span style="color:#080;font-weight:bold">if</span> has_key?(name)
488
+ <span style="color:#069">self</span>[name] = <span style="color:#036;font-weight:bold">SchemaAttribute</span>.new(name, type, options)
489
+ <span style="color:#080;font-weight:bold">end</span></pre>
490
+ </td>
491
+ </tr>
492
+ </table>
493
+ </div>
494
+
495
+ <div class="method_details ">
496
+ <h3 class="signature " id="defaults-instance_method">
497
+
498
+ #<strong>defaults</strong>(model) &#x21d2; <tt>Object</tt>
499
+
500
+
501
+
502
+
503
+
504
+ </h3><div class="docstring">
505
+ <div class="discussion">
506
+
507
+ <p>Generates a hash of default values for the given model.</p>
508
+
509
+ <p>This is a non-destructive process, so if the attributes are already
510
+ established and have values, then nothing will happen to them.</p>
511
+
512
+
513
+ </div>
514
+ </div>
515
+ <div class="tags">
516
+ <p class="tag_title">Parameters:</p>
517
+ <ul class="param">
518
+
519
+ <li>
520
+
521
+ <span class='name'>model</span>
522
+
523
+
524
+ <span class='type'>(<tt><span class='object_link'><a href="Model.html" title="WscSdk::Model (class)">WscSdk::Model</a></span></tt>)</span>
525
+
526
+
527
+
528
+ &mdash;
529
+ <div class='inline'>
530
+ <p>The model to use to determine the default values in the event that they are
531
+ defined as a Proc or a Symbol.</p>
532
+ </div>
533
+
534
+ </li>
535
+
536
+ </ul>
537
+
538
+
539
+ </div><table class="source_code">
540
+ <tr>
541
+ <td>
542
+ <pre class="lines">
543
+
544
+
545
+ 132
546
+ 133
547
+ 134
548
+ 135
549
+ 136
550
+ 137
551
+ 138</pre>
552
+ </td>
553
+ <td>
554
+ <pre class="code"><span class="info file"># File 'lib/wsc_sdk/schema.rb', line 132</span>
555
+
556
+ <span style="color:#080;font-weight:bold">def</span> <span style="color:#06B;font-weight:bold">defaults</span>(model)
557
+ hsh = {}
558
+ each <span style="color:#080;font-weight:bold">do</span> |name, attribute|
559
+ hsh[name] = attribute.default_value(model)
560
+ <span style="color:#080;font-weight:bold">end</span>
561
+ hsh
562
+ <span style="color:#080;font-weight:bold">end</span></pre>
563
+ </td>
564
+ </tr>
565
+ </table>
566
+ </div>
567
+
568
+ <div class="method_details ">
569
+ <h3 class="signature " id="has_attribute?-instance_method">
570
+
571
+ #<strong>has_attribute?</strong>(attribute) &#x21d2; <tt>Boolean</tt>
572
+
573
+
574
+
575
+
576
+
577
+ </h3><div class="docstring">
578
+ <div class="discussion">
579
+
580
+ <p>Determine if the schema has an attribute</p>
581
+
582
+
583
+ </div>
584
+ </div>
585
+ <div class="tags">
586
+ <p class="tag_title">Parameters:</p>
587
+ <ul class="param">
588
+
589
+ <li>
590
+
591
+ <span class='name'>attribute</span>
592
+
593
+
594
+ <span class='type'>(<tt>Symbol</tt>)</span>
595
+
596
+
597
+
598
+ &mdash;
599
+ <div class='inline'>
600
+ <p>The name of the attribute</p>
601
+ </div>
602
+
603
+ </li>
604
+
605
+ </ul>
606
+
607
+ <p class="tag_title">Returns:</p>
608
+ <ul class="return">
609
+
610
+ <li>
611
+
612
+
613
+ <span class='type'>(<tt>Boolean</tt>)</span>
614
+
615
+
616
+
617
+ </li>
618
+
619
+ </ul>
620
+
621
+ </div><table class="source_code">
622
+ <tr>
623
+ <td>
624
+ <pre class="lines">
625
+
626
+
627
+ 119
628
+ 120
629
+ 121</pre>
630
+ </td>
631
+ <td>
632
+ <pre class="code"><span class="info file"># File 'lib/wsc_sdk/schema.rb', line 119</span>
633
+
634
+ <span style="color:#080;font-weight:bold">def</span> <span style="color:#06B;font-weight:bold">has_attribute?</span>(attribute)
635
+ has_key?(attribute)
636
+ <span style="color:#080;font-weight:bold">end</span></pre>
637
+ </td>
638
+ </tr>
639
+ </table>
640
+ </div>
641
+
642
+ <div class="method_details ">
643
+ <h3 class="signature " id="transform_value-instance_method">
644
+
645
+ #<strong>transform_value</strong>(attribute, model, value) &#x21d2; <tt>Any</tt>
646
+
647
+
648
+
649
+
650
+
651
+ </h3><div class="docstring">
652
+ <div class="discussion">
653
+
654
+ <p>Transforms a value into the appropriate type.</p>
655
+
656
+
657
+ </div>
658
+ </div>
659
+ <div class="tags">
660
+ <p class="tag_title">Parameters:</p>
661
+ <ul class="param">
662
+
663
+ <li>
664
+
665
+ <span class='name'>attribute</span>
666
+
667
+
668
+ <span class='type'>(<tt>Symbol</tt>)</span>
669
+
670
+
671
+
672
+ &mdash;
673
+ <div class='inline'>
674
+ <p>The attribute to validate the value for.</p>
675
+ </div>
676
+
677
+ </li>
678
+
679
+ <li>
680
+
681
+ <span class='name'>model</span>
682
+
683
+
684
+ <span class='type'>(<tt><span class='object_link'><a href="Model.html" title="WscSdk::Model (class)">WscSdk::Model</a></span></tt>)</span>
685
+
686
+
687
+
688
+ &mdash;
689
+ <div class='inline'>
690
+ <p>The model to transform the value for.</p>
691
+ </div>
692
+
693
+ </li>
694
+
695
+ <li>
696
+
697
+ <span class='name'>value</span>
698
+
699
+
700
+ <span class='type'>(<tt>Any</tt>)</span>
701
+
702
+
703
+
704
+ &mdash;
705
+ <div class='inline'>
706
+ <p>The value to validate</p>
707
+ </div>
708
+
709
+ </li>
710
+
711
+ </ul>
712
+
713
+ <p class="tag_title">Returns:</p>
714
+ <ul class="return">
715
+
716
+ <li>
717
+
718
+
719
+ <span class='type'>(<tt>Any</tt>)</span>
720
+
721
+
722
+
723
+ &mdash;
724
+ <div class='inline'>
725
+ <p>The transformed value.</p>
726
+ </div>
727
+
728
+ </li>
729
+
730
+ </ul>
731
+
732
+ </div><table class="source_code">
733
+ <tr>
734
+ <td>
735
+ <pre class="lines">
736
+
737
+
738
+ 109
739
+ 110
740
+ 111
741
+ 112</pre>
742
+ </td>
743
+ <td>
744
+ <pre class="code"><span class="info file"># File 'lib/wsc_sdk/schema.rb', line 109</span>
745
+
746
+ <span style="color:#080;font-weight:bold">def</span> <span style="color:#06B;font-weight:bold">transform_value</span>(attribute, model, value)
747
+ <span style="color:#080;font-weight:bold">return</span> <span style="color:#069">nil</span> <span style="color:#080;font-weight:bold">unless</span> has_attribute?(attribute)
748
+ <span style="color:#069">self</span>[attribute].transform_value(model, value)
749
+ <span style="color:#080;font-weight:bold">end</span></pre>
750
+ </td>
751
+ </tr>
752
+ </table>
753
+ </div>
754
+
755
+ <div class="method_details ">
756
+ <h3 class="signature " id="valid_type?-instance_method">
757
+
758
+ #<strong>valid_type?</strong>(attribute, value) &#x21d2; <tt>Boolean</tt>
759
+
760
+
761
+
762
+
763
+
764
+ </h3><div class="docstring">
765
+ <div class="discussion">
766
+
767
+ <p>Determines if the value is a valid type for the attribute.</p>
768
+
769
+
770
+ </div>
771
+ </div>
772
+ <div class="tags">
773
+ <p class="tag_title">Parameters:</p>
774
+ <ul class="param">
775
+
776
+ <li>
777
+
778
+ <span class='name'>attribute</span>
779
+
780
+
781
+ <span class='type'>(<tt>Symbol</tt>)</span>
782
+
783
+
784
+
785
+ &mdash;
786
+ <div class='inline'>
787
+ <p>The attribute to validate the value for.</p>
788
+ </div>
789
+
790
+ </li>
791
+
792
+ <li>
793
+
794
+ <span class='name'>value</span>
795
+
796
+
797
+ <span class='type'>(<tt>Any</tt>)</span>
798
+
799
+
800
+
801
+ &mdash;
802
+ <div class='inline'>
803
+ <p>The value to validate</p>
804
+ </div>
805
+
806
+ </li>
807
+
808
+ </ul>
809
+
810
+ <p class="tag_title">Returns:</p>
811
+ <ul class="return">
812
+
813
+ <li>
814
+
815
+
816
+ <span class='type'>(<tt>Boolean</tt>)</span>
817
+
818
+
819
+
820
+ &mdash;
821
+ <div class='inline'>
822
+ <p>An indication if the value is valid.</p>
823
+ </div>
824
+
825
+ </li>
826
+
827
+ </ul>
828
+
829
+ </div><table class="source_code">
830
+ <tr>
831
+ <td>
832
+ <pre class="lines">
833
+
834
+
835
+ 90
836
+ 91
837
+ 92
838
+ 93</pre>
839
+ </td>
840
+ <td>
841
+ <pre class="code"><span class="info file"># File 'lib/wsc_sdk/schema.rb', line 90</span>
842
+
843
+ <span style="color:#080;font-weight:bold">def</span> <span style="color:#06B;font-weight:bold">valid_type?</span>(attribute, value)
844
+ <span style="color:#080;font-weight:bold">return</span> <span style="color:#069">false</span> <span style="color:#080;font-weight:bold">unless</span> has_attribute?(attribute)
845
+ <span style="color:#069">self</span>[attribute].valid_type?(value)
846
+ <span style="color:#080;font-weight:bold">end</span></pre>
847
+ </td>
848
+ </tr>
849
+ </table>
850
+ </div>
851
+
852
+ </div>
853
+
854
+ </div>
855
+
856
+
857
+ </div>
858
+ </div>
859
+ </div>
860
+ </body>
861
+ </html>