twilio-ruby 4.9.0 → 4.9.1.edge

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e41bd27229164a4057d478fc1bc3e630d997871f
4
- data.tar.gz: d8409920627a61c7e705f95bbf0b561c0b84c7a2
3
+ metadata.gz: 628afbc2fae022bac83b8b6f58311748083676fe
4
+ data.tar.gz: 3013a7bd0dbca01bfa5b779f5e20bbae959c2f36
5
5
  SHA512:
6
- metadata.gz: ff802ee347f6c9b86062ac035f66eda1ea4f22a4e4603db93e2e0edfa157a6550d80b259dc53755924230247a9c54ac4649de2a6155ffb6c93192252fd7e8e9d
7
- data.tar.gz: 1843e518f0e1d2511e1cf53f37f6debb631372c2c7351310488dc9fe77f0d234f30d8e415d4358ebd98844b30744ac13941d8db18ab92e01f7cae5dc747958ee
6
+ metadata.gz: b73eb76821ab3af0943646285c5f4110683468f15e4f2c10f2ca653baa1c8de4a54dd4cb9cbb6956ac51fbcf919cd3c5cfc4546ee0453ab72db86486a8d8977e
7
+ data.tar.gz: 8a5754c43ad42dfb5c5b04b22d90ee10ceb64d650dedc6097ca9863c25c08cda9cd8cbeacca8f7d1ce3e17c1d267f72e0f988d03e66e649edfdd80b620628336
data/CHANGES.md CHANGED
@@ -1,6 +1,13 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ Version 4.9.1-edge
5
+ -------------
6
+
7
+ Release December 17, 2015
8
+
9
+ - Fix ip-messaging grant issue
10
+
4
11
  Version 4.9.0
5
12
  -------------
6
13
 
data/lib/twilio-ruby.rb CHANGED
@@ -36,6 +36,10 @@ require 'twilio-ruby/rest/pricing/phone_numbers'
36
36
  require 'twilio-ruby/rest/pricing/voice/numbers'
37
37
  require 'twilio-ruby/rest/pricing/voice'
38
38
  require 'twilio-ruby/rest/pricing/messaging'
39
+ require 'twilio-ruby/rest/conversations/in_progress'
40
+ require 'twilio-ruby/rest/conversations/completed'
41
+ require 'twilio-ruby/rest/conversations/conversations'
42
+ require 'twilio-ruby/rest/conversations/participants'
39
43
  require 'twilio-ruby/rest/ip-messaging/services'
40
44
  require 'twilio-ruby/rest/ip-messaging/channels'
41
45
  require 'twilio-ruby/rest/ip-messaging/members'
@@ -104,6 +108,7 @@ require 'twilio-ruby/rest/notifications'
104
108
  require 'twilio-ruby/rest/addresses'
105
109
  require 'twilio-ruby/rest/addresses/dependent_phone_numbers'
106
110
  require 'twilio-ruby/rest/client'
111
+ require 'twilio-ruby/rest/conversations_client'
107
112
  require 'twilio-ruby/rest/task_router_client'
108
113
  require 'twilio-ruby/rest/trunking_client'
109
114
  require 'twilio-ruby/rest/lookups_client'
