resizing 1.0.0.pre → 1.1.0.pre

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: 5fff2fe2e1211d6d9b8fc9d399d63df0e1fe7a7f56aca9cc5c4fb045f7877110
4
- data.tar.gz: ac9be08e555131de36131bcaca8747d300b951b1ee00c848d85749c0b80b4766
3
+ metadata.gz: 2d601d6b8f87f6440de0c1c4d4dcbb74e7bc386dd3e217b66b8ac259d35939f0
4
+ data.tar.gz: 3f2ce39dcb8879dee7a9717142bfa794e6cad5671e19cdd01afbb5f7dacc6787
5
5
  SHA512:
6
- metadata.gz: b076ac07bf0c60a9a8a8af0bf18536e78b20fe9faa2565b5c79e41fbcf1f66207be30b14e92b31e8c0af3cc05d4c5589db40d9e5dbd7574343ecee10d4121b65
7
- data.tar.gz: 46c7f5303f4cf0620d0205d01c68d74a483b025918cffda9ca42207c656c6fc8cfc40c6843349181aeef170aaeeffe1e93c558aacccd98ad82f9c071ea183318
6
+ metadata.gz: c221c9290ccf562d804bb9f5dca6657568c891ce4c14d825fb8a19627feec1982c09773bfb55304cd5a13b8c4bb786a57d1abe3589684da312fd0167ecfc9a28
7
+ data.tar.gz: ee2dde3b29accd86dae059daf0e164fef634476886fb254b2145e3be33764d3a81308d9eea382a557817951714cbc8d4e98b02318417042a38590a4109334630
@@ -0,0 +1,56 @@
1
+ name: test
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - master
8
+
9
+ permissions:
10
+ id-token: write # This is required for requesting the JWT
11
+ contents: read # This is required for actions/checkout
12
+
13
+ jobs:
14
+ test:
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby: ['2.7.6', '3.1', '3.2','3.3']
19
+
20
+ runs-on: ubuntu-22.04
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - uses: mirromutth/mysql-action@v1.1
26
+ with:
27
+ host port: 3306
28
+ container port: 3306
29
+ character set server: 'utf8mb4'
30
+ collation server: 'utf8mb4_general_ci'
31
+ mysql version: '5.7'
32
+ mysql database: 'resizing_gem_test'
33
+ mysql root password: secret
34
+
35
+ - name: "Install ruby dependencies"
36
+ run: |
37
+ sudo apt update
38
+ sudo apt install -y libyaml-dev curl libmysqlclient-dev
39
+
40
+ - uses: ruby/setup-ruby@v1
41
+ with:
42
+ ruby-version: ${{ matrix.ruby }}
43
+ bundler-cache: false
44
+
45
+ - name: bundle install
46
+ run: |
47
+ bundle install
48
+
49
+ - name: Run test
50
+ run: |
51
+ bundle exec rake test
52
+
53
+ - name: Upload coverage reports to Codecov
54
+ uses: codecov/codecov-action@v3
55
+ env:
56
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -39,14 +39,11 @@ module Resizing
39
39
 
40
40
  def post(file_or_binary, options = {})
41
41
  ensure_content_type(options)
42
-
43
- url = build_post_url
44
-
45
42
  filename = gather_filename file_or_binary, options
46
43
 
47
- body = to_io(file_or_binary)
44
+ url = build_post_url
48
45
  params = {
49
- image: Faraday::UploadIO.new(body, options[:content_type], filename)
46
+ image: Faraday::Multipart::FilePart.new(file_or_binary, options[:content_type], filename)
50
47
  }
51
48
 
52
49
  response = handle_faraday_error do
@@ -61,14 +58,11 @@ module Resizing
61
58
 
62
59
  def put(image_id, file_or_binary, options)
63
60
  ensure_content_type(options)
64
-
65
- url = build_put_url(image_id)
66
-
67
61
  filename = gather_filename file_or_binary, options
68
62
 
69
- body = to_io(file_or_binary)
63
+ url = build_put_url(image_id)
70
64
  params = {
71
- image: Faraday::UploadIO.new(body, options[:content_type], filename)
65
+ image: Faraday::Multipart::FilePart.new(file_or_binary, options[:content_type], filename)
72
66
  }
73
67
 
74
68
  response = handle_faraday_error do
@@ -134,18 +128,6 @@ module Resizing
134
128
  "#{config.image_host}/projects/#{config.project_id}/upload/images/#{image_id}/metadata"
135
129
  end
136
130
 
137
-
138
- def to_io(data)
139
- return data.to_io if data.respond_to? :to_io
140
-
141
- case data
142
- when String
143
- StringIO.new(data)
144
- else
145
- raise ArgumentError, "file_or_binary is required IO class or String:#{data.class}"
146
- end
147
- end
148
-
149
131
  def ensure_content_type(options)
150
132
  raise ArgumentError, "need options[:content_type] for #{options.inspect}" unless options[:content_type]
151
133
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Resizing
4
- VERSION = '1.0.0.pre'
4
+ VERSION = '1.1.0.pre'
5
5
  end
data/lib/resizing.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'resizing/version'
4
4
  require 'faraday'
5
+ require 'faraday/multipart'
5
6
  require 'json'
6
7
 
7
8
  module Resizing
data/resizing.gemspec CHANGED
@@ -28,13 +28,17 @@ Gem::Specification.new do |spec|
28
28
  spec.bindir = 'exe'
