scalingo 3.0.0 → 3.0.1
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/ruby.yml +45 -0
- data/.rubocop.yml +8 -0
- data/CHANGELOG.md +3 -1
- data/README.md +20 -0
- data/lib/scalingo/api/endpoint.rb +2 -2
- data/lib/scalingo/api/response.rb +5 -2
- data/lib/scalingo/version.rb +1 -1
- data/scalingo.gemspec +6 -5
- data/spec/scalingo/api/client_spec.rb +2 -2
- data/spec/scalingo/api/endpoint_spec.rb +16 -2
- data/spec/scalingo/api/response_spec.rb +16 -0
- data/spec/scalingo/client_spec.rb +2 -2
- metadata +27 -13
- data/.travis.yml +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d40c7b4678cc9197b5a458363ef014ef2bfd410777000c1f9556296384b8e05
|
4
|
+
data.tar.gz: b6805bfca83725d5a95321b1d60bee2112ca3c02643fb0dc6c3cc04245d779ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5245c6052411b5cd2615616948a5768c17f608018dd30c24d4c3f6fe0c6c7ab0745f8171db011b70b5cc95d2be3a6b81ae08921d2f487f5b201682befae13e7
|
7
|
+
data.tar.gz: 3afeb0434dbb32079f4858f6e09317f4259618e925c2e09b0b0e3f595bc0d1d8ff0c94afdfd5ca75a6526e28fb43f99c318e6142a3413077dcbfc74614fb7bd1
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: CI - PR/master
|
9
|
+
|
10
|
+
on:
|
11
|
+
workflow_dispatch:
|
12
|
+
push:
|
13
|
+
branches: [ master ]
|
14
|
+
pull_request:
|
15
|
+
branches: [ master ]
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
lint:
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v2
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: 3.0
|
26
|
+
bundler-cache: true
|
27
|
+
- name: Rubocop checks
|
28
|
+
run: bundle exec rubocop
|
29
|
+
|
30
|
+
test:
|
31
|
+
runs-on: ubuntu-latest
|
32
|
+
strategy:
|
33
|
+
matrix:
|
34
|
+
ruby-version: ['2.6', '2.7', '3.0']
|
35
|
+
steps:
|
36
|
+
- uses: actions/checkout@v2
|
37
|
+
- name: Set up Ruby
|
38
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
39
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
40
|
+
uses: ruby/setup-ruby@v1
|
41
|
+
with:
|
42
|
+
ruby-version: ${{ matrix.ruby-version }}
|
43
|
+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
44
|
+
- name: Run tests
|
45
|
+
run: bundle exec rake
|
data/.rubocop.yml
CHANGED
@@ -7,6 +7,14 @@ require:
|
|
7
7
|
- standard
|
8
8
|
- rubocop-performance
|
9
9
|
|
10
|
+
AllCops:
|
11
|
+
SuggestExtensions: false
|
12
|
+
Exclude:
|
13
|
+
- 'node_modules/**/*'
|
14
|
+
- 'tmp/**/*'
|
15
|
+
- 'vendor/**/*'
|
16
|
+
- '.git/**/*'
|
17
|
+
|
10
18
|
Style/TrailingCommaInArguments:
|
11
19
|
Enabled: true
|
12
20
|
EnforcedStyleForMultiline: consistent_comma
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -144,3 +144,23 @@ scalingo.osc_fr1.apps.all # OR scalingo.region(:osc_fr1).apps.all
|
|
144
144
|
# Preview the creation of an app on the default region
|
145
145
|
scalingo.apps.create(name: "my-new-app", dry_run: true)
|
146
146
|
```
|
147
|
+
|
148
|
+
## Development
|
149
|
+
|
150
|
+
### Install
|
151
|
+
|
152
|
+
```bash
|
153
|
+
bundle
|
154
|
+
```
|
155
|
+
|
156
|
+
### Run tests
|
157
|
+
|
158
|
+
```bash
|
159
|
+
bundle exec rake test
|
160
|
+
```
|
161
|
+
|
162
|
+
### Release a new version
|
163
|
+
|
164
|
+
```bash
|
165
|
+
# TODO
|
166
|
+
```
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Scalingo
|
2
2
|
module API
|
3
3
|
class Response
|
4
|
-
def self.unpack(client, key: nil, &block)
|
4
|
+
def self.unpack(client, key: nil, keys: nil, &block)
|
5
5
|
response = block.call
|
6
6
|
|
7
7
|
body = response.body
|
@@ -11,7 +11,10 @@ module Scalingo
|
|
11
11
|
meta = nil
|
12
12
|
|
13
13
|
if has_hash_body
|
14
|
-
|
14
|
+
keys = [key] if key.present?
|
15
|
+
|
16
|
+
data = body.dig(*keys) if response.success? && keys.present?
|
17
|
+
|
15
18
|
meta = body[:meta]
|
16
19
|
end
|
17
20
|
|
data/lib/scalingo/version.rb
CHANGED
data/scalingo.gemspec
CHANGED
@@ -35,14 +35,15 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.test_files = Dir["spec/**/*_spec.rb"]
|
36
36
|
|
37
37
|
s.add_dependency "activesupport", [">= 5", "< 7"]
|
38
|
-
s.add_dependency "faraday", "~> 1.0
|
39
|
-
s.add_dependency "faraday_middleware", "~> 1.0
|
38
|
+
s.add_dependency "faraday", "~> 1.0"
|
39
|
+
s.add_dependency "faraday_middleware", "~> 1.0"
|
40
40
|
s.add_dependency "multi_json", ">= 1.0.3", "~> 1.0"
|
41
41
|
|
42
42
|
s.add_development_dependency "bundler", "~> 2.0"
|
43
43
|
s.add_development_dependency "rake", "~> 13.0"
|
44
44
|
s.add_development_dependency "rspec", "~> 3.0"
|
45
|
-
s.add_development_dependency "standard", "~>
|
46
|
-
s.add_development_dependency "
|
47
|
-
s.add_development_dependency "
|
45
|
+
s.add_development_dependency "standard", "~> 1.1.0"
|
46
|
+
s.add_development_dependency "rubocop-rspec"
|
47
|
+
s.add_development_dependency "pry", "~> 0.14.1"
|
48
|
+
s.add_development_dependency "webmock", "~> 3.12.2"
|
48
49
|
end
|
@@ -79,11 +79,11 @@ RSpec.describe Scalingo::API::Client do
|
|
79
79
|
expect(mock).to receive(:new).with(instance).and_return("1st").once
|
80
80
|
|
81
81
|
# Not yet loaded...
|
82
|
-
expect(instance.instance_variable_get(
|
82
|
+
expect(instance.instance_variable_get(:@handler)).to eq(nil)
|
83
83
|
instance.handler
|
84
84
|
|
85
85
|
# Memoized...
|
86
|
-
expect(instance.instance_variable_get(
|
86
|
+
expect(instance.instance_variable_get(:@handler)).not_to eq(nil)
|
87
87
|
|
88
88
|
# More calls won't try to perform more instanciations
|
89
89
|
instance.handler
|
@@ -21,11 +21,25 @@ RSpec.describe Scalingo::API::Endpoint do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
describe "unpack" do
|
24
|
-
it "forwards unpack to Response" do
|
24
|
+
it "forwards unpack to Response without keys" do
|
25
25
|
mock = proc { 1 }
|
26
26
|
|
27
|
-
expect(Scalingo::API::Response).to receive(:unpack).with(client,
|
27
|
+
expect(Scalingo::API::Response).to receive(:unpack).with(client, keys: [], &mock).and_return(:d).once
|
28
|
+
expect(subject.send(:unpack, &mock)).to eq :d
|
29
|
+
end
|
30
|
+
|
31
|
+
it "forwards unpack to Response with a single key" do
|
32
|
+
mock = proc { 1 }
|
33
|
+
|
34
|
+
expect(Scalingo::API::Response).to receive(:unpack).with(client, keys: [:a], &mock).and_return(:d).once
|
28
35
|
expect(subject.send(:unpack, :a, &mock)).to eq :d
|
29
36
|
end
|
37
|
+
|
38
|
+
it "forwards unpack to Response with many keys" do
|
39
|
+
mock = proc { 1 }
|
40
|
+
|
41
|
+
expect(Scalingo::API::Response).to receive(:unpack).with(client, keys: [:a, :b], &mock).and_return(:d).once
|
42
|
+
expect(subject.send(:unpack, :a, :b, &mock)).to eq :d
|
43
|
+
end
|
30
44
|
end
|
31
45
|
end
|
@@ -161,6 +161,22 @@ RSpec.describe Scalingo::API::Response do
|
|
161
161
|
expect(object.meta).to eq nil
|
162
162
|
end
|
163
163
|
|
164
|
+
it "with valid keys" do
|
165
|
+
object = described_class.unpack(client, keys: [:root, :key]) { response }
|
166
|
+
|
167
|
+
expect(object.data).to eq(:value)
|
168
|
+
expect(object.full_body).to eq body
|
169
|
+
expect(object.meta).to eq nil
|
170
|
+
end
|
171
|
+
|
172
|
+
it "with invalid keys" do
|
173
|
+
object = described_class.unpack(client, keys: [:root, :other]) { response }
|
174
|
+
|
175
|
+
expect(object.data).to eq nil
|
176
|
+
expect(object.full_body).to eq body
|
177
|
+
expect(object.meta).to eq nil
|
178
|
+
end
|
179
|
+
|
164
180
|
context "with meta" do
|
165
181
|
let(:body) {
|
166
182
|
{root: {key: :value}, meta: {meta1: :value}}
|
@@ -51,7 +51,7 @@ RSpec.describe Scalingo::Client do
|
|
51
51
|
context "with access token" do
|
52
52
|
it "is successful with valid token" do
|
53
53
|
fake_response = OpenStruct.new(
|
54
|
-
|
54
|
+
successful?: true,
|
55
55
|
data: {token: "response token"},
|
56
56
|
)
|
57
57
|
|
@@ -64,7 +64,7 @@ RSpec.describe Scalingo::Client do
|
|
64
64
|
|
65
65
|
it "fails with invalid token" do
|
66
66
|
fake_response = OpenStruct.new(
|
67
|
-
|
67
|
+
successful?: false,
|
68
68
|
)
|
69
69
|
|
70
70
|
expect(subject.auth.tokens).to receive(:exchange).and_return(fake_response)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scalingo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leo Unbekandt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-06-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -37,28 +37,28 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0
|
40
|
+
version: '1.0'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.0
|
47
|
+
version: '1.0'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: faraday_middleware
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.0
|
54
|
+
version: '1.0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.0
|
61
|
+
version: '1.0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: multi_json
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,42 +127,56 @@ dependencies:
|
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
130
|
+
version: 1.1.0
|
131
131
|
type: :development
|
132
132
|
prerelease: false
|
133
133
|
version_requirements: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
137
|
+
version: 1.1.0
|
138
|
+
- !ruby/object:Gem::Dependency
|
139
|
+
name: rubocop-rspec
|
140
|
+
requirement: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
type: :development
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
138
152
|
- !ruby/object:Gem::Dependency
|
139
153
|
name: pry
|
140
154
|
requirement: !ruby/object:Gem::Requirement
|
141
155
|
requirements:
|
142
156
|
- - "~>"
|
143
157
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.
|
158
|
+
version: 0.14.1
|
145
159
|
type: :development
|
146
160
|
prerelease: false
|
147
161
|
version_requirements: !ruby/object:Gem::Requirement
|
148
162
|
requirements:
|
149
163
|
- - "~>"
|
150
164
|
- !ruby/object:Gem::Version
|
151
|
-
version: 0.
|
165
|
+
version: 0.14.1
|
152
166
|
- !ruby/object:Gem::Dependency
|
153
167
|
name: webmock
|
154
168
|
requirement: !ruby/object:Gem::Requirement
|
155
169
|
requirements:
|
156
170
|
- - "~>"
|
157
171
|
- !ruby/object:Gem::Version
|
158
|
-
version: 3.
|
172
|
+
version: 3.12.2
|
159
173
|
type: :development
|
160
174
|
prerelease: false
|
161
175
|
version_requirements: !ruby/object:Gem::Requirement
|
162
176
|
requirements:
|
163
177
|
- - "~>"
|
164
178
|
- !ruby/object:Gem::Version
|
165
|
-
version: 3.
|
179
|
+
version: 3.12.2
|
166
180
|
description: Ruby client library for the web APIs of Scalingo, a european Platform-as-a-Service
|
167
181
|
email:
|
168
182
|
- leo@scalingo.com
|
@@ -171,9 +185,9 @@ executables: []
|
|
171
185
|
extensions: []
|
172
186
|
extra_rdoc_files: []
|
173
187
|
files:
|
188
|
+
- ".github/workflows/ruby.yml"
|
174
189
|
- ".gitignore"
|
175
190
|
- ".rubocop.yml"
|
176
|
-
- ".travis.yml"
|
177
191
|
- CHANGELOG.md
|
178
192
|
- Gemfile
|
179
193
|
- LICENSE.txt
|
data/.travis.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
rvm:
|
4
|
-
- 2.5.8
|
5
|
-
- 2.6.6
|
6
|
-
- 2.7.2
|
7
|
-
before_install:
|
8
|
-
- gem install bundler
|
9
|
-
install: bundle update --jobs=3 --retry=3
|
10
|
-
|
11
|
-
stages:
|
12
|
-
- lint
|
13
|
-
- test
|
14
|
-
|
15
|
-
jobs:
|
16
|
-
include:
|
17
|
-
- stage: lint
|
18
|
-
name: "Linter"
|
19
|
-
language: ruby
|
20
|
-
rvm: 2.7.1
|
21
|
-
before_install:
|
22
|
-
- gem install bundler
|
23
|
-
install: bundle update --jobs=3 --retry=3
|
24
|
-
script: bundle exec rubocop
|