contactually-ruby 0.0.2

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 (53) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/README.md +80 -0
  4. data/Rakefile +7 -0
  5. data/lib/contactually-ruby.rb +38 -0
  6. data/lib/contactually/accounts.rb +22 -0
  7. data/lib/contactually/api.rb +87 -0
  8. data/lib/contactually/buckets.rb +49 -0
  9. data/lib/contactually/contact_groupings.rb +16 -0
  10. data/lib/contactually/contacts.rb +54 -0
  11. data/lib/contactually/contents.rb +30 -0
  12. data/lib/contactually/errors.rb +21 -0
  13. data/lib/contactually/groupings.rb +36 -0
  14. data/lib/contactually/middleware/error_detector.rb +31 -0
  15. data/lib/contactually/notes.rb +31 -0
  16. data/lib/contactually/representer/account_representer.rb +15 -0
  17. data/lib/contactually/representer/bucket_representer.rb +16 -0
  18. data/lib/contactually/representer/contact_representer.rb +48 -0
  19. data/lib/contactually/representer/content_representer.rb +18 -0
  20. data/lib/contactually/representer/grouping_representer.rb +30 -0
  21. data/lib/contactually/representer/grouping_statistic_representer.rb +14 -0
  22. data/lib/contactually/representer/note_representer.rb +15 -0
  23. data/lib/contactually/representer/task_representer.rb +21 -0
  24. data/lib/contactually/tasks.rb +49 -0
  25. data/lib/contactually/utils.rb +44 -0
  26. data/lib/contactually/version.rb +3 -0
  27. data/spec/accounts_spec.rb +58 -0
  28. data/spec/api_spec.rb +125 -0
  29. data/spec/buckets_spec.rb +97 -0
  30. data/spec/contact_groupings_spec.rb +44 -0
  31. data/spec/contacts_spec.rb +133 -0
  32. data/spec/contents_spec.rb +80 -0
  33. data/spec/error_detector_spec.rb +24 -0
  34. data/spec/fixtures/account.json +10 -0
  35. data/spec/fixtures/accounts_index.json +19 -0
  36. data/spec/fixtures/bucket.json +8 -0
  37. data/spec/fixtures/buckets_index.json +41 -0
  38. data/spec/fixtures/contact.json +38 -0
  39. data/spec/fixtures/contacts_index.json +172 -0
  40. data/spec/fixtures/content.json +10 -0
  41. data/spec/fixtures/contents_index.json +29 -0
  42. data/spec/fixtures/grouping.json +19 -0
  43. data/spec/fixtures/groupings_index.json +28 -0
  44. data/spec/fixtures/note.json +7 -0
  45. data/spec/fixtures/note_destroy.json +4 -0
  46. data/spec/fixtures/notes_index.json +30 -0
  47. data/spec/fixtures/task.json +27 -0
  48. data/spec/fixtures/tasks_index.json +41 -0
  49. data/spec/groupings_spec.rb +85 -0
  50. data/spec/notes_spec.rb +85 -0
  51. data/spec/spec_helper.rb +14 -0
  52. data/spec/tasks_spec.rb +127 -0
  53. metadata +205 -0
