twilio-ruby 5.0.0.rc26 → 5.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 (328) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +21 -0
  3. data/.rubocop_todo.yml +187 -0
  4. data/.travis.yml +13 -0
  5. data/CHANGES.md +4 -0
  6. data/Gemfile +2 -2
  7. data/Makefile +8 -1
  8. data/Rakefile +3 -7
  9. data/examples/examples.rb +12 -10
  10. data/examples/{print-call-log.rb → print_call_log.rb} +4 -4
  11. data/lib/rack/twilio_webhook_authentication.rb +2 -3
  12. data/lib/twilio-ruby/framework/domain.rb +2 -6
  13. data/lib/twilio-ruby/framework/error.rb +0 -1
  14. data/lib/twilio-ruby/framework/helper.rb +1 -1
  15. data/lib/twilio-ruby/framework/page.rb +23 -25
  16. data/lib/twilio-ruby/framework/resource.rb +2 -2
  17. data/lib/twilio-ruby/framework/serialize.rb +5 -12
  18. data/lib/twilio-ruby/framework/twilio_response.rb +1 -1
  19. data/lib/twilio-ruby/framework/values.rb +2 -2
  20. data/lib/twilio-ruby/framework/version.rb +19 -37
  21. data/lib/twilio-ruby/http/http_client.rb +5 -6
  22. data/lib/twilio-ruby/jwt/access_token.rb +27 -41
  23. data/lib/twilio-ruby/jwt/client_capability.rb +11 -16
  24. data/lib/twilio-ruby/jwt/jwt.rb +7 -13
  25. data/lib/twilio-ruby/jwt/task_router.rb +40 -38
  26. data/lib/twilio-ruby/rest/accounts.rb +2 -0
  27. data/lib/twilio-ruby/rest/accounts/v1.rb +2 -0
  28. data/lib/twilio-ruby/rest/accounts/v1/credential.rb +2 -2
  29. data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +12 -7
  30. data/lib/twilio-ruby/rest/api.rb +96 -0
  31. data/lib/twilio-ruby/rest/api/v2010.rb +5 -0
  32. data/lib/twilio-ruby/rest/api/v2010/account.rb +66 -56
  33. data/lib/twilio-ruby/rest/api/v2010/account/address.rb +30 -13
  34. data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +22 -8
  35. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +40 -11
  36. data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +20 -9
  37. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +16 -15
  38. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +26 -28
  39. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +26 -28
  40. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +26 -28
  41. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +64 -34
  42. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +12 -4
  43. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +28 -3
  44. data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +37 -16
  45. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +25 -15
  46. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +28 -27
  47. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +28 -19
  48. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +22 -9
  49. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +62 -58
  50. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +52 -12
  51. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +52 -12
  52. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +52 -12
  53. data/lib/twilio-ruby/rest/api/v2010/account/key.rb +8 -9
  54. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +47 -20
  55. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +12 -2
  56. data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +17 -17
  57. data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +10 -2
  58. data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +10 -2
  59. data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +37 -16
  60. data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +14 -13
  61. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +20 -10
  62. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +10 -10
  63. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +37 -21
  64. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +22 -13
  65. data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +22 -13
  66. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +26 -9
  67. data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +24 -13
  68. data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +8 -9
  69. data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +8 -10
  70. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +16 -11
  71. data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +14 -9
  72. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +36 -13
  73. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +14 -10
  74. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +14 -10
  75. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +16 -11
  76. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +16 -9
  77. data/lib/twilio-ruby/rest/api/v2010/account/token.rb +14 -2
  78. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +26 -9
  79. data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +4 -6
  80. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +44 -33
  81. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +28 -11
  82. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +28 -11
  83. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +28 -11
  84. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +28 -11
  85. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +28 -11
  86. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +28 -11
  87. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +28 -11
  88. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +28 -11
  89. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +32 -15
  90. data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +10 -1
  91. data/lib/twilio-ruby/rest/chat.rb +8 -0
  92. data/lib/twilio-ruby/rest/chat/v1.rb +8 -0
  93. data/lib/twilio-ruby/rest/chat/v1/credential.rb +16 -7
  94. data/lib/twilio-ruby/rest/chat/v1/service.rb +48 -13
  95. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +34 -15
  96. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +20 -10
  97. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +22 -10
  98. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +26 -10
  99. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +18 -8
  100. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +30 -10
  101. data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +16 -8
  102. data/lib/twilio-ruby/rest/chat/v2.rb +8 -0
  103. data/lib/twilio-ruby/rest/chat/v2/credential.rb +16 -7
  104. data/lib/twilio-ruby/rest/chat/v2/service.rb +46 -13
  105. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +34 -15
  106. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +20 -10
  107. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +22 -10
  108. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +26 -10
  109. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +18 -8
  110. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +30 -10
  111. data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +16 -8
  112. data/lib/twilio-ruby/rest/client.rb +94 -45
  113. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -0
  114. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +8 -0
  115. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +16 -7
  116. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +48 -13
  117. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +34 -15
  118. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +20 -10
  119. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +22 -10
  120. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +26 -10
  121. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +18 -8
  122. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +30 -10
  123. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +16 -8
  124. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +8 -0
  125. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +16 -7
  126. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +46 -13
  127. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +34 -15
  128. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +20 -10
  129. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +22 -10
  130. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +26 -10
  131. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +18 -8
  132. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +30 -10
  133. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +16 -8
  134. data/lib/twilio-ruby/rest/lookups.rb +4 -0
  135. data/lib/twilio-ruby/rest/lookups/v1.rb +9 -5
  136. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +14 -1
  137. data/lib/twilio-ruby/rest/monitor.rb +8 -0
  138. data/lib/twilio-ruby/rest/monitor/v1.rb +8 -0
  139. data/lib/twilio-ruby/rest/monitor/v1/alert.rb +34 -10
  140. data/lib/twilio-ruby/rest/monitor/v1/event.rb +28 -13
  141. data/lib/twilio-ruby/rest/pricing.rb +6 -0
  142. data/lib/twilio-ruby/rest/pricing/v1.rb +6 -0
  143. data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +8 -2
  144. data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +12 -7
  145. data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +8 -2
  146. data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +10 -7
  147. data/lib/twilio-ruby/rest/pricing/v1/voice.rb +10 -4
  148. data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +12 -7
  149. data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +14 -1
  150. data/lib/twilio-ruby/rest/taskrouter.rb +4 -0
  151. data/lib/twilio-ruby/rest/taskrouter/v1.rb +4 -0
  152. data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +46 -24
  153. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +16 -10
  154. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +30 -17
  155. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +42 -19
  156. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +22 -10
  157. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -8
  158. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +34 -15
  159. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +12 -3
  160. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +10 -11
  161. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +34 -23
  162. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +22 -10
  163. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +28 -9
  164. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +10 -3
  165. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +10 -2
  166. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +28 -11
  167. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +12 -3
  168. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +10 -2
  169. data/lib/twilio-ruby/rest/trunking.rb +4 -0
  170. data/lib/twilio-ruby/rest/trunking/v1.rb +4 -0
  171. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +36 -15
  172. data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +14 -8
  173. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +14 -8
  174. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +22 -8
  175. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +52 -8
  176. data/lib/twilio-ruby/rest/video.rb +8 -0
  177. data/lib/twilio-ruby/rest/video/v1.rb +8 -0
  178. data/lib/twilio-ruby/rest/video/v1/recording.rb +26 -12
  179. data/lib/twilio-ruby/rest/video/v1/room.rb +34 -13
  180. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +28 -12
  181. data/lib/twilio-ruby/security/request_validator.rb +1 -2
  182. data/lib/twilio-ruby/twiml/messaging_response.rb +7 -19
  183. data/lib/twilio-ruby/twiml/twiml.rb +8 -14
  184. data/lib/twilio-ruby/twiml/voice_response.rb +157 -169
  185. data/lib/twilio-ruby/util.rb +1 -1
  186. data/lib/twilio-ruby/version.rb +1 -1
  187. data/spec/framework/serialize_spec.rb +17 -30
  188. data/spec/holodeck/holodeck.rb +6 -6
  189. data/spec/jwt/access_token_spec.rb +0 -6
  190. data/spec/jwt/client_capability_spec.rb +3 -3
  191. data/spec/jwt/task_router_spec.rb +16 -21
  192. data/spec/rack/twilio_webhook_authentication_spec.rb +12 -16
  193. data/spec/spec_helper.rb +2 -2
  194. data/spec/support/fakeweb.rb +1 -1
  195. data/spec/twiml/voice_response_spec.rb +33 -20
  196. data/twilio-ruby.gemspec +7 -3
  197. metadata +21 -193
  198. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +0 -420
  199. data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +0 -345
  200. data/lib/twilio-ruby/rest/fax.rb +0 -40
  201. data/lib/twilio-ruby/rest/fax/v1.rb +0 -37
  202. data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -520
  203. data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -321
  204. data/lib/twilio-ruby/rest/messaging.rb +0 -40
  205. data/lib/twilio-ruby/rest/messaging/v1.rb +0 -37
  206. data/lib/twilio-ruby/rest/messaging/v1/service.rb +0 -604
  207. data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +0 -344
  208. data/lib/twilio-ruby/rest/messaging/v1/service/phone_number.rb +0 -349
  209. data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +0 -349
  210. data/lib/twilio-ruby/rest/notify.rb +0 -44
  211. data/lib/twilio-ruby/rest/notify/v1.rb +0 -48
  212. data/lib/twilio-ruby/rest/notify/v1/credential.rb +0 -394
  213. data/lib/twilio-ruby/rest/notify/v1/service.rb +0 -611
  214. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +0 -414
  215. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -249
  216. data/lib/twilio-ruby/rest/notify/v1/service/segment.rb +0 -219
  217. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +0 -437
  218. data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +0 -247
  219. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +0 -418
  220. data/lib/twilio-ruby/rest/preview.rb +0 -107
  221. data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -48
  222. data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -198
  223. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +0 -209
  224. data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -232
  225. data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +0 -37
  226. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +0 -539
  227. data/lib/twilio-ruby/rest/preview/marketplace.rb +0 -48
  228. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +0 -326
  229. data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +0 -297
  230. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +0 -427
  231. data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +0 -335
  232. data/lib/twilio-ruby/rest/preview/proxy.rb +0 -37
  233. data/lib/twilio-ruby/rest/preview/proxy/service.rb +0 -489
  234. data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +0 -349
  235. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +0 -525
  236. data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +0 -406
  237. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +0 -495
  238. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +0 -422
  239. data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +0 -349
  240. data/lib/twilio-ruby/rest/preview/sync.rb +0 -37
  241. data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -491
  242. data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -431
  243. data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -390
  244. data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -426
  245. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -422
  246. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -390
  247. data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -426
  248. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -424
  249. data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -390
  250. data/lib/twilio-ruby/rest/preview/wireless.rb +0 -59
  251. data/lib/twilio-ruby/rest/preview/wireless/command.rb +0 -371
  252. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +0 -414
  253. data/lib/twilio-ruby/rest/preview/wireless/sim.rb +0 -512
  254. data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -220
  255. data/lib/twilio-ruby/rest/sync.rb +0 -40
  256. data/lib/twilio-ruby/rest/sync/v1.rb +0 -37
  257. data/lib/twilio-ruby/rest/sync/v1/service.rb +0 -491
  258. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +0 -431
  259. data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +0 -390
  260. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +0 -426
  261. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +0 -422
  262. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +0 -390
  263. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +0 -426
  264. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +0 -424
  265. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +0 -390
  266. data/lib/twilio-ruby/rest/wireless.rb +0 -48
  267. data/lib/twilio-ruby/rest/wireless/v1.rb +0 -59
  268. data/lib/twilio-ruby/rest/wireless/v1/command.rb +0 -357
  269. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +0 -427
  270. data/lib/twilio-ruby/rest/wireless/v1/sim.rb +0 -516
  271. data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +0 -235
  272. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
  273. data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
  274. data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -126
  275. data/spec/integration/fax/v1/fax_spec.rb +0 -272
  276. data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
  277. data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
  278. data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
  279. data/spec/integration/messaging/v1/service_spec.rb +0 -263
  280. data/spec/integration/notify/v1/credential_spec.rb +0 -223
  281. data/spec/integration/notify/v1/service/binding_spec.rb +0 -227
  282. data/spec/integration/notify/v1/service/notification_spec.rb +0 -97
  283. data/spec/integration/notify/v1/service/segment_spec.rb +0 -84
  284. data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +0 -118
  285. data/spec/integration/notify/v1/service/user/user_binding_spec.rb +0 -269
  286. data/spec/integration/notify/v1/service/user_spec.rb +0 -213
  287. data/spec/integration/notify/v1/service_spec.rb +0 -280
  288. data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -56
  289. data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
  290. data/spec/integration/preview/bulk_exports/export_spec.rb +0 -43
  291. data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -276
  292. data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
  293. data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
  294. data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
  295. data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -252
  296. data/spec/integration/preview/proxy/service/phone_number_spec.rb +0 -173
  297. data/spec/integration/preview/proxy/service/session/interaction_spec.rb +0 -104
  298. data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +0 -164
  299. data/spec/integration/preview/proxy/service/session/participant_spec.rb +0 -226
  300. data/spec/integration/preview/proxy/service/session_spec.rb +0 -216
  301. data/spec/integration/preview/proxy/service/short_code_spec.rb +0 -173
  302. data/spec/integration/preview/proxy/service_spec.rb +0 -200
  303. data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -206
  304. data/spec/integration/preview/sync/service/document_spec.rb +0 -254
  305. data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -256
  306. data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -206
  307. data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -207
  308. data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -257
  309. data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -206
  310. data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -207
  311. data/spec/integration/preview/sync/service_spec.rb +0 -244
  312. data/spec/integration/preview/wireless/command_spec.rb +0 -169
  313. data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -260
  314. data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -49
  315. data/spec/integration/preview/wireless/sim_spec.rb +0 -208
  316. data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -206
  317. data/spec/integration/sync/v1/service/document_spec.rb +0 -254
  318. data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -256
  319. data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -206
  320. data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -207
  321. data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
  322. data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -206
  323. data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -207
  324. data/spec/integration/sync/v1/service_spec.rb +0 -244
  325. data/spec/integration/wireless/v1/command_spec.rb +0 -166
  326. data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -268
  327. data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -65
  328. data/spec/integration/wireless/v1/sim_spec.rb +0 -208
