ruby-vips 2.0.17 → 2.1.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
  3. data/.github/workflows/test.yml +80 -0
  4. data/.standard.yml +17 -0
  5. data/.yardopts +0 -1
  6. data/CHANGELOG.md +13 -0
  7. data/Gemfile +3 -1
  8. data/README.md +4 -4
  9. data/Rakefile +13 -21
  10. data/TODO +3 -6
  11. data/VERSION +1 -1
  12. data/example/annotate.rb +6 -6
  13. data/example/connection.rb +18 -9
  14. data/example/daltonize8.rb +6 -6
  15. data/example/draw_lines.rb +30 -0
  16. data/example/example1.rb +4 -4
  17. data/example/example2.rb +6 -6
  18. data/example/example3.rb +5 -5
  19. data/example/example4.rb +2 -2
  20. data/example/example5.rb +4 -4
  21. data/example/inheritance_with_refcount.rb +35 -36
  22. data/example/progress.rb +3 -3
  23. data/example/thumb.rb +6 -6
  24. data/example/trim8.rb +1 -1
  25. data/example/watermark.rb +2 -2
  26. data/example/wobble.rb +1 -1
  27. data/lib/ruby-vips.rb +1 -1
  28. data/lib/vips.rb +121 -75
  29. data/lib/vips/blend_mode.rb +29 -25
  30. data/lib/vips/connection.rb +4 -4
  31. data/lib/vips/gobject.rb +18 -11
  32. data/lib/vips/gvalue.rb +54 -54
  33. data/lib/vips/image.rb +232 -155
  34. data/lib/vips/interpolate.rb +3 -2
  35. data/lib/vips/methods.rb +165 -15
  36. data/lib/vips/mutableimage.rb +154 -0
  37. data/lib/vips/object.rb +84 -85
  38. data/lib/vips/operation.rb +161 -82
  39. data/lib/vips/region.rb +6 -6
  40. data/lib/vips/source.rb +11 -12
  41. data/lib/vips/sourcecustom.rb +7 -8
  42. data/lib/vips/target.rb +12 -13
  43. data/lib/vips/targetcustom.rb +9 -10
  44. data/lib/vips/version.rb +1 -1
  45. data/ruby-vips.gemspec +26 -22
  46. metadata +28 -48
  47. data/.rubocop.yml +0 -22
  48. data/.rubocop_todo.yml +0 -473
  49. data/.travis.yml +0 -57
  50. data/install-vips.sh +0 -26
data/lib/vips/region.rb CHANGED
@@ -4,12 +4,12 @@
4
4
  # Author:: John Cupitt (mailto:jcupitt@gmail.com)
5
5
  # License:: MIT
6
6
 
7
- require 'ffi'
7
+ require "ffi"
8
8
 
9
9
  module Vips
10
10
  attach_function :vips_region_new, [:pointer], :pointer
11
11
 
12
- if Vips::at_least_libvips?(8, 8)
12
+ if Vips.at_least_libvips?(8, 8)
13
13
  attach_function :vips_region_fetch, [:pointer, :int, :int, :int, :int, SizeStruct.ptr], :pointer
14
14
  attach_function :vips_region_width, [:pointer], :int
15
15
  attach_function :vips_region_height, [:pointer], :int
@@ -44,24 +44,24 @@ module Vips
44
44
  end
45
45
 
46
46
  def initialize(name)
47
- ptr = Vips::vips_region_new name
47
+ ptr = Vips.vips_region_new name
48
48
  raise Vips::Error if ptr.null?
49
49
 
50
50
  super ptr
51
51
  end
52
52
 
53
53
  def width
54
- Vips::vips_region_width self
54
+ Vips.vips_region_width self
55
55
  end
56
56
 
57
57
  def height
58
- Vips::vips_region_height self
58
+ Vips.vips_region_height self
59
59
  end
60
60
 
61
61
  # Fetch a region filled with pixel data.
62
62
  def fetch(left, top, width, height)
63
63
  len = Vips::SizeStruct.new
64
- ptr = Vips::vips_region_fetch self, left, top, width, height, len
64
+ ptr = Vips.vips_region_fetch self, left, top, width, height, len
65
65
  raise Vips::Error if ptr.null?
66
66
 
67
67
  # wrap up as an autopointer
data/lib/vips/source.rb CHANGED
@@ -4,10 +4,10 @@
4
4
  # Author:: John Cupitt (mailto:jcupitt@gmail.com)
5
5
  # License:: MIT
6
6
 
7
- require 'ffi'
7
+ require "ffi"
8
8
 