29
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ['lib']
31
- spec.add_runtime_dependency 'faraday', '~> 1.0'
31
+ spec.add_runtime_dependency 'faraday', '~> 2.3'
32
+ spec.add_runtime_dependency 'faraday-multipart'
32
33
  spec.add_development_dependency 'rails', '~> 6.0'
33
- spec.add_development_dependency 'carrierwave', '~> 1.3.2'
34
+ spec.add_development_dependency 'carrierwave', '~> 2.2.5'
34
35
  spec.add_development_dependency 'fog-aws'
35
36
  spec.add_development_dependency 'minitest'
36
37
  spec.add_development_dependency 'minitest-ci'
37
38
  spec.add_development_dependency 'rubocop'
38
39
  spec.add_development_dependency 'timecop'
39
40
  spec.add_development_dependency 'vcr'
41
+ spec.add_development_dependency 'mysql2'
42
+ spec.add_development_dependency 'simplecov'
43
+ spec.add_development_dependency 'simplecov-cobertura'
40
44
  end
data/test/test_helper.rb CHANGED
@@ -1,4 +1,22 @@
1
1
  # frozen_string_literal: true
2
+ require 'simplecov'
3
+ require 'simplecov-cobertura'
4
+
5
+ SimpleCov.start do
6
+ add_filter "/test/"
7
+
8
+ if ENV['CI']
9
+ formatter SimpleCov::Formatter::CoberturaFormatter
10
+ else
11
+ formatter SimpleCov::Formatter::MultiFormatter.new([
12
+ SimpleCov::Formatter::SimpleFormatter,
13
+ SimpleCov::Formatter::HTMLFormatter
14
+ ])
15
+ end
16
+
17
+ enable_coverage :branch
18
+ primary_coverage :branch
19
+ end
2
20
 
3
21
  $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
4
22
  require 'time'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resizing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre
4
+ version: 1.1.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Junichiro Kasuya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-02 00:00:00.000000000 Z
11
+ date: 2024-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '2.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '2.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday-multipart
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rails
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +58,14 @@ dependencies:
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: 1.3.2
61
+ version: 2.2.5
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: 1.3.2
68
+ version: 2.2.5
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: fog-aws
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,48 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: mysql2
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: simplecov-cobertura
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
139
195
  description: 'Client and utilities for Resizing '
140
196
  email:
141
197
  - junichiro.kasuya@gmail.com
@@ -146,7 +202,7 @@ executables:
146
202
  extensions: []
147
203
  extra_rdoc_files: []
148
204
  files:
149
- - ".circleci/config.yml"
205
+ - ".github/workflows/test.yml"
150
206
  - ".gitignore"
151
207
  - ".rubocop.yml"
152
208
  - CHANGELOG.md
data/.circleci/config.yml DELETED
@@ -1,73 +0,0 @@
1
- version: 2
2
-
3
- jobs:
4
- build:
5
- docker:
6
- - image: circleci/ruby:2.6.2-node
7
- environment:
8
- BUNDLE_JOBS: 4
9
- BUNDLE_RETRY: 3
10
- BUNDLE_PATH: vendor/bundle
11
- BUNDLE_APP_CONFIG: "./.bundle"
12
- TZ: /usr/share/zoneinfo/Asia/Tokyo
13
- LANG: ja_JP.UTF8
14
- - image: circleci/mysql:5.7
15
- environment:
16
- MYSQL_ROOT_PASSWORD: secret
17
- MYSQL_DATABASE: resizing_gem_test
18
- MYSQL_USER: resizing_gem
19
- MYSQL_PASSWORD: secret
20
- TZ: /usr/share/zoneinfo/Asia/Tokyo
21
- LANG: ja_JP.UTF8
22
- command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
23
-
24
- steps:
25
- - checkout
26
- - run:
27
- name: Which bundler?
28
- command: |
29
- bundle -v
30
- bundle config
31
-
32
- - restore_cache:
33
- keys:
34
- - v2-{{ .Environment.CACHE_KEY }}-gem-cache-{{ arch }}-{{ .Branch }}
35
- - v2-{{ .Environment.CACHE_KEY }}-gem-cache
36
-
37
- - run:
38
- name: reinstall rake && bundle install
39
- command: |
40
- sudo gem install bundler
41
- sudo gem uninstall -x rake
42
- echo "install: --no-document" >> ~/.gemrc
43
- bundle config set --local path vendor/bundle
44
- bundle config set --local clean true
45
- bundle check || bundle install
46
-
47
- - save_cache:
48
- key: v2-{{ .Environment.CACHE_KEY }}-gem-cache-{{ arch }}-{{ .Branch }}
49
- paths:
50
- - vendor/bundle
51
-
52
- - run:
53
- name: connectable MySQL?
54
- command: |
55
- dockerize -wait tcp://127.0.0.1:3306 -timeout 1m
56
-
57
- # - run:
58
- # name: rubocop
59
- # command: bundle exec rubocop --parallel
60
- # - run:
61
- # name: brakeman
62
- # command: bundle exec brakeman --no-exit-on-error -w 1 -z
63
- - run:
64
- command: bundle exec rake test
65
- when: always
66
- - store_test_results:
67
- path: test/reports
68
-
69
- workflows:
70
- version: 2
71
- build-deploy:
72
- jobs:
73
- - build