@@ -1,7 +1,7 @@
1
1
  module Twilio
2
2
  module Util
3
3
  def url_encode(hash)
4
- hash.to_a.map {|p| p.map {|e| CGI.escape get_string(e)}.join '='}.join '&'
4
+ hash.to_a.map { |p| p.map { |e| CGI.escape get_string(e) }.join '=' }.join '&'
5
5
  end
6
6
 
7
7
  def get_string(obj)
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.0.0.rc26'
2
+ VERSION = '5.0.0'.freeze
3
3
  end
@@ -2,59 +2,47 @@ require 'spec_helper'
2
2
 
3
3
  describe Twilio do
4
4
  describe 'prefixed_collapsible_map' do
5
-
6
5
  it 'should serialize nil' do
7
6
  actual = Twilio.prefixed_collapsible_map(nil, 'Prefix')
8
7
  expect(actual).to eq({})
9
8
  end
10
9
 
11
10
  it 'should serialize a single key' do
12
- actual = Twilio.prefixed_collapsible_map({
13
- 'foo' => 'bar'
14
- }, 'Prefix')
15
- expect(actual).to eq({
16
- 'Prefix.foo' => 'bar'
17
- })
11
+ actual = Twilio.prefixed_collapsible_map({ 'foo' => 'bar' }, 'Prefix')
12
+ expect(actual).to eq('Prefix.foo' => 'bar')
18
13
  end