9
9
  module Vips
10
- if Vips::at_least_libvips?(8, 9)
10
+ if Vips.at_least_libvips?(8, 9)
11
11
  attach_function :vips_source_new_from_descriptor, [:int], :pointer
12
12
  attach_function :vips_source_new_from_file, [:pointer], :pointer
13
13
  attach_function :vips_source_new_from_memory, [:pointer, :size_t], :pointer
@@ -42,26 +42,26 @@ module Vips
42
42
  #
43
43
  # Pass sources to {Image.new_from_source} to load images from
44
44
  # them.
45
- #
45
+ #
46
46
  # @param descriptor [Integer] the file descriptor
47
47
  # @return [Source] the new Vips::Source
48
48
  def self.new_from_descriptor(descriptor)
49
- ptr = Vips::vips_source_new_from_descriptor descriptor
49
+ ptr = Vips.vips_source_new_from_descriptor descriptor
50
50
  raise Vips::Error if ptr.null?
51
51
 
52
52
  Vips::Source.new ptr
53
53
  end
54
54
 
55
- # Create a new source from a file name.
55
+ # Create a new source from a file name.
56
56
  #
57
57
  # Pass sources to {Image.new_from_source} to load images from
58
58
  # them.
59
- #
59
+ #
60
60
  # @param filename [String] the name of the file
61
61
  # @return [Source] the new Vips::Source
62
62
  def self.new_from_file(filename)
63
63
  raise Vips::Error, "filename is nil" if filename.nil?
64
- ptr = Vips::vips_source_new_from_file filename
64
+ ptr = Vips.vips_source_new_from_file filename
65
65
  raise Vips::Error if ptr.null?
66
66
 
67
67
  Vips::Source.new ptr
@@ -72,18 +72,17 @@ module Vips
72
72
  #
73
73
  # Pass sources to {Image.new_from_source} to load images from
74
74
  # them.
75
- #
76
- # @param data [String] memory area
75
+ #
76
+ # @param data [String] memory area
77
77
  # @return [Source] the new Vips::Source
78
78
  def self.new_from_memory(data)
79
- ptr = Vips::vips_source_new_from_memory data, data.bytesize
79
+ ptr = Vips.vips_source_new_from_memory data, data.bytesize
80
80
  raise Vips::Error if ptr.null?
81
81
 
82
- # FIXME do we need to keep a ref to the underlying memory area? what
82
+ # FIXME do we need to keep a ref to the underlying memory area? what
83
83
  # about Image.new_from_buffer? Does that need a secret ref too?
84
84
 
85
85
  Vips::Source.new ptr
86
86
  end
87
-
88
87
  end
89
88
  end
@@ -4,14 +4,14 @@
4
4
  # Author:: John Cupitt (mailto:jcupitt@gmail.com)
5
5
  # License:: MIT
6
6
 
7
- require 'ffi'
7
+ require "ffi"
8
8
 
9
9
  module Vips
10
- if Vips::at_least_libvips?(8, 9)
10
+ if Vips.at_least_libvips?(8, 9)
11
11
  attach_function :vips_source_custom_new, [], :pointer
12
12
  end
13
13
 
14
- # A source you can attach action signal handlers to to implement
14
+ # A source you can attach action signal handlers to to implement
15
15
  # custom input types.
16
16
  #
17
17
  # For example:
@@ -23,7 +23,7 @@ module Vips
23
23
  # image = Vips::Image.new_from_source source
24
24
  # ```
25
25
  #
26
- # (just an example -- of course in practice you'd use {Source#new_from_file}
26
+ # (just an example -- of course in practice you'd use {Source#new_from_file}
27
27
  # to read from a named file)
28
28
  class SourceCustom < Vips::Source
29
29
  module SourceCustomLayout
@@ -44,7 +44,7 @@ module Vips
44
44
  end
45
45
 
46
46
  def initialize
47
- pointer = Vips::vips_source_custom_new
47
+ pointer = Vips.vips_source_custom_new
48
48
  raise Vips::Error if pointer.null?
49
49
 
50
50
  super pointer
@@ -60,7 +60,7 @@ module Vips
60
60
  def on_read &block
61
61
  signal_connect "read" do |buf, len|
62
62
  chunk = block.call len
63
- return 0 if chunk == nil
63
+ return 0 if chunk.nil?
64
64
  bytes_read = chunk.bytesize
65
65
  buf.put_bytes(0, chunk, 0, bytes_read)
66
66
  chunk.clear
@@ -70,7 +70,7 @@ module Vips
70
70
  end