@@ -0,0 +1,13 @@
1
+ module Twilio
2
+ module REST
3
+ module Conversations
4
+ class Completed < NextGenListResource
5
+ def initialize(path, client)
6
+ @path, @client = path, client
7
+ @instance_class = Twilio::REST::Conversations::Conversation
8
+ @instance_id_key = 'sid'
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ module Twilio
2
+ module REST
3
+ module Conversations
4
+ class Conversations < NextGenListResource
5
+ def initialize(path, client)
6
+ @path, @client = path, client
7
+ @submodule = :Conversations
8
+ freeze_path
9
+ resource :in_progress,
10
+ :completed
11
+ end
12
+ end
13
+
14
+ class Conversation < InstanceResource
15
+ def initialize(path, client, params={})
16
+ super
17
+ @submodule = :Conversations
18
+ resource :participants
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ module Twilio
2
+ module REST
3
+ module Conversations
4
+ class InProgress < NextGenListResource
5
+ def initialize(path, client)
6
+ @path, @client = path, client
7
+ @instance_class = Twilio::REST::Conversations::Conversation
8
+ @instance_id_key = 'sid'
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ module Twilio
2
+ module REST
3
+ module Conversations
4
+ class Participants < NextGenListResource; end
5
+ class Participant < InstanceResource; end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,99 @@
1
+ require 'twilio-ruby/rest/base_client'
2
+ module Twilio
3
+ module REST
4
+ class ConversationsClient < BaseClient
5
+ API_VERSION = 'v1'
6
+
7
+ attr_reader :conversations
8
+
9
+ host 'conversations.twilio.com'
10
+
11
+ ##
12
+ # Instantiate a new HTTP Conversations client to talk to Twilio. The parameters
13
+ # +account_sid+, +auth_token+ are required, unless you have configured
14
+ # them already using the block configure syntax, and used to generate the
15
+ # HTTP basic auth header in each request. The +options+ parameter is a
16
+ # hash of connection configuration options. the following keys are
17
+ # supported:
18
+ #
19
+ # === <tt>host: 'conversations.twilio.com'</tt>
20
+ #
21
+ # The domain to which you'd like the client to make HTTP requests. Useful
22
+ # for testing. Defaults to 'conversations.twilio.com'.
23
+ #
24
+ # === <tt>port: 443</tt>
25
+ #
26
+ # The port on which to connect to the above domain. Defaults to 443 and
27
+ # should be left that way except in testing environments.
28
+ #
29
+ # === <tt>use_ssl: true</tt>
30
+ #
31
+ # Declare whether ssl should be used for connections to the above domain.
32
+ # Defaults to true and should be left alone except when testing.
33
+ #
34
+ # === <tt>ssl_verify_peer: true</tt>
35
+ #
36
+ # Declare whether to verify the host's ssl cert when setting up the
37
+ # connection to the above domain. Defaults to true, but can be turned off
38
+ # to avoid ssl certificate verification failures in environments without
39
+ # the necessary ca certificates.
40
+ #
41
+ # === <tt>ssl_ca_file: '/path/to/ca/file'</tt>
42
+ #
43
+ # Specify the path to the certificate authority bundle you'd like to use
44
+ # to verify Twilio's SSL certificate on each request. If not specified, a
45
+ # certificate bundle extraced from Firefox is packaged with the gem and
46
+ # used by default.
47
+ #
48
+ # === <tt>timeout: 30</tt>
49
+ #
50
+ # Set the time in seconds to wait before timing out the HTTP request.
51
+ # Defaults to 30 seconds. If you aren't fetching giant pages of call or
52
+ # SMS logs you can safely decrease this to something like 3 seconds or
53
+ # lower. In paricular if you are sending SMS you can set this to 1 second
54
+ # or less and swallow the exception if you don't care about the response.
55
+ #
56
+ # === <tt>proxy_addr: 'proxy.host.domain'</tt>
57
+ #
58
+ # The domain of a proxy through which you'd like the client to make HTTP
59
+ # requests. Defaults to nil.
60
+ #
61
+ # === <tt>proxy_port: 3128</tt>
62
+ #
63
+ # The port on which to connect to the above proxy. Defaults to nil.
64
+ #
65
+ # === <tt>proxy_user: 'username'</tt>
66
+ #
67
+ # The user name to use for authentication with the proxy. Defaults to nil.
68
+ #
69
+ # === <tt>proxy_pass: 'password'</tt>
70
+ #
71
+ # The password to use for authentication with the proxy. Defaults to nil.
72
+ #
73
+ # === <tt>retry_limit: 1</tt>
74
+ #
75
+ # The number of times to retry a request that has failed before throwing
76
+ # an exception. Defaults to one.
77
+ def inspect # :nodoc:
78
+ "<Twilio::REST::ConversationsClient @account_sid=#{@account_sid}>"
79
+ end
80
+
81
+ protected
82
+
83
+ ##
84
+ # Create subresource properties
85
+ def set_up_subresources # :doc:
86
+ @conversations = Twilio::REST::Conversations::Conversations.new "/#{API_VERSION}/Conversations", self
87
+ end
88
+
89
+ ##
90
+ # Builds up full request path
91
+ def build_full_path(path, params, method)
92
+ path = path.dup
93
+ path << "?#{url_encode(params)}" if method == :get && !params.empty?
94
+ path
95
+ end
96
+
97
+ end
98
+ end
99
+ end
@@ -10,7 +10,7 @@ module Twilio
10
10
  'Countries' => 'Country',
11
11
  'Feedback' => 'FeedbackInstance',
12
12
  'IpAddresses' => 'IpAddress',
13
- 'Media' => 'MediaInstance',
13
+ 'Media' => 'MediaInstance'
14
14
  }
15
15
  @path, @client = path, client
16
16
  resource_name = self.class.name.split('::')[-1]
@@ -46,7 +46,8 @@ module Twilio
46
46
  raise "Can't get a resource list without a REST Client" unless @client
47
47
  response = @client.get @path, params, full_path
48
48
  resources = response[@list_key]
49
- path = full_path ? @path.split('.')[0] : @path
49
+ path = @frozen_path ? @frozen_path : @path
50
+ path = full_path ? path.split('.')[0] : path
50
51
  resource_list = resources.map do |resource|
51
52
  @instance_class.new "#{path}/#{resource[@instance_id_key]}", @client,
52
53
  resource
@@ -80,7 +81,7 @@ module Twilio
80
81
  # attribute of the returned instance resource object, such as
81
82
  # its #date_created or #voice_url attributes.
82
83
  def get(sid)
83
- @instance_class.new "#{@path}/#{sid}", @client
84
+ @instance_class.new "#{@frozen_path || @path}/#{sid}", @client
84
85
  end
85
86
  alias :find :get # for the ActiveRecord lovers
86
87
 
@@ -4,11 +4,12 @@ module Twilio
4
4
  def list(params={}, full_path=false)
5
5
  raise "Can't get a resource list without a REST Client" unless @client
6
6
  response = @client.get @path, params, full_path
7
- list_key = response['meta']['key']
7
+ list_key = response['meta']['key'] if response['meta']
8
8
  raise "Couldn't find a list key in response meta" unless list_key
9
9
  resources = response[list_key]
10
+ path = @frozen_path ? @frozen_path : @path
10
11
  resource_list = resources.map do |resource|
11
- @instance_class.new "#{@path}/#{resource[@instance_id_key]}", @client,
12
+ @instance_class.new "#{path}/#{resource[@instance_id_key]}", @client,
12
13
  resource
13
14
  end
14
15
  client, list_class = @client, self.class
@@ -19,6 +19,13 @@ module Twilio
19
19
 
20
20
  protected
21
21
 
22
+ # Freeze the base list path.
23
+ # Used on list resources so filters (such as /Local) do not affect the
24
+ # instance resource path.
25
+ def freeze_path
26
+ @frozen_path = @path
27
+ end
28
+
22
29
  def resource(*resources)
23
30
  custom_resource_names = { sms: 'SMS', sip: 'SIP' }
24
31
  resources.each do |r|
@@ -31,7 +38,11 @@ module Twilio
31
38
  Twilio::REST.const_get(@submodule)
32
39
  end
33
40
  resource_class = enclosing_module.const_get resource
34
- instance_variable_set("@#{r}", resource_class.new(path, @client))
41
+ resource_object = resource_class.new(path, @client)
42
+ instance_variable_set("@#{r}", resource_object)
43
+ if @frozen_path
44
+ resource_object.instance_variable_set(:@frozen_path, @frozen_path)
45
+ end
35
46
  end
36
47
  self.class.instance_eval { attr_reader *resources }
37
48
  end
@@ -43,6 +43,7 @@ module Twilio
43
43
  'exp' => now + @ttl,
44
44
  'grants' => grants
45
45
  }
46
+
46
47
  payload['nbf'] = @nbf unless @nbf.nil?
47
48
 
48
49
  JWT.encode payload, @secret, algorithm, headers
@@ -88,10 +89,10 @@ module Twilio
88
89
  if @endpoint_id
89
90
  payload['endpoint_id'] = @endpoint_id
90
91
  end
91
- if @role_sid
92
+ if @deployment_role_sid
92
93
  payload['deployment_role_sid'] = @deployment_role_sid
93
94
  end
94
- if @credential_sid
95
+ if @push_credential_sid
95
96
  payload['push_credential_sid'] = @push_credential_sid
96
97
  end
