intercom 2.5.4 → 3.0.0b1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -2
  3. data/README.md +97 -118
  4. data/changes.txt +3 -0
  5. data/intercom.gemspec +1 -1
  6. data/lib/intercom.rb +13 -153
  7. data/lib/intercom/admin.rb +0 -2
  8. data/lib/intercom/api_operations/convert.rb +5 -5
  9. data/lib/intercom/api_operations/delete.rb +4 -6
  10. data/lib/intercom/api_operations/find.rb +9 -15
  11. data/lib/intercom/api_operations/find_all.rb +16 -21
  12. data/lib/intercom/api_operations/list.rb +4 -10
  13. data/lib/intercom/api_operations/load.rb +6 -6
  14. data/lib/intercom/api_operations/save.rb +23 -28
  15. data/lib/intercom/client.rb +95 -0
  16. data/lib/intercom/{collection_proxy.rb → client_collection_proxy.rb} +5 -8
  17. data/lib/intercom/company.rb +0 -16
  18. data/lib/intercom/contact.rb +0 -11
  19. data/lib/intercom/conversation.rb +0 -10
  20. data/lib/intercom/event.rb +0 -2
  21. data/lib/intercom/extended_api_operations/segments.rb +13 -0
  22. data/lib/intercom/extended_api_operations/tags.rb +4 -5
  23. data/lib/intercom/extended_api_operations/users.rb +3 -5
  24. data/lib/intercom/message.rb +0 -2
  25. data/lib/intercom/note.rb +1 -10
  26. data/lib/intercom/options.rb +11 -0
  27. data/lib/intercom/request.rb +9 -5
  28. data/lib/intercom/segment.rb +0 -7
  29. data/lib/intercom/service/admin.rb +14 -0
  30. data/lib/intercom/service/base_service.rb +21 -0
  31. data/lib/intercom/service/company.rb +28 -0
  32. data/lib/intercom/service/contact.rb +22 -0
  33. data/lib/intercom/service/conversation.rb +31 -0
  34. data/lib/intercom/service/event.rb +14 -0
  35. data/lib/intercom/service/message.rb +14 -0
  36. data/lib/intercom/service/note.rb +22 -0
  37. data/lib/intercom/service/segment.rb +16 -0
  38. data/lib/intercom/service/subscription.rb +21 -0
  39. data/lib/intercom/service/tag.rb +30 -0
  40. data/lib/intercom/service/user.rb +28 -0
  41. data/lib/intercom/subscription.rb +0 -8
  42. data/lib/intercom/tag.rb +0 -16
  43. data/lib/intercom/user.rb +0 -16
  44. data/lib/intercom/utils.rb +0 -1
  45. data/lib/intercom/version.rb +1 -1
  46. data/spec/spec_helper.rb +117 -0
  47. data/spec/unit/intercom/admin_spec.rb +11 -4
  48. data/spec/unit/intercom/client_collection_proxy_spec.rb +35 -0
  49. data/spec/unit/intercom/client_spec.rb +21 -0
  50. data/spec/unit/intercom/company_spec.rb +24 -11
  51. data/spec/unit/intercom/contact_spec.rb +7 -5
  52. data/spec/unit/intercom/conversation_spec.rb +28 -0
  53. data/spec/unit/intercom/event_spec.rb +6 -5
  54. data/spec/unit/intercom/message_spec.rb +9 -8
  55. data/spec/unit/intercom/note_spec.rb +9 -2
  56. data/spec/unit/intercom/segment_spec.rb +12 -0
  57. data/spec/unit/intercom/subscription_spec.rb +7 -5
  58. data/spec/unit/intercom/tag_spec.rb +13 -7
  59. data/spec/unit/intercom/user_spec.rb +41 -33
  60. data/spec/unit/intercom_spec.rb +0 -83
  61. metadata +30 -20
  62. data/lib/intercom/api_operations/count.rb +0 -16
  63. data/lib/intercom/count.rb +0 -21
  64. data/lib/intercom/extended_api_operations/reply.rb +0 -16
  65. data/lib/intercom/generic_handlers/base_handler.rb +0 -22
  66. data/lib/intercom/generic_handlers/count.rb +0 -59
  67. data/lib/intercom/generic_handlers/tag.rb +0 -71
  68. data/lib/intercom/generic_handlers/tag_find_all.rb +0 -47
  69. data/lib/intercom/notification.rb +0 -20
  70. data/lib/intercom/traits/generic_handler_binding.rb +0 -29
  71. data/spec/unit/intercom/collection_proxy_spec.rb +0 -34
  72. data/spec/unit/intercom/notification_spec.rb +0 -68
