faraday_middleware-aws-sigv4 0.4.0 → 0.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0e5eb23ca6df3387ac50a4917e304311f606276c96fbab4aa0a8e8946ed97c4
4
- data.tar.gz: 326b17872f5fe6d1127533eec5a46af0f2c5d5918485be48bfaf6c53ed198328
3
+ metadata.gz: e09732db4f0a13230a9c0cf1da3940aba5fa6f70d9ec1f6ccda9d12cfc1e81fa
4
+ data.tar.gz: f16d00f7a1a92babfb14ca2401335f75ff2f6d37096beb0451da4db14edef79b
5
5
  SHA512:
6
- metadata.gz: 7cb0cc83b9b82920b26106ebc2039684c17679161ef97c93a65c01a72bcf54daa9d510cc0d0d7e40fbb6888db28dcd1a4a62b6c3defc9823b4889aba75088570
7
- data.tar.gz: c5165646f89f56de6b3c653112d6f71bcdb60cf63dcc1949de6fb9ec905bd9858c32c552564ecc916cde03479ee7f01f63890bbd883276fc6dedc9e8a2a7f3af
6
+ metadata.gz: a43623245d5ac14ad75c180ee0f7aff685e4a0cd5fb282730e453fb08363e89fe1a5781e186b55623451c2acf5c6a1132b749c27fd3a968c7641f914a5863e74
7
+ data.tar.gz: 23b6b71e035f9467dd97d6d82ee3a4aebe5e2502243c6d357da86fac4b51bb8901d686d54aa9438a24db1ba265bc671caa17148e563056314c17f864a0cb068e
@@ -19,10 +19,15 @@ jobs:
19
19
  - gemfiles/faraday_0.15.gemfile
20
20
  - gemfiles/faraday_0.16.gemfile
21
21
  - gemfiles/faraday_0.17.gemfile
22
-
22
+ - gemfiles/faraday_1.0.gemfile
23
+ - gemfiles/faraday_1.1.gemfile
24
+ - gemfiles/faraday_1.2.gemfile
25
+ - gemfiles/faraday_1.3.gemfile
26
+ env:
27
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
23
28
  steps:
24
29
  - uses: actions/checkout@v2
25
- - uses: actions/setup-ruby@v1
30
+ - uses: ruby/setup-ruby@v1
26
31
  with:
27
32
  ruby-version: ${{ matrix.ruby }}
28
33
  - uses: actions/cache@v2
@@ -31,20 +36,24 @@ jobs:
31
36
  key: ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles('faraday_middleware-aws-sigv4.gemspec', '**/Gemfile', '${{ matrix.gemfile }}') }}
32
37
  restore-keys: |
33
38
  ${{ runner.os }}-gems-${{ matrix.ruby }}-${{ matrix.gemfile }}-
34
-
35
39
  - name: Setup dependencies
36
40
  run: |
37
41
  bundle config path vendor/bundle
38
42
  bundle install
39
- env:
40
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
41
-
42
43
  - name: Run tests
43
- run: ${{ matrix.env }} bundle exec rake
44
- env:
45
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
46
-
47
- - name: Coveralls GitHub Action
44
+ run: bundle exec rake
45
+ - name: Coveralls Parallel
46
+ uses: coverallsapp/github-action@v1.1.2
47
+ with:
48
+ github-token: ${{ secrets.GITHUB_TOKEN }}
49
+ flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }}
50
+ parallel: true
51
+ finish:
52
+ needs: build
53
+ runs-on: ubuntu-latest
54
+ steps:
55
+ - name: Coveralls Finished
48
56
  uses: coverallsapp/github-action@v1.1.2
49
57
  with:
50
58
  github-token: ${{ secrets.GITHUB_TOKEN }}
59
+ parallel-finished: true
@@ -0,0 +1,16 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'gemfiles/**/*'
4
+ TargetRubyVersion: 2.4
5
+ NewCops: enable
6
+ Bundler/OrderedGems:
7
+ Include:
8
+ - 'Appraisals'
9
+ Metrics/BlockLength:
10
+ Enabled: false
11
+ Layout/LineLength:
12
+ Enabled: false
13
+ Metrics/MethodLength:
14
+ Enabled: false
15
+ Style/Documentation:
16
+ Enabled: false
data/.simplecov CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  SimpleCov.start do
2
4
  # exclude directories and files
3
- add_filter "/spec/"
5
+ add_filter '/spec/'
4
6
  end
