capsulecrm 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/capsulecrm.gemspec +4 -4
- data/examples.rb +14 -0
- data/lib/capsulecrm.rb +2 -0
- data/lib/capsulecrm/organisation.rb +1 -1
- data/lib/capsulecrm/party.rb +33 -6
- data/lib/capsulecrm/recorn_not_recognised.rb +1 -0
- data/lib/capsulecrm/tag.rb +12 -0
- data/lib/capsulecrm/version.rb +1 -1
- data/lib/capsulecrm/website.rb +19 -0
- data/test/fixtures/responses/party_tags.yml +26 -0
- data/test/fixtures/responses/person_find_by_id.yml +66 -40
- data/test/party_dot_find_test.rb +40 -0
- data/test/party_dot_tags_test.rb +30 -0
- data/test/person_dot_find_all_test.rb +1 -1
- data/test/person_dot_find_by_id_test.rb +4 -0
- data/test/test_helper.rb +3 -2
- metadata +30 -34
data/capsulecrm.gemspec
CHANGED
@@ -6,11 +6,11 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = "capsulecrm"
|
7
7
|
s.version = CapsuleCRM::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
-
s.authors = ["Ahmed Adam"]
|
10
|
-
s.email = ["ahmed.msgs@gmail.com"]
|
11
|
-
s.homepage = ""
|
9
|
+
s.authors = ["Ahmed Adam", "Tadas Tamosauskas"]
|
10
|
+
s.email = ["ahmed.msgs@gmail.com", "tadastoo@yahoo.com"]
|
11
|
+
s.homepage = "https://github.com/ahmedrb/capsulecrm"
|
12
12
|
s.summary = %q{CapsuleCRM API Gem}
|
13
|
-
s.description = %q{CapsuleCRM API
|
13
|
+
s.description = %q{Wraps up a CapsuleCRM API}
|
14
14
|
|
15
15
|
s.add_dependency 'httparty', '>= 0.7.4'
|
16
16
|
s.add_dependency 'activemodel', '>= 3.0.5'
|
data/examples.rb
CHANGED
@@ -4,6 +4,11 @@
|
|
4
4
|
# find by id
|
5
5
|
person = CapsuleCRM::Person.find 123
|
6
6
|
|
7
|
+
# or if you don't know what you are searching for Party
|
8
|
+
something = CapsuleCRM::Party.find 123
|
9
|
+
something.is?(:person)
|
10
|
+
something.is?(:organisation)
|
11
|
+
|
7
12
|
# find by email
|
8
13
|
person = CapsuleCRM::Person.find_by_email 'foo@example.com'
|
9
14
|
|
@@ -46,6 +51,11 @@ person.phone_numbers # CapsuleCRM::Collection
|
|
46
51
|
person.phone_numbers.first.number # 01234 56789
|
47
52
|
person.phone_numbers.first.type # work
|
48
53
|
|
54
|
+
# Contacts: CapsuleCRM::Website (read-only)
|
55
|
+
party.websites # CapsuleCRM::Collection
|
56
|
+
party.websites.first.url # http://google.com
|
57
|
+
party.websites.first.web_address # http://google.com
|
58
|
+
|
49
59
|
# Contacts: CapsuleCRM::Email (read-only)
|
50
60
|
person.emails # CapsuleCRM::Collection
|
51
61
|
person.emails.first.address # 'foo@example.com'
|
@@ -63,3 +73,7 @@ person.addresses.first.country # United Kingdom
|
|
63
73
|
person.custom_fields # CapsuleCRM::Collection
|
64
74
|
person.custom_fields.first.label # 'Favourite colour'
|
65
75
|
person.custom_fields.first.value # 'Blue'
|
76
|
+
|
77
|
+
# CapsuleCRM::Tag (read-only)
|
78
|
+
person.tags # CapsuleCRM::Collection
|
79
|
+
person.tag_names # ["array", "of all", "tags", "as strings"]
|
data/lib/capsulecrm.rb
CHANGED
@@ -7,7 +7,7 @@ class CapsuleCRM::Organisation < CapsuleCRM::Party
|
|
7
7
|
# nodoc
|
8
8
|
def people
|
9
9
|
return @people if @people
|
10
|
-
path = self.class.
|
10
|
+
path = self.class.get_path
|
11
11
|
path = [path, '/', id, '/people'].join
|
12
12
|
last_response = self.class.get(path)
|
13
13
|
@people = CapsuleCRM::Person.init_many(last_response)
|
data/lib/capsulecrm/party.rb
CHANGED
@@ -4,7 +4,7 @@ class CapsuleCRM::Party < CapsuleCRM::Base
|
|
4
4
|
# nodoc
|
5
5
|
def addresses
|
6
6
|
return @addresses if @addresses
|
7
|
-
data = raw_data['contacts']['address'
|
7
|
+
data = raw_data['contacts'].try(:[], 'address')
|
8
8
|
@addresses = CapsuleCRM::Address.init_many(self, data)
|
9
9
|
end
|
10
10
|
|
@@ -12,18 +12,30 @@ class CapsuleCRM::Party < CapsuleCRM::Base
|
|
12
12
|
# nodoc
|
13
13
|
def custom_fields
|
14
14
|
return @custom_fields if @custom_fields
|
15
|
-
path = self.class.
|
15
|
+
path = self.class.get_path
|
16
16
|
path = [path, '/', id, '/customfield'].join
|
17
17
|
last_response = self.class.get(path)
|
18
|
-
data = last_response['customFields']['customField'
|
18
|
+
data = last_response['customFields'].try(:[], 'customField')
|
19
19
|
@custom_fields = CapsuleCRM::CustomField.init_many(self, data)
|
20
20
|
end
|
21
21
|
|
22
|
+
def tags
|
23
|
+
return @tags if @tags
|
24
|
+
path = self.class.get_path
|
25
|
+
path = [path, '/', id, '/tag'].join
|
26
|
+
last_response = self.class.get(path)
|
27
|
+
data = last_response['tags'].try(:[], 'tag')
|
28
|
+
@tags = CapsuleCRM::Tag.init_many(self, data)
|
29
|
+
end
|
30
|
+
|
31
|
+
def tag_names
|
32
|
+
tags.map(&:name)
|
33
|
+
end
|
22
34
|
|
23
35
|
# nodoc
|
24
36
|
def emails
|
25
37
|
return @emails if @emails
|
26
|
-
data = raw_data['contacts']['email'
|
38
|
+
data = raw_data['contacts'].try(:[], 'email')
|
27
39
|
@emails = CapsuleCRM::Email.init_many(self, data)
|
28
40
|
end
|
29
41
|
|
@@ -31,10 +43,21 @@ class CapsuleCRM::Party < CapsuleCRM::Base
|
|
31
43
|
# nodoc
|
32
44
|
def phone_numbers
|
33
45
|
return @phone_numbers if @phone_numbers
|
34
|
-
data = raw_data['contacts']['phone'
|
46
|
+
data = raw_data['contacts'].try(:[], 'phone')
|
35
47
|
@phone_numbers = CapsuleCRM::Phone.init_many(self, data)
|
36
48
|
end
|
37
49
|
|
50
|
+
# nodoc
|
51
|
+
def websites
|
52
|
+
return @websites if @websites
|
53
|
+
data = raw_data['contacts'].try(:[], 'website')
|
54
|
+
@websites = CapsuleCRM::Website.init_many(self, data)
|
55
|
+
end
|
56
|
+
|
57
|
+
def is?(kind)
|
58
|
+
required_class = kind.to_s.camelize
|
59
|
+
self.class.to_s.include? required_class
|
60
|
+
end
|
38
61
|
|
39
62
|
# nodoc
|
40
63
|
def self.get_path
|
@@ -60,5 +83,9 @@ class CapsuleCRM::Party < CapsuleCRM::Base
|
|
60
83
|
find_all(options)
|
61
84
|
end
|
62
85
|
|
63
|
-
|
86
|
+
def self.init_one(response)
|
87
|
+
return CapsuleCRM::Person.init_one(response) if response['person']
|
88
|
+
return CapsuleCRM::Organisation.init_one(response) if response['organisation']
|
89
|
+
raise CapsuleCRM::RecordNotRecognised, "Could not recognise returned entity type: #{response}"
|
90
|
+
end
|
64
91
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
class CapsuleCRM::RecordNotRecognised < StandardError; end
|
data/lib/capsulecrm/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
class CapsuleCRM::Website < CapsuleCRM::Child
|
2
|
+
|
3
|
+
attr_accessor :web_address
|
4
|
+
attr_accessor :url
|
5
|
+
attr_accessor :web_service
|
6
|
+
|
7
|
+
|
8
|
+
# nodoc
|
9
|
+
def self.xml_map
|
10
|
+
map = {
|
11
|
+
'webAddress' => 'web_address',
|
12
|
+
'url' => 'url',
|
13
|
+
'webService' => 'web_service'
|
14
|
+
}
|
15
|
+
super.merge map
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185257/tag
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
user-agent:
|
9
|
+
- CapsuleCRM ruby gem
|
10
|
+
response: !ruby/struct:VCR::Response
|
11
|
+
status: !ruby/struct:VCR::ResponseStatus
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
content-type:
|
16
|
+
- "*/*"
|
17
|
+
server:
|
18
|
+
- Apache
|
19
|
+
date:
|
20
|
+
- Tue, 12 Apr 2011 12:31:20 GMT
|
21
|
+
content-length:
|
22
|
+
- "426"
|
23
|
+
set-cookie:
|
24
|
+
- "[SESSION-COOKIE]"
|
25
|
+
body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><tags size="11"><tag><name>TMT</name></tag><tag><name>Industrials</name></tag><tag><name>Energy</name></tag><tag><name>Consumer</name></tag><tag><name>Healthcare</name></tag><tag><name>Professional Services</name></tag><tag><name>Mid-cap</name></tag><tag><name>Large-cap</name></tag><tag><name>EU</name></tag><tag><name>Asia</name></tag><tag><name>USA</name></tag></tags>
|
26
|
+
http_version: "1.1"
|
@@ -1,76 +1,102 @@
|
|
1
|
-
---
|
2
|
-
- !ruby/struct:VCR::HTTPInteraction
|
3
|
-
request: !ruby/struct:VCR::Request
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
4
|
method: :get
|
5
5
|
uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185256
|
6
|
-
body:
|
7
|
-
headers:
|
8
|
-
user-agent:
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
user-agent:
|
9
9
|
- CapsuleCRM ruby gem
|
10
|
-
response: !ruby/struct:VCR::Response
|
11
|
-
status: !ruby/struct:VCR::ResponseStatus
|
10
|
+
response: !ruby/struct:VCR::Response
|
11
|
+
status: !ruby/struct:VCR::ResponseStatus
|
12
12
|
code: 200
|
13
13
|
message: OK
|
14
|
-
headers:
|
15
|
-
content-type:
|
14
|
+
headers:
|
15
|
+
content-type:
|
16
16
|
- "*/*"
|
17
|
-
server:
|
17
|
+
server:
|
18
18
|
- Apache
|
19
|
-
date:
|
19
|
+
date:
|
20
20
|
- Tue, 12 Apr 2011 12:34:21 GMT
|
21
|
-
content-length:
|
21
|
+
content-length:
|
22
22
|
- "333"
|
23
|
-
set-cookie:
|
23
|
+
set-cookie:
|
24
24
|
- "[SESSION-COOKIE]"
|
25
25
|
body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><organisation><id>10185256</id><contacts><email><id>18583945</id><emailAddress>gov@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation>
|
26
26
|
http_version: "1.1"
|
27
|
-
- !ruby/struct:VCR::HTTPInteraction
|
28
|
-
request: !ruby/struct:VCR::Request
|
27
|
+
- !ruby/struct:VCR::HTTPInteraction
|
28
|
+
request: !ruby/struct:VCR::Request
|
29
29
|
method: :get
|
30
30
|
uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185257
|
31
|
-
body:
|
32
|
-
headers:
|
33
|
-
user-agent:
|
31
|
+
body:
|
32
|
+
headers:
|
33
|
+
user-agent:
|
34
34
|
- CapsuleCRM ruby gem
|
35
|
-
response: !ruby/struct:VCR::Response
|
36
|
-
status: !ruby/struct:VCR::ResponseStatus
|
35
|
+
response: !ruby/struct:VCR::Response
|
36
|
+
status: !ruby/struct:VCR::ResponseStatus
|
37
37
|
code: 200
|
38
38
|
message: OK
|
39
|
-
headers:
|
40
|
-
content-type:
|
39
|
+
headers:
|
40
|
+
content-type:
|
41
41
|
- "*/*"
|
42
|
-
server:
|
42
|
+
server:
|
43
43
|
- Apache
|
44
|
-
date:
|
44
|
+
date:
|
45
45
|
- Tue, 12 Apr 2011 12:34:22 GMT
|
46
|
-
content-length:
|
46
|
+
content-length:
|
47
47
|
- "897"
|
48
|
-
set-cookie:
|
48
|
+
set-cookie:
|
49
49
|
- "[SESSION-COOKIE]"
|
50
50
|
body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><person><id>10185257</id><contacts><address><id>18565068</id><type>Office</type><street>10 Downing Street</street><city>London</city><zip>SW1A 2AA</zip><country>United Kingdom</country></address><email><id>18565066</id><type>Work</type><emailAddress>pm@example.com</emailAddress></email><phone><id>18566503</id><phoneNumber>12345 67890</phoneNumber></phone><website><id>18565067</id><webAddress>http://www.number10.gov.uk/</webAddress><webService>URL</webService><url>http://www.number10.gov.uk/</url></website></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>David</firstName><lastName>Cameron</lastName><jobTitle>Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person>
|
51
51
|
http_version: "1.1"
|
52
|
-
- !ruby/struct:VCR::HTTPInteraction
|
53
|
-
request: !ruby/struct:VCR::Request
|
52
|
+
- !ruby/struct:VCR::HTTPInteraction
|
53
|
+
request: !ruby/struct:VCR::Request
|
54
54
|
method: :get
|
55
55
|
uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185256
|
56
|
-
body:
|
57
|
-
headers:
|
58
|
-
user-agent:
|
56
|
+
body:
|
57
|
+
headers:
|
58
|
+
user-agent:
|
59
59
|
- CapsuleCRM ruby gem
|
60
|
-
response: !ruby/struct:VCR::Response
|
61
|
-
status: !ruby/struct:VCR::ResponseStatus
|
60
|
+
response: !ruby/struct:VCR::Response
|
61
|
+
status: !ruby/struct:VCR::ResponseStatus
|
62
62
|
code: 200
|
63
63
|
message: OK
|
64
|
-
headers:
|
65
|
-
content-type:
|
64
|
+
headers:
|
65
|
+
content-type:
|
66
66
|
- "*/*"
|
67
|
-
server:
|
67
|
+
server:
|
68
68
|
- Apache
|
69
|
-
date:
|
69
|
+
date:
|
70
70
|
- Tue, 12 Apr 2011 12:34:24 GMT
|
71
|
-
content-length:
|
71
|
+
content-length:
|
72
72
|
- "333"
|
73
|
-
set-cookie:
|
73
|
+
set-cookie:
|
74
74
|
- "[SESSION-COOKIE]"
|
75
75
|
body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><organisation><id>10185256</id><contacts><email><id>18583945</id><emailAddress>gov@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation>
|
76
76
|
http_version: "1.1"
|
77
|
+
|
78
|
+
- !ruby/struct:VCR::HTTPInteraction
|
79
|
+
request: !ruby/struct:VCR::Request
|
80
|
+
method: :get
|
81
|
+
uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/11111111
|
82
|
+
body:
|
83
|
+
headers:
|
84
|
+
user-agent:
|
85
|
+
- CapsuleCRM ruby gem
|
86
|
+
response: !ruby/struct:VCR::Response
|
87
|
+
status: !ruby/struct:VCR::ResponseStatus
|
88
|
+
code: 200
|
89
|
+
message: OK
|
90
|
+
headers:
|
91
|
+
content-type:
|
92
|
+
- "*/*"
|
93
|
+
server:
|
94
|
+
- Apache
|
95
|
+
date:
|
96
|
+
- Tue, 12 Apr 2011 12:34:24 GMT
|
97
|
+
content-length:
|
98
|
+
- "333"
|
99
|
+
set-cookie:
|
100
|
+
- "[SESSION-COOKIE]"
|
101
|
+
body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><organisation><id>10185256</id><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation>
|
102
|
+
http_version: "1.1"
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class PartyDotFindTest < Test::Unit::TestCase
|
3
|
+
|
4
|
+
def setup
|
5
|
+
end
|
6
|
+
|
7
|
+
# nodoc
|
8
|
+
def test_find_organisation
|
9
|
+
VCR.use_cassette('person.find_by_id') do
|
10
|
+
@organisation = CapsuleCRM::Party.find organisations(:gov)
|
11
|
+
end
|
12
|
+
assert @organisation.is?(:organisation)
|
13
|
+
end
|
14
|
+
|
15
|
+
# nodoc
|
16
|
+
def test_find_person
|
17
|
+
VCR.use_cassette('person.find_by_id') do
|
18
|
+
@person = CapsuleCRM::Party.find people(:pm)
|
19
|
+
end
|
20
|
+
assert @person.is?(:person)
|
21
|
+
assert_equal @person.first_name, "David"
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_party_without_contacts
|
25
|
+
VCR.use_cassette('person.find_by_id') do
|
26
|
+
@org = CapsuleCRM::Party.find organisations(:emptyish)
|
27
|
+
end
|
28
|
+
|
29
|
+
fields = %w(emails phone_numbers websites addresses)
|
30
|
+
fields.each do |field|
|
31
|
+
assert @org.send(field).blank?
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# nodoc
|
36
|
+
def teardown
|
37
|
+
WebMock.reset!
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
class PartyDotTagsTest < Test::Unit::TestCase
|
3
|
+
|
4
|
+
def setup
|
5
|
+
VCR.use_cassette('person.find_by_id') do
|
6
|
+
@person = CapsuleCRM::Person.find people(:pm)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_tag_names
|
11
|
+
VCR.use_cassette('party.tags') do
|
12
|
+
@taglist = @person.tag_names
|
13
|
+
end
|
14
|
+
assert_equal @taglist.size, 11
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def test_tags_and_tagnames
|
19
|
+
VCR.use_cassette('party.tags') do
|
20
|
+
@tagnames = @person.tag_names
|
21
|
+
@taglist = @person.tags
|
22
|
+
end
|
23
|
+
assert_equal @tagnames.size, @taglist.size
|
24
|
+
end
|
25
|
+
|
26
|
+
def teardown
|
27
|
+
WebMock.reset!
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -48,6 +48,10 @@ class PersonDotFindByIdTest < Test::Unit::TestCase
|
|
48
48
|
@person.phone_numbers.each { |pn| assert pn.is_a?(CapsuleCRM::Phone) }
|
49
49
|
end
|
50
50
|
|
51
|
+
def test_websites
|
52
|
+
assert_equal CapsuleCRM::ChildCollection, @person.phone_numbers.class
|
53
|
+
assert_equal 1, @person.websites.size
|
54
|
+
end
|
51
55
|
|
52
56
|
def teardown
|
53
57
|
WebMock.reset!
|
data/test/test_helper.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'ruby-debug'
|
2
|
+
# require 'ruby-debug'
|
3
3
|
require 'test/unit'
|
4
4
|
require 'webmock/test_unit'
|
5
5
|
require 'vcr'
|
@@ -33,7 +33,8 @@ class Test::Unit::TestCase
|
|
33
33
|
# nodoc
|
34
34
|
def organisations(key)
|
35
35
|
ids = {
|
36
|
-
:gov => 10185256
|
36
|
+
:gov => 10185256,
|
37
|
+
:emptyish => 11111111
|
37
38
|
}
|
38
39
|
ids[key]
|
39
40
|
end
|
metadata
CHANGED
@@ -1,21 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capsulecrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 2
|
10
|
-
version: 0.0.2
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.3
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Ahmed Adam
|
9
|
+
- Tadas Tamosauskas
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
13
|
|
18
|
-
date: 2011-04-
|
14
|
+
date: 2011-04-18 00:00:00 +01:00
|
19
15
|
default_executable:
|
20
16
|
dependencies:
|
21
17
|
- !ruby/object:Gem::Dependency
|
@@ -26,11 +22,6 @@ dependencies:
|
|
26
22
|
requirements:
|
27
23
|
- - ">="
|
28
24
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 11
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 7
|
33
|
-
- 4
|
34
25
|
version: 0.7.4
|
35
26
|
type: :runtime
|
36
27
|
version_requirements: *id001
|
@@ -42,11 +33,6 @@ dependencies:
|
|
42
33
|
requirements:
|
43
34
|
- - ">="
|
44
35
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 13
|
46
|
-
segments:
|
47
|
-
- 3
|
48
|
-
- 0
|
49
|
-
- 5
|
50
36
|
version: 3.0.5
|
51
37
|
type: :runtime
|
52
38
|
version_requirements: *id002
|
@@ -58,17 +44,13 @@ dependencies:
|
|
58
44
|
requirements:
|
59
45
|
- - ">="
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 13
|
62
|
-
segments:
|
63
|
-
- 3
|
64
|
-
- 0
|
65
|
-
- 5
|
66
47
|
version: 3.0.5
|
67
48
|
type: :runtime
|
68
49
|
version_requirements: *id003
|
69
|
-
description: CapsuleCRM API
|
50
|
+
description: Wraps up a CapsuleCRM API
|
70
51
|
email:
|
71
52
|
- ahmed.msgs@gmail.com
|
53
|
+
- tadastoo@yahoo.com
|
72
54
|
executables: []
|
73
55
|
|
74
56
|
extensions: []
|
@@ -96,21 +78,27 @@ files:
|
|
96
78
|
- lib/capsulecrm/person.rb
|
97
79
|
- lib/capsulecrm/phone.rb
|
98
80
|
- lib/capsulecrm/record_not_found.rb
|
81
|
+
- lib/capsulecrm/recorn_not_recognised.rb
|
82
|
+
- lib/capsulecrm/tag.rb
|
99
83
|
- lib/capsulecrm/version.rb
|
84
|
+
- lib/capsulecrm/website.rb
|
100
85
|
- test/create_person_test.rb
|
101
86
|
- test/fixtures/responses/create_person.yml
|
87
|
+
- test/fixtures/responses/party_tags.yml
|
102
88
|
- test/fixtures/responses/person_find_all.yml
|
103
89
|
- test/fixtures/responses/person_find_all_with_limit.yml
|
104
90
|
- test/fixtures/responses/person_find_all_with_offset.yml
|
105
91
|
- test/fixtures/responses/person_find_by_id.yml
|
106
92
|
- test/fixtures/responses/update_person.yml
|
107
93
|
- test/fixtures/responses/update_person_without_changes.yml
|
94
|
+
- test/party_dot_find_test.rb
|
95
|
+
- test/party_dot_tags_test.rb
|
108
96
|
- test/person_dot_find_all_test.rb
|
109
97
|
- test/person_dot_find_by_id_test.rb
|
110
98
|
- test/test_helper.rb
|
111
99
|
- test/update_person_test.rb
|
112
100
|
has_rdoc: true
|
113
|
-
homepage:
|
101
|
+
homepage: https://github.com/ahmedrb/capsulecrm
|
114
102
|
licenses: []
|
115
103
|
|
116
104
|
post_install_message:
|
@@ -123,25 +111,33 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
111
|
requirements:
|
124
112
|
- - ">="
|
125
113
|
- !ruby/object:Gem::Version
|
126
|
-
hash: 3
|
127
|
-
segments:
|
128
|
-
- 0
|
129
114
|
version: "0"
|
130
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
116
|
none: false
|
132
117
|
requirements:
|
133
118
|
- - ">="
|
134
119
|
- !ruby/object:Gem::Version
|
135
|
-
hash: 3
|
136
|
-
segments:
|
137
|
-
- 0
|
138
120
|
version: "0"
|
139
121
|
requirements: []
|
140
122
|
|
141
123
|
rubyforge_project: capsulecrm
|
142
|
-
rubygems_version: 1.
|
124
|
+
rubygems_version: 1.6.2
|
143
125
|
signing_key:
|
144
126
|
specification_version: 3
|
145
127
|
summary: CapsuleCRM API Gem
|
146
|
-
test_files:
|
147
|
-
|
128
|
+
test_files:
|
129
|
+
- test/create_person_test.rb
|
130
|
+
- test/fixtures/responses/create_person.yml
|
131
|
+
- test/fixtures/responses/party_tags.yml
|
132
|
+
- test/fixtures/responses/person_find_all.yml
|
133
|
+
- test/fixtures/responses/person_find_all_with_limit.yml
|
134
|
+
- test/fixtures/responses/person_find_all_with_offset.yml
|
135
|
+
- test/fixtures/responses/person_find_by_id.yml
|
136
|
+
- test/fixtures/responses/update_person.yml
|
137
|
+
- test/fixtures/responses/update_person_without_changes.yml
|
138
|
+
- test/party_dot_find_test.rb
|
139
|
+
- test/party_dot_tags_test.rb
|
140
|
+
- test/person_dot_find_all_test.rb
|
141
|
+
- test/person_dot_find_by_id_test.rb
|
142
|
+
- test/test_helper.rb
|
143
|
+
- test/update_person_test.rb
|