remove_bg 1.4.1 → 1.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: 728a996008009c54dc10d72f0b0db353b1156182a8379c51ed0cf5f9fbe4b27e
4
- data.tar.gz: 991a7201af58af739e73af965d082b43a0427d79878e0db2f17d13c3ac575053
3
+ metadata.gz: 47f8cd273ddfe8639badf0fd59050342af16e542a508162f77fbec7b7a2a5dd4
4
+ data.tar.gz: 5adcc396f765f7a4858e7c7c4d82d7610b5d42e2200401be29b5ea543f5fdc88
5
5
  SHA512:
6
- metadata.gz: 2800e1a449e12e3168c7e15d9fd85b8424434ff568821600464a05d6448529e22514ab1e80cdd7c76c7a6ab91e45db01f99b7a7e7dab617d00b797f6788aa872
7
- data.tar.gz: 556b0ded824694cffb639cab278eb00ffea8df314c5beee20a2565528671d8548fb856a3d14a52af73c5147f54d016b457268101046ce6c75647fb0a6b606c61
6
+ metadata.gz: 4ad4065335850911ee8b45604ed0de465742bdf183078d0ae4e9de52fb1f77519d4d9bd5aa7a042d04e9c0960a8af4f3d0e84cfdb49c6ae48e773626c6ad9639
7
+ data.tar.gz: a265d257a9e77bd9d87b9ef42c2aff4b0d7b8b7b3482a8717a44b4d3192c5064b0e4e67e62b9d513ecbb67e317c8b470db19194b350ade66d73b602b6ec9a7c8
@@ -56,6 +56,8 @@ jobs:
56
56
  - image: circleci/ruby:2.6
57
57
  ruby-2.7:
58
58
  <<: *base_job
59
+ environment:
60
+ UPLOAD_COVERAGE: 1
59
61
  docker:
60
62
  - image: circleci/ruby:2.7
61
63
 
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 1.5.0
6
+
7
+ - Auto-detect any available image processing libraries
8
+ - Reduce bandwidth usage by using ZIP format where possible
9
+
3
10
  ## 1.4.1
4
11
 