71
71
 
72
72
  # The block is executed to seek the source. The interface is exactly as
73
- # IO::seek, ie. it should take an offset and whence, and return the
73
+ # IO::seek, ie. it should take an offset and whence, and return the
74
74
  # new read position.
75
75
  #
76
76
  # This handler is optional -- if you do not attach a seek handler,
@@ -85,6 +85,5 @@ module Vips
85
85
  block.call offset, whence
86
86
  end
87
87
  end
88
-
89
88
  end
90
89
  end
data/lib/vips/target.rb CHANGED
@@ -4,10 +4,10 @@
4
4
  # Author:: John Cupitt (mailto:jcupitt@gmail.com)
5
5
  # License:: MIT
6
6
 
7
- require 'ffi'
7
+ require "ffi"
8
8
 
9
9
  module Vips
10
- if Vips::at_least_libvips?(8, 9)
10
+ if Vips.at_least_libvips?(8, 9)
11
11
  attach_function :vips_target_new_to_descriptor, [:int], :pointer
12
12
  attach_function :vips_target_new_to_file, [:string], :pointer
13
13
  attach_function :vips_target_new_to_memory, [], :pointer
@@ -43,45 +43,44 @@ module Vips
43
43
  #
44
44
  # Pass targets to {Image#write_to_target} to write images to
45
45
  # them.
46
- #
46
+ #
47
47
  # @param descriptor [Integer] the file descriptor
48
48
  # @return [Target] the new Vips::Target
49
49
  def self.new_to_descriptor(descriptor)
50
- ptr = Vips::vips_target_new_to_descriptor descriptor
50
+ ptr = Vips.vips_target_new_to_descriptor descriptor
51
51
  raise Vips::Error if ptr.null?
52
52
 
53
53
  Vips::Target.new ptr
54
54
  end
55
55
 
56
- # Create a new target to a file name.
56
+ # Create a new target to a file name.
57
57
  #
58
58
  # Pass targets to {Image#write_to_target} to write images to
59
59
  # them.
60
- #
60
+ #
61
61
  # @param filename [String] the name of the file
62
62
  # @return [Target] the new Vips::Target
63
63
  def self.new_to_file(filename)
64
- raise Vips::Error, 'filename is nil' if filename.nil?
65
- ptr = Vips::vips_target_new_to_file filename
64
+ raise Vips::Error, "filename is nil" if filename.nil?
65
+ ptr = Vips.vips_target_new_to_file filename
66
66
  raise Vips::Error if ptr.null?
67
67
 
68
68
  Vips::Target.new ptr
69
69
  end
70
70
 
71
- # Create a new target to an area of memory.
71
+ # Create a new target to an area of memory.
72
72
  #
73
73
  # Pass targets to {Image#write_to_target} to write images to
74
74
  # them.
75
75
  #
76
- # Once the image has been written, use {Object#get}`("blob")` to read out
76
+ # Once the image has been written, use {Object#get}`("blob")` to read out
77
77
  # the data.
78
- #
78
+ #
79
79
  # @return [Target] the new Vips::Target
80
80
  def self.new_to_memory
81
- ptr = Vips::vips_target_new_to_memory
81
+ ptr = Vips.vips_target_new_to_memory
82
82
 
83
83
  Vips::Target.new ptr
84
84
  end
85
-
86
85
  end
87
86
  end
@@ -4,14 +4,14 @@
4
4
  # Author:: John Cupitt (mailto:jcupitt@gmail.com)
5
5
  # License:: MIT
6
6
 
7
- require 'ffi'
7
+ require "ffi"
8
8
 
9
9
  module Vips
10
- if Vips::at_least_libvips?(8, 9)
10
+ if Vips.at_least_libvips?(8, 9)
11
11
  attach_function :vips_target_custom_new, [], :pointer
12
12
  end
13
13
 
14
- # A target you can attach action signal handlers to to implememt
14
+ # A target you can attach action signal handlers to to implememt
15
15
  # custom output types.
16
16
  #
17
17
  # For example:
@@ -23,7 +23,7 @@ module Vips
23
23
  # image.write_to_target target, ".png"
24
24
  # ```
25
25
  #
26
- # (just an example -- of course in practice you'd use {Target#new_to_file}
26
+ # (just an example -- of course in practice you'd use {Target#new_to_file}
27
27
  # to write to a named file)
28
28
  class TargetCustom < Vips::Target
29
29
  module TargetCustomLayout
@@ -44,17 +44,17 @@ module Vips
44
44
  end
45
45
 
46
46
  def initialize