data/Appraisals CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  appraise 'faraday-0.15' do
2
4
  gem 'faraday', '~> 0.15.0'
3
5
  end
@@ -13,3 +15,15 @@ end
13
15
  appraise 'faraday-1.0' do
14
16
  gem 'faraday', '~> 1.0.0'
15
17
  end
18
+
19
+ appraise 'faraday-1.1' do
20
+ gem 'faraday', '~> 1.1.0'
21
+ end
22
+
23
+ appraise 'faraday-1.2' do
24
+ gem 'faraday', '~> 1.2.0'
25
+ end
26
+
27
+ appraise 'faraday-1.3' do
28
+ gem 'faraday', '~> 1.3.0'
29
+ end
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in faraday_middleware-aws-sigv4.gemspec
data/README.md CHANGED
@@ -11,6 +11,8 @@
11
11
  * `faraday_middleware-aws-sigv4 >= 0.3.0`
12
12
  * `ruby >= 2.3`
13
13
  * `faraday >= 0.15`
14
+ * `faraday_middleware-aws-sigv4 >= 0.5.0`
15
+ * `ruby >= 2.4`
14
16
 
15
17
  ## Installation
16
18
 
data/Rakefile CHANGED
@@ -1,6 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
3
6
 
4
7
  RSpec::Core::RakeTask.new(:spec)
5
8
 
6
- task :default => :spec
9
+ RuboCop::RakeTask.new do |task|
10
+ task.options = %w[-c .rubocop.yml]
11
+ end
12
+
13
+ task default: %i[rubocop spec]
@@ -1,15 +1,16 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
 
5
6
  Gem::Specification.new do |spec|
6
7
  spec.name = 'faraday_middleware-aws-sigv4'
7
- spec.version = '0.4.0'
8
+ spec.version = '0.5.0'
8
9
  spec.authors = ['Genki Sugawara']
9
10
  spec.email = ['sugawara@cookpad.com']
10
11
 
11
- spec.summary = %q{Faraday middleware for AWS Signature Version 4 using aws-sigv4.}
12
- spec.description = %q{Faraday middleware for AWS Signature Version 4 using aws-sigv4.}
12
+ spec.summary = 'Faraday middleware for AWS Signature Version 4 using aws-sigv4.'
13
+ spec.description = 'Faraday middleware for AWS Signature Version 4 using aws-sigv4.'
13
14
  spec.homepage = 'https://github.com/winebarrel/faraday_middleware-aws-sigv4'
14
15
  spec.license = 'MIT'
15
16
 
@@ -20,18 +21,21 @@ Gem::Specification.new do |spec|
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
22
  spec.require_paths = ['lib']
22
23
 
23
- spec.required_ruby_version = '>= 2.3'
24
+ spec.required_ruby_version = '>= 2.4'
24
25
 
25
- spec.add_dependency 'faraday', '>= 0.15'
26
26
  spec.add_dependency 'aws-sigv4', '~> 1.0'
27
+ spec.add_dependency 'faraday', '>= 0.15'
27
28
 
28
- spec.add_development_dependency 'faraday_middleware'
29
+ spec.add_development_dependency 'appraisal', '>= 2.2'
30
+ spec.add_development_dependency 'aws-sdk-core', '~> 3.14.0'
29
31
  spec.add_development_dependency 'bundler'
32
+ spec.add_development_dependency 'faraday_middleware'
30
33
  spec.add_development_dependency 'rake'
31
34
  spec.add_development_dependency 'rspec', '~> 3.0'
32
- spec.add_development_dependency 'timecop'
33
- spec.add_development_dependency 'aws-sdk-core', '~> 3.14.0'
34
- spec.add_development_dependency 'appraisal', '>= 2.2'
35
+ spec.add_development_dependency 'rubocop', '>= 1.8.0'
36
+ spec.add_development_dependency 'rubocop-rake'
37
+ spec.add_development_dependency 'rubocop-rspec'
35
38
  spec.add_development_dependency 'simplecov'
36
39
  spec.add_development_dependency 'simplecov-lcov'
40
+ spec.add_development_dependency 'timecop'
37
41
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "faraday", "~> 1.1.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "faraday", "~> 1.2.0"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "faraday", "~> 1.3.0"
6
+
7
+ gemspec path: "../"
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'faraday'
2
4
 
3
5
  module FaradayMiddleware