5
12
  - Fixes binary encoding issue - via [#15](https://github.com/remove-bg/ruby/pull/15)
@@ -11,7 +11,7 @@ GIT
11
11
  PATH
12
12
  remote: .
13
13
  specs:
14
- remove_bg (1.4.1)
14
+ remove_bg (1.5.0)
15
15
  faraday (>= 0.15, < 2)
16
16
  image_processing (>= 1.9, < 2)
17
17
  rubyzip (>= 2.0, < 3)
@@ -21,18 +21,24 @@ GEM
21
21
  specs:
22
22
  addressable (2.7.0)
23
23
  public_suffix (>= 2.0.2, < 5.0)
24
+ codecov (0.1.16)
25
+ json
26
+ simplecov
27
+ url
24
28
  coderay (1.1.2)
25
29
  crack (0.4.3)
26
30
  safe_yaml (~> 1.0.0)
27
31
  diff-lcs (1.3)
32
+ docile (1.3.2)
28
33
  dotenv (2.7.5)
29
34
  faraday (1.0.1)
30
35
  multipart-post (>= 1.2, < 3)
31
- ffi (1.12.2)
36
+ ffi (1.13.1)
32
37
  hashdiff (1.0.1)
33
38
  image_processing (1.11.0)
34
39
  mini_magick (>= 4.9.5, < 5)
35
40
  ruby-vips (>= 2.0.17, < 3)
41
+ json (2.3.0)
36
42
  method_source (1.0.0)
37
43
  mini_magick (4.10.1)
38
44
  multipart-post (2.1.1)
@@ -47,7 +53,7 @@ GEM
47
53
  rspec-mocks (~> 3.9.0)
48
54
  rspec-core (3.9.2)
49
55
  rspec-support (~> 3.9.3)
50
- rspec-expectations (3.9.1)
56
+ rspec-expectations (3.9.2)
51
57
  diff-lcs (>= 1.2.0, < 2.0)
52
58
  rspec-support (~> 3.9.0)
53
59
  rspec-mocks (3.9.1)
@@ -62,12 +68,20 @@ GEM
62
68
  ffi (~> 1.9)
63
69
  rubyzip (2.3.0)
64
70
  safe_yaml (1.0.5)
71
+ simplecov (0.18.5)
72
+ docile (~> 1.1)
73
+ simplecov-html (~> 0.11)
74
+ simplecov-html (0.12.2)
65
75
  thor (1.0.1)
76
+ url (0.3.2)
66
77
  vcr (5.1.0)
78
+ vcr_better_binary (0.1.0)
79
+ vcr (~> 5.0)
67
80
  webmock (3.8.3)
68
81
  addressable (>= 2.3.6)
69
82
  crack (>= 0.3.2)
70
83
  hashdiff (>= 0.4.0, < 2.0.0)
84
+ yard (0.9.25)
71
85
 
72
86
  PLATFORMS
73
87
  ruby
@@ -75,6 +89,7 @@ PLATFORMS
75
89
  DEPENDENCIES
76
90
  appraisal!
77
91
  bundler (~> 2.0)
92
+ codecov
78
93
  dotenv
79
94
  pry
80
95
  rake
@@ -82,8 +97,11 @@ DEPENDENCIES
82
97
  rspec (~> 3.8)
83
98
  rspec-with_params
84
99
  rspec_junit_formatter
100
+ simplecov
85
101
  vcr
102
+ vcr_better_binary
86
103
  webmock
104
+ yard
87
105
 
88
106
  BUNDLED WITH
89
107
  2.1.4
data/README.md CHANGED
@@ -2,16 +2,58 @@
2
2
 
3
3
  # Ruby library
4
4
 
5
- [![CircleCI](https://circleci.com/gh/remove-bg/ruby/tree/master.svg?style=shield)](https://circleci.com/gh/remove-bg/ruby/tree/master) [![Gem Version](https://badge.fury.io/rb/remove_bg.svg)](https://rubygems.org/gems/remove_bg)
5
+ [![CircleCI](https://circleci.com/gh/remove-bg/ruby/tree/master.svg?style=shield)](https://circleci.com/gh/remove-bg/ruby/tree/master) [![Gem Version](https://badge.fury.io/rb/remove_bg.svg)](https://rubygems.org/gems/remove_bg) [![codecov](https://codecov.io/gh/remove-bg/ruby/branch/master/graph/badge.svg)](https://codecov.io/gh/remove-bg/ruby)
6
6
 
7
- ## Installation
7
+ ## Quickstart installation
8
8
 
9
- - Add `gem "remove_bg"` to your application's Gemfile and then execute `bundle`.
10
- - Or install it yourself as: `gem install remove_bg`
9
+ Add the gem to your `Gemfile` and run `bundle install`:
11
10
 
12
- ## Usage
11
+ ```
12
+ gem "remove_bg"
13
+ ```
14
+
15
+ Or run `gem install remove_bg` to install globally.
16
+
17
+ Please note the base configuration has the following resolution limits:
18
+
19
+ | Output format | Resolution limit |
20
+ |---------------|------------------|
21
+ | PNG | 10 megapixels |
22
+ | JPG | 25 megapixels |
23
+
24
+ ## Full installation
25
+
26
+ For best performance and quality the gem requires an image processing library.
27
+ Please install one of the following libraries:
28
+
29
+ - [ImageMagick](https://www.imagemagick.org/)
30
+ - [GraphicsMagick](http://www.graphicsmagick.org/)
31
+ - [libvips](http://libvips.github.io/libvips/)
32
+
33
+ The gem will auto-detect any image processing libraries present. However you may
34
+ prefer to explicitly configure which library to use:
35
+
36
+ ```ruby
37
+ RemoveBg.configure do |config|
38
+ config.image_processor = :minimagick # For ImageMagick or GraphicsMagick
39
+ # or
40
+ config.image_processor = :vips
41
+ end
42
+ ```
43
+
44
+ The full installation has the following resolution limits:
45
+
46
+ | Output format | Resolution limit |
47
+ |---------------|------------------|
48
+ | PNG | 25 megapixels |
49
+ | JPG | 25 megapixels |
50
+ | ZIP | 25 megapixels |
13
51
 
14
- ### Configuring an API key
52
+ # Usage
53
+
54
+ For more in-depth documentation please see [RubyDoc](https://www.rubydoc.info/gems/remove_bg)
55
+
56
+ ## Configuring an API key
15
57
 
16
58
  To configure a global API key (used by default unless overridden per request):
17
59
 
@@ -25,7 +67,7 @@ It's not recommended to commit your API key to version control. You may want to
25
67
  read the API key from an environment variable (e.g.
26
68
  `ENV.fetch("REMOVE_BG_API_KEY")`) or find an alternative method.
27
69
 
28
- ### Removing the background from an image
70
+ ## Removing the background from an image
29
71
 
30
72
  Currently the gem supports removing the background from a file or a URL:
31
73
 
@@ -34,7 +76,7 @@ RemoveBg.from_file("image.png")
34
76
  RemoveBg.from_url("http://example.com/image.png")
35
77
  ```
36
78
 
37
- #### Request options
79
+ ## Request options
38
80
 
39
81
  The processing options outlined in the [API reference](https://www.remove.bg/api)
40
82
  can be specified per request:
@@ -49,7 +91,7 @@ The API key can also be specified per request:
49
91
  RemoveBg.from_file("image.png", api_key: "<api-key>")
50
92
  ```
51
93
 
52
- #### Handling the result
94
+ ## Handling the result
53
95
 
54
96
  Background removal requests return a result object which includes the processed
55
97
  image data and the metadata about the operation.
@@ -69,30 +111,13 @@ result.save("processed/image.png")
69
111
  result.save("image.png", overwrite: true) # Careful!
70
112
  ```
71
113
 
72
- #### Processing images over 10 megapixels
73
-
74
- The Remove.bg API provides a [ZIP format](https://www.remove.bg/api#zip-format)
75
- which includes all the information required to efficiently composite a large
76
- image with transparency.
114
+ ## Producing transparent images over 10 megapixels
77
115
 
78
- The gem can handle this composition for you, but you'll need
79
- [ImageMagick]/[GraphicsMagick] or [libvips] available on your computer.
116
+ After configuring a full installation (detailed above) you can process images
117
+ over 10 megapixels with a transparent output.
80
118
 
81
- [ImageMagick]: https://www.imagemagick.org
82
- [GraphicsMagick]: http://www.graphicsmagick.org
83
- [libvips]: http://libvips.github.io/libvips/
84
-
85
- Please configure the image processing library you'd like to use:
86
-
87
- ```ruby
88
- RemoveBg.configure do |config|
89
- config.image_processor = :minimagick # For ImageMagick or GraphicsMagick
90
- # or
91
- config.image_processor = :vips
92
- end
93
- ```
94
-
95
- Then process images specifying the `zip` format:
119
+ Process images with either the `png` or `zip` format. If you specify the `zip`
120
+ format it's possible to save the archive and handle composition yourself.
96
121
 
97
122
  ```ruby
98
123
  result = RemoveBg.from_file("large-image.jpg", format: "zip")
@@ -102,7 +127,7 @@ result.save("result-with-transparency.png")
102
127
  result.save_zip("result.zip") # If you want to handle composition yourself
103
128
  ```
104
129
 
105
- #### Rate limits
130
+ ## Rate limits
106
131
 
107
132
  The [API has rate limits][rate-limits]. Image processing results include the
108
133
  rate limit information:
@@ -118,7 +143,7 @@ raised. This also contains further information via the `#rate_limit` method.
118
143
 
119
144
  [rate-limits]: https://www.remove.bg/api#rate-limit
120
145
 
121
- ### Fetching account information
146
+ ## Fetching account information
122
147
 
123
148
  To display the [account information][account-info] for the currently configured
124
149
  API key:
@@ -150,11 +175,22 @@ Bug reports and pull requests are welcome on GitHub at [remove-bg/ruby](https://
150
175
 
151
176
  ## Development
152
177
 
178
+ ### Setup
179
+
153
180
  After checking out the repo, run `bin/setup` to install dependencies. Then, run
154
181
  `rake spec` to run the tests.
155
182
 
156
- To install this gem onto your local machine, run `bundle exec rake install`. To
157
- release a new version, update the version number in `version.rb`, and then run
183
+ ### Releasing a new version
184
+ To release a new version, update the version number in `version.rb`, and then run
158
185
  `bundle exec rake release`, which will create a git tag for the version, push
159
186
  git commits and tags, and push the `.gem` file to
160
187
  [rubygems.org](https://rubygems.org).
188
+
189
+ ### Documentation
190
+
191
+ To preview the [YARD documentation](https://yardoc.org/) locally run:
192
+
193
+ ```
194
+ bundle exec yard server --reload
195
+ open http://localhost:8808/
196
+ ```
@@ -4,21 +4,38 @@ require "remove_bg/configuration"
4
4
  require "remove_bg/request_options"
5
5
 
6
6
  module RemoveBg
7
+ # Removes the background from an image on the local file system
8
+ # @param image_path [String] Path to the input image
9
+ # @param options [Hash<Symbol, Object>] Image processing options (see API docs)
10
+ # @return [RemoveBg::Result|RemoveBg::CompositeResult] a processed image result
11
+ #
7
12
  def self.from_file(image_path, raw_options = {})
8
13
  options = RemoveBg::RequestOptions.new(raw_options)
9
14
  ApiClient.new.remove_from_file(image_path, options)
10
15
  end
11
16
 
17
+ # Removes the background from the image at the URL specified
18
+ # @param image_url [String] Absolute URL of the input image
19
+ # @param options [Hash<Symbol, Object>] Image processing options (see API docs)
20
+ # @return [RemoveBg::Result|RemoveBg::CompositeResult] A processed image result
21
+ #
12
22
  def self.from_url(image_url, raw_options = {})
13
23
  options = RemoveBg::RequestOptions.new(raw_options)
14
24
  ApiClient.new.remove_from_url(image_url, options)
15
25
  end
16
26
 
27
+ # Fetches account information for the globally configured API key, or a
28
+ # specific API key if provided
29
+ # @param options [Hash<Symbol, Object>]
30
+ # @return [RemoveBg::AccountInfo]
31
+ #
17
32
  def self.account_info(raw_options = {})
18
33
  options = RemoveBg::BaseRequestOptions.new(raw_options)
19
34
  ApiClient.new.account_info(options)
20
35
  end
21
36
 
37
+ # Yields the global Remove.bg configuration
38
+ # @yield [RemoveBg::Configuration]
22
39
  def self.configure
23
40
  yield RemoveBg::Configuration.configuration
24
41
  end
@@ -1,6 +1,10 @@
1
1
  module RemoveBg
2
2
  class AccountInfo
3
- attr_reader :api, :credits
3
+ # @return [RemoveBg::AccountInfo::ApiInfo]
4
+ attr_reader :api
5
+
6
+ # @return [RemoveBg::AccountInfo::CreditsInfo]
7
+ attr_reader :credits
4
8
 
5
9
  def initialize(attributes)
6
10
  @api = ApiInfo.new(**attributes.fetch(:api))
@@ -16,21 +16,40 @@ module RemoveBg
16
16
  class ApiClient
17
17
  include RemoveBg::Api
18
18
 
19
+ # @param connection [Faraday::Connection]
20
+ #
19
21
  def initialize(connection: RemoveBg::HttpConnection.build)
20
22
  @connection = connection
21
23
  end
22
24
 
25
+ # Removes the background from an image on the local file system
26
+ # @param image_path [String]
27
+ # @param options [RemoveBg::RequestOptions]
28
+ # @return [RemoveBg::Result|RemoveBg::CompositeResult]
29
+ # @raise [RemoveBg::Error]
30
+ #
23
31
  def remove_from_file(image_path, options)
24
32
  data = options.data.merge(image_file: Upload.for_file(image_path))
25
33
  request_remove_bg(data, options.api_key)
26
34
  end
27
35
 
36
+ # Removes the background from the image at the URL specified
37
+ # @param image_url [String]
38
+ # @param options [RemoveBg::RequestOptions]
39
+ # @return [RemoveBg::Result|RemoveBg::CompositeResult]
40
+ # @raise [RemoveBg::Error]
41
+ #
28
42
  def remove_from_url(image_url, options)
29
43
  RemoveBg::UrlValidator.validate(image_url)
30
44
  data = options.data.merge(image_url: image_url)
31
45
  request_remove_bg(data, options.api_key)
32
46
  end
33
47
 
48
+ # Fetches account information
49
+ # @param options [RemoveBg::BaseRequestOptions]
50
+ # @return [RemoveBg::AccountInfo]
51
+ # @raise [RemoveBg::Error]
52
+ #
34
53
  def account_info(options)
35
54
  request_account_info(options.api_key)
36
55
  end
@@ -1,7 +1,17 @@
1
1
  require_relative "result"
2
2
 
3
3
  module RemoveBg
4
+ # Handles image composition for larger images (over 10MP) where transparency is
5
+ # required.
6
+ # @see RemoveBg::Result
7
+ #
4
8
  class CompositeResult < Result
9
+ # Saves the ZIP archive containing the alpha.png and color.jpg files
10
+ # (useful if you want to handle composition yourself)
11
+ # @param file_path [string]
12
+ # @param overwrite [boolean] Overwrite any existing file at the specified path
13
+ # @return [nil]
14
+ #
5
15
  def save_zip(file_path, overwrite: false)
6
16
  if File.exist?(file_path) && !overwrite
7
17
  raise FileOverwriteError.new(file_path)
@@ -1,13 +1,24 @@
1
+ require_relative "image_composer"
2
+
1
3
  module RemoveBg
2
4
  class Configuration
3
- attr_accessor :api_key, :image_processor
5
+ attr_accessor :api_key, :image_processor, :auto_upgrade_png_to_zip
4
6
 
5
7
  def self.configuration
6
- @configuration ||= Configuration.new
8
+ @configuration ||= Configuration.new.tap do |config|
9
+ config.image_processor = ImageComposer.detect_image_processor
10
+
11
+ # Upgrade to ZIP where possible to save bandwith
12
+ config.auto_upgrade_png_to_zip = true
13
+ end
7
14
  end
8
15
 
9
16
  def self.reset
10
- @configuration = Configuration.new
17
+ @configuration = nil
18
+ end
19
+
20
+ def can_process_images?
21
+ !image_processor.nil?
11
22
  end
12
23
  end
13
24
  end
@@ -2,7 +2,11 @@ module RemoveBg
2
2
  class Error < StandardError; end
3
3
 
4
4
  class HttpError < Error
5
- attr_reader :http_response, :http_response_body
5
+ # @return [Faraday::Response]
6
+ attr_reader :http_response
7
+
8
+ # @return [String]
9
+ attr_reader :http_response_body
6
10
 
7
11
  def initialize(message, http_response, http_response_body)
8
12
  @http_response = http_response
@@ -11,9 +15,13 @@ module RemoveBg
11
15
  end
12
16
  end
13
17
 
18
+ # Raised for all HTTP 4XX errors
14
19
  class ClientHttpError < HttpError; end
20
+
21
+ # Raised for all HTTP 5XX errors
15
22
  class ServerHttpError < HttpError; end
16
23
 
24
+ # Raised for HTTP 429 status code
17
25
  class RateLimitError < ClientHttpError
18
26
  attr_reader :rate_limit
19
27
 
@@ -8,6 +8,8 @@ module RemoveBg
8
8
  HTTP_BASE_TIMEOUT = 10
9
9
  HTTP_WRITE_TIMEOUT = 120
10
10
 
11
+ # @return [Faraday::Connection]
12
+ #
11
13
  def self.build(api_url = RemoveBg::Api::URL)
12
14
  retry_options = {
13
15
  max: 2,
@@ -1,7 +1,25 @@
1
1
  require_relative "error"
2
2
 
3
3
  module RemoveBg
4
+ # Combines alpha.png and color.jpg files to produce a full-sized transparent PNG.
5
+ # An image processing library (ImageMagick, GraphicsMagick, or libvips) must
6
+ # be available on the system.
7
+ # @see RemoveBg::CompositeResult
8
+ #
4
9
  class ImageComposer
10
+ DEFAULT_BINARY_DETECTOR = lambda do |binary_name|
11
+ system("which", binary_name, out: File::NULL)
12
+ end
13
+
14
+ def self.detect_image_processor(detector: DEFAULT_BINARY_DETECTOR)
15
+ case
16
+ when detector.call("magick"), detector.call("convert"), detector.call("gm")
17
+ :minimagick
18
+ when detector.call("vips")
19
+ :vips
20
+ end
21
+ end
22
+
5
23
  def compose(color_file:, alpha_file:, destination_path:)
6
24
  image = case configured_image_processor
7
25
  when :vips
@@ -1,6 +1,8 @@
1
1
  require_relative "base_request_options"
2
2
 
3
3
  module RemoveBg
4
+ # Options for image processing requests. Arbitary options are passed directly to the API.
5
+ #
4
6
  class RequestOptions < BaseRequestOptions
5
7
  SIZE_REGULAR = "regular"
6
8
  SIZE_MEDIUM = "medium"
@@ -15,10 +17,40 @@ module RemoveBg
15
17
  CHANNELS_RGBA = "rgba"
16
18
  CHANNELS_ALPHA = "alpha"
17
19
 
20
+ FORMAT_PNG = "png"
21
+ FORMAT_ZIP = "zip"
22
+ FORMAT_JPG = "jpg"
23
+
18
24
  def initialize(raw_options = {})
19
25
  options = raw_options.dup
20
26
  options[:size] ||= SIZE_AUTO
27
+
28
+ if options.key?(:format)
29
+ options[:format] = optimize_format(options[:format])
30
+ end
31
+
21
32
  super(options)
22
33
  end
34
+
35
+ private
36
+
37
+ # Save bandwidth where possible
38
+ def optimize_format(requested_format)
39
+ requested_png = requested_format.to_s.casecmp?(FORMAT_PNG)
40
+
41
+ if requested_png && optimization_enabled? && can_process_images?
42
+ FORMAT_ZIP
43
+ else
44
+ requested_format
45
+ end
46
+ end
47
+
48
+ def can_process_images?
49
+ RemoveBg::Configuration.configuration.can_process_images?
50
+ end
51
+
52
+ def optimization_enabled?
53
+ RemoveBg::Configuration.configuration.auto_upgrade_png_to_zip
54
+ end
23
55
  end
24
56
  end
@@ -5,10 +5,17 @@ require_relative "error"
5
5
  require_relative "image_composer"
6
6
 
7
7
  module RemoveBg
8
+ # Provides convenience methods to save the processed image, read the image data,
9
+ # and access metadata such as the image height/width and credits charged.
10
+ #
8
11
  class Result
9
12
  extend ::Forwardable
10
13
 
11
- attr_reader :metadata, :rate_limit
14
+ # @return [RemoveBg::ResultMetadata]
15
+ attr_reader :metadata
16
+
17
+ # @return [RemoveBg::RateLimitInfo]
18
+ attr_reader :rate_limit
12
19
 
13
20
  def_delegators :metadata, :type, :width, :height, :credits_charged
14
21
 
@@ -18,6 +25,11 @@ module RemoveBg
18
25
  @rate_limit = rate_limit
19
26
  end
20
27
 
28
+ # Saves the processed image to the path specified
29
+ # @param file_path [string]
30
+ # @param overwrite [boolean] Overwrite any existing file at the specified path
31
+ # @return [nil]
32
+ #
21
33
  def save(file_path, overwrite: false)
22
34
  if File.exist?(file_path) && !overwrite
23
35
  raise FileOverwriteError.new(file_path)
@@ -26,6 +38,9 @@ module RemoveBg
26
38
  FileUtils.cp(image_file, file_path)
27
39
  end
28
40
 
41
+ # Returns the binary data of the processed image
42
+ # @return [String]
43
+ #
29
44
  def data
30
45
  image_file.rewind
31
46
  image_file.read
@@ -1,3 +1,3 @@
1
1
  module RemoveBg
2
- VERSION = "1.4.1"
2
+ VERSION = "1.5.0"
3
3
  end
@@ -28,12 +28,16 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency "rubyzip", ">= 2.0", "< 3"
29
29
 
30
30
  spec.add_development_dependency "bundler", "~> 2.0"
31
+ spec.add_development_dependency "codecov"
31
32
  spec.add_development_dependency "dotenv"
32
33
  spec.add_development_dependency "pry"
33
34
  spec.add_development_dependency "rake"
34
35
  spec.add_development_dependency "rspec_junit_formatter"
35
36
  spec.add_development_dependency "rspec-with_params"
36
37
  spec.add_development_dependency "rspec", "~> 3.8"
38
+ spec.add_development_dependency "simplecov"
39
+ spec.add_development_dependency "vcr_better_binary"
37
40
  spec.add_development_dependency "vcr"
38
41
  spec.add_development_dependency "webmock"
42
+ spec.add_development_dependency "yard"
39
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remove_bg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Peate
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-25 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -84,6 +84,20 @@ dependencies:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
86
  version: '2.0'
87
+ - !ruby/object:Gem::Dependency
88
+ name: codecov
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
87
101
  - !ruby/object:Gem::Dependency
88
102
  name: dotenv
89
103
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +182,34 @@ dependencies:
168
182
  - - "~>"
169
183
  - !ruby/object:Gem::Version
170
184
  version: '3.8'
185
+ - !ruby/object:Gem::Dependency
186
+ name: simplecov
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: vcr_better_binary
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
171
213
  - !ruby/object:Gem::Dependency
172
214
  name: vcr
173
215
  requirement: !ruby/object:Gem::Requirement
@@ -196,6 +238,20 @@ dependencies:
196
238
  - - ">="
197
239
  - !ruby/object:Gem::Version
198
240
  version: '0'
241
+ - !ruby/object:Gem::Dependency
242
+ name: yard
243
+ requirement: !ruby/object:Gem::Requirement
244
+ requirements:
245
+ - - ">="
246
+ - !ruby/object:Gem::Version
247
+ version: '0'
248
+ type: :development
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ requirements:
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
199
255
  description:
200
256
  email:
201
257
  - team@remove.bg