47
- pointer = Vips::vips_target_custom_new
47
+ pointer = Vips.vips_target_custom_new
48
48
  raise Vips::Error if pointer.null?
49
49
 
50
50
  super pointer
51
51
  end
52
52
 
53
53
  # The block is executed to write data to the source. The interface is
54
- # exactly as IO::write, ie. it should write the string and return the
54
+ # exactly as IO::write, ie. it should write the string and return the
55
55
  # number of bytes written.
56
56
  #
57
- # @yieldparam bytes [String] Write these bytes to the file
57
+ # @yieldparam bytes [String] Write these bytes to the file
58
58
  # @yieldreturn [Integer] The number of bytes written, or -1 on error
59
59
  def on_write &block
60
60
  signal_connect "write" do |p, len|
@@ -69,10 +69,9 @@ module Vips
69
69
  # The block is executed at the end of write. It should do any necessary
70
70
  # finishing action, such as closing a file.
71
71
  def on_finish &block
72
- signal_connect "finish" do
73
- block.call()
72
+ signal_connect "finish" do
73
+ block.call
74
74
  end
75
75
  end
76
-
77
76
  end
78
77
  end
data/lib/vips/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vips
2
- VERSION = "2.0.17"
2
+ VERSION = "2.1.0"
3
3
  end
data/ruby-vips.gemspec CHANGED
@@ -1,44 +1,48 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'vips/version'
3
+ require_relative "lib/vips/version"
6
4
 
7
5
  Gem::Specification.new do |spec|
8
6
  spec.name = "ruby-vips"
9
7
  spec.version = Vips::VERSION
10
- spec.authors = ["John Cupitt"]
11
- spec.email = "jcupitt@gmail.com"
12
-
13
- spec.summary = "Ruby extension for the vips image processing library."
14
- spec.description = "ruby-vips is a binding for the vips image processing library. It is fast and it can process large images without loading the whole image in memory."
8
+ spec.summary = "A fast image processing library with low memory needs"
9
+ spec.description = <<-DESC.strip
10
+ ruby-vips is a binding for the libvips image processing library. It is fast
11
+ and it can process large images without loading the whole image in memory.
12
+ DESC
15
13
  spec.homepage = "http://github.com/libvips/ruby-vips"
16
14
  spec.licenses = ["MIT"]
15
+ spec.authors = ["John Cupitt"]
16
+ spec.email = ["jcupitt@gmail.com"]
17
+
18
+ spec.metadata = {
19
+ "bug_tracker_uri" => "https://github.com/libvips/ruby-vips/issues",
20
+ "changelog_uri" =>
21
+ "https://github.com/libvips/ruby-vips/blob/master/CHANGELOG.md",
22
+ "documentation_uri" => "https://www.rubydoc.info/gems/ruby-vips",
23
+ "homepage_uri" => spec.homepage,
24
+ "source_code_uri" => "https://github.com/libvips/ruby-vips",
25
+
26
+ "msys2_mingw_dependencies" => "libvips"
27
+ }
17
28
 
18
29
  spec.require_paths = ["lib"]
19
- spec.extra_rdoc_files = [
20
- "LICENSE.txt",
21
- "README.md",
22
- "TODO"
23
- ]
30
+ spec.extra_rdoc_files = %w[LICENSE.txt README.md TODO]
24
31
 
25
32
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
33
  f.match(%r{^(test|spec|features)/})
27
34
  end
28
35
 
29
- spec.add_runtime_dependency "ffi", ["~> 1.9"]
36
+ spec.required_ruby_version = ">= 2.0.0"
37
+
38
+ spec.add_runtime_dependency "ffi", ["~> 1.12"]
30
39
 
31
- spec.add_development_dependency "rake", ["~> 11.0"]
40
+ spec.add_development_dependency "rake", ["~> 12.0"]
32
41
  spec.add_development_dependency "rspec", ["~> 3.3"]
33
42
  spec.add_development_dependency "yard", ["~> 0.9.11"]
34
- spec.add_development_dependency "redcarpet", ["~> 3.3"]
35
- spec.add_development_dependency "github-markup", ["~> 1.4"]
36
43
  spec.add_development_dependency "bundler", [">= 1.0", "< 3"]
37
44
 
38
- # RuboCop requires Ruby >= 2.2
39
45
  if Gem.ruby_version >= Gem::Version.new("2.2")
40
- spec.add_development_dependency "rubocop", ["~> 0.64"]
46
+ spec.add_development_dependency "standard"
41
47
  end