19
14
 
20
15
  it 'should serialize nested key' do
21
16
  actual = Twilio.prefixed_collapsible_map({
22
- 'foo' => {
23
- 'bar' => 'baz'
24
- }
25
- }, 'Prefix')
26
- expect(actual).to eq({
27
- 'Prefix.foo.bar' => 'baz'
28
- })
17
+ 'foo' => {
18
+ 'bar' => 'baz'
19
+ }
20
+ }, 'Prefix')
21
+ expect(actual).to eq('Prefix.foo.bar' => 'baz')
29
22
  end
30
23
 
31
24
  it 'should serialize multiple keys' do
32
25
  actual = Twilio.prefixed_collapsible_map({
33
- 'watson' => {
34
- 'language' => 'en',
35
- 'alice' => 'bob'
36
- },
37
- 'foo' => 'bar'
38
- }, 'Prefix')
39
- expect(actual).to eq({
40
- 'Prefix.watson.language' => 'en',
41
- 'Prefix.watson.alice' => 'bob',
42
- 'Prefix.foo' => 'bar'
43
- })
26
+ 'watson' => {
27
+ 'language' => 'en',
28
+ 'alice' => 'bob'
29
+ },
30
+ 'foo' => 'bar'
31
+ }, 'Prefix')
32
+ expect(actual).to eq('Prefix.watson.language' => 'en',
33
+ 'Prefix.watson.alice' => 'bob',
34
+ 'Prefix.foo' => 'bar')
44
35
  end
