action_kit_rest 0.4.2 → 0.4.6
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 +4 -4
- data/.github/workflows/ci.yml +24 -0
- data/.rubocop.yml +26 -0
- data/.ruby-version +1 -1
- data/Gemfile +11 -9
- data/README.md +2 -2
- data/Rakefile +15 -18
- data/action_kit_rest.gemspec +24 -20
- data/lib/action_kit_rest/action.rb +3 -1
- data/lib/action_kit_rest/actions/event_create_action.rb +5 -3
- data/lib/action_kit_rest/actions/event_signup_action.rb +6 -3
- data/lib/action_kit_rest/actions/unsubscribe_action.rb +3 -1
- data/lib/action_kit_rest/allowed_user_field.rb +3 -1
- data/lib/action_kit_rest/api.rb +9 -7
- data/lib/action_kit_rest/base.rb +5 -4
- data/lib/action_kit_rest/client.rb +5 -3
- data/lib/action_kit_rest/event.rb +3 -1
- data/lib/action_kit_rest/event_signup.rb +3 -1
- data/lib/action_kit_rest/language.rb +3 -1
- data/lib/action_kit_rest/list.rb +3 -1
- data/lib/action_kit_rest/page.rb +4 -2
- data/lib/action_kit_rest/pages/base.rb +4 -5
- data/lib/action_kit_rest/pages/donation_page.rb +3 -1
- data/lib/action_kit_rest/pages/event_campaign_page.rb +4 -2
- data/lib/action_kit_rest/pages/import_page.rb +3 -1
- data/lib/action_kit_rest/pages/signup_page.rb +3 -1
- data/lib/action_kit_rest/pages/unsubscribe_page.rb +3 -1
- data/lib/action_kit_rest/phone.rb +2 -0
- data/lib/action_kit_rest/railties.rb +3 -1
- data/lib/action_kit_rest/response/collection.rb +4 -4
- data/lib/action_kit_rest/response/raise_error.rb +15 -12
- data/lib/action_kit_rest/response/validation_error.rb +8 -1
- data/lib/action_kit_rest/response/wrapper.rb +10 -10
- data/lib/action_kit_rest/tag.rb +6 -6
- data/lib/action_kit_rest/user.rb +3 -1
- data/lib/action_kit_rest/version.rb +3 -1
- data/lib/action_kit_rest.rb +2 -0
- data/spec/lib/action_kit_rest/actions/event_create_action_spec.rb +6 -4
- data/spec/lib/action_kit_rest/actions/event_signup_action_spec.rb +6 -4
- data/spec/lib/action_kit_rest/allowed_user_field_spec.rb +9 -7
- data/spec/lib/action_kit_rest/logger_spec.rb +7 -5
- data/spec/lib/action_kit_rest/page_spec.rb +28 -28
- data/spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb +25 -20
- data/spec/lib/action_kit_rest/pages/import_page_spec.rb +21 -17
- data/spec/lib/action_kit_rest/response/collection_spec.rb +13 -11
- data/spec/lib/action_kit_rest/response/validation_error_spec.rb +39 -0
- data/spec/lib/action_kit_rest/response/wrapper_spec.rb +6 -4
- data/spec/lib/action_kit_rest/user_spec.rb +11 -9
- data/spec/spec_helper.rb +6 -4
- data/spec/support/shared_contexts/stub_logger.rb +4 -2
- metadata +61 -57
- data/.travis.yml +0 -3
@@ -1,26 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
|
-
describe ActionKitRest::Response::Collection
|
4
|
-
let(:meta) { double
|
5
|
-
let(:objects) { double
|
5
|
+
describe ActionKitRest::Response::Collection do
|
6
|
+
let(:meta) { double }
|
7
|
+
let(:objects) { double }
|
6
8
|
subject { ActionKitRest::Response::Collection.new(meta, objects) }
|
7
9
|
|
8
10
|
describe 'initialization' do
|
9
11
|
it 'should set meta and objects' do
|
10
|
-
subject.meta.
|
11
|
-
subject.objects.
|
12
|
+
expect(subject.meta).to eq(meta)
|
13
|
+
expect(subject.objects).to eq(objects)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
describe 'each' do
|
16
18
|
let(:item1) { double }
|
17
19
|
let(:item2) { double }
|
18
|
-
let(:objects) { [
|
20
|
+
let(:objects) { [item1, item2] }
|
19
21
|
|
20
|
-
it
|
21
|
-
subject.count.
|
22
|
-
subject.any? { |i| i == item1 }
|
23
|
-
subject.any? { |i| i == item2 }
|
22
|
+
it 'should return all collection items' do
|
23
|
+
expect(subject.count).to eq(2)
|
24
|
+
expect(subject.any? { |i| i == item1 }).to be_truthy
|
25
|
+
expect(subject.any? { |i| i == item2 }).to be_truthy
|
24
26
|
end
|
25
27
|
end
|
26
|
-
end
|
28
|
+
end
|
@@ -0,0 +1,39 @@
|
|
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
|
+
|
29
|
+
context 'with a body in ASCII-8BIT format' do
|
30
|
+
let(:url) { 'https://actionkit.example.com/rest/v1/page/1' }
|
31
|
+
let(:errors) { {'mailing_id' => ['לא הצלחנו לקשר בין מספר הזיהוי של רשימת הדיוור הזו לבין החשבון.']} }
|
32
|
+
let(:body) { { errors: errors }.to_json.b }
|
33
|
+
|
34
|
+
it 'should put information in the string' do
|
35
|
+
expect(subject.to_s).to eq "ActionKitRest::Response::ValidationError \n url: #{url} \n body: {\"errors\":#{errors.to_json}} \n errors: #{errors.inspect}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
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(:
|
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(:
|
17
|
-
response = double(:
|
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
|
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(:
|
20
|
-
:
|
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
|
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(:
|
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([
|
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
|
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: [
|
63
|
-
|
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 = [
|
21
|
+
mocks.syntax = %i[should expect]
|
20
22
|
end
|
21
23
|
|
22
24
|
config.expect_with :rspec do |c|
|
23
|
-
c.syntax = [
|
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,
|
42
|
+
stub_request(method, "https://test.com/rest/v1/#{path}")
|
41
43
|
end
|
42
44
|
|
43
45
|
def fixture_path
|
44
|
-
File.expand_path(
|
46
|
+
File.expand_path('fixtures', __dir__)
|
45
47
|
end
|
46
48
|
|
47
49
|
def fixture(file)
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
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.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Woodhull
|
8
8
|
- Diego Marcet
|
9
|
-
-
|
9
|
+
- Grey Moore
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-09-29 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.
|
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.
|
28
|
+
version: 0.6.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: bundler
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
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: '
|
45
|
+
version: '2.0'
|
46
|
+
- - "<"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.0'
|
43
49
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
50
|
+
name: byebug
|
45
51
|
requirement: !ruby/object:Gem::Requirement
|
46
52
|
requirements:
|
47
|
-
- - "
|
53
|
+
- - ">="
|
48
54
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
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: '
|
62
|
+
version: '0'
|
57
63
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
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:
|
69
|
+
version: 1.1.5
|
64
70
|
- - "<"
|
65
71
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
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:
|
79
|
+
version: 1.1.5
|
74
80
|
- - "<"
|
75
81
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
82
|
+
version: '2.0'
|
77
83
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
84
|
+
name: em-synchrony
|
79
85
|
requirement: !ruby/object:Gem::Requirement
|
80
86
|
requirements:
|
81
87
|
- - ">="
|
82
88
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
89
|
+
version: 1.0.6
|
84
90
|
- - "<"
|
85
91
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
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:
|
99
|
+
version: 1.0.6
|
94
100
|
- - "<"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
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:
|
124
|
+
name: juwelier
|
119
125
|
requirement: !ruby/object:Gem::Requirement
|
120
126
|
requirements:
|
121
127
|
- - ">="
|
122
128
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
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:
|
134
|
-
- - "<"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '2.0'
|
136
|
+
version: '0'
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
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: '
|
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: '
|
150
|
+
version: '3.7'
|
157
151
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
152
|
+
name: rubocop
|
159
153
|
requirement: !ruby/object:Gem::Requirement
|
160
154
|
requirements:
|
161
155
|
- - ">="
|
162
156
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
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:
|
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.
|
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: []
|
@@ -183,10 +185,11 @@ extra_rdoc_files:
|
|
183
185
|
- README.md
|
184
186
|
files:
|
185
187
|
- ".document"
|
188
|
+
- ".github/workflows/ci.yml"
|
186
189
|
- ".rspec"
|
190
|
+
- ".rubocop.yml"
|
187
191
|
- ".ruby-gemset"
|
188
192
|
- ".ruby-version"
|
189
|
-
- ".travis.yml"
|
190
193
|
- Gemfile
|
191
194
|
- LICENSE.txt
|
192
195
|
- README.md
|
@@ -244,6 +247,7 @@ files:
|
|
244
247
|
- spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb
|
245
248
|
- spec/lib/action_kit_rest/pages/import_page_spec.rb
|
246
249
|
- spec/lib/action_kit_rest/response/collection_spec.rb
|
250
|
+
- spec/lib/action_kit_rest/response/validation_error_spec.rb
|
247
251
|
- spec/lib/action_kit_rest/response/wrapper_spec.rb
|
248
252
|
- spec/lib/action_kit_rest/user_spec.rb
|
249
253
|
- spec/spec_helper.rb
|
@@ -267,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
271
|
- !ruby/object:Gem::Version
|
268
272
|
version: '0'
|
269
273
|
requirements: []
|
270
|
-
rubygems_version: 3.1.
|
274
|
+
rubygems_version: 3.1.6
|
271
275
|
signing_key:
|
272
276
|
specification_version: 4
|
273
277
|
summary: A wrapper for the ActionKit REST API
|
data/.travis.yml
DELETED