capsule_crm 1.10.3 → 1.10.4

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: 1285e326a851d39a7de50ac4877a021e3244ca17
4
- data.tar.gz: 5f5668ee2771528bf0cd99a51b90c503dc91fd13
3
+ metadata.gz: 865ee033f500a769892f7e7483eeec3f4cd8b832
4
+ data.tar.gz: 2ede88b29d161c31525dc7fef8899c7cd2793240
5
5
  SHA512:
6
- metadata.gz: 19272f32c360e946216faff6d1180f1eb130267b9818bab93cf5bdee54c4e4d4725d9844a18b5bdf604a4fcbee5a2965be291fd0aaab9cb1ddb8653373e72354
7
- data.tar.gz: 51823fe7fe4fc47419f57c763f77db1c06bbbc6586e683c5fa336c253706671ad98d4c4840d66894eaeeca8c9f3846ebb3c07fa9356f7acf6929e2b9c5e5647e
6
+ metadata.gz: ed1b78da61e615596e3ab5be572ac9d90917a3d31ae672c709aaa954c363e03f9e7df543f2b6da8747a1eeef1a3b2d0544e0f853fd2704fbcdfb4434de139079
7
+ data.tar.gz: 3d73c58f3fcc18e162cf28ef0f9b096dd4b6d5844fa2f949341d7b93208737685f31052bca6a1e47e8e54f38ae120d21bd2bdbd22290d7da24ff129ce3bc113c
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.10.4
4
+
5
+ - Use UTC when serializing times.
6
+ [#97](https://github.com/mattbeedle/capsule_crm/pull/97)
7
+ - Upgraded to RSpec ~> 2.99.0 and fixed deprecations in preparation for RSpec
8
+ 3 upgrade
9
+
3
10
  ## 1.10.3
4
11
 
5
12
  - Fix regression introduced in 1.10.1 where any records that do not respond
@@ -34,7 +34,7 @@ Gem::Specification.new do |gem|
34
34
  gem.add_development_dependency('guard-bundler')
35
35
  gem.add_development_dependency('guard-rspec')
36
36
  gem.add_development_dependency('rb-fsevent')
37
- gem.add_development_dependency('rspec', '~> 2.14.0')
37
+ gem.add_development_dependency('rspec', '~> 2.99.0')
38
38
  gem.add_development_dependency('shoulda-matchers')
39
39
  gem.add_development_dependency('webmock')
40
40
  end
@@ -84,7 +84,7 @@ module CapsuleCRM
84
84
  attrs.each do |key, value|
85
85
  attrs[key] = value.to_s(:db) if value.is_a?(Date)
86
86
  if value.is_a?(DateTime)
87
- attrs[key] = value.strftime("%Y-%m-%dT%H:%M:%SZ")
87
+ attrs[key] = value.utc.strftime('%Y-%m-%dT%H:%M:%SZ')
88
88
  end
89
89
  end
90
90
  additional_methods.each do |method|
@@ -3,9 +3,11 @@ module CapsuleCRM
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def tags
6
- CapsuleCRM::Connection.get(
6
+ tags = CapsuleCRM::Connection.get(
7
7
  "/api/#{api_singular_name}/#{id}/tag"
8
- )['tags']['tag'].map { |item| CapsuleCRM::Tag.new(item) }
8
+ )['tags']['tag']
9
+ tags = [tags] if tags.is_a? Hash
10
+ tags.map { |item| CapsuleCRM::Tag.new(item) }
9
11
  end
10
12
 
11
13
  def add_tag(tag_name)
@@ -1,3 +1,3 @@
1
1
  module CapsuleCrm
2
- VERSION = '1.10.3'
2
+ VERSION = '1.10.4'
3
3
  end
@@ -5,7 +5,7 @@ class CapsuleCRM::SomeClass
5
5
 
6
6
  attribute :name
7
7
 
8
- def self._for_mock(mock_id)
8
+ def self._for_double(mock_id)
9
9
  ['test']
10
10
  end
11
11
  end
@@ -81,7 +81,7 @@ describe CapsuleCRM::Contacts do
81
81
 
82
82
  it do
83
83
  subject.addresses.
84
- all? { |address| address.is_a?(CapsuleCRM::Address) }.should be_true
84
+ all? { |address| address.is_a?(CapsuleCRM::Address) }.should eql(true)
85
85
  end
86
86
  end
87
87
 
@@ -92,7 +92,7 @@ describe CapsuleCRM::Contacts do
92
92
 
93
93
  it do
94
94
  subject.emails.
95
- all? { |email| email.is_a?(CapsuleCRM::Email) }.should be_true
95
+ all? { |email| email.is_a?(CapsuleCRM::Email) }.should eql(true)
96
96
  end
97
97
  end
98
98
 
@@ -103,7 +103,7 @@ describe CapsuleCRM::Contacts do
103
103
 
104
104
  it do
105
105
  subject.phones.
106
- all? { |phone| phone.is_a?(CapsuleCRM::Phone) }.should be_true
106
+ all? { |phone| phone.is_a?(CapsuleCRM::Phone) }.should eql(true)
107
107
  end
108
108
  end
109
109
 
@@ -114,7 +114,7 @@ describe CapsuleCRM::Contacts do
114
114
 
115
115
  it do
116
116
  subject.websites.
117
- all? { |website| website.is_a?(CapsuleCRM::Website) }.should be_true
117
+ all? { |website| website.is_a?(CapsuleCRM::Website) }.should eql(true)
118
118
  end
119
119
  end
120
120
  end
@@ -28,7 +28,7 @@ describe CapsuleCRM::CustomField do
28
28
  it { should be_an(Array) }
29
29
  it do
30
30
  subject.all? { |item| item.is_a?(CapsuleCRM::CustomField) }.
31
- should be_true
31
+ should eql(true)
32
32
  end
33
33
  end
34
34
 
@@ -69,7 +69,7 @@ describe CapsuleCRM::History do
69
69
  it { should be_a(Array) }
70
70
 
71
71
  it do
72
- subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should be_true
72
+ subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should eql(true)
73
73
  end
74
74
  end
75
75
 
@@ -97,7 +97,7 @@ describe CapsuleCRM::History do
97
97
  it { should be_a(Array) }
98
98
 
99
99
  it do
100
- subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should be_true
100
+ subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should eql(true)
101
101
  end
102
102
  end
103
103
 
@@ -125,7 +125,7 @@ describe CapsuleCRM::History do
125
125
  it { should be_a(Array) }
126
126
 
127
127
  it do
128
- subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should be_true
128
+ subject.all? { |item| item.is_a?(CapsuleCRM::History) }.should eql(true)
129
129
  end
130
130
  end
131
131
 
@@ -150,25 +150,63 @@ describe CapsuleCRM::History do
150
150
  end
151
151
  subject { CapsuleCRM::History.find(100) }
152
152
 
153
- its(:type) { should eql('Note') }
154
- its(:creator) { should be_a(CapsuleCRM::User) }
155
- its(:entry_date) { should_not be_blank }
156
- its(:subject) { should_not be_blank }
157
- its(:note) { should_not be_blank }
158
- its(:attachments) { should be_a(Array) }
159
- it { expect(first_attachment).to be_a(CapsuleCRM::Attachment) }
160
- it { expect(first_attachment.filename).to eql('latin.doc') }
161
- its(:participants) { should be_a(Array) }
162
- it { expect(first_participant).to be_a(CapsuleCRM::Participant) }
163
- it { expect(first_participant.name).to eql('Matt Beedle') }
153
+ it 'type is note' do
154
+ expect(subject.type).to eql('Note')
155
+ end
156
+
157
+ it 'creator is a CapsuleCRM::User' do
158
+ expect(subject.creator).to be_a(CapsuleCRM::User)
159
+ end
160
+
161
+ it 'entry date is not blank' do
162
+ expect(subject.entry_date).not_to be_blank
163
+ end
164
+
165
+ it 'subject is not blank' do
166
+ expect(subject.subject).not_to be_blank
167
+ end
168
+
169
+ it 'note is not blank' do
170
+ expect(subject.note).not_to be_blank
171
+ end
172
+
173
+ it 'attachments is an array' do
174
+ expect(subject.attachments).to be_a(Array)
175
+ end
176
+
177
+ it 'attachments array contains CapsuleCRM::Attachment objects' do
178
+ expect(first_attachment).to be_a(CapsuleCRM::Attachment)
179
+ end
180
+
181
+ it 'has the correct attachment filename' do
182
+ expect(first_attachment.filename).to eql('latin.doc')
183
+ end
184
+
185
+ it 'has an array of participants' do
186
+ expect(subject.participants).to be_a(Array)
187
+ end
188
+
189
+ it 'has CapsuleCRM::Participant objects inside the participants array' do
190
+ expect(first_participant).to be_a(CapsuleCRM::Participant)
191
+ end
192
+
193
+ it 'has the correct participant names' do
194
+ expect(first_participant.name).to eql('Matt Beedle')
195
+ end
164
196
 
165
197
  context 'when it belongs to a party' do
166
198
  before do
167
199
  stub_request(:get, /\/api\/party\/1$/).
168
200
  to_return(body: File.read('spec/support/person.json'))
169
201
  end
170
- its(:party_id) { should_not be_blank }
171
- its(:party) { should_not be_blank }
202
+
203
+ it 'has a party_id' do
204
+ expect(subject.party_id).not_to be_blank
205
+ end
206
+
207
+ it 'has a party' do
208
+ expect(subject.party).not_to be_blank
209
+ end
172
210
  end
173
211
 
174
212
  context 'when it belongs to a case' do
@@ -177,8 +215,13 @@ describe CapsuleCRM::History do
177
215
  to_return(body: File.read('spec/support/case.json'))
178
216
  end
179
217
 
180
- its(:case_id) { should_not be_blank }
181
- its(:case) { should_not be_blank }
218
+ it 'has a case_id' do
219
+ expect(subject.case_id).not_to be_blank
220
+ end
221
+
222
+ it 'has a case' do
223
+ expect(subject.case).not_to be_blank
224
+ end
182
225
  end
183
226
 
184
227
  context 'when it belongs to an opportunity' do
@@ -187,8 +230,13 @@ describe CapsuleCRM::History do
187
230
  to_return(body: File.read('spec/support/opportunity.json'))
188
231
  end
189
232
 
190
- its(:opportunity_id) { should_not be_blank }
191
- its(:opportunity) { should_not be_blank }
233
+ it 'has an opportunity_id' do
234
+ expect(subject.opportunity_id).not_to be_blank
235
+ end
236
+
237
+ it 'has an opportunity' do
238
+ expect(subject.opportunity).not_to be_blank
239
+ end
192
240
  end
193
241
  end
194
242
 
@@ -205,13 +253,17 @@ describe CapsuleCRM::History do
205
253
  context 'when the user exists' do
206
254
  before { history.creator = 'a.user' }
207
255
 
208
- its(:creator) { should be_a(CapsuleCRM::User) }
256
+ it 'has a creator' do
257
+ expect(subject.creator).to be_a(CapsuleCRM::User)
258
+ end
209
259
  end
210
260
 
211
261
  context 'when the user does not exist' do
212
262
  before { history.creator = 'asdfadsfdsaf' }
213
263
 
214
- its(:creator) { should be_blank }
264
+ it 'has no creator' do
265
+ expect(subject.creator).to be_blank
266
+ end
215
267
  end
216
268
  end
217
269
 
@@ -219,7 +271,9 @@ describe CapsuleCRM::History do
219
271
  let(:user) { CapsuleCRM::User.new }
220
272
  before { history.creator = user }
221
273
 
222
- its(:creator) { should eql(user) }
274
+ it 'has a creator' do
275
+ expect(subject.creator).to eql(user)
276
+ end
223
277
  end
224
278
  end
225
279
 
@@ -241,13 +295,21 @@ describe CapsuleCRM::History do
241
295
  let(:participants_json) { subject[:historyItem]['participants'] }
242
296
  subject { history.to_capsule_json }
243
297
 
244
- it { expect(subject.keys.first).to eql('historyItem') }
245
- it do
298
+ it 'has historyItem as the first key' do
299
+ expect(subject.keys.first).to eql('historyItem')
300
+ end
301
+
302
+ it 'has the correct history item entry date' do
246
303
  expect(subject['historyItem']['entryDate']).
247
- to eql(history.entry_date.strftime("%Y-%m-%dT%H:%M:%SZ"))
304
+ to eql(history.entry_date.utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
305
+ end
306
+
307
+ it 'has the correct history item creator' do
308
+ expect(subject['historyItem']['creator']).to eql(creator.username)
309
+ end
310
+
311
+ it 'has the correct history item note' do
312
+ expect(subject['historyItem']['note']).to eql(history.note)
248
313
  end
249
- it { expect(subject['historyItem']['creator']).to eql(creator.username) }
250
- it { expect(subject['historyItem']['note']).to eql(history.note) }
251
- it { expect(subject['historyItem']).to have_key('note') }
252
314
  end
253
315
  end
@@ -2,10 +2,10 @@ require 'spec_helper'
2
2
 
3
3
  describe CapsuleCRM::Normalizer do
4
4
  describe '#normalize' do
5
- pending
5
+ skip
6
6
  end
7
7
 
8
8
  describe '#normalize_collection' do
9
- pending
9
+ skip
10
10
  end
11
11
  end
@@ -87,7 +87,7 @@ describe CapsuleCRM::Organization do
87
87
  it { should be_a(Array) }
88
88
 
89
89
  it do
90
- subject.all? { |item| item.is_a?(CapsuleCRM::Person) }.should be_true
90
+ subject.all? { |item| item.is_a?(CapsuleCRM::Person) }.should eql(true)
91
91
  end
92
92
  end
93
93
 
@@ -155,13 +155,13 @@ describe CapsuleCRM::Person do
155
155
  subject { person.send(:first_name_required?) }
156
156
 
157
157
  context 'when there is no last name' do
158
- it { should be_true }
158
+ it { should eql(true) }
159
159
  end
160
160
 
161
161
  context 'when there is a last name' do
162
162
  before { person.last_name = 'Beedle' }
163
163
 
164
- it { should be_false }
164
+ it { should eql(false) }
165
165
  end
166
166
  end
167
167
 
@@ -171,13 +171,13 @@ describe CapsuleCRM::Person do
171
171
  subject { person.send(:last_name_required?) }
172
172
 
173
173
  context 'when there is no first name' do
174
- it { should be_true }
174
+ it { should eql(true) }
175
175
  end
176
176
 
177
177
  context 'when there is a first name' do
178
178
  before { person.first_name = 'Matt' }
179
179
 
180
- it { should be_false }
180
+ it { should eql(false) }
181
181
  end
182
182
  end
183
183
 
@@ -8,6 +8,7 @@ class SerializableTest
8
8
  attribute :name
9
9
  attribute :description
10
10
  attribute :something, Date
11
+ attribute :a_timestamp, DateTime
11
12
  end
12
13
 
13
14
  class SerializableInverse
@@ -130,5 +131,16 @@ describe CapsuleCRM::Serializer do
130
131
  to eql(Date.today.to_s(:db))
131
132
  end
132
133
  end
134
+
135
+ context 'when there are datetimes' do
136
+ let(:time) { Time.now }
137
+
138
+ before { object.a_timestamp = time }
139
+
140
+ it 'uses the UTC time' do
141
+ expect(subject['serializabletest']['aTimestamp'])
142
+ .to eql(time.utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
143
+ end
144
+ end
133
145
  end
134
146
  end
@@ -28,12 +28,25 @@ describe CapsuleCRM::Taggable do
28
28
  it { subject.length.should eql(2) }
29
29
 
30
30
  it do
31
- subject.all? { |item| item.is_a?(CapsuleCRM::Tag) }.should be_true
31
+ subject.all? { |item| item.is_a?(CapsuleCRM::Tag) }.should eql(true)
32
32
  end
33
33
 
34
34
  it { subject.first.name.should eql('Customer') }
35
35
 
36
36
  it { subject.last.name.should eql('VIP') }
37
+
38
+ context 'when taggable item has one tag' do
39
+ before do
40
+ stub_request(:get, /\/api\/taggableitem\/2\/tag$/).
41
+ to_return(body: File.read('spec/support/one_tag.json'))
42
+ end
43
+
44
+ let(:taggable_item) { TaggableItem.new(id: 2) }
45
+
46
+ subject { taggable_item.tags }
47
+
48
+ it { should be_a(Array) }
49
+ end
37
50
  end
38
51
 
39
52
  describe '#add_tag' do
@@ -48,7 +61,7 @@ describe CapsuleCRM::Taggable do
48
61
 
49
62
  subject { taggable_item.add_tag 'A Test Tag' }
50
63
 
51
- it { subject.should be_true }
64
+ it { subject.should eql(true) }
52
65
  end
53
66
 
54
67
  context 'when the taggable item has no id' do
@@ -73,7 +86,7 @@ describe CapsuleCRM::Taggable do
73
86
  to_return(headers: { 'Location' => loc })
74
87
  end
75
88
 
76
- it { subject.should be_true }
89
+ it { subject.should eql(true) }
77
90
  end
78
91
 
79
92
  context 'when the taggable item has no id' do
@@ -0,0 +1,7 @@
1
+ {
2
+ "tags": {
3
+ "tag": {
4
+ "name": "Customer"
5
+ }
6
+ }
7
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capsule_crm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.3
4
+ version: 1.10.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Beedle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-24 00:00:00.000000000 Z
11
+ date: 2015-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 2.14.0
215
+ version: 2.99.0
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 2.14.0
222
+ version: 2.99.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: shoulda-matchers
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -401,6 +401,7 @@ files:
401
401
  - spec/support/no_tasks.json
402
402
  - spec/support/no_tracks.json
403
403
  - spec/support/no_users.json
404
+ - spec/support/one_tag.json
404
405
  - spec/support/opportunity.json
405
406
  - spec/support/organisation.json
406
407
  - spec/support/person.json
@@ -514,6 +515,7 @@ test_files:
514
515
  - spec/support/no_tasks.json
515
516
  - spec/support/no_tracks.json
516
517
  - spec/support/no_users.json
518
+ - spec/support/one_tag.json
517
519
  - spec/support/opportunity.json
518
520
  - spec/support/organisation.json
519
521
  - spec/support/person.json