4
6
  autoload :AwsSigV4, 'faraday_middleware/request/aws_sigv4'
5
- Faraday::Request.register_middleware aws_sigv4: lambda { AwsSigV4 }
7
+ Faraday::Request.register_middleware aws_sigv4: -> { AwsSigV4 }
6
8
  end
@@ -1,37 +1,41 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'aws-sigv4'
2
4
  require 'faraday_middleware/request/aws_sigv4_util'
3
5
 
4
- class FaradayMiddleware::AwsSigV4 < Faraday::Middleware
5
- include FaradayMiddleware::AwsSigV4Util
6
+ module FaradayMiddleware
7
+ class AwsSigV4 < Faraday::Middleware
8
+ include FaradayMiddleware::AwsSigV4Util
6
9
 
7
- def initialize(app, options = nil)
8
- super(app)
9
- @signer = Aws::Sigv4::Signer.new(options)
10
- @options = options
11
- end
10
+ def initialize(app, options = nil)
11
+ super(app)
12
+ @signer = Aws::Sigv4::Signer.new(options)
13
+ @options = options
14
+ end
12
15
 
13
- def call(env)
14
- sign!(env)
15
- @app.call(env)
16
- end
16
+ def call(env)
17
+ sign!(env)
18
+ @app.call(env)
19
+ end
17
20
 
18
- private
21
+ private
19
22
 
20
- def sign!(env)
21
- request = build_aws_sigv4_request(env)
22
- signature = @signer.sign_request(request)
23
+ def sign!(env)
24
+ request = build_aws_sigv4_request(env)
25
+ signature = @signer.sign_request(request)
23
26
 
24
- signature.headers.each do |name, value|
25
- env.request_headers[name] = value
27
+ signature.headers.each do |name, value|
28
+ env.request_headers[name] = value
29
+ end
26
30
  end
27
- end
28
31
 
29
- def build_aws_sigv4_request(env)
30
- {
31
- http_method: env.method.to_s,
32
- url: seahorse_encode_query(env.url),
33
- headers: env.request_headers,
34
- body: env.body,
35
- }
32
+ def build_aws_sigv4_request(env)
33
+ {
34
+ http_method: env.method.to_s,
35
+ url: seahorse_encode_query(env.url),
36
+ headers: env.request_headers,
37
+ body: env.body
38
+ }
39
+ end
36
40
  end
37
41
  end
@@ -1,32 +1,36 @@
1
- module FaradayMiddleware::AwsSigV4Util
2
- def seahorse_encode_query(url)
3
- return url unless url.query
1
+ # frozen_string_literal: true
4
2
 
5
- params = URI.decode_www_form(url.query)
3
+ module FaradayMiddleware
4
+ module AwsSigV4Util
5
+ def seahorse_encode_query(url)
6
+ return url unless url.query
6
7
 
7
- if params.any? {|_, v| v[?\s] }
8
- url = url.dup
9
- url.query = seahorse_encode_www_form(params)
10
- end
8
+ params = URI.decode_www_form(url.query)
11
9
 
12
- url
13
- end
10
+ if params.any? { |_, v| v["\s"] }
11
+ url = url.dup
12
+ url.query = seahorse_encode_www_form(params)
13
+ end
14
14
 
15
- def seahorse_encode_www_form(params)
16
- params.flat_map {|key, value|
17
- encoded_key = URI.encode_www_form_component(key)
15
+ url
16
+ end
18
17
 
19
- if value.nil?
20
- encoded_key
21
- else
22
- Array(value).map do |v|
23
- if v.nil?
24
- # nothing to do
25
- else
26
- encoded_key + '=' + Aws::Sigv4::Signer.uri_escape(v)
18
+ def seahorse_encode_www_form(params)
19
+ params.flat_map do |key, value|
20
+ encoded_key = URI.encode_www_form_component(key)
21
+
22
+ if value.nil?
23
+ encoded_key
24
+ else
25
+ Array(value).map do |v|
26
+ if v.nil?
27
+ # nothing to do
28
+ else
29
+ "#{encoded_key}=#{Aws::Sigv4::Signer.uri_escape(v)}"
30
+ end
27
31
  end
28
32
  end
29
- end
30
- }.join(?&)
33
+ end.join('&')
34
+ end
31
35
  end
32
36
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faraday_middleware-aws-sigv4
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-13 00:00:00.000000000 Z
11
+ date: 2021-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aws-sigv4
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: faraday
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -25,21 +39,35 @@ dependencies:
25
39
  - !ruby/object:Gem::Version
