intercom 0.1.12 → 0.1.13
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 +7 -0
- data/changes.txt +3 -0
- data/intercom.gemspec +1 -1
- data/lib/intercom/message_thread.rb +12 -2
- data/lib/intercom/user.rb +15 -0
- data/lib/intercom/version.rb +1 -1
- data/spec/spec_helper.rb +5 -1
- data/spec/unit/intercom/message_thread_spec.rb +1 -1
- data/spec/unit/intercom/user_spec.rb +45 -0
- metadata +17 -23
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b1cf597e7167e94a21fc5c87f30a68971539d723
|
4
|
+
data.tar.gz: 2f7292ed806ece40ea6e7f681cd66b3b2b6b15c2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 963e7576902470b933f63a9c5fb330366ef3addc5336155b9f1ad7be627a91dee57317f52b754944a061b504fdfbea3eef4081131570dfc43dde66ee992262c1
|
7
|
+
data.tar.gz: 9567e21985af78ea96cd4a85ccb7c4028af60125f7e04775bf79de53d857a5136ded318bd409fdb5d2ba4fed5a210585189c56a64974f68240652e723ea484df
|
data/changes.txt
CHANGED
data/intercom.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.homepage = "https://www.intercom.io"
|
12
12
|
spec.summary = %q{Ruby bindings for the Intercom API}
|
13
13
|
spec.description = %Q{Intercom (https://www.intercom.io) is a customer relationship management and messaging tool for web app owners. This library wraps the api provided by Intercom. See http://docs.intercom.io/api for more details. }
|
14
|
-
|
14
|
+
spec.license = "MIT"
|
15
15
|
spec.rubyforge_project = "intercom"
|
16
16
|
|
17
17
|
spec.files = `git ls-files`.split("\n")
|
@@ -144,7 +144,7 @@ module Intercom
|
|
144
144
|
|
145
145
|
# each {Message} in a {MessageThread} has a {MessageAuthor}
|
146
146
|
#
|
147
|
-
# Admin authors have a name, and
|
147
|
+
# Admin authors have a name, avatar_path_25, avatar_path_50, and avatar_path_128. Non-admin authors have a name, user_id and email.
|
148
148
|
class MessageAuthor
|
149
149
|
# Used to create a {MessageAuthor} from part of the response from the API
|
150
150
|
def initialize(params)
|
@@ -166,9 +166,19 @@ module Intercom
|
|
166
166
|
@attributes['user_id']
|
167
167
|
end
|
168
168
|
|
169
|
+
# @return [String] url of 25x25 avatar of the admin who posted this message (only available when {#admin?} is true)
|
170
|
+
def avatar_path_25
|
171
|
+
self.admin? ? @attributes['avatar']['square_25'] : nil
|
172
|
+
end
|
173
|
+
|
169
174
|
# @return [String] url of 50x50 avatar of the admin who posted this message (only available when {#admin?} is true)
|
170
175
|
def avatar_path_50
|
171
|
-
@attributes['
|
176
|
+
self.admin? ? @attributes['avatar']['square_50'] : nil
|
177
|
+
end
|
178
|
+
|
179
|
+
# @return [String] url of 128x128 avatar of the admin who posted this message (only available when {#admin?} is true)
|
180
|
+
def avatar_path_128
|
181
|
+
self.admin? ? @attributes['avatar']['square_128'] : nil
|
172
182
|
end
|
173
183
|
|
174
184
|
# @return [String] real name of the Admin/User, when available.
|
data/lib/intercom/user.rb
CHANGED
@@ -129,6 +129,13 @@ module Intercom
|
|
129
129
|
self.update_from_api_response(response)
|
130
130
|
end
|
131
131
|
|
132
|
+
# Increment a custom data value on a user
|
133
|
+
# @return [User]
|
134
|
+
def increment(key, value=1)
|
135
|
+
increments[key] ||= 0
|
136
|
+
increments[key] += value
|
137
|
+
end
|
138
|
+
|
132
139
|
# @return [String] the {User}'s name
|
133
140
|
def name
|
134
141
|
@attributes["name"]
|
@@ -330,5 +337,13 @@ module Intercom
|
|
330
337
|
def location_data=(hash) #:nodoc:
|
331
338
|
@location_data = hash.freeze
|
332
339
|
end
|
340
|
+
|
341
|
+
def increments
|
342
|
+
@attributes["increments"] ||= {}
|
343
|
+
end
|
344
|
+
|
345
|
+
def increments=(hash)
|
346
|
+
@attributes["increments"] = hash
|
347
|
+
end
|
333
348
|
end
|
334
349
|
end
|
data/lib/intercom/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -54,7 +54,11 @@ def test_message
|
|
54
54
|
"rendered_body" => "<p>Not much, you?</p>\n",
|
55
55
|
"from" => {
|
56
56
|
"name" => "Super Duper Admin",
|
57
|
-
"
|
57
|
+
"avatar" => {
|
58
|
+
"square_25" => "https://static.intercomcdn.com/avatars/13347/square_25/Ruairi_Profile.png?1375368166",
|
59
|
+
"square_50" => "https://static.intercomcdn.com/avatars/13347/square_50/Ruairi_Profile.png?1375368166",
|
60
|
+
"square_128" => "https://static.intercomcdn.com/avatars/13347/square_128/Ruairi_Profile.png?1375368166"
|
61
|
+
},
|
58
62
|
"is_admin" => true
|
59
63
|
}
|
60
64
|
},
|
@@ -68,7 +68,7 @@ describe "/v1/messages_threads" do
|
|
68
68
|
message_thread.messages[1].from.name.must_equal from_1['name']
|
69
69
|
message_thread.messages[1].from.admin?.must_equal from_1['is_admin']
|
70
70
|
message_thread.messages[1].from.user_id.must_equal from_1['user_id']
|
71
|
-
message_thread.messages[1].from.avatar_path_50.must_equal from_1['
|
71
|
+
message_thread.messages[1].from.avatar_path_50.must_equal from_1['avatar']['square_50']
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -107,6 +107,51 @@ describe "Intercom::User" do
|
|
107
107
|
proc { user.custom_data["thing"] = [1] }.must_raise ArgumentError
|
108
108
|
end
|
109
109
|
|
110
|
+
describe "incrementing custom_data fields" do
|
111
|
+
before :each do
|
112
|
+
@now = Time.now
|
113
|
+
@user = Intercom::User.new("email" => "jo@example.com", :user_id => "i-1224242", :custom_data => {"mad" => 123, "another" => 432, "other" => @now.to_i, :thing => "yay"})
|
114
|
+
end
|
115
|
+
|
116
|
+
it "increments up by 1 with no args" do
|
117
|
+
@user.increment("mad")
|
118
|
+
@user.to_hash["increments"].must_equal "mad" => 1
|
119
|
+
end
|
120
|
+
|
121
|
+
it "increments up by given value" do
|
122
|
+
@user.increment("mad", 4)
|
123
|
+
@user.to_hash["increments"].must_equal "mad" => 4
|
124
|
+
end
|
125
|
+
|
126
|
+
it "increments down by given value" do
|
127
|
+
@user.increment("mad", -1)
|
128
|
+
@user.to_hash["increments"].must_equal "mad" => -1
|
129
|
+
end
|
130
|
+
|
131
|
+
it "doesn't allow direct access to increments hash" do
|
132
|
+
proc { @user.increments["mad"] = 1 }.must_raise NoMethodError
|
133
|
+
proc { @user.increments }.must_raise NoMethodError
|
134
|
+
end
|
135
|
+
|
136
|
+
it "can update the increments hash without losing previous changes" do
|
137
|
+
@user.increment("mad")
|
138
|
+
@user.to_hash["increments"].must_equal "mad" => 1
|
139
|
+
@user.increment("another", -2)
|
140
|
+
@user.to_hash["increments"].must_equal "mad" => 1, "another" => -2
|
141
|
+
end
|
142
|
+
|
143
|
+
it "can increment new custom data fields" do
|
144
|
+
@user.increment("new_field", 3)
|
145
|
+
@user.to_hash["increments"].must_equal "new_field" => 3
|
146
|
+
end
|
147
|
+
|
148
|
+
it "can call increment on the same key twice and increment by 2" do
|
149
|
+
@user.increment("mad")
|
150
|
+
@user.increment("mad")
|
151
|
+
@user.to_hash["increments"].must_equal "mad" => 2
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
110
155
|
it "fetches a user" do
|
111
156
|
Intercom.expects(:get).with("/v1/users", {"email" => "bo@example.com"}).returns(test_user)
|
112
157
|
user = Intercom::User.find("email" => "bo@example.com")
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: intercom
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.13
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ben McRedmond
|
@@ -13,57 +12,51 @@ authors:
|
|
13
12
|
autorequire:
|
14
13
|
bindir: bin
|
15
14
|
cert_chain: []
|
16
|
-
date: 2013-08-
|
15
|
+
date: 2013-08-29 00:00:00.000000000 Z
|
17
16
|
dependencies:
|
18
17
|
- !ruby/object:Gem::Dependency
|
19
18
|
name: minitest
|
20
19
|
requirement: !ruby/object:Gem::Requirement
|
21
|
-
none: false
|
22
20
|
requirements:
|
23
|
-
- -
|
21
|
+
- - '>='
|
24
22
|
- !ruby/object:Gem::Version
|
25
23
|
version: '0'
|
26
24
|
type: :development
|
27
25
|
prerelease: false
|
28
26
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
27
|
requirements:
|
31
|
-
- -
|
28
|
+
- - '>='
|
32
29
|
- !ruby/object:Gem::Version
|
33
30
|
version: '0'
|
34
31
|
- !ruby/object:Gem::Dependency
|
35
32
|
name: rake
|
36
33
|
requirement: !ruby/object:Gem::Requirement
|
37
|
-
none: false
|
38
34
|
requirements:
|
39
|
-
- -
|
35
|
+
- - '>='
|
40
36
|
- !ruby/object:Gem::Version
|
41
37
|
version: '0'
|
42
38
|
type: :development
|
43
39
|
prerelease: false
|
44
40
|
version_requirements: !ruby/object:Gem::Requirement
|
45
|
-
none: false
|
46
41
|
requirements:
|
47
|
-
- -
|
42
|
+
- - '>='
|
48
43
|
- !ruby/object:Gem::Version
|
49
44
|
version: '0'
|
50
45
|
- !ruby/object:Gem::Dependency
|
51
46
|
name: mocha
|
52
47
|
requirement: !ruby/object:Gem::Requirement
|
53
|
-
none: false
|
54
48
|
requirements:
|
55
|
-
- -
|
49
|
+
- - '>='
|
56
50
|
- !ruby/object:Gem::Version
|
57
51
|
version: '0'
|
58
52
|
type: :development
|
59
53
|
prerelease: false
|
60
54
|
version_requirements: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
55
|
requirements:
|
63
|
-
- -
|
56
|
+
- - '>='
|
64
57
|
- !ruby/object:Gem::Version
|
65
58
|
version: '0'
|
66
|
-
description:
|
59
|
+
description: 'Intercom (https://www.intercom.io) is a customer relationship management
|
67
60
|
and messaging tool for web app owners. This library wraps the api provided by Intercom.
|
68
61
|
See http://docs.intercom.io/api for more details. '
|
69
62
|
email:
|
@@ -112,28 +105,28 @@ files:
|
|
112
105
|
- spec/unit/intercom/user_spec.rb
|
113
106
|
- spec/unit/intercom_spec.rb
|
114
107
|
homepage: https://www.intercom.io
|
115
|
-
licenses:
|
108
|
+
licenses:
|
109
|
+
- MIT
|
110
|
+
metadata: {}
|
116
111
|
post_install_message:
|
117
112
|
rdoc_options: []
|
118
113
|
require_paths:
|
119
114
|
- lib
|
120
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
116
|
requirements:
|
123
|
-
- -
|
117
|
+
- - '>='
|
124
118
|
- !ruby/object:Gem::Version
|
125
119
|
version: '0'
|
126
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
|
-
none: false
|
128
121
|
requirements:
|
129
|
-
- -
|
122
|
+
- - '>='
|
130
123
|
- !ruby/object:Gem::Version
|
131
124
|
version: '0'
|
132
125
|
requirements: []
|
133
126
|
rubyforge_project: intercom
|
134
|
-
rubygems_version:
|
127
|
+
rubygems_version: 2.0.3
|
135
128
|
signing_key:
|
136
|
-
specification_version:
|
129
|
+
specification_version: 4
|
137
130
|
summary: Ruby bindings for the Intercom API
|
138
131
|
test_files:
|
139
132
|
- spec/integration/intercom_api_integration_spec.rb
|
@@ -147,3 +140,4 @@ test_files:
|
|
147
140
|
- spec/unit/intercom/user_resource_spec.rb
|
148
141
|
- spec/unit/intercom/user_spec.rb
|
149
142
|
- spec/unit/intercom_spec.rb
|
143
|
+
has_rdoc:
|