@@ -1,12 +1,19 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "notes" do
4
+ let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
5
+
4
6
  it "creates a note" do
5
- Intercom.expects(:post).with("/notes", {"body" => "Note to leave on user"}).returns({"body" => "<p>Note to leave on user</p>", "created_at" => 1234567890})
6
- note = Intercom::Note.create("body" => "Note to leave on user")
7
+ client.expects(:post).with("/notes", {"body" => "Note to leave on user"}).returns({"body" => "<p>Note to leave on user</p>", "created_at" => 1234567890})
8
+ note = client.notes.create("body" => "Note to leave on user")
7
9
  note.body.must_equal "<p>Note to leave on user</p>"
8
10
  end
9
11
 
12
+ it 'gets a note' do
13
+ client.expects(:get).with("/notes/123", {}).returns({"id" => "123", "body" => "<p>Note to leave on user</p>", "created_at" => 1234567890})
14
+ client.notes.find(id: '123')
15
+ end
16
+
10
17
  it "sets/gets allowed keys" do
11
18
  params = {"body" => "Note body", "email" => "me@example.com", :user_id => "abc123"}
12
19
  note = Intercom::Note.new(params)
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Intercom::Segment" do
4
+
5
+ let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
6
+
7
+ it 'lists segments' do
8
+ client.expects(:get).with('/segments', {}).returns(segment_list)
9
+ segments = client.segments.all.to_a
10
+ segments[0].name.must_equal('Active')
11
+ end
12
+ end
@@ -1,18 +1,20 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Intercom::Subscription" do
4
+ let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
5
+
4
6
  it "gets a subscription" do
5
- Intercom.expects(:get).with("/subscriptions/nsub_123456789", {}).returns(test_subscription)
6
- subscription = Intercom::Subscription.find(:id => "nsub_123456789")
7
+ client.expects(:get).with("/subscriptions/nsub_123456789", {}).returns(test_subscription)
8
+ subscription = client.subscriptions.find(:id => "nsub_123456789")
7
9
  subscription.request.topics[0].must_equal "user.created"
8
10
  subscription.request.topics[1].must_equal "conversation.user.replied"
9
11
  end
10
12
 
11
13
  it "creates a subscription" do
12
- Intercom.expects(:post).with("/subscriptions", {'url' => "http://example.com", 'topics' => ["user.created"]}).returns(test_subscription)
13
- subscription = Intercom::Subscription.create(:url => "http://example.com", :topics => ["user.created"])
14
+ client.expects(:post).with("/subscriptions", {'url' => "http://example.com", 'topics' => ["user.created"]}).returns(test_subscription)
15
+ subscription = client.subscriptions.create(:url => "http://example.com", :topics => ["user.created"])
14
16
  subscription.request.topics[0].must_equal "user.created"
15
17
  subscription.request.url.must_equal "http://example.com"
16
18
  end
17
19
 
18
- end
20
+ end
@@ -1,23 +1,29 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Intercom::Tag" do
4
+ let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
5
+
4
6
  it "gets a tag" do
5
- Intercom.expects(:get).with("/tags", {:name => "Test Tag"}).returns(test_tag)
6
- tag = Intercom::Tag.find(:name => "Test Tag")
7
+ client.expects(:get).with("/tags", {:name => "Test Tag"}).returns(test_tag)
8
+ tag = client.tags.find(:name => "Test Tag")
7
9
  tag.name.must_equal "Test Tag"
8
10
  end
9
11
 
10
12
  it "creates a tag" do
11
- Intercom.expects(:post).with("/tags", {'name' => "Test Tag"}).returns(test_tag)
12
- tag = Intercom::Tag.create(:name => "Test Tag")
13
+ client.expects(:post).with("/tags", {'name' => "Test Tag"}).returns(test_tag)
14
+ tag = client.tags.create(:name => "Test Tag")
13
15
  tag.name.must_equal "Test Tag"
14
16
  end