97
98
 
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '4.9.0'
2
+ VERSION = '4.9.1.edge'
3
3
  end
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Twilio::REST::Conversations::Conversations do
4
+
5
+ it 'creates an in_progress property' do
6
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
7
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
8
+ expect(conversations).to respond_to(:in_progress)
9
+ end
10
+
11
+ it 'creates a completed property' do
12
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
13
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
14
+ expect(conversations).to respond_to(:completed)
15
+ end
16
+
17
+ end
18
+
19
+ describe Twilio::REST::Conversations::InProgress do
20
+ it 'gets constructed by conversations' do
21
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
22
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
23
+ expect(conversations.in_progress.instance_variable_get('@path')).to eq('/v1/Conversations/InProgress')
24
+ end
25
+ it 'uses Conversation as its instance class' do
26
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
27
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
28
+ expect(conversations.in_progress.instance_variable_get('@instance_class')).to eq(Twilio::REST::Conversations::Conversation)
29
+ end
30
+ end
31
+
32
+ describe Twilio::REST::Conversations::Completed do
33
+ it 'gets constructed by conversations' do
34
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
35
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
36
+ expect(conversations.completed.instance_variable_get('@path')).to eq('/v1/Conversations/Completed')
37
+ end
38
+ it 'uses Conversation as its instance class' do
39
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
40
+ conversations = Twilio::REST::Conversations::Conversations.new '/v1/Conversations', client
41
+ expect(conversations.completed.instance_variable_get('@instance_class')).to eq(Twilio::REST::Conversations::Conversation)
42
+ end
43
+ end
44
+
45
+ describe Twilio::REST::Conversations::Conversation do
46
+ it 'has correct path when fetched from /InProgress' do
47
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
48
+ conversation = client.conversations.in_progress.get('CA123')
49
+ expect(conversation.instance_variable_get('@path')).to eq('/v1/Conversations/CA123')
50
+ end
51
+ it 'has correct path when fetched from /Completed' do
52
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
53
+ conversation = client.conversations.completed.get('CA123')
54
+ expect(conversation.instance_variable_get('@path')).to eq('/v1/Conversations/CA123')
55
+ end
56
+ it 'sets up participants subresource' do
57
+ client = Twilio::REST::ConversationsClient.new 'otherSid', 'otherToken'
58
+ conversation = Twilio::REST::Conversations::Conversation.new '/v1/Conversations/CA123', client
59
+ expect(conversation).to respond_to(:participants)
60
+ end
61
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Twilio::REST::ConversationsClient do
4
+ before do
5
+ @client = Twilio::REST::ConversationsClient.new('AC123', 'foobar')
6
+ end
7
+
8
+ it 'should set up an conversations resources object' do
9
+ expect(@client).to respond_to(:conversations)
10
+ expect(@client.conversations.instance_variable_get('@path')).to eq('/v1/Conversations')
11
+ end
12
+
13
+ end
@@ -14,6 +14,7 @@ describe Twilio::Util::AccessToken do
14
14
  expect(payload['exp']).to be >= Time.now.to_i
15
15
  expect(payload['jti']).not_to be_nil
16
16
  expect(payload['jti']).to start_with payload['iss']
17
+ expect(payload['nbf']).to be_nil
17
18
  expect(payload['grants']).not_to be_nil
18
19
  expect(payload['grants'].count).to eq(0)
19
20
  end
@@ -62,7 +63,13 @@ describe Twilio::Util::AccessToken do
62
63
 
63
64
  it 'should be able to add endpoint grants' do
64
65
  scat = Twilio::Util::AccessToken.new 'AC123', 'SK123','secret'
65
- scat.add_grant(Twilio::Util::AccessToken::IpMessagingGrant.new)
66
+
67
+ grant = Twilio::Util::AccessToken::IpMessagingGrant.new
68
+ grant.push_credential_sid = 'CR123'
69
+ grant.deployment_role_sid = 'DR123'
70
+ grant.service_sid = 'IS123'
71
+ grant.endpoint_id = 'EP123'
72
+ scat.add_grant(grant)
66
73
 
67
74
  token = scat.to_s
68
75
  expect(token).not_to be_nil
@@ -77,6 +84,10 @@ describe Twilio::Util::AccessToken do
77
84
  expect(payload['grants']).not_to be_nil
78
85
  expect(payload['grants'].count).to eq(1)
79
86
  expect(payload['grants']['ip_messaging']).not_to be_nil
87
+ expect(payload['grants']['ip_messaging']['service_sid']).to eq('IS123')
88
+ expect(payload['grants']['ip_messaging']['endpoint_id']).to eq('EP123')
89
+ expect(payload['grants']['ip_messaging']['push_credential_sid']).to eq('CR123')
90
+ expect(payload['grants']['ip_messaging']['deployment_role_sid']).to eq('DR123')
80
91
  end
81
92
 
