action_kit_rest 0.4.0 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +26 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +7 -1
  5. data/Gemfile +11 -9
  6. data/Rakefile +15 -18
  7. data/action_kit_rest.gemspec +39 -23
  8. data/lib/action_kit_rest.rb +2 -0
  9. data/lib/action_kit_rest/action.rb +3 -1
  10. data/lib/action_kit_rest/actions/event_create_action.rb +5 -3
  11. data/lib/action_kit_rest/actions/event_signup_action.rb +6 -3
  12. data/lib/action_kit_rest/actions/unsubscribe_action.rb +3 -1
  13. data/lib/action_kit_rest/allowed_user_field.rb +10 -0
  14. data/lib/action_kit_rest/api.rb +9 -7
  15. data/lib/action_kit_rest/base.rb +5 -4
  16. data/lib/action_kit_rest/client.rb +5 -3
  17. data/lib/action_kit_rest/event.rb +3 -1
  18. data/lib/action_kit_rest/event_signup.rb +3 -1
  19. data/lib/action_kit_rest/language.rb +3 -1
  20. data/lib/action_kit_rest/list.rb +3 -1
  21. data/lib/action_kit_rest/page.rb +4 -2
  22. data/lib/action_kit_rest/pages/base.rb +4 -5
  23. data/lib/action_kit_rest/pages/donation_page.rb +3 -1
  24. data/lib/action_kit_rest/pages/event_campaign_page.rb +4 -2
  25. data/lib/action_kit_rest/pages/import_page.rb +3 -1
  26. data/lib/action_kit_rest/pages/signup_page.rb +3 -1
  27. data/lib/action_kit_rest/pages/unsubscribe_page.rb +3 -1
  28. data/lib/action_kit_rest/phone.rb +2 -0
  29. data/lib/action_kit_rest/railties.rb +3 -1
  30. data/lib/action_kit_rest/response/collection.rb +4 -4
  31. data/lib/action_kit_rest/response/raise_error.rb +15 -12
  32. data/lib/action_kit_rest/response/validation_error.rb +7 -0
  33. data/lib/action_kit_rest/response/wrapper.rb +10 -10
  34. data/lib/action_kit_rest/tag.rb +6 -6
  35. data/lib/action_kit_rest/user.rb +3 -1
  36. data/lib/action_kit_rest/version.rb +3 -1
  37. data/spec/fixtures/allowed_user_field/get.json +19 -0
  38. data/spec/lib/action_kit_rest/actions/event_create_action_spec.rb +6 -4
  39. data/spec/lib/action_kit_rest/actions/event_signup_action_spec.rb +6 -4
  40. data/spec/lib/action_kit_rest/allowed_user_field_spec.rb +43 -5
  41. data/spec/lib/action_kit_rest/logger_spec.rb +7 -5
  42. data/spec/lib/action_kit_rest/page_spec.rb +28 -28
  43. data/spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb +25 -20
  44. data/spec/lib/action_kit_rest/pages/import_page_spec.rb +21 -17
  45. data/spec/lib/action_kit_rest/response/collection_spec.rb +13 -11
  46. data/spec/lib/action_kit_rest/response/validation_error_spec.rb +29 -0
  47. data/spec/lib/action_kit_rest/response/wrapper_spec.rb +6 -4
  48. data/spec/lib/action_kit_rest/user_spec.rb +11 -9
  49. data/spec/spec_helper.rb +6 -4
  50. data/spec/support/shared_contexts/stub_logger.rb +4 -2
  51. metadata +64 -59
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe ActionKitRest::Response::ValidationError do
6
+ describe '#to_s' do
7
+ subject { ActionKitRest::Response::ValidationError.new(url: url, body: body) }
8
+
9
+ context 'with a normal URL and body' do
10
+ let(:url) { 'https://actionkit.example.com/rest/v1/page/1' }
11
+ let(:errors) { { 'zip' => 'invalid zip code' } }
12
+ let(:body) { { errors: errors }.to_json }
13
+
14
+ it 'should put information in the string' do
15
+ expect(subject.to_s).to eq "ActionKitRest::Response::ValidationError \n url: #{url} \n body: #{body} \n errors: #{errors.inspect}"
16
+ end
17
+ end
18
+
19
+ context 'with special characters in the body' do
20
+ let(:url) { 'https://actionkit.example.com/rest/v1/page/1' }
21
+ let(:errors) { { 'zip' => '☃' } }
22
+ let(:body) { { errors: errors }.to_json }
23
+
24
+ it 'should put information in the string' do
25
+ expect(subject.to_s).to eq "ActionKitRest::Response::ValidationError \n url: #{url} \n body: #{body} \n errors: #{errors.inspect}"
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ActionKitRest::Response::Wrapper do
4
6
  describe 'initialization' do