15
17
 
16
18
  it "tags users" do
17
- Intercom.expects(:post).with("/tags", {'name' => "Test Tag", 'user_ids' => ["abc123", "def456"], 'tag_or_untag' => "tag"}).returns(test_tag)
18
- tag = Intercom::Tag.create(:name => "Test Tag", :user_ids => ["abc123", "def456"], :tag_or_untag => "tag")
19
+ client.expects(:post).with("/tags", {'name' => "Test Tag", 'users' => [ { user_id: 'abc123' }, { user_id: 'def456' } ], 'tag_or_untag' => 'tag'}).returns(test_tag)
20
+ tag = client.tags.tag(:name => "Test Tag", :users => [ { user_id: "abc123" }, { user_id: "def456" } ] )
19
21
  tag.name.must_equal "Test Tag"
20
22
  tag.tagged_user_count.must_equal 2
21
23
  end
22
24
 
23
- end
25
+ it 'untags users' do
26
+ client.expects(:post).with("/tags", {'name' => "Test Tag", 'users' => [ { user_id: 'abc123' }, { user_id: 'def456' } ], 'tag_or_untag' => 'untag'}).returns(test_tag)
27
+ client.tags.untag(:name => "Test Tag", :users => [ { user_id: "abc123" }, { user_id: "def456" } ])
28
+ end
29
+ end
@@ -1,6 +1,8 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "Intercom::User" do
4
+ let (:client) { Intercom::Client.new(app_id: 'app_id', api_key: 'api_key') }
5
+
4
6
  it "to_hash'es itself" do
5
7
  created_at = Time.now
6
8
  user = Intercom::User.new(:email => "jim@example.com", :user_id => "12345", :created_at => created_at, :name => "Jim Bob")
@@ -77,10 +79,10 @@ describe "Intercom::User" do
77
79
  user.unsubscribed_from_emails.must_equal true
78
80
  user.user_agent_data.must_equal "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
79
81
  end
80
-
82
+
81
83
  it 'allows update_last_request_at' do
82
- Intercom.expects(:post).with("/users", {"user_id" => "1224242", 'update_last_request_at' => true, "custom_attributes" => {}}).returns({"user_id" => "i-1224242", "last_request_at" => 1414509439})
83
- Intercom::User.create(user_id:'1224242', update_last_request_at:true)
84
+ client.expects(:post).with("/users", {"user_id" => "1224242", 'update_last_request_at' => true, "custom_attributes" => {}}).returns({"user_id" => "i-1224242", "last_request_at" => 1414509439})
85
+ client.users.create(user_id: '1224242', update_last_request_at: true)
84
86
  end
85
87
 
86
88
  it "allows easy setting of custom data" do
@@ -104,7 +106,7 @@ describe "Intercom::User" do
104
106
 
105
107
  it "rejects nested data structures in custom_attributes" do
106
108
  user = Intercom::User.new()
107
-
109
+
108
110
  proc { user.custom_attributes["thing"] = [1] }.must_raise(ArgumentError)
109
111
  proc { user.custom_attributes["thing"] = {1 => 2} }.must_raise(ArgumentError)
110
112
  proc { user.custom_attributes["thing"] = {1 => {2 => 3}} }.must_raise(ArgumentError)
@@ -147,58 +149,68 @@ describe "Intercom::User" do
147
149
  end
148
150
 
149
151
  it "fetches a user" do
150
- Intercom.expects(:get).with("/users", {"email" => "bo@example.com"}).returns(test_user)
151
- user = Intercom::User.find("email" => "bo@example.com")
152
+ client.expects(:get).with("/users", {"email" => "bo@example.com"}).returns(test_user)
153
+ user = client.users.find("email" => "bo@example.com")
152
154
  user.email.must_equal "bob@example.com"
153
155
  user.name.must_equal "Joe Schmoe"
154
156
  user.session_count.must_equal 123
155
157
  end
156
158
 
159
+ it 'gets users by tag' do
160
+ client.expects(:get).with("/users?tag_id=124", {}).returns(page_of_users(false))
161
+ client.users.by_tag(124).each { |t| }
162
+ end
163
+
164
+ it 'gets users by segment' do
165
+ client.expects(:get).with("/users?segment_id=124", {}).returns(page_of_users(false))
166
+ client.users.by_segment(124).each { |t| }
167
+ end
168
+
157
169
  it "saves a user (always sends custom_attributes)" do
