intercom 2.5.4 → 3.0.0b1

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 (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