45
36
 
46
37
  it 'should serialize list' do
47
38
  actual = Twilio.prefixed_collapsible_map(['foo', 'bar'], 'Prefix')
48
39
  expect(actual).to eq({})
49
40
  end
50
-
51
-
52
41
  end
53
42
 
54
43
  describe 'serialize_object' do
55
-
56
44
  it 'should jsonify hashes' do
57
- actual = Twilio.serialize_object({twilio: "rocks"})
45
+ actual = Twilio.serialize_object({ twilio: "rocks" })
58
46
  expect(actual).to eq('{"twilio":"rocks"}')
59
47
  end
60
48
 
@@ -67,6 +55,5 @@ describe Twilio do
67
55
  actual = Twilio.serialize_object(123)
68
56
  expect(actual).to eq(123)
69
57
  end
70
-
71
58
  end
72
59
  end
@@ -21,10 +21,10 @@ class Holodeck
21
21
  end
22
22
 
23
23
  def ==(other)
24
- method.upcase == other.method.upcase &&
25
- url == other.url &&
26
- params == other.params &&
27
- data == other.data
24
+ method.casecmp(other.method.upcase).zero? &&
25
+ url == other.url &&
26
+ params == other.params &&
27
+ data == other.data
28
28
  end
29
29
 
30
30
  def to_s
