ruby-vips 2.0.17 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []