twilio-ruby 5.0.0.alpha1 → 5.0.0.rc2

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 (493) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -2
  3. data/AUTHORS.md +32 -46
  4. data/CHANGES.md +1 -124
  5. data/Gemfile +2 -2
  6. data/LICENSE.md +12 -12
  7. data/Makefile +2 -15
  8. data/README.md +37 -29
  9. data/Rakefile +0 -54
  10. data/examples/examples.rb +57 -46
  11. data/examples/{print_call_log.rb → print-call-log.rb} +7 -7
  12. data/lib/rack/twilio_webhook_authentication.rb +6 -5
  13. data/lib/twilio-ruby.rb +16 -17
  14. data/lib/twilio-ruby/compatibility/v2010/account/call/feedback.rb +15 -0
  15. data/lib/twilio-ruby/compatibility/v2010/account/queue/member.rb +23 -0
  16. data/lib/twilio-ruby/framework/domain.rb +2 -2
  17. data/lib/twilio-ruby/framework/exception.rb +14 -0
  18. data/lib/twilio-ruby/framework/helper.rb +1 -1
  19. data/lib/twilio-ruby/framework/page.rb +30 -28
  20. data/lib/twilio-ruby/framework/resource.rb +2 -2
  21. data/lib/twilio-ruby/framework/serialize.rb +7 -58
  22. data/lib/twilio-ruby/framework/twilio_response.rb +1 -1
  23. data/lib/twilio-ruby/framework/version.rb +48 -43
  24. data/lib/twilio-ruby/http/http_client.rb +8 -8
  25. data/lib/twilio-ruby/rest/api.rb +33 -141
  26. data/lib/twilio-ruby/rest/api/v2010.rb +31 -50
  27. data/lib/twilio-ruby/rest/api/v2010/account.rb +239 -389
  28. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +122 -145
  29. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +56 -76
  30. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +127 -144
  31. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +83 -85
  32. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +97 -92
  33. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +77 -142
  34. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +77 -142
  35. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +77 -142
  36. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +184 -232
  37. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +84 -73
  38. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +80 -85
  39. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +115 -126
  40. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +99 -114
  41. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +112 -150
  42. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +109 -228
  43. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +98 -101
  44. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +164 -287
  45. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +90 -152
  46. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +90 -152
  47. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +90 -152
  48. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +138 -195
  49. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +100 -90
  50. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +106 -118
  51. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +105 -96
  52. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +117 -119
  53. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +95 -84
  54. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +103 -194
  55. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +93 -100
  56. data/lib/twilio-ruby/rest/api/v2010/account/sandbox.rb +304 -0
  57. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +30 -42
  58. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +113 -111
  59. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +115 -104
  60. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +133 -159
  61. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +96 -94
  62. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +96 -94
  63. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +114 -111
  64. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +113 -108
  65. data/lib/twilio-ruby/rest/api/v2010/account/sms.rb +140 -0
  66. data/lib/twilio-ruby/rest/api/v2010/account/sms/short_code.rb +431 -0
  67. data/lib/twilio-ruby/rest/api/v2010/account/sms/sms_message.rb +467 -0
  68. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +34 -41
  69. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +90 -98
  70. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +24 -21
  71. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +118 -139
  72. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +62 -106
  73. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +62 -106
  74. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +62 -106
  75. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +62 -106
  76. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +62 -106
  77. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +62 -106
  78. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +62 -106
  79. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +62 -106
  80. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +124 -130
  81. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +31 -35
  82. data/lib/twilio-ruby/rest/client.rb +88 -249
  83. data/lib/twilio-ruby/rest/{accounts.rb → conversations.rb} +14 -16
  84. data/lib/twilio-ruby/rest/conversations/v1.rb +35 -0
  85. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +270 -0
  86. data/lib/twilio-ruby/rest/{notify/v1/service/segment.rb → conversations/v1/conversation/completed.rb} +101 -101
  87. data/lib/twilio-ruby/rest/{preview/bulk_exports/export/day.rb → conversations/v1/conversation/in_progress.rb} +109 -95
  88. data/lib/twilio-ruby/rest/{messaging/v1/service/phone_number.rb → conversations/v1/conversation/participant.rb} +171 -178
  89. data/lib/twilio-ruby/rest/ip_messaging.rb +11 -26
  90. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +7 -19
  91. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +112 -113
  92. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +131 -542
  93. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +132 -194
  94. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +103 -159
  95. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +102 -183
  96. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +112 -107
  97. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +113 -186
  98. data/lib/twilio-ruby/rest/lookups.rb +8 -12
  99. data/lib/twilio-ruby/rest/lookups/v1.rb +7 -13
  100. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +54 -71
  101. data/lib/twilio-ruby/rest/monitor.rb +11 -19
  102. data/lib/twilio-ruby/rest/monitor/v1.rb +7 -19
  103. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +133 -121
  104. data/lib/twilio-ruby/rest/monitor/v1/event.rb +127 -116
  105. data/lib/twilio-ruby/rest/pricing.rb +11 -17
  106. data/lib/twilio-ruby/rest/pricing/v1.rb +9 -21
  107. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +23 -27
  108. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +74 -71
  109. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +23 -27
  110. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +79 -69
  111. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +27 -33
  112. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +74 -71
  113. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +52 -47
  114. data/lib/twilio-ruby/rest/taskrouter.rb +8 -12
  115. data/lib/twilio-ruby/rest/taskrouter/v1.rb +5 -11
  116. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +153 -260
  117. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +114 -115
  118. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +101 -105
  119. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +139 -216
  120. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +106 -194
  121. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +145 -187
  122. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +65 -57
  123. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +57 -62
  124. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +135 -217
  125. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +60 -54
  126. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +56 -52
  127. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +123 -140
  128. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +61 -57
  129. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +72 -52
  130. data/lib/twilio-ruby/rest/trunking.rb +8 -12
  131. data/lib/twilio-ruby/rest/trunking/v1.rb +5 -11
  132. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +134 -157
  133. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +93 -89
  134. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +93 -89
  135. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +111 -114
  136. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +112 -146
  137. data/lib/twilio-ruby/task_router.rb +0 -0
  138. data/lib/twilio-ruby/task_router/capability.rb +87 -0
  139. data/lib/twilio-ruby/twiml/response.rb +16 -0
  140. data/lib/twilio-ruby/util.rb +1 -1
  141. data/lib/twilio-ruby/util/access_token.rb +70 -0
  142. data/lib/twilio-ruby/util/capability.rb +64 -0
  143. data/lib/twilio-ruby/util/client_config.rb +29 -0
  144. data/lib/twilio-ruby/{security → util}/request_validator.rb +4 -21
  145. data/lib/twilio-ruby/version.rb +1 -1
  146. data/spec/holodeck/holodeck.rb +6 -6
  147. data/spec/holodeck/hologram.rb +1 -0
  148. data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +8 -8
  149. data/spec/integration/api/v2010/account/address_spec.rb +29 -37
  150. data/spec/integration/api/v2010/account/application_spec.rb +29 -29
  151. data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +13 -13
  152. data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +8 -9
  153. data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +8 -9
  154. data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +8 -9
  155. data/spec/integration/api/v2010/account/available_phone_number_spec.rb +13 -13
  156. data/spec/integration/api/v2010/account/call/feedback_spec.rb +17 -17
  157. data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +19 -19
  158. data/spec/integration/api/v2010/account/call/notification_spec.rb +18 -18
  159. data/spec/integration/api/v2010/account/call/recording_spec.rb +20 -32
  160. data/spec/integration/api/v2010/account/call_spec.rb +29 -29
  161. data/spec/integration/api/v2010/account/conference/participant_spec.rb +35 -107
  162. data/spec/integration/api/v2010/account/conference_spec.rb +19 -58
  163. data/spec/integration/api/v2010/account/connect_app_spec.rb +18 -18
  164. data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +14 -16
  165. data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +14 -16
  166. data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +14 -16
  167. data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +29 -41
  168. data/spec/integration/api/v2010/account/message/media_spec.rb +18 -18
  169. data/spec/integration/api/v2010/account/message_spec.rb +35 -41
  170. data/spec/integration/api/v2010/account/notification_spec.rb +18 -18
  171. data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +23 -23
  172. data/spec/integration/api/v2010/account/queue/member_spec.rb +18 -18
  173. data/spec/integration/api/v2010/account/queue_spec.rb +32 -35
  174. data/spec/integration/api/v2010/account/recording/transcription_spec.rb +18 -18
  175. data/spec/integration/api/v2010/account/recording_spec.rb +21 -42
  176. data/spec/integration/api/v2010/account/sandbox_spec.rb +99 -0
  177. data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +36 -32
  178. data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +29 -29
  179. data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +24 -24
  180. data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +24 -24
  181. data/spec/integration/api/v2010/account/sip/domain_spec.rb +29 -29
  182. data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +36 -32
  183. data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +29 -29
  184. data/spec/integration/api/v2010/account/sip_spec.rb +1 -1
  185. data/spec/integration/api/v2010/account/{short_code_spec.rb → sms/short_code_spec.rb} +25 -18
  186. data/spec/integration/api/v2010/account/sms/sms_message_spec.rb +275 -0
  187. data/spec/integration/{accounts/v1/credential_spec.rb → api/v2010/account/sms_spec.rb} +2 -2
  188. data/spec/integration/api/v2010/account/token_spec.rb +7 -7
  189. data/spec/integration/api/v2010/account/transcription_spec.rb +18 -18
  190. data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +8 -8
  191. data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +8 -8
  192. data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +8 -8
  193. data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +8 -8
  194. data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +8 -8
  195. data/spec/integration/api/v2010/account/usage/record/today_spec.rb +8 -8
  196. data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +8 -8
  197. data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +8 -8
  198. data/spec/integration/api/v2010/account/usage/record_spec.rb +8 -8
  199. data/spec/integration/api/v2010/account/usage/trigger_spec.rb +32 -32
  200. data/spec/integration/api/v2010/account/usage_spec.rb +1 -1
  201. data/spec/integration/api/v2010/account/validation_request_spec.rb +4 -24
  202. data/spec/integration/api/v2010/account_spec.rb +28 -24
  203. data/spec/integration/conversations/v1/conversation/completed_spec.rb +89 -0
  204. data/spec/integration/conversations/v1/conversation/in_progress_spec.rb +89 -0
  205. data/spec/integration/conversations/v1/conversation/participant_spec.rb +174 -0
  206. data/spec/integration/conversations/v1/conversation_spec.rb +49 -0
  207. data/spec/integration/ip_messaging/v1/credential_spec.rb +24 -155
  208. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +13 -217
  209. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +10 -241
  210. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +23 -205
  211. data/spec/integration/ip_messaging/v1/service/role_spec.rb +19 -184
  212. data/spec/integration/ip_messaging/v1/service/user_spec.rb +24 -194
  213. data/spec/integration/ip_messaging/v1/service_spec.rb +17 -229
  214. data/spec/integration/lookups/v1/phone_number_spec.rb +6 -17
  215. data/spec/integration/monitor/v1/alert_spec.rb +60 -60
  216. data/spec/integration/monitor/v1/event_spec.rb +13 -13
  217. data/spec/integration/pricing/v1/messaging/country_spec.rb +7 -103
  218. data/spec/integration/pricing/v1/messaging_spec.rb +1 -1
  219. data/spec/integration/pricing/v1/phone_number/country_spec.rb +13 -13
  220. data/spec/integration/pricing/v1/phone_number_spec.rb +1 -1
  221. data/spec/integration/pricing/v1/voice/country_spec.rb +13 -13
  222. data/spec/integration/pricing/v1/voice/number_spec.rb +6 -6
  223. data/spec/integration/pricing/v1/voice_spec.rb +1 -1
  224. data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +38 -34
  225. data/spec/integration/taskrouter/v1/workspace/event_spec.rb +13 -13
  226. data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +24 -21
  227. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +11 -13
  228. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +17 -18
  229. data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +41 -57
  230. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +50 -113
  231. data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +6 -7
  232. data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +6 -7
  233. data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +68 -96
  234. data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +12 -14
  235. data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +43 -54
  236. data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +9 -11
  237. data/spec/integration/taskrouter/v1/workspace_spec.rb +51 -71
  238. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +24 -24
  239. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +66 -66
  240. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +28 -28
  241. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +23 -23
  242. data/spec/integration/trunking/v1/trunk_spec.rb +28 -28
  243. data/spec/rack/twilio_webhook_authentication_spec.rb +23 -19
  244. data/spec/spec_helper.rb +2 -2
  245. data/spec/support/fakeweb.rb +1 -1
  246. data/spec/task_router_spec.rb +114 -0
  247. data/spec/util/access_token_spec.rb +103 -0
  248. data/spec/util/capability_spec.rb +186 -0
  249. data/spec/util/client_config_spec.rb +21 -0
  250. data/spec/{security → util}/request_validator_spec.rb +5 -5
  251. data/twilio-ruby.gemspec +8 -12
  252. metadata +90 -416
  253. data/.rubocop.yml +0 -21
  254. data/.rubocop_todo.yml +0 -187
  255. data/VERSIONS.md +0 -64
  256. data/lib/twilio-ruby/framework/error.rb +0 -30
  257. data/lib/twilio-ruby/framework/values.rb +0 -7
  258. data/lib/twilio-ruby/jwt/access_token.rb +0 -232
  259. data/lib/twilio-ruby/jwt/client_capability.rb +0 -102
  260. data/lib/twilio-ruby/jwt/jwt.rb +0 -50
  261. data/lib/twilio-ruby/jwt/task_router.rb +0 -174
  262. data/lib/twilio-ruby/rest/accounts/v1.rb +0 -39
  263. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -105
  264. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +0 -370
  265. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +0 -431
  266. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +0 -350
  267. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +0 -336
  268. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -165
  269. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -153
  270. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -153
  271. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +0 -397
  272. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +0 -378
  273. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +0 -430
  274. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +0 -336
  275. data/lib/twilio-ruby/rest/chat.rb +0 -59
  276. data/lib/twilio-ruby/rest/chat/v1.rb +0 -56
  277. data/lib/twilio-ruby/rest/chat/v1/credential.rb +0 -403
  278. data/lib/twilio-ruby/rest/chat/v1/service.rb +0 -935
  279. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +0 -554
  280. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +0 -386
  281. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +0 -431
  282. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +0 -447
  283. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +0 -396
  284. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +0 -467
  285. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +0 -244
  286. data/lib/twilio-ruby/rest/chat/v2.rb +0 -56
  287. data/lib/twilio-ruby/rest/chat/v2/credential.rb +0 -403
  288. data/lib/twilio-ruby/rest/chat/v2/service.rb +0 -688
  289. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +0 -554
  290. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +0 -386
  291. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +0 -431
  292. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +0 -447
  293. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +0 -396
  294. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +0 -467
  295. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +0 -244
  296. data/lib/twilio-ruby/rest/fax.rb +0 -44
  297. data/lib/twilio-ruby/rest/fax/v1.rb +0 -41
  298. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -541
  299. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -326
  300. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +0 -386
  301. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +0 -244
  302. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +0 -56
  303. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +0 -403
  304. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +0 -688
  305. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +0 -554
  306. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +0 -386
  307. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +0 -431
  308. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +0 -447
  309. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +0 -396
  310. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +0 -467
  311. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +0 -244
  312. data/lib/twilio-ruby/rest/messaging.rb +0 -44
  313. data/lib/twilio-ruby/rest/messaging/v1.rb +0 -41
  314. data/lib/twilio-ruby/rest/messaging/v1/service.rb +0 -637
  315. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +0 -352
  316. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +0 -359
  317. data/lib/twilio-ruby/rest/notify.rb +0 -52
  318. data/lib/twilio-ruby/rest/notify/v1.rb +0 -56
  319. data/lib/twilio-ruby/rest/notify/v1/credential.rb +0 -403
  320. data/lib/twilio-ruby/rest/notify/v1/service.rb +0 -639
  321. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +0 -430
  322. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -288
  323. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +0 -445
  324. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +0 -254
  325. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +0 -434
  326. data/lib/twilio-ruby/rest/preview.rb +0 -145
  327. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -56
  328. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -203
  329. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -243
  330. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +0 -42
  331. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +0 -557
  332. data/lib/twilio-ruby/rest/preview/marketplace.rb +0 -58
  333. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +0 -333
  334. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +0 -301
  335. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +0 -440
  336. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +0 -341
  337. data/lib/twilio-ruby/rest/preview/proxy.rb +0 -41
  338. data/lib/twilio-ruby/rest/preview/proxy/service.rb +0 -500
  339. data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +0 -359
  340. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +0 -536
  341. data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +0 -429
  342. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +0 -506
  343. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +0 -452
  344. data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +0 -359
  345. data/lib/twilio-ruby/rest/preview/sync.rb +0 -41
  346. data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -504
  347. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -445
  348. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -395
  349. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -438
  350. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -430
  351. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -395
  352. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -438
  353. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -432
  354. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -395
  355. data/lib/twilio-ruby/rest/preview/wireless.rb +0 -71
  356. data/lib/twilio-ruby/rest/preview/wireless/command.rb +0 -382
  357. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +0 -435
  358. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +0 -544
  359. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -236
  360. data/lib/twilio-ruby/rest/sync.rb +0 -44
  361. data/lib/twilio-ruby/rest/sync/v1.rb +0 -41
  362. data/lib/twilio-ruby/rest/sync/v1/service.rb +0 -504
  363. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +0 -445
  364. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +0 -395
  365. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +0 -438
  366. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +0 -430
  367. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +0 -395
  368. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +0 -438
  369. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +0 -432
  370. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +0 -395
  371. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +0 -315
  372. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +0 -461
  373. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +0 -406
  374. data/lib/twilio-ruby/rest/video.rb +0 -52
  375. data/lib/twilio-ruby/rest/video/v1.rb +0 -56
  376. data/lib/twilio-ruby/rest/video/v1/recording.rb +0 -382
  377. data/lib/twilio-ruby/rest/video/v1/room.rb +0 -485
  378. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -381
  379. data/lib/twilio-ruby/rest/wireless.rb +0 -60
  380. data/lib/twilio-ruby/rest/wireless/v1.rb +0 -71
  381. data/lib/twilio-ruby/rest/wireless/v1/command.rb +0 -367
  382. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +0 -452
  383. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +0 -548
  384. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +0 -235
  385. data/lib/twilio-ruby/twiml/messaging_response.rb +0 -141
  386. data/lib/twilio-ruby/twiml/twiml.rb +0 -69
  387. data/lib/twilio-ruby/twiml/voice_response.rb +0 -916
  388. data/spec/framework/serialize_spec.rb +0 -59
  389. data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
  390. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  391. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  392. data/spec/integration/api/v2010/account/key_spec.rb +0 -178
  393. data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -48
  394. data/spec/integration/api/v2010/account/new_key_spec.rb +0 -45
  395. data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -45
  396. data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -175
  397. data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -166
  398. data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -178
  399. data/spec/integration/chat/v1/credential_spec.rb +0 -223
  400. data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
  401. data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
  402. data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
  403. data/spec/integration/chat/v1/service/channel_spec.rb +0 -275
  404. data/spec/integration/chat/v1/service/role_spec.rb +0 -263
  405. data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -92
  406. data/spec/integration/chat/v1/service/user_spec.rb +0 -266
  407. data/spec/integration/chat/v1/service_spec.rb +0 -299
  408. data/spec/integration/chat/v2/credential_spec.rb +0 -223
  409. data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
  410. data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -284
  411. data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -294
  412. data/spec/integration/chat/v2/service/channel_spec.rb +0 -275
  413. data/spec/integration/chat/v2/service/role_spec.rb +0 -263
  414. data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -92
  415. data/spec/integration/chat/v2/service/user_spec.rb +0 -266
  416. data/spec/integration/chat/v2/service_spec.rb +0 -325
  417. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -126
  418. data/spec/integration/fax/v1/fax_spec.rb +0 -272
  419. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
  420. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -92
  421. data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
  422. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
  423. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -284
  424. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -294
  425. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -275
  426. data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
  427. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -92
  428. data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -266
  429. data/spec/integration/ip_messaging/v2/service_spec.rb +0 -325
  430. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  431. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  432. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
  433. data/spec/integration/messaging/v1/service_spec.rb +0 -263
  434. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  435. data/spec/integration/notify/v1/service/binding_spec.rb +0 -227
  436. data/spec/integration/notify/v1/service/notification_spec.rb +0 -97
  437. data/spec/integration/notify/v1/service/segment_spec.rb +0 -84
  438. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +0 -118
  439. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +0 -269
  440. data/spec/integration/notify/v1/service/user_spec.rb +0 -213
  441. data/spec/integration/notify/v1/service_spec.rb +0 -280
  442. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -56
  443. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  444. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -43
  445. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -280
  446. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  447. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  448. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  449. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -252
  450. data/spec/integration/preview/proxy/service/phone_number_spec.rb +0 -173
  451. data/spec/integration/preview/proxy/service/session/interaction_spec.rb +0 -104
  452. data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +0 -164
  453. data/spec/integration/preview/proxy/service/session/participant_spec.rb +0 -226
  454. data/spec/integration/preview/proxy/service/session_spec.rb +0 -216
  455. data/spec/integration/preview/proxy/service/short_code_spec.rb +0 -173
  456. data/spec/integration/preview/proxy/service_spec.rb +0 -200
  457. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -206
  458. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  459. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -256
  460. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -206
  461. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -207
  462. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -257
  463. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -206
  464. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -207
  465. data/spec/integration/preview/sync/service_spec.rb +0 -244
  466. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  467. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -260
  468. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -49
  469. data/spec/integration/preview/wireless/sim_spec.rb +0 -208
  470. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -206
  471. data/spec/integration/sync/v1/service/document_spec.rb +0 -254
  472. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -256
  473. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -206
  474. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -207
  475. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  476. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -206
  477. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -207
  478. data/spec/integration/sync/v1/service_spec.rb +0 -244
  479. data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -127
  480. data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -192
  481. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -201
  482. data/spec/integration/video/v1/recording_spec.rb +0 -165
  483. data/spec/integration/video/v1/room/recording_spec.rb +0 -146
  484. data/spec/integration/video/v1/room_spec.rb +0 -237
  485. data/spec/integration/wireless/v1/command_spec.rb +0 -166
  486. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -268
  487. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -65
  488. data/spec/integration/wireless/v1/sim_spec.rb +0 -208
  489. data/spec/jwt/access_token_spec.rb +0 -130
  490. data/spec/jwt/client_capability_spec.rb +0 -104
  491. data/spec/jwt/task_router_spec.rb +0 -172
  492. data/spec/twiml/messaging_response_spec.rb +0 -90
  493. data/spec/twiml/voice_response_spec.rb +0 -474
@@ -1,90 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::TwiML::MessagingResponse do
4
- context 'Testing Response' do
5
- it 'should allow empty response' do
6
- r = Twilio::TwiML::MessagingResponse.new
7
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response/>')
8
- end
9
-
10
- it 'should allow populated response' do
11
- r = Twilio::TwiML::MessagingResponse.new
12
- r.message(body: 'Hello')
13
- r.redirect('example.com')
14
-
15
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello</Message><Redirect>example.com</Redirect></Response>')
16
- end
17
-
18
- it 'should allow chaining' do
19
- r = Twilio::TwiML::MessagingResponse.new.message(body: 'Hello').redirect('example.com')
20
-
21
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello</Message><Redirect>example.com</Redirect></Response>')
22
- end
23
-
24
- it 'should allow nesting' do
25
- r = Twilio::TwiML::MessagingResponse.new
26
- r.message(body: 'Hello') do |m|
27
- m.media('foobar')
28
- end
29
-
30
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello<Media>foobar</Media></Message></Response>')
31
- end
32
-
33
- it 'should allow nesting and chaining' do
34
- r = Twilio::TwiML::MessagingResponse.new
35
- r.message(body: 'Hello') do |m|
36
- m.media('foobar')
37
- end
38
-
39
- r.redirect('example.com')
40
-
41
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello<Media>foobar</Media></Message><Redirect>example.com</Redirect></Response>')
42
- end
43
-
44
- it 'should allow nesting from the initializer' do
45
- response = Twilio::TwiML::MessagingResponse.new do |r|
46
- r.message(body: 'Hello')
47
- r.redirect('example.com')
48
- end
49
- expect(response.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello</Message><Redirect>example.com</Redirect></Response>')
50
- end
51
- end
52
-
53
- context 'Testing Message' do
54
- it 'should allow a body' do
55
- r = Twilio::TwiML::MessagingResponse.new
56
- r.message(body: 'Hello')
57
-
58
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Message>Hello</Message></Response>')
59
- end
60
-
61
- it 'should allow appending Body' do
62
- b = Twilio::TwiML::Body.new('Hello World')
63
-
64
- r = Twilio::TwiML::MessagingResponse.new
65
- r.append(b)
66
-
67
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Body>Hello World</Body></Response>')
68
- end
69
-
70
- it 'should allow appending Body and Media' do
71
- b = Twilio::TwiML::Body.new('Hello World')
72
- m = Twilio::TwiML::Media.new('hey.jpg')
73
-
74
- r = Twilio::TwiML::MessagingResponse.new
75
- r.append(b)
76
- r.append(m)
77
-
78
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Body>Hello World</Body><Media>hey.jpg</Media></Response>')
79
- end
80
- end
81
-
82
- context 'Testing Redirect' do
83
- it 'should allow MessagingResponse.redirect' do
84
- r = Twilio::TwiML::MessagingResponse.new
85
- r.redirect('example.com')
86
-
87
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect>example.com</Redirect></Response>')
88
- end
89
- end
90
- end
@@ -1,474 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Twilio::TwiML::VoiceResponse do
4
- context 'Testing Response' do
5
- it 'should allow empty response' do
6
- r = Twilio::TwiML::VoiceResponse.new
7
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response/>')
8
- end
9
-
10
- it 'should allow populated response' do
11
- r = Twilio::TwiML::VoiceResponse.new
12
- r.hangup
13
- r.leave
14
- r.sms('twilio sms', to: '+11234567890', from: '+10987654321')
15
-
16
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Hangup/><Leave/><Sms from="+10987654321" to="+11234567890">twilio sms</Sms></Response>')
17
- end
18
-
19
- it 'should allow chaining' do
20
- r = Twilio::TwiML::VoiceResponse.new.hangup.leave.sms(
21
- 'twilio sms',
22
- to: '+11234567890',
23
- from: '+10987654321'
24
- )
25
-
26
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Hangup/><Leave/><Sms from="+10987654321" to="+11234567890">twilio sms</Sms></Response>')
27
- end
28
-
29
- it 'should allow nesting' do
30
- response = Twilio::TwiML::VoiceResponse.new do |r|
31
- r.hangup
32
- r.leave
33
- r.sms('twilio sms', to: '+11234567890', from: '+10987654321')
34
- end
35
- expect(response.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Hangup/><Leave/><Sms from="+10987654321" to="+11234567890">twilio sms</Sms></Response>')
36
- end
37
- end
38
-
39
- context 'Testing Say' do
40
- it 'should allow empty say' do
41
- r = Twilio::TwiML::VoiceResponse.new
42
- r.say ''
43
-
44
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
45
- # Ruby 2.4 generates an empty tag
46
- expect(r.to_s)
47
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say></Say></Response>')
48
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say/></Response>'))
49
- end
50
-
51
- it 'should allow populated say' do
52
- r = Twilio::TwiML::VoiceResponse.new
53
- r.say 'Hello World'
54
-
55
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say>Hello World</Say></Response>')
56
- end
57
-
58
- it 'should allow unicode say' do
59
- r = Twilio::TwiML::VoiceResponse.new
60
- r.say 'nécessaire et d\'autres'
61
-
62
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say>nécessaire et d\'autres</Say></Response>')
63
- end
64
-
65
- it 'should allow looping' do
66
- r = Twilio::TwiML::VoiceResponse.new
67
- r.say 'Hello Monkey', loop: 3
68
-
69
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say loop="3">Hello Monkey</Say></Response>')
70
- end
71
-
72
- it 'should allow languages' do
73
- r = Twilio::TwiML::VoiceResponse.new
74
- r.say 'Hello Monkey', language: 'en-gb'
75
-
76
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say language="en-gb">Hello Monkey</Say></Response>')
77
- end
78
-
79
- it 'should allow all attributes' do
80
- r = Twilio::TwiML::VoiceResponse.new
81
- r.say 'Hello Monkey', loop: 3, voice: 'man', language: 'fr'
82
-
83
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say language="fr" loop="3" voice="man">Hello Monkey</Say></Response>')
84
- end
85
- end
86
-
87
- context 'Testing Play' do
88
- it 'should allow empty play' do
89
- r = Twilio::TwiML::VoiceResponse.new
90
- r.play
91
-
92
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
93
- # Ruby 2.4 generates an empty tag
94
- expect(r.to_s)
95
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play></Play></Response>')
96
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play/></Response>'))
97
- end
98
-
99
- it 'should play hello' do
100
- r = Twilio::TwiML::VoiceResponse.new
101
- r.play(url: 'http://hellomonkey.mp3')
102
-
103
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play>http://hellomonkey.mp3</Play></Response>')
104
- end
105
-
106
- it 'should play hello on loop' do
107
- r = Twilio::TwiML::VoiceResponse.new
108
- r.play(url: 'http://hellomonkey.mp3', loop: 3)
109
-
110
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play loop="3">http://hellomonkey.mp3</Play></Response>')
111
- end
112
-
113
- it 'should play digits' do
114
- r = Twilio::TwiML::VoiceResponse.new
115
- r.play(digits: 'w123')
116
-
117
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
118
- # Ruby 2.4 generates an empty tag
119
- expect(r.to_s)
120
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play digits="w123"></Play></Response>')
121
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play digits="w123"/></Response>'))
122
- end
123
- end
124
-
125
- context 'Testing Record' do
126
- it 'should allow empty record' do
127
- r = Twilio::TwiML::VoiceResponse.new
128
- r.record
129
-
130
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record/></Response>')
131
- end
132
-
133
- it 'should allow action and method' do
134
- r = Twilio::TwiML::VoiceResponse.new
135
- r.record(action: 'example.com', method: 'GET')
136
-
137
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record action="example.com" method="GET"/></Response>')
138
- end
139
-
140
- it 'should allow max_length, finish_on_key, and timeout' do
141
- r = Twilio::TwiML::VoiceResponse.new
142
- r.record(timeout: 4, finish_on_key: '#', max_length: 30)
143
-
144
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record finishOnKey="#" maxLength="30" timeout="4"/></Response>')
145
- end
146
-
147
- it 'should allow transcribe' do
148
- r = Twilio::TwiML::VoiceResponse.new
149
- r.record(transcribe_callback: 'example.com')
150
-
151
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record transcribeCallback="example.com"/></Response>')
152
- end
153
- end
154
-
155
- context 'Testing Redirect' do
156
- it 'should allow empty redirect' do
157
- r = Twilio::TwiML::VoiceResponse.new
158
- r.redirect ''
159
-
160
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
161
- # Ruby 2.4 generates an empty tag
162
- expect(r.to_s)
163
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect></Redirect></Response>')
164
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect/></Response>'))
165
- end
166
-
167
- it 'should allow method' do
168
- r = Twilio::TwiML::VoiceResponse.new
169
- r.redirect('example.com', method: 'POST')
170
-
171
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect method="POST">example.com</Redirect></Response>')
172
- end
173
-
174
- it 'should allow method and params' do
175
- r = Twilio::TwiML::VoiceResponse.new
176
- r.redirect('example.com?id=34&action=hey', method: 'POST')
177
-
178
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect method="POST">example.com?id=34&amp;action=hey</Redirect></Response>')
179
- end
180
- end
181
-
182
- context 'Testing Hangup' do
183
- it 'should allow hangup' do
184
- r = Twilio::TwiML::VoiceResponse.new
185
- r.hangup
186
-
187
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Hangup/></Response>')
188
- end
189
- end
190
-
191
- context 'Testing Leave' do
192
- it 'should allow leave' do
193
- r = Twilio::TwiML::VoiceResponse.new
194
- r.leave
195
-
196
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Leave/></Response>')
197
- end
198
- end
199
-
200
- context 'Testing Reject' do
201
- it 'should reject with a default reason' do
202
- r = Twilio::TwiML::VoiceResponse.new
203
- r.reject
204
-
205
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Reject/></Response>')
206
- end
207
- end
208
-
209
- context 'Testing SMS' do
210
- it 'should allow empty SMS' do
211
- r = Twilio::TwiML::VoiceResponse.new
212
- r.sms ''
213
-
214
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
215
- # Ruby 2.4 generates an empty tag
216
- expect(r.to_s)
217
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms></Sms></Response>')
218
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms/></Response>'))
219
- end
220
-
221
- it 'should allow SMS body' do
222
- r = Twilio::TwiML::VoiceResponse.new
223
- r.sms 'Hello, World'
224
-
225
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms>Hello, World</Sms></Response>')
226
- end
227
-
228
- it 'should allow to, from, action, and status_callback' do
229
- r = Twilio::TwiML::VoiceResponse.new
230
- r.sms('Hello, World', to: 1_231_231_234, from: 3_453_453_456, status_callback: 'example.com?id=34&action=hey')
231
-
232
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms from="3453453456" statusCallback="example.com?id=34&amp;action=hey" to="1231231234">Hello, World</Sms></Response>')
233
- end
234
-
235
- it 'should allow action and method' do
236
- r = Twilio::TwiML::VoiceResponse.new
237
- r.sms('Hello', method: 'POST', action: 'example.com?id=34&action=hey')
238
-
239
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms action="example.com?id=34&amp;action=hey" method="POST">Hello</Sms></Response>')
240
- end
241
- end
242
-
243
- context 'Testing Conference' do
244
- it 'should allow basic conferencing' do
245
- d = Twilio::TwiML::Dial.new
246
- d.conference(
247
- 'TestConferenceAttributes',
248
- beep: false,
249
- wait_url: '',
250
- start_conference_on_enter: true,
251
- end_conference_on_exit: true
252
- )
253
-
254
- r = Twilio::TwiML::VoiceResponse.new
255
- r.append(d)
256
-
257
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Conference beep="false" endConferenceOnExit="true" startConferenceOnEnter="true" waitUrl="">TestConferenceAttributes</Conference></Dial></Response>')
258
- end
259
-
260
- it 'should allow muted conferencing' do
261
- d = Twilio::TwiML::Dial.new
262
- d.conference(
263
- 'TestConferenceMutedAttribute',
264
- beep: false,
265
- muted: true,
266
- wait_url: '',
267
- start_conference_on_enter: true,
268
- end_conference_on_exit: true
269
- )
270
-
271
- r = Twilio::TwiML::VoiceResponse.new
272
- r.append(d)
273
-
274
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Conference beep="false" endConferenceOnExit="true" muted="true" startConferenceOnEnter="true" waitUrl="">TestConferenceMutedAttribute</Conference></Dial></Response>')
275
- end
276
- end
277
-
278
- context 'Testing Queue' do
279
- it 'should allow queues in VoiceResponse' do
280
- d = Twilio::TwiML::Dial.new
281
- d.queue('TestQueueAttribute', url: '', method: 'GET')
282
-
283
- r = Twilio::TwiML::VoiceResponse.new
284
- r.append(d)
285
-
286
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Queue method="GET" url="">TestQueueAttribute</Queue></Dial></Response>')
287
- end
288
- end
289
-
290
- context 'Testing Echo' do
291
- it 'should allow VoiceResponse Echo' do
292
- r = Twilio::TwiML::VoiceResponse.new
293
- r.echo
294
-
295
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Echo/></Response>')
296
- end
297
- end
298
-
299
- context 'Testing Enqueue' do
300
- it 'should allow VoiceResponse.enqueue' do
301
- r = Twilio::TwiML::VoiceResponse.new
302
- r.enqueue(
303
- 'TestEnqueueAttribute',
304
- action: 'act',
305
- method: 'GET',
306
- wait_url: 'wait',
307
- wait_url_method: 'POST'
308
- )
309
-
310
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Enqueue action="act" method="GET" waitUrl="wait" waitUrlMethod="POST">TestEnqueueAttribute</Enqueue></Response>')
311
- end
312
-
313
- it 'should allow Enqueue.task and appending Enqueue' do
314
- e = Twilio::TwiML::Enqueue.new(nil, workflow_sid: '123123123')
315
- e.task('{"account_sid": "AC123123123"}')
316
-
317
- r = Twilio::TwiML::VoiceResponse.new
318
- r.append(e)
319
-
320
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Enqueue workflowSid="123123123"><Task>{"account_sid": "AC123123123"}</Task></Enqueue></Response>')
321
- end
322
-
323
- it 'should allow Enqueue.task with a dictionary and appending Enqueue' do
324
- e = Twilio::TwiML::Enqueue.new(nil, workflow_sid: '123123123')
325
- e.task({ account_sid: 'AC123123123' })
326
-
327
- r = Twilio::TwiML::VoiceResponse.new
328
- r.append(e)
329
-
330
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Enqueue workflowSid="123123123"><Task>{"account_sid":"AC123123123"}</Task></Enqueue></Response>')
331
- end
332
- end
333
-
334
- context 'Testing Dial' do
335
- it 'should allow VoiceResponse.dial' do
336
- r = Twilio::TwiML::VoiceResponse.new
337
- r.dial(number: '1231231234')
338
-
339
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial>1231231234</Dial></Response>')
340
- end
341
-
342
- it 'should allow Dial.sim' do
343
- d = Twilio::TwiML::Dial.new
344
- d.sim '123123123'
345
-
346
- r = Twilio::TwiML::VoiceResponse.new
347
- r.append(d)
348
-
349
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Sim>123123123</Sim></Dial></Response>')
350
- end
351
-
352
- it 'should allow Dial.sip' do
353
- d = Twilio::TwiML::Dial.new
354
- d.sip 'foo@example.com'
355
-
356
- r = Twilio::TwiML::VoiceResponse.new
357
- r.append(d)
358
-
359
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Sip>foo@example.com</Sip></Dial></Response>')
360
- end
361
-
362
- it 'should allow Dial.sip with username, password' do
363
- d = Twilio::TwiML::Dial.new
364
- d.sip('foo@example.com', username: 'foo', password: 'bar')
365
-
366
- r = Twilio::TwiML::VoiceResponse.new
367
- r.append(d)
368
-
369
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Sip password="bar" username="foo">foo@example.com</Sip></Dial></Response>')
370
- end
371
-
372
- it 'should allow Dial.number' do
373
- d = Twilio::TwiML::Dial.new
374
- d.number '1231231234'
375
-
376
- r = Twilio::TwiML::VoiceResponse.new
377
- r.append(d)
378
-
379
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Number>1231231234</Number></Dial></Response>')
380
- end
381
-
382
- it 'should allow Dial.number with params' do
383
- d = Twilio::TwiML::Dial.new
384
- d.number('1231231234', status_callback: 'http://example.com', status_callback_event: 'initiated completed')
385
-
386
- r = Twilio::TwiML::VoiceResponse.new
387
- r.append(d)
388
-
389
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Number statusCallback="http://example.com" statusCallbackEvent="initiated completed">1231231234</Number></Dial></Response>')
390
- end
391
-
392
- it 'should allow Dial.conference' do
393
- d = Twilio::TwiML::Dial.new
394
- d.conference 'My Room'
395
-
396
- r = Twilio::TwiML::VoiceResponse.new
397
- r.append(d)
398
-
399
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Conference>My Room</Conference></Dial></Response>')
400
- end
401
-
402
- it 'should allow Dial.queue' do
403
- d = Twilio::TwiML::Dial.new
404
- d.queue 'The Cute Queue'
405
-
406
- r = Twilio::TwiML::VoiceResponse.new
407
- r.append(d)
408
-
409
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Queue>The Cute Queue</Queue></Dial></Response>')
410
- end
411
-
412
- it 'should allow empty Dial.client' do
413
- d = Twilio::TwiML::Dial.new
414
- d.client ''
415
-
416
- r = Twilio::TwiML::VoiceResponse.new
417
- r.append(d)
418
-
419
- # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
420
- # Ruby 2.4 generates an empty tag
421
- expect(r.to_s)
422
- .to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client></Client></Dial></Response>')
423
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client/></Dial></Response>'))
424
- end
425
-
426
- it 'should allow populated Dial.client' do
427
- d = Twilio::TwiML::Dial.new
428
- d.client 'alice'
429
-
430
- r = Twilio::TwiML::VoiceResponse.new
431
- r.append(d)
432
-
433
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client>alice</Client></Dial></Response>')
434
- end
435
- end
436
-
437
- context 'Testing Gather' do
438
- it 'should allow empty Gather' do
439
- r = Twilio::TwiML::VoiceResponse.new
440
- r.gather
441
-
442
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Gather/></Response>')
443
- end
444
-
445
- it 'should allow Gather.say' do
446
- g = Twilio::TwiML::Gather.new
447
- g.say 'Hello'
448
-
449
- r = Twilio::TwiML::VoiceResponse.new
450
- r.append(g)
451
-
452
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Gather><Say>Hello</Say></Gather></Response>')
453
- end
454
-
455
- it 'should allow nested play and pause' do
456
- g = Twilio::TwiML::Gather.new
457
- g.say 'Hey'
458
- g.play(url: 'hey.mp3')
459
- g.pause
460
-
461
- r = Twilio::TwiML::VoiceResponse.new
462
- r.append(g)
463
-
464
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?>' \
465
- '<Response>' \
466
- '<Gather>' \
467
- '<Say>Hey</Say>' \
468
- '<Play>hey.mp3</Play>' \
469
- '<Pause/>' \
470
- '</Gather>' \
471
- '</Response>')
472
- end
473
- end
474
- end