@@ -43,7 +43,7 @@ class Holodeck
43
43
  @response = response
44
44
  end
45
45
 
46
- def request(host, port, method, url, params={}, data={}, headers={}, auth=nil, timeout=nil)
46
+ def request(host, port, method, url, params = {}, data = {}, headers = {}, auth = nil, _timeout = nil)
47
47
  @requests << Request.new(
48
48
  method: method,
49
49
  url: url,
@@ -52,7 +52,7 @@ class Holodeck
52
52
  headers: headers,
53
53
  auth: auth
54
54
  )
55
- return @response
55
+ @response
56
56
  end
57
57
 
58
58
  def has_request?(request)
@@ -128,9 +128,3 @@ describe Twilio::JWT::AccessToken do
128
128
  end
129
129
  end
130
130
  end
131
-
132
-
133
-
134
-
135
-
136
-
@@ -74,7 +74,7 @@ describe Twilio::JWT::ClientCapability do
74
74
  it 'complete payload' do
75
75
  @incomingScope = Twilio::JWT::ClientCapability::IncomingClientScope.new('test-client-name')
76
76
  @clientCapability.add_scope(@incomingScope)
77
- payload, _ = ::JWT.decode @clientCapability.to_s, 'authToken', true, {:algorithm=>'HS256'}
77
+ payload, _ = ::JWT.decode(@clientCapability.to_s, 'authToken', true, { algorithm: 'HS256' })
78
78
  escope = 'scope:client:incoming?clientName=test-client-name'
79
79
  expect(payload['iss']).to eq('accountSid')
80
80
  expect(payload['scope']).to eq(escope)
@@ -99,6 +99,6 @@ describe Twilio::JWT::Scope do
99
99
  include Twilio::JWT::Scope
100
100
  end
101
101
  @dummyScope = DummyScope.new
102
- expect{@dummyScope._generate_payload}.to raise_error(RuntimeError)
102
+ expect { @dummyScope._generate_payload }.to raise_error(RuntimeError)
103
103
  end
104
- end
104
+ end
@@ -42,25 +42,23 @@ describe 'TaskRouter ' do
42
42
  describe 'policy' do
43
43
  it 'initialize' do
44
44
  @policy = Twilio::JWT::TaskRouterCapability::Policy.new('test-url',
45
- 'GET',
46
- true,
47
- {'test-post-key'=>'test-post-value'},
48
- {'test-query-key'=>'test-query-value'}
49
- )
45
+ 'GET',
46
+ true,
47
+ { 'test-post-key' => 'test-post-value' },
48
+ 'test-query-key' => 'test-query-value')
50
49
 