5
7
  it "should be kind 'object' for objects" do
6
8
  body = double
7
- response = double(:body => body)
9
+ response = double(body: body)
8
10
 
9
11
  wrapper = ActionKitRest::Response::Wrapper.new(response)
10
12
 
@@ -13,8 +15,8 @@ describe ActionKitRest::Response::Wrapper do
13
15
  end
14
16
 
15
17
  it "should be kind 'collection' for collections" do
16
- body = double(:meta => '', :objects => [])
17
- response = double(:body => body)
18
+ body = double(meta: '', objects: [])
19
+ response = double(body: body)
18
20
 
19
21
  wrapper = ActionKitRest::Response::Wrapper.new(response)
20
22
 
@@ -22,4 +24,4 @@ describe ActionKitRest::Response::Wrapper do
22
24
  wrapper.collection?.should be_truthy
23
25
  end
24
26
  end
25
- end
27
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'spec_helper'
2
4
 
3
5
  describe ActionKitRest::User do
@@ -11,16 +13,16 @@ describe ActionKitRest::User do
11
13
 
12
14
  subject { ActionKitRest.new(host: 'test.com') }
13
15
 
14
- describe "retrieval" do
16
+ describe 'retrieval' do
15
17
  let(:request_path) { 'user/1/' }
16
18
 
17
19
  context 'without basic auth' do
18
20
  before(:each) do
19
- stub_get(request_path).to_return(:body => body, :status => status,
20
- :headers => {:content_type => "application/json; charset=utf-8"})
21
+ stub_get(request_path).to_return(body: body, status: status,
22
+ headers: { content_type: 'application/json; charset=utf-8' })
21
23
  end
22
24
 
23
- describe ".get" do
25
+ describe '.get' do
24
26
  let(:status) { 200 }
25
27
 
26
28
  context 'without phones' do
@@ -36,9 +38,9 @@ describe ActionKitRest::User do
36
38
  let(:phone_body) { fixture('phone/object.json') }
37
39
 
38
40
  it 'should include phones' do
39
- stub_get('phone/?user=1').to_return(:body => phone_body, :status => 200)
41
+ stub_get('phone/?user=1').to_return(body: phone_body, status: 200)
40
42
  expect(subject.user.get(1).phones.count).to eq 3
41
- expect(subject.user.get(1).phones.map(&:phone)).to match_array(['7755555555', '7755555577', '310-310-3310'])
43
+ expect(subject.user.get(1).phones.map(&:phone)).to match_array(%w[7755555555 7755555577 310-310-3310])
42
44
  end
43
45
  end
44
46
  end
@@ -47,7 +49,7 @@ describe ActionKitRest::User do
47
49
  let(:body) { '' }
48
50
  let(:status) { 404 }
49
51
 
50
- it "should raise an exception" do
52
+ it 'should raise an exception' do
51
53
  expect { subject.user.get(1) }.to raise_error(ActionKitRest::Response::NotFound)
52
54
  end
53
55
  end
@@ -59,8 +61,8 @@ describe ActionKitRest::User do
59
61
  subject { ActionKitRest.new(host: 'test.com', username: 'alice', password: 'somesecret') }
60
62
 
61
63
  before(:each) do
62
- stub_get(request_path).with(basic_auth: ['alice', 'somesecret'])
63
- .to_return(body: body, status: 200, headers: {content_type: "application/json; charset=utf-8"})
64
+ stub_get(request_path).with(basic_auth: %w[alice somesecret])
65
+ .to_return(body: body, status: 200, headers: { content_type: 'application/json; charset=utf-8' })
64
66
  end
65
67
 
66
68
  it 'should return a user object' do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec'
2
4
  require 'webmock/rspec'
3
5
 
@@ -16,11 +18,11 @@ RSpec.configure do |config|
16
18
  end
17
19
 
18
20
  config.mock_with :rspec do |mocks|
19
- mocks.syntax = [:should, :expect]
21
+ mocks.syntax = %i[should expect]
20
22
  end
21
23
 
22
24
  config.expect_with :rspec do |c|
23
- c.syntax = [:should, :expect]
25
+ c.syntax = %i[should expect]
24
26
  end
25
27
  end
26
28
 
@@ -37,11 +39,11 @@ def stub_put(path)
37
39
  end
38
40
 
39
41
  def stub_action_kit_request(method, path)
40
- stub_request(method, 'https://test.com/rest/v1/' + path)
42
+ stub_request(method, "https://test.com/rest/v1/#{path}")
41
43
  end
42
44
 
43
45
  def fixture_path
44
- File.expand_path("../fixtures", __FILE__)
46
+ File.expand_path('fixtures', __dir__)
45
47
  end
46
48
 
47
49
  def fixture(file)
@@ -1,4 +1,6 @@
1
- shared_context "stub_logger" do
1
+ # frozen_string_literal: true
2
+
3
+ shared_context 'stub_logger' do
2
4
  before(:each) do
3
5
  logger = double
4
6
  allow(logger).to receive(:debug).and_return(true)
@@ -6,4 +8,4 @@ shared_context "stub_logger" do
6
8
  allow(ActionKitRest).to receive(:logger).and_return(logger)
7
9
  allow(Vertebrae::Base).to receive(:logger).and_return(logger)
8
10
  end
9
- end
11
+ end
metadata CHANGED
@@ -1,99 +1,105 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_kit_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Woodhull
8
8
  - Diego Marcet
9
- - Jacinda Moore
10
- autorequire:
9
+ - Grey Moore
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-01-10 00:00:00.000000000 Z
13
+ date: 2021-03-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: vertebrae
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 0.5.0
21
+ version: 0.6.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 0.5.0
28
+ version: 0.6.0
29
29
  - !ruby/object:Gem::Dependency
30
- name: rspec
30
+ name: bundler
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - "~>"
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '3.7'
35
+ version: '2.0'
36
+ - - "<"
37
+ - !ruby/object:Gem::Version
38
+ version: '3.0'
36
39
  type: :development
37
40
  prerelease: false
38
41
  version_requirements: !ruby/object:Gem::Requirement
39
42
  requirements:
40
- - - "~>"
43
+ - - ">="
41
44
  - !ruby/object:Gem::Version
42
- version: '3.7'
45
+ version: '2.0'
46
+ - - "<"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
43
49
  - !ruby/object:Gem::Dependency
44
- name: webmock
50
+ name: byebug
45
51
  requirement: !ruby/object:Gem::Requirement
46
52
  requirements:
47
- - - "~>"
53
+ - - ">="
48
54
  - !ruby/object:Gem::Version
49
- version: '3.3'
55
+ version: '0'
50
56
  type: :development
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
53
59
  requirements:
54
- - - "~>"
60
+ - - ">="
55
61
  - !ruby/object:Gem::Version
56
- version: '3.3'
62
+ version: '0'
57
63
  - !ruby/object:Gem::Dependency
58
- name: byebug
64
+ name: em-http-request
59
65
  requirement: !ruby/object:Gem::Requirement
60
66
  requirements:
61
67
  - - ">="
62
68
  - !ruby/object:Gem::Version
63
- version: 10.0.2
69
+ version: 1.1.5
64
70
  - - "<"
65
71
  - !ruby/object:Gem::Version
66
- version: '11.0'
72
+ version: '2.0'
67
73
  type: :development
68
74
  prerelease: false
69
75
  version_requirements: !ruby/object:Gem::Requirement
70
76
  requirements:
71
77
  - - ">="
72
78
  - !ruby/object:Gem::Version
73
- version: 10.0.2
79
+ version: 1.1.5
74
80
  - - "<"
75
81
  - !ruby/object:Gem::Version
76
- version: '11.0'
82
+ version: '2.0'
77
83
  - !ruby/object:Gem::Dependency
78
- name: bundler
84
+ name: em-synchrony
79
85
  requirement: !ruby/object:Gem::Requirement
80
86
  requirements:
81
87
  - - ">="
82
88
  - !ruby/object:Gem::Version
83
- version: '2.0'
89
+ version: 1.0.6
84
90
  - - "<"
85
91
  - !ruby/object:Gem::Version
86
- version: '3.0'
92
+ version: '2.0'
87
93
  type: :development
88
94
  prerelease: false
89
95
  version_requirements: !ruby/object:Gem::Requirement
90
96
  requirements:
91
97
  - - ">="
92
98
  - !ruby/object:Gem::Version
93
- version: '2.0'
99
+ version: 1.0.6
94
100
  - - "<"
95
101
  - !ruby/object:Gem::Version
96
- version: '3.0'
102
+ version: '2.0'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: eventmachine
99
105
  requirement: !ruby/object:Gem::Requirement
@@ -115,65 +121,61 @@ dependencies:
115
121
  - !ruby/object:Gem::Version