@@ -0,0 +1,27 @@
1
+ {
2
+ "id": 123123,
3
+ "title": "Lolokopter",
4
+ "due_date": "2015-10-01T00:00:00Z",
5
+ "interaction_type": null,
6
+ "completed_at": null,
7
+ "deleted_at": null,
8
+ "is_follow_up": false,
9
+ "last_contacted": null,
10
+ "contact_id": 1234,
11
+ "ignored": null,
12
+ "completed_via": null,
13
+ "user_id": 12345,
14
+ "approval_data": {
15
+ "approval_type": false,
16
+ "approval_text": false,
17
+ "approval_url": false,
18
+ "approval_template": false,
19
+ "approval_account_id": false
20
+ },
21
+ "contact_program_step_id": null,
22
+ "unresponded_followup_id": null,
23
+ "user_bucket": {
24
+ "id": 12312,
25
+ "name": "Colleague"
26
+ }
27
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "meta": {
3
+ "total": 1,
4
+ "next_page": null,
5
+ "previous_page": null
6
+ },
7
+ "data": [
8
+ {
9
+ "id": 123123,
10
+ "title": "Lolokopter",
11
+ "due_date": "2015-10-01T00:00:00Z",
12
+ "interaction_type": null,
13
+ "completed_at": null,
14
+ "deleted_at": null,
15
+ "is_follow_up": false,
16
+ "last_contacted": null,
17
+ "contact_id": 1234,
18
+ "ignored": null,
19
+ "completed_via": null,
20
+ "user_id": 12345,
21
+ "approval_data": {
22
+ "approval_type": false,
23
+ "approval_text": false,
24
+ "approval_url": false,
25
+ "approval_template": false,
26
+ "approval_account_id": false
27
+ },
28
+ "contact_program_step_id": null,
29
+ "unresponded_followup_id": null,
30
+ "user_bucket": {
31
+ "id": 12312,
32
+ "name": "Colleague"
33
+ }
34
+ }
35
+ ],
36
+ "weekly_progress": [
37
+ 0,
38
+ 7
39
+ ],
40
+ "on_due_date": true
41
+ }
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ describe Contactually::Groupings do
4
+
5
+ let(:groupings_index_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/groupings_index.json")) }
6
+ let(:grouping_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/grouping.json")) }
7
+
8
+ before(:all) do
9
+ Contactually.configure { |c| c.access_token = 'VALID_ACCESS_TOKEN' }
10
+ @master = Contactually::API.new
11
+ end
12
+
13
+ subject { described_class.new @master }
14
+
15
+ describe '#initialize' do
16
+ specify do
17
+ expect(subject).to be_kind_of Contactually::Groupings
18
+ end
19
+
20
+ specify do
21
+ expect(subject.instance_variable_get(:@master)).to be_kind_of Contactually::API
22
+ end
23
+ end
24
+
25
+ describe '#index' do
26
+ it 'calls the api with correct params' do
27
+ allow(@master).to receive(:call).with('groupings.json', :get, { foo: :bar }).and_return({ 'data' => [] })
28
+ subject.index({ foo: :bar })
29
+ expect(@master).to have_received(:call)
30
+ end
31
+
32
+ it 'returns groupings from json response' do
33
+ allow(@master).to receive(:call).with('groupings.json', :get, {}).and_return(JSON.load(groupings_index_json))
34
+ expect(subject.index({})).to be_kind_of Array
35
+ expect(subject.index({})[0]).to be_kind_of Contactually::Grouping
36
+ end
37
+ end
38
+
39
+ describe '#create' do
40
+ it 'calls the api with correct params' do
41
+ allow(@master).to receive(:call).with('groupings.json', :post, { grouping: { foo: :bar }}).and_return({ 'id' => 1234 })
42
+ subject.create({ grouping: { foo: :bar }})
43
+ expect(@master).to have_received(:call)
44
+ end
45
+
46
+ it 'returns groupings from json response' do
47
+ allow(@master).to receive(:call).with('groupings.json', :post, { grouping: { foo: :bar }}).and_return(JSON.load(grouping_json))
48
+ expect(subject.create({ grouping: { foo: :bar }})).to be_kind_of Contactually::Grouping
49
+ end
50
+ end
51
+
52
+ describe '#destroy' do
53
+ it 'calls the api with correct params' do
54
+ allow(@master).to receive(:call).with('groupings/1.json', :delete, {})
55
+ subject.destroy(1)
56
+ expect(@master).to have_received(:call)
57
+ end
58
+ end
59
+
60
+ describe '#show' do
61
+ it 'calls the api with correct params' do
62
+ allow(@master).to receive(:call).with('groupings/1.json', :get, { foo: :bar }).and_return({ id: 1234 })
63
+ subject.show(1, { foo: :bar })
64
+ expect(@master).to have_received(:call)
65
+ end
66
+
67
+ it 'returns a grouping from json response' do
68
+ allow(@master).to receive(:call).with('groupings/1.json', :get, { foo: :bar }).and_return(JSON.load(grouping_json))
69
+ expect(subject.show(1, { foo: :bar })).to be_kind_of Contactually::Grouping
70
+ end
71
+ end
72
+
73
+ describe '#update' do
74
+ it 'calls the api with correct params' do
75
+ allow(@master).to receive(:call).with('groupings/1.json', :put, { grouping: { foo: :bar }}).and_return({ id: 1234 })
76
+ subject.update(1, { grouping: { foo: :bar }})
77
+ expect(@master).to have_received(:call)
78
+ end
79
+
80
+ it 'returns a grouping from json response' do
81
+ allow(@master).to receive(:call).with('groupings/1.json', :put, { grouping: { foo: :bar }}).and_return(JSON.load(grouping_json))
82
+ expect(subject.update(1, { grouping: { foo: :bar }})).to be_kind_of Contactually::Grouping
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ describe Contactually::Notes do
4
+
5
+ let(:notes_index_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/notes_index.json")) }
6
+ let(:note_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/note.json")) }
7
+
8
+ before(:all) do
9
+ Contactually.configure { |c| c.access_token = 'VALID_ACCESS_TOKEN' }
10
+ @master = Contactually::API.new
11
+ end
12
+
13
+ subject { described_class.new @master }
14
+
15
+ describe '#initialize' do
16
+ specify do
17
+ expect(subject).to be_kind_of Contactually::Notes
18
+ end
19
+
20
+ specify do
21
+ expect(subject.instance_variable_get(:@master)).to be_kind_of Contactually::API
22
+ end
23
+ end
24
+
25
+ describe '#index' do
26
+ it 'calls the api with correct params' do
27
+ allow(@master).to receive(:call).with('notes.json', :get, { foo: :bar }).and_return({ 'data' => [] })
28
+ subject.index({ foo: :bar })
29
+ expect(@master).to have_received(:call)
30
+ end
31
+
32
+ it 'returns notes from json response' do
33
+ allow(@master).to receive(:call).with('notes.json', :get, {}).and_return(JSON.load(notes_index_json))
34
+ expect(subject.index({})).to be_kind_of Array
35
+ expect(subject.index({})[0]).to be_kind_of Contactually::Note
36
+ end
37
+ end
38
+
39
+ describe '#show' do
40
+ it 'calls the api with correct params' do
41
+ allow(@master).to receive(:call).with('notes/1.json', :get, { foo: :bar }).and_return(JSON.load(note_json))
42
+ subject.show(1, { foo: :bar })
43
+ expect(@master).to have_received(:call)
44
+ end
45
+
46
+ it 'returns a note' do
47
+ allow(@master).to receive(:call).with('notes/1.json', :get, { foo: :bar }).and_return(JSON.load(note_json))
48
+ expect(subject.show(1, { foo: :bar })).to be_kind_of Contactually::Note
49
+ end
50
+ end
51
+
52
+ describe '#create' do
53
+ it 'calls the api with correct params' do
54
+ allow(@master).to receive(:call).with('notes.json', :post, { note: { foo: :bar }}).and_return(JSON.load(note_json))
55
+ subject.create({ note: { foo: :bar }})
56
+ expect(@master).to have_received(:call)
57
+ end
58
+
59
+ it 'returns a note' do
60
+ allow(@master).to receive(:call).with('notes.json', :post, { note: { foo: :bar }}).and_return(JSON.load(note_json))
61
+ expect(subject.create({ note: { foo: :bar }})).to be_kind_of Contactually::Note
62
+ end
63
+ end
64
+
65
+ describe '#update' do
66
+ it 'calls the api with correct params' do
67
+ allow(@master).to receive(:call).with('notes/1.json', :put, { note: { foo: :bar }}).and_return(JSON.load(note_json))
68
+ subject.update(1, { note: { foo: :bar }})
69
+ expect(@master).to have_received(:call)
70
+ end
71
+
72
+ it 'returns a note' do
73
+ allow(@master).to receive(:call).with('notes/1.json', :put, { note: { foo: :bar }}).and_return(JSON.load(note_json))
74
+ expect(subject.update(1, { note: { foo: :bar }})).to be_kind_of Contactually::Note
75
+ end
76
+ end
77
+
78
+ describe '#destroy' do
79
+ it 'calls the api with correct params' do
80
+ allow(@master).to receive(:call).with('notes/1.json', :delete, { foo: :bar })
81
+ subject.destroy(1, { foo: :bar })
82
+ expect(@master).to have_received(:call)
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+
4
+ require 'rspec'
5
+ require 'pry-byebug'
6
+ require 'contactually-ruby'
7
+
8
+ # Requires supporting files with custom matchers and macros, etc,
9
+ # in ./support/ and its subdirectories.
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+ config.color = true
14
+ end
@@ -0,0 +1,127 @@
1
+ require 'spec_helper'
2
+
3
+ describe Contactually::Tasks do
4
+
5
+ let(:task_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/task.json")) }
6
+ let(:tasks_index_json) { File.read(File.join(File.dirname(__FILE__),"fixtures/tasks_index.json")) }
7
+
8
+ before(:all) do
9
+ Contactually.configure { |c| c.access_token = 'VALID_ACCESS_TOKEN' }
10
+ @master = Contactually::API.new
11
+ end
12
+
13
+ subject { described_class.new @master }
14
+ describe '#initialize' do
15
+ specify do
16
+ expect(subject).to be_kind_of Contactually::Tasks
17
+ end
18
+
19
+ specify do
20
+ expect(subject.instance_variable_get(:@master)).to be_kind_of Contactually::API
21
+ end
22
+ end
23
+
24
+ describe '#show' do
25
+ it 'calls the api with correct params' do
26
+ allow(@master).to receive(:call).with('tasks/1.json', :get, { foo: :bar }).and_return(JSON.load(task_json))
27
+ subject.show(1, { foo: :bar })
28
+ expect(@master).to have_received(:call)
29
+ end
30
+
31
+ it 'returns a task' do
32
+ allow(@master).to receive(:call).with('tasks/1.json', :get, { foo: :bar }).and_return(JSON.load(task_json))
33
+ expect(subject.show(1, { foo: :bar })).to be_kind_of Contactually::Task
34
+ end
35
+ end
36
+
37
+ describe '#complete' do
38
+ it 'calls the api with correct params' do
39
+ allow(@master).to receive(:call).with('tasks/1/complete.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
40
+ subject.complete(1, { foo: :bar })
41
+ expect(@master).to have_received(:call)
42
+ end
43
+
44
+ it 'returns a task' do
45
+ allow(@master).to receive(:call).with('tasks/1/complete.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
46
+ expect(subject.complete(1, { foo: :bar })).to be_kind_of Contactually::Task
47
+ end
48
+ end
49
+
50
+ describe '#create' do
51
+ it 'calls the api with correct params' do
52
+ allow(@master).to receive(:call).with('tasks.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
53
+ subject.create({ foo: :bar })
54
+ expect(@master).to have_received(:call)
55
+ end
56
+
57
+ it 'returns a new task' do
58
+ allow(@master).to receive(:call).with('tasks.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
59
+ expect(subject.create({ foo: :bar })).to be_kind_of Contactually::Task
60
+ end
61
+ end
62
+
63
+ describe '#update' do
64
+ it 'calls the api with correct params' do
65
+ allow(@master).to receive(:call).with('tasks/1.json', :put, { foo: :bar }).and_return(JSON.load(task_json))
66
+ subject.update(1, { foo: :bar })
67
+ expect(@master).to have_received(:call)
68
+ end
69
+
70
+ it 'returns a new task' do
71
+ allow(@master).to receive(:call).with('tasks/1.json', :put, { foo: :bar }).and_return(JSON.load(task_json))
72
+ expect(subject.update(1, { foo: :bar })).to be_kind_of Contactually::Task
73
+ end
74
+ end
75
+
76
+ describe '#destroy' do
77
+ it 'calls the api with correct params' do
78
+ allow(@master).to receive(:call).with('tasks/1.json', :delete, { foo: :bar }).and_return(JSON.load('{ "deleted": true }'))
79
+ subject.destroy(1, { foo: :bar })
80
+ expect(@master).to have_received(:call)
81
+ end
82
+ end
83
+
84
+ describe '#generate_followups' do
85
+ it 'calls the api with correct params' do
86
+ allow(@master).to receive(:call).with('tasks/generate_followups.json', :post, { foo: :bar }).and_return(JSON.load('{ "deleted": true }'))
87
+ subject.generate_followups({ foo: :bar })
88
+ expect(@master).to have_received(:call)
89
+ end
90
+ end
91
+
92
+ describe '#generate_followups' do
93
+ it 'calls the api with correct params' do
94
+ allow(@master).to receive(:call).with('tasks/1/snooze.json', :post, { foo: :bar }).and_return(JSON.load('{ "snooze": true }'))
95
+ subject.snooze(1, { foo: :bar })
96
+ expect(@master).to have_received(:call)
97
+ end
98
+ end
99
+
100
+ describe '#ignore' do
101
+ it 'calls the api with correct params' do
102
+ allow(@master).to receive(:call).with('tasks/1/ignore.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
103
+ subject.ignore(1, { foo: :bar })
104
+ expect(@master).to have_received(:call)
105
+ end
106
+
107
+ it 'returns a new task' do
108
+ allow(@master).to receive(:call).with('tasks/1/ignore.json', :post, { foo: :bar }).and_return(JSON.load(task_json))
109
+ expect(subject.ignore(1, { foo: :bar })).to be_kind_of Contactually::Task
110
+ end
111
+ end
112
+
113
+ describe '#index' do
114
+ it 'calls the api with correct params' do
115
+ allow(@master).to receive(:call).with('tasks.json', :get, { foo: :bar }).and_return({ 'data' => [] })
116
+ subject.index({ foo: :bar })
117
+ expect(@master).to have_received(:call)
118
+ end
119
+
120
+ it 'returns tasks from json response' do
121
+ allow(@master).to receive(:call).with('tasks.json', :get, {}).and_return(JSON.load(tasks_index_json))
122
+ expect(subject.index({})).to be_kind_of Array
123
+ expect(subject.index({})[0]).to be_kind_of Contactually::Task
124
+ end
125
+ end
126
+
127
+ end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: contactually-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Tim Segraves
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-07-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '4.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: roar
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '0.12'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.12'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '2.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '10'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '3'
97
+ description: This is a simple wrapper for the contactually api.
98
+ email:
99
+ - tim@revaluate.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - LICENSE.txt
105
+ - README.md
106
+ - Rakefile
107
+ - lib/contactually-ruby.rb
108
+ - lib/contactually/accounts.rb
109
+ - lib/contactually/api.rb
110
+ - lib/contactually/buckets.rb
111
+ - lib/contactually/contact_groupings.rb
112
+ - lib/contactually/contacts.rb
113
+ - lib/contactually/contents.rb
114
+ - lib/contactually/errors.rb
115
+ - lib/contactually/groupings.rb
116
+ - lib/contactually/middleware/error_detector.rb
117
+ - lib/contactually/notes.rb
118
+ - lib/contactually/representer/account_representer.rb
119
+ - lib/contactually/representer/bucket_representer.rb
120
+ - lib/contactually/representer/contact_representer.rb
121
+ - lib/contactually/representer/content_representer.rb
122
+ - lib/contactually/representer/grouping_representer.rb
123
+ - lib/contactually/representer/grouping_statistic_representer.rb
124
+ - lib/contactually/representer/note_representer.rb
125
+ - lib/contactually/representer/task_representer.rb
126
+ - lib/contactually/tasks.rb
127
+ - lib/contactually/utils.rb
128
+ - lib/contactually/version.rb
129
+ - spec/accounts_spec.rb
130
+ - spec/api_spec.rb
131
+ - spec/buckets_spec.rb
132
+ - spec/contact_groupings_spec.rb
133
+ - spec/contacts_spec.rb
134
+ - spec/contents_spec.rb
135
+ - spec/error_detector_spec.rb
136
+ - spec/fixtures/account.json
137
+ - spec/fixtures/accounts_index.json
138
+ - spec/fixtures/bucket.json
139
+ - spec/fixtures/buckets_index.json
140
+ - spec/fixtures/contact.json
141
+ - spec/fixtures/contacts_index.json
142
+ - spec/fixtures/content.json
143
+ - spec/fixtures/contents_index.json
144
+ - spec/fixtures/grouping.json
145
+ - spec/fixtures/groupings_index.json
146
+ - spec/fixtures/note.json
147
+ - spec/fixtures/note_destroy.json
148
+ - spec/fixtures/notes_index.json
149
+ - spec/fixtures/task.json
150
+ - spec/fixtures/tasks_index.json
151
+ - spec/groupings_spec.rb
152
+ - spec/notes_spec.rb
153
+ - spec/spec_helper.rb
154
+ - spec/tasks_spec.rb
155
+ homepage: https://github.com/revaluate/contactually-ruby
156
+ licenses:
157
+ - MIT
158
+ metadata: {}
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '>='
166
+ - !ruby/object:Gem::Version
167
+ version: '2.0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.4.8
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: A wrapper for the contactually.com V2 api
179
+ test_files:
180
+ - spec/accounts_spec.rb
181
+ - spec/api_spec.rb
182
+ - spec/buckets_spec.rb
183
+ - spec/contact_groupings_spec.rb
184
+ - spec/contacts_spec.rb
185
+ - spec/contents_spec.rb
186
+ - spec/error_detector_spec.rb
187
+ - spec/fixtures/account.json
188
+ - spec/fixtures/accounts_index.json
189
+ - spec/fixtures/bucket.json
190
+ - spec/fixtures/buckets_index.json
191
+ - spec/fixtures/contact.json
192
+ - spec/fixtures/contacts_index.json
193
+ - spec/fixtures/content.json
194
+ - spec/fixtures/contents_index.json
195
+ - spec/fixtures/grouping.json
196
+ - spec/fixtures/groupings_index.json
197
+ - spec/fixtures/note.json
198
+ - spec/fixtures/note_destroy.json
199
+ - spec/fixtures/notes_index.json
200
+ - spec/fixtures/task.json
201
+ - spec/fixtures/tasks_index.json
202
+ - spec/groupings_spec.rb
203
+ - spec/notes_spec.rb
204
+ - spec/spec_helper.rb
205
+ - spec/tasks_spec.rb