twilio-ruby 5.0.0.rc26 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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