116
122
  version: '2.0'
117
123
  - !ruby/object:Gem::Dependency
118
- name: em-synchrony
124
+ name: juwelier
119
125
  requirement: !ruby/object:Gem::Requirement
120
126
  requirements:
121
127
  - - ">="
122
128
  - !ruby/object:Gem::Version
123
- version: 1.0.6
124
- - - "<"
125
- - !ruby/object:Gem::Version
126
- version: '2.0'
129
+ version: '0'
127
130
  type: :development
128
131
  prerelease: false
129
132
  version_requirements: !ruby/object:Gem::Requirement
130
133
  requirements:
131
134
  - - ">="
132
135
  - !ruby/object:Gem::Version
133
- version: 1.0.6
134
- - - "<"
135
- - !ruby/object:Gem::Version
136
- version: '2.0'
136
+ version: '0'
137
137
  - !ruby/object:Gem::Dependency
138
- name: em-http-request
138
+ name: rspec
139
139
  requirement: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: 1.1.5
144
- - - "<"
141
+ - - "~>"
145
142
  - !ruby/object:Gem::Version
146
- version: '2.0'
143
+ version: '3.7'
147
144
  type: :development
148
145
  prerelease: false
149
146
  version_requirements: !ruby/object:Gem::Requirement
150
147
  requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- version: 1.1.5
154
- - - "<"
148
+ - - "~>"
155
149
  - !ruby/object:Gem::Version
156
- version: '2.0'
150
+ version: '3.7'
157
151
  - !ruby/object:Gem::Dependency
158
- name: juwelier
152
+ name: rubocop
159
153
  requirement: !ruby/object:Gem::Requirement
160
154
  requirements:
161
155
  - - ">="
162
156
  - !ruby/object:Gem::Version
163
- version: 2.4.9
164
- - - "<"
165
- - !ruby/object:Gem::Version
166
- version: '3.0'
157
+ version: '0'
167
158
  type: :development
168
159
  prerelease: false
169
160
  version_requirements: !ruby/object:Gem::Requirement
170
161
  requirements:
171
162
  - - ">="
172
163
  - !ruby/object:Gem::Version
173
- version: 2.4.9
174
- - - "<"
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: webmock
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
175
170
  - !ruby/object:Gem::Version
176
- version: '3.0'
171
+ version: '3.3'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - "~>"
177
+ - !ruby/object:Gem::Version
178
+ version: '3.3'
177
179
  description: Gem for interacting with the ActionKit API
178
180
  email: systems@controlshiftlabs.com
179
181
  executables: []
@@ -184,6 +186,7 @@ extra_rdoc_files:
184
186
  files:
185
187
  - ".document"
186
188
  - ".rspec"
189
+ - ".rubocop.yml"
187
190
  - ".ruby-gemset"
188
191
  - ".ruby-version"
189
192
  - ".travis.yml"
@@ -223,6 +226,7 @@ files:
223
226
  - lib/action_kit_rest/version.rb
224
227
  - spec/fixtures/action/event_create_action.json
225
228
  - spec/fixtures/action/event_signup_action.json
229
+ - spec/fixtures/allowed_user_field/get.json
226
230
  - spec/fixtures/allowed_user_field/list.json
227
231
  - spec/fixtures/allowed_user_field/list_filtered.json
228
232
  - spec/fixtures/error.json
@@ -243,6 +247,7 @@ files:
243
247
  - spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb
244
248
  - spec/lib/action_kit_rest/pages/import_page_spec.rb
245
249
  - spec/lib/action_kit_rest/response/collection_spec.rb
250
+ - spec/lib/action_kit_rest/response/validation_error_spec.rb
246
251
  - spec/lib/action_kit_rest/response/wrapper_spec.rb
247
252
  - spec/lib/action_kit_rest/user_spec.rb
248
253
  - spec/spec_helper.rb
@@ -251,7 +256,7 @@ homepage: http://github.com/controlshift/action_kit_rest
251
256
  licenses:
252
257
  - MIT
253
258
  metadata: {}
254
- post_install_message:
259
+ post_install_message:
255
260
  rdoc_options: []
256
261
  require_paths:
257
262
  - lib
@@ -266,8 +271,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
271
  - !ruby/object:Gem::Version
267
272
  version: '0'
268
273
  requirements: []
269
- rubygems_version: 3.1.1
270
- signing_key:
274
+ rubygems_version: 3.0.8
275
+ signing_key:
271
276
  specification_version: 4
272
277
  summary: A wrapper for the ActionKit REST API
273
278
  test_files: []