51
- payload = Hash[@policy._generate_payload.map{ |k, v| [k.to_s, v] }]
50
+ payload = Hash[@policy._generate_payload.map { |k, v| [k.to_s, v] }]
52
51
  check_policy('GET',
53
52
  'test-url',
54
53
  payload,
55
- post_filter: {'test-post-key'=>'test-post-value'},
56
- query_filter: {'test-query-key'=>'test-query-value'},
57
- allow: true )
54
+ post_filter: { 'test-post-key' => 'test-post-value' },
55
+ query_filter: { 'test-query-key' => 'test-query-value' },
56
+ allow: true)
58
57
  end
59
58
  end
60
59
 
61
60
  describe Twilio::JWT::TaskRouterCapability::TaskRouterUtils do
62
61
  describe 'urls' do
63
-
64
62
  it 'workspaces' do
65
63
  expected_url = 'https://taskrouter.twilio.com/v1/Workspaces'
66
64
  expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.workspaces).to eq(expected_url)
@@ -150,28 +148,25 @@ describe 'TaskRouter ' do
150
148
  expected_url = 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/**'
151
149
  expect(Twilio::JWT::TaskRouterCapability::TaskRouterUtils.all_reservations('WK123', 'WT123')).to eq(expected_url)
152
150
  end
153
-
154
151
  end
155
152
 
156
153
  describe 'default policies' do
157
154
  it 'default web_socket_policies' do
158
155
  @policies = Twilio::JWT::TaskRouterCapability::TaskRouterUtils.web_socket_policies('AC123', 'CI123')
159
- get, post = @policies.map{|policy| policy._generate_payload}
160
- check_policy('GET', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[get.map{ |k, v| [k.to_s, v]}])
161
- check_policy('POST', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[post.map{ |k, v| [k.to_s, v]}])
156
+ get, post = @policies.map(&:_generate_payload)
157
+ check_policy('GET', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[get.map { |k, v| [k.to_s, v] }])
158
+ check_policy('POST', 'https://event-bridge.twilio.com/v1/wschannels/AC123/CI123', Hash[post.map { |k, v| [k.to_s, v] }])
162
159
  end
163
160
 
164
161
  it 'default worker policies' do
165
162
  @policies = Twilio::JWT::TaskRouterCapability::TaskRouterUtils.worker_policies('WK123', 'WT123')
166
- payload = @policies.map{|policy| policy._generate_payload}
167
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Activities', Hash[payload[0].map{ |k, v| [k.to_s, v]}])
168
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks/**', Hash[payload[1].map{ |k, v| [k.to_s, v]}])
169
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/**', Hash[payload[2].map{ |k, v| [k.to_s, v]}])
170
- check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123', Hash[payload[3].map{ |k, v| [k.to_s, v]}])
163
+ payload = @policies.map(&:_generate_payload)
164
+ check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Activities', Hash[payload[0].map { |k, v| [k.to_s, v] }])
165
+ check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Tasks/**', Hash[payload[1].map { |k, v| [k.to_s, v] }])
166
+ check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123/Reservations/**', Hash[payload[2].map { |k, v| [k.to_s, v] }])
167
+ check_policy('GET', 'https://taskrouter.twilio.com/v1/Workspaces/WK123/Workers/WT123', Hash[payload[3].map { |k, v| [k.to_s, v] }])
171
168
  end
172
169
  end
173
170
  end
174
171
  end
175
172
  end
176
-
177
-
@@ -3,36 +3,36 @@ require 'rack/mock'
3
3
 
4
4
  describe Rack::TwilioWebhookAuthentication do
5
5
  before do
6
- @app = lambda {|env| [200, {'Content-Type' => 'text/plain'}, ['Hello']] }
6
+ @app = ->(_env) { [200, { 'Content-Type' => 'text/plain' }, ['Hello']] }
7
7
  end
8
8
 
9
9
  describe 'new' do
10
10
  it 'should initialize with an app, auth token and a path' do
11
- expect {
11
+ expect do
12
12
  Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/)
13
- }.not_to raise_error
13
+ end.not_to raise_error
14
14
  end
15
15
 
16
16
  it 'should initialize with an app, auth token and paths' do
17
- expect {
17
+ expect do
18
18
  Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/, /\/sms/)
19
- }.not_to raise_error
19
+ end.not_to raise_error
20
20
  end
21
21
 
22
22
  it 'should initialize with an app, dynamic token and paths' do
23
- expect {
23
+ expect do
24
24
  Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/, /\/sms/)
25
- }.not_to raise_error
25
+ end.not_to raise_error
26
26
  end
27
27
  end
28
28
 
29
29
  describe 'calling against one path with dynamic auth token' do
30
30
  it 'should allow a request through if it validates' do
31
31
  auth_token = 'qwerty'
32
- account_sid = 12345
32
+ account_sid = 12_345
33
33
  expect_any_instance_of(Rack::Request).to receive(:post?).and_return(true)
34
- expect_any_instance_of(Rack::Request).to receive(:POST).and_return({'AccountSid' => account_sid})
35
- @middleware = Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/) { |asid| auth_token}
34
+ expect_any_instance_of(Rack::Request).to receive(:POST).and_return({ 'AccountSid' => account_sid })
35
+ @middleware = Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/) { |asid| auth_token }
36
36
  request_validator = double('RequestValidator')
37
37
  expect(Twilio::Security::RequestValidator).to receive(:new).with(auth_token).and_return(request_validator)
38
38
  expect(request_validator).to receive(:validate).and_return(true)
@@ -44,9 +44,7 @@ describe Rack::TwilioWebhookAuthentication do
44
44
 
45
45
  describe 'calling against one path' do
46
46
  before do
47
- @middleware = Rack::TwilioWebhookAuthentication.new(
48
- @app, 'ABC', /\/voice/
49
- )
47
+ @middleware = Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/)
50
48
  end
51
49
 
52
50
  it 'should not intercept when the path doesn\'t match' do
@@ -77,9 +75,7 @@ describe Rack::TwilioWebhookAuthentication do
77
75
 
78
76
  describe 'calling against many paths' do
79
77
  before do
80
- @middleware = Rack::TwilioWebhookAuthentication.new(
81
- @app, 'ABC', /\/voice/, /\/sms/
82
- )
78
+ @middleware = Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/, /\/sms/)
83
79
  end
84
80
 
85
81
  it 'should not intercept when the path doesn\'t match' do
data/spec/spec_helper.rb CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'bundler'
4
4
  Bundler.setup
5
5
 
6
- Dir.glob(File.expand_path("../support/**/*.rb", __FILE__), &method(:require))
6
+ Dir.glob(File.expand_path('../support/**/*.rb', __FILE__), &method(:require))
7
7
 