26
40
  version: '0.15'
27
41
  - !ruby/object:Gem::Dependency
28
- name: aws-sigv4
42
+ name: appraisal
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aws-sdk-core
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '1.0'
34
- type: :runtime
61
+ version: 3.14.0
62
+ type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '1.0'
68
+ version: 3.14.0
41
69
  - !ruby/object:Gem::Dependency
42
- name: faraday_middleware
70
+ name: bundler
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - ">="
@@ -53,7 +81,7 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: bundler
84
+ name: faraday_middleware
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - ">="
@@ -95,47 +123,47 @@ dependencies:
95
123
  - !ruby/object:Gem::Version
96
124
  version: '3.0'
97
125
  - !ruby/object:Gem::Dependency
98
- name: timecop
126
+ name: rubocop
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
129
  - - ">="
102
130
  - !ruby/object:Gem::Version
103
- version: '0'
131
+ version: 1.8.0
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - ">="
109
137
  - !ruby/object:Gem::Version
110
- version: '0'
138
+ version: 1.8.0
111
139
  - !ruby/object:Gem::Dependency
112
- name: aws-sdk-core
140
+ name: rubocop-rake
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
- - - "~>"
143
+ - - ">="
116
144
  - !ruby/object:Gem::Version
117
- version: 3.14.0
145
+ version: '0'
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
- - - "~>"
150
+ - - ">="
123
151
  - !ruby/object:Gem::Version
124
- version: 3.14.0
152
+ version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
- name: appraisal
154
+ name: rubocop-rspec
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
157
  - - ">="
130
158
  - !ruby/object:Gem::Version
131
- version: '2.2'
159
+ version: '0'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
- version: '2.2'
166
+ version: '0'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: simplecov
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +192,20 @@ dependencies:
164
192
  - - ">="
165
193
  - !ruby/object:Gem::Version
166
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: timecop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
167
209
  description: Faraday middleware for AWS Signature Version 4 using aws-sigv4.
168
210
  email:
169
211
  - sugawara@cookpad.com
@@ -174,20 +216,22 @@ files:
174
216
  - ".github/workflows/test.yml"
175
217
  - ".gitignore"
176
218
  - ".rspec"
219
+ - ".rubocop.yml"
177
220
  - ".simplecov"
178
221
  - Appraisals
179
222
  - Gemfile
180
223
  - LICENSE.txt
181
224
  - README.md
182
225
  - Rakefile
183
- - bin/console
184
- - bin/setup
185
226
  - faraday_middleware-aws-sigv4.gemspec
186
227
  - gemfiles/.bundle/config
187
228
  - gemfiles/faraday_0.15.gemfile
188
229
  - gemfiles/faraday_0.16.gemfile
189
230
  - gemfiles/faraday_0.17.gemfile
190
231
  - gemfiles/faraday_1.0.gemfile
232
+ - gemfiles/faraday_1.1.gemfile
233
+ - gemfiles/faraday_1.2.gemfile
234
+ - gemfiles/faraday_1.3.gemfile
191
235
  - lib/faraday_middleware/aws_sigv4.rb
192
236
  - lib/faraday_middleware/request/aws_sigv4.rb
193
237
  - lib/faraday_middleware/request/aws_sigv4_util.rb
@@ -195,7 +239,7 @@ homepage: https://github.com/winebarrel/faraday_middleware-aws-sigv4
195
239
  licenses:
196
240
  - MIT
197
241
  metadata: {}
198
- post_install_message:
242
+ post_install_message:
199
243
  rdoc_options: []
200
244
  require_paths:
201
245
  - lib
@@ -203,15 +247,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
247
  requirements:
204
248
  - - ">="
205
249
  - !ruby/object:Gem::Version
206
- version: '2.3'
250
+ version: '2.4'
207
251
  required_rubygems_version: !ruby/object:Gem::Requirement
208
252
  requirements:
209
253
  - - ">="
210
254
  - !ruby/object:Gem::Version
211
255
  version: '0'
212
256
  requirements: []
213
- rubygems_version: 3.1.2
214
- signing_key:
257
+ rubygems_version: 3.0.3
258
+ signing_key:
215
259
  specification_version: 4
216
260
  summary: Faraday middleware for AWS Signature Version 4 using aws-sigv4.
217
261
  test_files: []
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "faraday_middleware/aws/sigv4"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here