82
93
  it 'should add rest grants' do
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.9.0
4
+ version: 4.9.1.edge
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Benton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-17 00:00:00.000000000 Z
11
+ date: 2016-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.3.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.3.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: builder
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.1.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.1.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: jwt
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.5'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.5'
69
69
  description: A simple library for communicating with the Twilio REST API, building
@@ -76,8 +76,8 @@ extra_rdoc_files:
76
76
  - README.md
77
77
  - LICENSE.md
78
78
  files:
79
- - ".gitignore"
80
- - ".travis.yml"
79
+ - .gitignore
80
+ - .travis.yml
81
81
  - AUTHORS.md
82
82
  - CHANGES.md
83
83
  - Gemfile
@@ -150,6 +150,11 @@ files:
150
150
  - lib/twilio-ruby/rest/conferences.rb
151
151
  - lib/twilio-ruby/rest/conferences/participants.rb
152
152
  - lib/twilio-ruby/rest/connect_apps.rb
153
+ - lib/twilio-ruby/rest/conversations/completed.rb
154
+ - lib/twilio-ruby/rest/conversations/conversations.rb
155
+ - lib/twilio-ruby/rest/conversations/in_progress.rb
156
+ - lib/twilio-ruby/rest/conversations/participants.rb
157
+ - lib/twilio-ruby/rest/conversations_client.rb
153
158
  - lib/twilio-ruby/rest/errors.rb
154
159
  - lib/twilio-ruby/rest/incoming_phone_numbers.rb
155
160
  - lib/twilio-ruby/rest/incoming_phone_numbers/local.rb
@@ -235,6 +240,7 @@ files:
235
240
  - lib/twilio-ruby/util/configuration.rb
236
241
  - lib/twilio-ruby/util/request_validator.rb
237
242
  - lib/twilio-ruby/version.rb
243
+ - spec/conversations/conversations_spec.rb
238
244
  - spec/rack/twilio_webhook_authentication_spec.rb
239
245
  - spec/rest/account_spec.rb
240
246
  - spec/rest/address_spec.rb
@@ -243,6 +249,7 @@ files:
243
249
  - spec/rest/call_spec.rb
244
250
  - spec/rest/client_spec.rb
245
251
  - spec/rest/conference_spec.rb
252
+ - spec/rest/conversations_client_spec.rb
246
253
  - spec/rest/instance_resource_spec.rb
247
254
  - spec/rest/ip-messaging/channel_spec.rb
248
255
  - spec/rest/ip-messaging/service_spec.rb
@@ -284,24 +291,24 @@ licenses:
284
291
  metadata: {}
285
292
  post_install_message:
286
293
  rdoc_options:
287
- - "--line-numbers"
288
- - "--inline-source"
289
- - "--title"
294
+ - --line-numbers
295
+ - --inline-source
296
+ - --title
290
297
  - twilio-ruby
291
- - "--main"
298
+ - --main
292
299
  - README.md
293
300
  require_paths:
294
301
  - lib
295
302
  required_ruby_version: !ruby/object:Gem::Requirement
296
303
  requirements:
297
- - - ">="
304
+ - - '>='
298
305
  - !ruby/object:Gem::Version
299
306
  version: 1.9.3
300
307
  required_rubygems_version: !ruby/object:Gem::Requirement
301
308
  requirements:
302
- - - ">="
309
+ - - '>'
303
310
  - !ruby/object:Gem::Version
304
- version: '0'
311
+ version: 1.3.1
305
312
  requirements: []
306
313
  rubyforge_project:
307
314
  rubygems_version: 2.4.8
@@ -310,6 +317,7 @@ specification_version: 4
310
317
  summary: A simple library for communicating with the Twilio REST API, building TwiML,
311
318
  and generating Twilio Client Capability Tokens
312
319
  test_files:
320
+ - spec/conversations/conversations_spec.rb
313
321
  - spec/rack/twilio_webhook_authentication_spec.rb
314
322
  - spec/rest/account_spec.rb
315
323
  - spec/rest/address_spec.rb
@@ -318,6 +326,7 @@ test_files:
318
326
  - spec/rest/call_spec.rb
319
327
  - spec/rest/client_spec.rb
320
328
  - spec/rest/conference_spec.rb
329
+ - spec/rest/conversations_client_spec.rb
321
330
  - spec/rest/instance_resource_spec.rb
322
331
  - spec/rest/ip-messaging/channel_spec.rb
323
332
  - spec/rest/ip-messaging/service_spec.rb