8
8
  require_relative './holodeck/holodeck.rb'
9
9
  require_relative './holodeck/hologram.rb'
@@ -17,7 +17,7 @@ RSpec.configure do |config|
17
17
  end
18
18
 
19
19
  config.before(:each) do
20
- @client = Twilio::REST::Client.new('AC' + 'a'*32, 'AUTHTOKEN')
20
+ @client = Twilio::REST::Client.new('AC' + 'a' * 32, 'AUTHTOKEN')
21
21
  @holodeck = Holodeck.new
22
22
  @client.http_client = @holodeck
23
23
  end
@@ -1,2 +1,2 @@
1
1
  require 'fakeweb'
2
- FakeWeb.allow_net_connect = false
2
+ FakeWeb.allow_net_connect = false
@@ -43,8 +43,9 @@ describe Twilio::TwiML::VoiceResponse do
43
43
 
44
44
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
45
45
  # Ruby 2.4 generates an empty tag
46
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say></Say></Response>')
47
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Say/></Response>'))
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>'))
48
49
  end
49
50
 
50
51
  it 'should allow populated say' do
@@ -90,8 +91,9 @@ describe Twilio::TwiML::VoiceResponse do
90
91
 
91
92
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
92
93
  # Ruby 2.4 generates an empty tag
93
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play></Play></Response>')
94
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play/></Response>'))
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>'))
95
97
  end
96
98
 
97
99
  it 'should play hello' do
@@ -114,8 +116,9 @@ describe Twilio::TwiML::VoiceResponse do
114
116
 
115
117
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
116
118
  # Ruby 2.4 generates an empty tag
117
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play digits="w123"></Play></Response>')
118
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Play digits="w123"/></Response>'))
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>'))
119
122
  end
120
123
  end
121
124
 
@@ -129,21 +132,21 @@ describe Twilio::TwiML::VoiceResponse do
129
132
 
130
133
  it 'should allow action and method' do
131
134
  r = Twilio::TwiML::VoiceResponse.new