158
170
  user = Intercom::User.new("email" => "jo@example.com", :user_id => "i-1224242")
159
- Intercom.expects(:post).with("/users", {"email" => "jo@example.com", "user_id" => "i-1224242", "custom_attributes" => {}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
160
- user.save
171
+ client.expects(:post).with("/users", {"email" => "jo@example.com", "user_id" => "i-1224242", "custom_attributes" => {}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
172
+ client.users.save(user)
161
173
  end
162
174
 
163
175
  it "saves a user with a company" do
164
176
  user = Intercom::User.new("email" => "jo@example.com", :user_id => "i-1224242", :company => {'company_id' => 6, 'name' => "Intercom"})
165
- Intercom.expects(:post).with("/users", {'custom_attributes' => {}, "user_id" => "i-1224242", "email" => "jo@example.com", "company" => {"company_id" => 6, "name" => "Intercom"}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
166
- user.save
177
+ client.expects(:post).with("/users", {'custom_attributes' => {}, "user_id" => "i-1224242", "email" => "jo@example.com", "company" => {"company_id" => 6, "name" => "Intercom"}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
178
+ client.users.save(user)
167
179
  end
168
180
 
169
181
  it "saves a user with a companies" do
170
182
  user = Intercom::User.new("email" => "jo@example.com", :user_id => "i-1224242", :companies => [{'company_id' => 6, 'name' => "Intercom"}])
171
- Intercom.expects(:post).with("/users", {'custom_attributes' => {}, "email" => "jo@example.com", "user_id" => "i-1224242", "companies" => [{"company_id" => 6, "name" => "Intercom"}]}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
172
- user.save
183
+ client.expects(:post).with("/users", {'custom_attributes' => {}, "email" => "jo@example.com", "user_id" => "i-1224242", "companies" => [{"company_id" => 6, "name" => "Intercom"}]}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
184
+ client.users.save(user)
173
185
  end
174
-
186
+
175
187
  it 'can save a user with a nil email' do
176
188
  user = Intercom::User.new("email" => nil, :user_id => "i-1224242", :companies => [{'company_id' => 6, 'name' => "Intercom"}])
177
- Intercom.expects(:post).with("/users", {'custom_attributes' => {}, "email" => nil, "user_id" => "i-1224242", "companies" => [{"company_id" => 6, "name" => "Intercom"}]}).returns({"email" => nil, "user_id" => "i-1224242"})
178
- user.save
189
+ client.expects(:post).with("/users", {'custom_attributes' => {}, "email" => nil, "user_id" => "i-1224242", "companies" => [{"company_id" => 6, "name" => "Intercom"}]}).returns({"email" => nil, "user_id" => "i-1224242"})
190
+ client.users.save(user)
179
191
  end
180
192
 
181
193
  it "deletes a user" do
182
194
  user = Intercom::User.new("id" => "1")
183
- Intercom.expects(:delete).with("/users/1", {}).returns(user)
184
- user.delete
195
+ client.expects(:delete).with("/users/1", {}).returns(user)
196
+ client.users.delete(user)
185
197
  end
186
198
 
187
- it "can use User.create for convenience" do
188
- Intercom.expects(:post).with("/users", {'custom_attributes' => {}, "email" => "jo@example.com", "user_id" => "i-1224242"}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
189
- user = Intercom::User.create("email" => "jo@example.com", :user_id => "i-1224242")
199
+ it "can use client.users.create for convenience" do
200
+ client.expects(:post).with("/users", {'custom_attributes' => {}, "email" => "jo@example.com", "user_id" => "i-1224242"}).returns({"email" => "jo@example.com", "user_id" => "i-1224242"})
201
+ user = client.users.create("email" => "jo@example.com", :user_id => "i-1224242")
190
202
  user.email.must_equal "jo@example.com"
191
203
  end
192
204
 
193
- it "updates the @user with attributes as set by the server" do
194
- Intercom.expects(:post).with("/users", {"email" => "jo@example.com", "user_id" => "i-1224242", 'custom_attributes' => {}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242", "session_count" => 4})
195
- user = Intercom::User.create("email" => "jo@example.com", :user_id => "i-1224242")
205
+ it "updates the user with attributes as set by the server" do
206
+ client.expects(:post).with("/users", {"email" => "jo@example.com", "user_id" => "i-1224242", 'custom_attributes' => {}}).returns({"email" => "jo@example.com", "user_id" => "i-1224242", "session_count" => 4})
207
+ user = client.users.create("email" => "jo@example.com", :user_id => "i-1224242")
196
208
  user.session_count.must_equal 4
197
209
  end
198
210
 
199
211
  it "allows setting dates to nil without converting them to 0" do
200
- Intercom.expects(:post).with("/users", {"email" => "jo@example.com", 'custom_attributes' => {}, "remote_created_at" => nil}).returns({"email" => "jo@example.com"})
201
- user = Intercom::User.create("email" => "jo@example.com", "remote_created_at" => nil)
212
+ client.expects(:post).with("/users", {"email" => "jo@example.com", 'custom_attributes' => {}, "remote_created_at" => nil}).returns({"email" => "jo@example.com"})
213
+ user = client.users.create("email" => "jo@example.com", "remote_created_at" => nil)
202
214
  user.remote_created_at.must_equal nil
203
215
  end
204
216
 
@@ -217,14 +229,10 @@ describe "Intercom::User" do
217
229
  user.new_param.must_equal "some value"
218
230
  end
219
231
 
220
- it "returns a CollectionProxy for all without making any requests" do
221
- Intercom.expects(:execute_request).never
222
- all = Intercom::User.all
223
- all.must_be_instance_of(Intercom::CollectionProxy)
232
+ it "returns a ClientCollectionProxy for all without making any requests" do
233
+ client.expects(:execute_request).never
234
+ all = client.users.all
235
+ all.must_be_instance_of(Intercom::ClientCollectionProxy)
224
236
  end
225
237
 
226
- it "returns the total number of users" do
227
- Intercom::Count.expects(:user_count).returns('count_info')
228
- Intercom::User.count
229
- end
230
238
  end
@@ -4,87 +4,4 @@ describe Intercom do
4
4
  it "has a version number" do
5
5
  Intercom::VERSION.must_match(/\d+\.\d+\.\d+/)
6
6
  end
7
-
8
- describe "API" do
9
- before do
10
- Intercom.app_id = "abc123"
11
- Intercom.app_api_key = "super-secret-key"
12
- end
13
-
14
- it "raises ArgumentError if no app_id or app_api_key specified" do
15
- Intercom.app_id = nil
16
- Intercom.app_api_key = nil
17
- proc { Intercom.target_base_url }.must_raise ArgumentError, "You must set both Intercom.app_id and Intercom.app_api_key to use this client. See https://github.com/intercom/intercom-ruby for usage examples."
18
- end
19
-
20
- it 'raises an Intercom::MultipleMatchingUsers error when receiving a conflict' do
21
- multiple_matching_error = { 'type' => 'error.list', 'errors' => [{ 'code' => 'conflict', 'message' => 'Multiple existing users match this email address - must be more specific using user_id' }]}
22
- proc {Intercom::Request.new('/users', :get).raise_application_errors_on_failure(multiple_matching_error, 400)}.must_raise(Intercom::MultipleMatchingUsersError)
23
- end
24
-
25
- it "returns the app_id and app_api_key previously set" do
26
- Intercom.app_id.must_equal "abc123"
27
- Intercom.app_api_key.must_equal "super-secret-key"
28
- end
29
-
30
- it "defaults to https to api.intercom.io" do
31
- Intercom.target_base_url.must_equal "https://abc123:super-secret-key@api.intercom.io"
32
- end
33
-
34
- it "raises ResourceNotFound if get a 404" do
35
-
36
- end
37
-
38
- describe "overriding protocol/hostname" do
39
- before do
40
- @protocol = Intercom.protocol
41
- @hostname = Intercom.hostname
42
- Intercom.endpoints = nil
43
- end
44
-
45
- after do
46
- Intercom.protocol = @protocol
47
- Intercom.hostname = @hostname
48
- Intercom.endpoints = ["https://api.intercom.io"]
49
- end
50
-
51
- it "allows overriding of the endpoint and protocol" do
52
- Intercom.protocol = "http"
53
- Intercom.hostname = "localhost:3000"
54
- Intercom.target_base_url.must_equal "http://abc123:super-secret-key@localhost:3000"
55
- end
56
-
57
- it "prefers endpoints" do
58
- Intercom.endpoint = "https://localhost:7654"
59
- Intercom.target_base_url.must_equal "https://abc123:super-secret-key@localhost:7654"
60
- Intercom.endpoints = unshuffleable_array(["http://example.com","https://localhost:7654"])
61
- Intercom.target_base_url.must_equal "http://abc123:super-secret-key@example.com"
62
- end
63
-
64
- it "has endpoints" do
65
- Intercom.endpoints.must_equal ["https://api.intercom.io"]
66
- Intercom.endpoints = ["http://example.com","https://localhost:7654"]
67
- Intercom.endpoints.must_equal ["http://example.com","https://localhost:7654"]
68
- end
69
-
70
- it "should randomize endpoints if last checked endpoint is > 5 minutes ago" do
71
- Intercom.instance_variable_set(:@current_endpoint, "http://start")
72
- Intercom.instance_variable_set(:@endpoints, ["http://alternative"])
73
- Intercom.instance_variable_set(:@endpoint_randomized_at, Time.now - 120)
74
- Intercom.current_endpoint.must_equal "http://start"
75
- Intercom.instance_variable_set(:@endpoint_randomized_at, Time.now - 360)
76
- Intercom.current_endpoint.must_equal "http://alternative"
77
- Intercom.instance_variable_get(:@endpoint_randomized_at).to_i.must_be_close_to Time.now.to_i
78
- end
79
- end
80
- end
81
-
82
-
83
- it "checks for email or user id" do
84
- proc { Intercom.check_required_params("else") }.must_raise ArgumentError, "Expected params Hash, got String"
85
- proc { Intercom.check_required_params(:something => "else") }.must_raise ArgumentError, "Either email or user_id must be specified"
86
- Intercom.check_required_params(:email => "bob@example.com", :something => "else")
87
- Intercom.check_required_params("email" => "bob@example.com", :something => "else")
88
- Intercom.check_required_params(:user_id => "123")
89
- end
90
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intercom
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.4
4
+ version: 3.0.0b1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben McRedmond
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2015-05-08 00:00:00.000000000 Z
18
+ date: 2015-06-04 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: minitest
@@ -116,56 +116,64 @@ files:
116
116
  - lib/intercom.rb
117
117
  - lib/intercom/admin.rb
118
118
  - lib/intercom/api_operations/convert.rb
119
- - lib/intercom/api_operations/count.rb
120
119
  - lib/intercom/api_operations/delete.rb
121
120
  - lib/intercom/api_operations/find.rb
122
121
  - lib/intercom/api_operations/find_all.rb
123
122
  - lib/intercom/api_operations/list.rb
124
123
  - lib/intercom/api_operations/load.rb
125
124
  - lib/intercom/api_operations/save.rb
126
- - lib/intercom/collection_proxy.rb
125
+ - lib/intercom/client.rb
126
+ - lib/intercom/client_collection_proxy.rb
127
127
  - lib/intercom/company.rb
128
128
  - lib/intercom/contact.rb
129
129
  - lib/intercom/conversation.rb
130
- - lib/intercom/count.rb
131
130
  - lib/intercom/errors.rb
132
131
  - lib/intercom/event.rb
133
- - lib/intercom/extended_api_operations/reply.rb
132
+ - lib/intercom/extended_api_operations/segments.rb
134
133
  - lib/intercom/extended_api_operations/tags.rb
135
134
  - lib/intercom/extended_api_operations/users.rb
136
- - lib/intercom/generic_handlers/base_handler.rb
137
- - lib/intercom/generic_handlers/count.rb
138
- - lib/intercom/generic_handlers/tag.rb
139
- - lib/intercom/generic_handlers/tag_find_all.rb
140
135
  - lib/intercom/lib/dynamic_accessors.rb
141
136
  - lib/intercom/lib/dynamic_accessors_on_method_missing.rb
142
137
  - lib/intercom/lib/flat_store.rb
143
138
  - lib/intercom/lib/typed_json_deserializer.rb
144
139
  - lib/intercom/message.rb
145
140
  - lib/intercom/note.rb
146
- - lib/intercom/notification.rb
141
+ - lib/intercom/options.rb
147
142
  - lib/intercom/request.rb
148
143
  - lib/intercom/segment.rb
144
+ - lib/intercom/service/admin.rb
145
+ - lib/intercom/service/base_service.rb
146
+ - lib/intercom/service/company.rb
147
+ - lib/intercom/service/contact.rb
148
+ - lib/intercom/service/conversation.rb
149
+ - lib/intercom/service/event.rb
150
+ - lib/intercom/service/message.rb
151
+ - lib/intercom/service/note.rb
152
+ - lib/intercom/service/segment.rb
153
+ - lib/intercom/service/subscription.rb
154
+ - lib/intercom/service/tag.rb
155
+ - lib/intercom/service/user.rb
149
156
  - lib/intercom/subscription.rb
150
157
  - lib/intercom/tag.rb
151
158
  - lib/intercom/traits/api_resource.rb
152
159
  - lib/intercom/traits/dirty_tracking.rb
153
- - lib/intercom/traits/generic_handler_binding.rb
154
160
  - lib/intercom/traits/incrementable_attributes.rb
155
161
  - lib/intercom/user.rb
156
162
  - lib/intercom/utils.rb
157
163
  - lib/intercom/version.rb
158
164
  - spec/spec_helper.rb
159
165
  - spec/unit/intercom/admin_spec.rb
160
- - spec/unit/intercom/collection_proxy_spec.rb
166
+ - spec/unit/intercom/client_collection_proxy_spec.rb
167
+ - spec/unit/intercom/client_spec.rb
161
168
  - spec/unit/intercom/company_spec.rb
162
169
  - spec/unit/intercom/contact_spec.rb
170
+ - spec/unit/intercom/conversation_spec.rb
163
171
  - spec/unit/intercom/event_spec.rb
164
172
  - spec/unit/intercom/lib/flat_store_spec.rb
165
173
  - spec/unit/intercom/message_spec.rb
166
174
  - spec/unit/intercom/note_spec.rb
167
- - spec/unit/intercom/notification_spec.rb
168
175
  - spec/unit/intercom/request_spec.rb
176
+ - spec/unit/intercom/segment_spec.rb
169
177
  - spec/unit/intercom/subscription_spec.rb
170
178
  - spec/unit/intercom/tag_spec.rb
171
179
  - spec/unit/intercom/traits/api_resource_spec.rb
@@ -183,30 +191,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
191
  requirements:
184
192
  - - ">="
185
193
  - !ruby/object:Gem::Version
186
- version: 1.9.3
194
+ version: 2.1.0
187
195
  required_rubygems_version: !ruby/object:Gem::Requirement
188
196
  requirements:
189
- - - ">="
197
+ - - ">"
190
198
  - !ruby/object:Gem::Version
191
- version: '0'
199
+ version: 1.3.1
192
200
  requirements: []
193
201
  rubyforge_project: intercom
194
- rubygems_version: 2.2.3
202
+ rubygems_version: 2.2.2
195
203
  signing_key:
196
204
  specification_version: 4
197
205
  summary: Ruby bindings for the Intercom API
198
206
  test_files:
199
207
  - spec/spec_helper.rb
200
208
  - spec/unit/intercom/admin_spec.rb
201
- - spec/unit/intercom/collection_proxy_spec.rb
209
+ - spec/unit/intercom/client_collection_proxy_spec.rb
210
+ - spec/unit/intercom/client_spec.rb
202
211
  - spec/unit/intercom/company_spec.rb
203
212
  - spec/unit/intercom/contact_spec.rb
213
+ - spec/unit/intercom/conversation_spec.rb
204
214
  - spec/unit/intercom/event_spec.rb
205
215
  - spec/unit/intercom/lib/flat_store_spec.rb
206
216
  - spec/unit/intercom/message_spec.rb
207
217
  - spec/unit/intercom/note_spec.rb
208
- - spec/unit/intercom/notification_spec.rb
209
218
  - spec/unit/intercom/request_spec.rb
219
+ - spec/unit/intercom/segment_spec.rb
210
220
  - spec/unit/intercom/subscription_spec.rb
211
221
  - spec/unit/intercom/tag_spec.rb
212
222
  - spec/unit/intercom/traits/api_resource_spec.rb