42
-
43
- spec.metadata["msys2_mingw_dependencies"] = "libvips"
44
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-vips
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.17
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Cupitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-07 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.9'
19
+ version: '1.12'
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.9'
26
+ version: '1.12'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '11.0'
33
+ version: '12.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '11.0'
40
+ version: '12.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,34 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.9.11
69
- - !ruby/object:Gem::Dependency
70
- name: redcarpet
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.3'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.3'
83
- - !ruby/object:Gem::Dependency
84
- name: github-markup
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.4'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.4'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: bundler
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -115,22 +87,24 @@ dependencies:
115
87
  - !ruby/object:Gem::Version
116
88
  version: '3'
117
89
  - !ruby/object:Gem::Dependency
118
- name: rubocop
90
+ name: standard
119
91
  requirement: !ruby/object:Gem::Requirement
120
92
  requirements:
121
- - - "~>"
93
+ - - ">="
122
94
  - !ruby/object:Gem::Version
123
- version: '0.64'
95
+ version: '0'
124
96
  type: :development
125
97
  prerelease: false
126
98
  version_requirements: !ruby/object:Gem::Requirement
127
99
  requirements:
128
- - - "~>"
100
+ - - ">="
129
101
  - !ruby/object:Gem::Version
130
- version: '0.64'
131
- description: ruby-vips is a binding for the vips image processing library. It is fast
132
- and it can process large images without loading the whole image in memory.
133
- email: jcupitt@gmail.com
102
+ version: '0'
103
+ description: "ruby-vips is a binding for the libvips image processing library. It
104
+ is fast \n and it can process large images without loading the whole image in
105
+ memory."
106
+ email:
107
+ - jcupitt@gmail.com
134
108
  executables: []
135
109
  extensions: []
136
110
  extra_rdoc_files:
@@ -138,10 +112,10 @@ extra_rdoc_files:
138
112
  - README.md
139
113
  - TODO
140
114
  files:
115
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
116
+ - ".github/workflows/test.yml"
141
117
  - ".gitignore"
142
- - ".rubocop.yml"
143
- - ".rubocop_todo.yml"
144
- - ".travis.yml"
118
+ - ".standard.yml"
145
119
  - ".yardopts"
146
120
  - CHANGELOG.md
147
121
  - Gemfile
@@ -153,6 +127,7 @@ files:
153
127
  - example/annotate.rb
154
128
  - example/connection.rb
155
129
  - example/daltonize8.rb
130
+ - example/draw_lines.rb
156
131
  - example/example1.rb
157
132
  - example/example2.rb
158
133
  - example/example3.rb
@@ -164,7 +139,6 @@ files:
164
139
  - example/trim8.rb
165
140
  - example/watermark.rb
166
141
  - example/wobble.rb
167
- - install-vips.sh
168
142
  - lib/ruby-vips.rb
169
143
  - lib/vips.rb
170
144
  - lib/vips/access.rb
@@ -186,6 +160,7 @@ files:
186
160
  - lib/vips/interpretation.rb
187
161
  - lib/vips/kernel.rb
188
162
  - lib/vips/methods.rb
163
+ - lib/vips/mutableimage.rb
189
164
  - lib/vips/object.rb
190
165
  - lib/vips/operation.rb
191
166
  - lib/vips/operationboolean.rb
@@ -208,6 +183,11 @@ homepage: http://github.com/libvips/ruby-vips
208
183
  licenses:
209
184
  - MIT
210
185
  metadata:
186
+ bug_tracker_uri: https://github.com/libvips/ruby-vips/issues
187
+ changelog_uri: https://github.com/libvips/ruby-vips/blob/master/CHANGELOG.md
188
+ documentation_uri: https://www.rubydoc.info/gems/ruby-vips
189
+ homepage_uri: http://github.com/libvips/ruby-vips
190
+ source_code_uri: https://github.com/libvips/ruby-vips
211
191
  msys2_mingw_dependencies: libvips
212
192
  post_install_message:
213
193
  rdoc_options: []
@@ -217,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
197
  requirements:
218
198
  - - ">="
219
199
  - !ruby/object:Gem::Version
220
- version: '0'
200
+ version: 2.0.0
221
201
  required_rubygems_version: !ruby/object:Gem::Requirement
222
202
  requirements:
223
203
  - - ">="
@@ -227,5 +207,5 @@ requirements: []
227
207
  rubygems_version: 3.1.2
228
208
  signing_key:
229
209
  specification_version: 4
230
- summary: Ruby extension for the vips image processing library.
210
+ summary: A fast image processing library with low memory needs
231
211
  test_files: []