132
- r.record action: 'example.com', method: 'GET'
135
+ r.record(action: 'example.com', method: 'GET')
133
136
 
134
137
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record action="example.com" method="GET"/></Response>')
135
138
  end
136
139
 
137
140
  it 'should allow max_length, finish_on_key, and timeout' do
138
141
  r = Twilio::TwiML::VoiceResponse.new
139
- r.record timeout: 4, finish_on_key: '#', max_length: 30
142
+ r.record(timeout: 4, finish_on_key: '#', max_length: 30)
140
143
 
141
144
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record finishOnKey="#" maxLength="30" timeout="4"/></Response>')
142
145
  end
143
146
 
144
147
  it 'should allow transcribe' do
145
148
  r = Twilio::TwiML::VoiceResponse.new
146
- r.record transcribe_callback: 'example.com'
149
+ r.record(transcribe_callback: 'example.com')
147
150
 
148
151
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Record transcribeCallback="example.com"/></Response>')
149
152
  end
@@ -156,20 +159,21 @@ describe Twilio::TwiML::VoiceResponse do
156
159
 
157
160
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
158
161
  # Ruby 2.4 generates an empty tag
159
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect></Redirect></Response>')
160
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect/></Response>'))
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>'))
161
165
  end
162
166
 
163
167
  it 'should allow method' do
164
168
  r = Twilio::TwiML::VoiceResponse.new
165
- r.redirect 'example.com', method: 'POST'
169
+ r.redirect('example.com', method: 'POST')
166
170
 
167
171
  expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Redirect method="POST">example.com</Redirect></Response>')
168
172
  end
169
173
 
170
174
  it 'should allow method and params' do
171
175
  r = Twilio::TwiML::VoiceResponse.new
172
- r.redirect 'example.com?id=34&action=hey', method: 'POST'
176
+ r.redirect('example.com?id=34&action=hey', method: 'POST')
173
177
 
174
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>')
175
179
  end
@@ -209,8 +213,9 @@ describe Twilio::TwiML::VoiceResponse do
209
213
 
210
214
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
211
215
  # Ruby 2.4 generates an empty tag
212
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms></Sms></Response>')
213
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Sms/></Response>'))
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>'))
214
219
  end
215
220
 
216
221
  it 'should allow SMS body' do
@@ -222,7 +227,7 @@ describe Twilio::TwiML::VoiceResponse do
222
227
 
223
228
  it 'should allow to, from, action, and status_callback' do
224
229
  r = Twilio::TwiML::VoiceResponse.new
225
- r.sms('Hello, World', to: 1231231234, from: 3453453456, status_callback: 'example.com?id=34&action=hey')
230
+ r.sms('Hello, World', to: 1_231_231_234, from: 3_453_453_456, status_callback: 'example.com?id=34&action=hey')
226
231
 
227
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>')
228
233
  end
@@ -317,7 +322,7 @@ describe Twilio::TwiML::VoiceResponse do
317
322
 
318
323
  it 'should allow Enqueue.task with a dictionary and appending Enqueue' do
319
324
  e = Twilio::TwiML::Enqueue.new(nil, workflow_sid: '123123123')
320
- e.task({account_sid: 'AC123123123'})
325
+ e.task({ account_sid: 'AC123123123' })
321
326
 
322
327
  r = Twilio::TwiML::VoiceResponse.new
323
328
  r.append(e)
@@ -413,8 +418,9 @@ describe Twilio::TwiML::VoiceResponse do
413
418
 
414
419
  # For Ruby 2.0, 2.1, 2.2 both opening and closing tags are generated
415
420
  # Ruby 2.4 generates an empty tag
416
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client></Client></Dial></Response>')
417
- .or(eq('<?xml version="1.0" encoding="UTF-8"?><Response><Dial><Client/></Dial></Response>'))
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>'))
418
424
  end
419
425
 
420
426
  it 'should allow populated Dial.client' do
@@ -455,7 +461,14 @@ describe Twilio::TwiML::VoiceResponse do
455
461
  r = Twilio::TwiML::VoiceResponse.new
456
462
  r.append(g)
457
463
 
458
- expect(r.to_s).to eq('<?xml version="1.0" encoding="UTF-8"?><Response><Gather><Say>Hey</Say><Play>hey.mp3</Play><Pause/></Gather></Response>')
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>')
459
472
  end
460
473
  end
461
474
  end