ruby-vips 0.3.9 → 0.3.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dc46d8bad7bdd686a69c0da9fb009c27afd4c66b
4
+ data.tar.gz: 827afdfb3a22897c2b65c85b31535760e8dc450a
5
+ SHA512:
6
+ metadata.gz: fa458e1470eb0e7196ce1eb9ddb0c182366a72299acd01edd4dcf283c0a04ba0df6705ee0da15494ae1be1cde0e2a9d6bcdfa2fe13bfeeb432f7963929388bf1
7
+ data.tar.gz: 4c107f40deace0d32bb530d81ec6b9d70578d50589805b5fc8ecb9b33495fe96401b1b0327b5877e88c93565c19b07ab8ba26b9fa26ee18220ab3876712258d6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # master
2
2
 
3
+ # Version 0.3.12
4
+
5
+ * incremental GC every 10 writes [felixbuenemann]
6
+ * updated bundle [John Cupitt]
7
+
8
+ # Version 0.3.11
9
+
10
+ * added magick load from buffer [John Cupitt]
11
+
12
+ # Version 0.3.10
13
+
14
+ * added webp write [John Cupitt]
15
+
3
16
  # Version 0.3.9
4
17
 
5
18
  * removed a stray file from gemspec [Alessandro Tagliapietra]
data/Gemfile.lock CHANGED
@@ -25,7 +25,7 @@ GEM
25
25
  nokogiri (= 1.5.10)
26
26
  rake
27
27
  rdoc
28
- json (1.8.1)
28
+ json (1.8.3)
29
29
  jwt (1.0.0)
30
30
  multi_json (1.10.1)
31
31
  multi_xml (0.5.5)
@@ -39,10 +39,8 @@ GEM
39
39
  rack (~> 1.2)
40
40
  rack (1.5.2)
41
41
  rake (10.2.2)
42
- rdoc (4.1.1)
42
+ rdoc (3.12.2)
43
43
  json (~> 1.4)
44
- rdoc-data (4.0.1)
45
- rdoc (~> 4.0)
46
44
  rspec (3.0.0)
47
45
  rspec-core (~> 3.0.0)
48
46
  rspec-expectations (~> 3.0.0)
@@ -60,8 +58,7 @@ PLATFORMS
60
58
  ruby
61
59
 
62
60
  DEPENDENCIES
63
- bundler
61
+ bundler (~> 1.0)
64
62
  jeweler (~> 1.8.3)
65
- rdoc (~> 4.1)
66
- rdoc-data (~> 4.0)
63
+ rdoc (~> 3.12)
67
64
  rspec
data/README.md CHANGED
@@ -61,39 +61,42 @@ Install [homebrew](http://mxcl.github.com/homebrew) and enter:
61
61
 
62
62
  ```bash
63
63
  $ brew tap homebrew/science
64
- $ brew install vips --with-cfitsio --with-fftw --with-imagemagick \
65
- --with-libexif --with-liboil --with-libtiff --with-little-cms \
66
- --with-openexr --with-openslide --with-pango
64
+ $ brew install vips
65
+ ```
66
+
67
+ You may see some harmless warnings.
68
+
69
+ To verify that your vips install is working, try:
70
+
71
+ ```bash
72
+ $ vips --version
73
+ vips-7.42.1-Sat Dec 27 12:01:43 GMT 2014
67
74
  ```
68
75
 
69
76
  libvips has a lot of optional dependencies. You
70
- may not need all of them. See [the notes
77
+ may not need all of them. True `brew info vips` to see what you have enabled
78
+ and what is disabled. See also [the notes
71
79
  here](http://www.vips.ecs.soton.ac.uk/index.php?title=Build_on_OS_X) for
72
80
  more information.
73
81
 
74
82
  If you want to build things outside homebrew which depend on vips,
75
- such as ruby-vips, your pkg-config will need to be working. You
76
- need to point pkg-config at the homebrew area, and, additionally, at
77
- homebrew's libxml2 area:
78
-
79
- In your .profile, add something like:
83
+ such as ruby-vips, your pkg-config will need to be working. To test
84
+ `pkg-config`, try:
80
85
 
81
86
  ```bash
82
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig
87
+ $ pkg-config vips --modversion
83
88
  ```
84
89
 
85
- To verify that your vips install is correct and working, try:
86
-
87
- ```bash
88
- $ vips --version
89
- vips-7.36.4-Tue Nov 19 12:22:47 GMT 2013
90
- ```
90
+ If you see a version number, you are OK. If you don't, either update your
91
+ homebrew, or try adjusting `PKG_CONFIG_PATH`. At various times homebrew has
92
+ needed various settings. You might need to point it at homebrew or even at
93
+ libxml2.
91
94
 
92
- To verify that your pkg-config is working correctly with vips, try:
95
+ To verify that your `pkg-config` is working correctly with vips, try:
93
96
 
94
97
  ```bash
95
98
  $ pkg-config vips --libs
96
- -L/usr/local/Cellar/vips/7.36.4/lib ... a lot of stuff
99
+ -L/usr/local/Cellar/vips/7.42.1/lib ... a lot of stuff
97
100
  ```
98
101
 
99
102
  TODO: Describe & test with macports.
data/ext/reader.c CHANGED
@@ -73,6 +73,28 @@ jpeg_buf_internal(VALUE obj, VALUE buf, VALUE shrink, VALUE fail)
73
73
  return img_init(cVIPSImage, im_new);
74
74
  }
75
75
 
76
+ static VALUE
77
+ magick_buf_internal(VALUE obj, VALUE buf)
78
+ {
79
+ VipsImage *im_new;
80
+
81
+ im_new = NULL;
82
+
83
+ #if ATLEAST_VIPS( 8, 2 )
84
+ buf = StringValue(buf);
85
+
86
+ if (!(im_new = im_open("", "p")))
87
+ vips_lib_error();
88
+
89
+ if (im_bufmagick2vips(RSTRING_PTR(buf), RSTRING_LEN(buf), im_new, FALSE))
90
+ vips_lib_error();
91
+ #else
92
+ rb_raise(eVIPSError, "This method is not implemented in your version of VIPS");
93
+ #endif
94
+
95
+ return img_init(cVIPSImage, im_new);
96
+ }
97
+
76
98
  static VALUE
77
99
  png_buf_internal(VALUE obj, VALUE buf)
78
100
  {
@@ -214,6 +236,10 @@ init_Reader(void)
214
236
  rb_define_private_method(magick_reader, "read_internal", magick_read_internal, 2);
215
237
  reader_fmt_set(magick_reader, "magick");
216
238
 
239
+ magick_reader = rb_define_class_under(mVIPS, "MagickReader", reader);
240
+ rb_define_private_method(magick_reader, "buf_internal", magick_buf_internal, 1);
241
+ reader_fmt_set(magick_reader, "magick");
242
+
217
243
  /*
218
244
  * Read Analyze images.
219
245
  */
data/ext/tags CHANGED
@@ -4,18 +4,17 @@
4
4
  !_TAG_PROGRAM_NAME Exuberant Ctags //
5
5
  !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
6
  !_TAG_PROGRAM_VERSION 5.9~svn20110310 //
7
- ATLEAST_VIPS ruby_vips.h 19;" d
8
7
  CGETPIX image.c 241;" d file:
9
- DBL2NUM ruby_vips.h 26;" d
8
+ DBL2NUM ruby_vips.h 20;" d
10
9
  GETPIX image.c 228;" d file:
11
10
  GetImg image.h 26;" d
12
11
  Init_vips_ext ruby_vips.c /^Init_vips_ext()$/;" f
13
- NEED_ruby_vips_class_map_all ruby_vips.h 51;" d
12
+ NEED_ruby_vips_class_map_all ruby_vips.h 45;" d
14
13
  OutImg image.h 32;" d
15
14
  OutImg2 image.h 36;" d
16
15
  OutImg3 image.h 40;" d
17
16
  OutPartial image.h 44;" d
18
- RARRAY_LENINT ruby_vips.h 30;" d
17
+ RARRAY_LENINT ruby_vips.h 24;" d
19
18
  RUBY_VIPS_BINARY image.h 59;" d
20
19
  RUBY_VIPS_H ruby_vips.h 2;" d
21
20
  RUBY_VIPS_HEADER_H header.h 2;" d
@@ -103,8 +102,8 @@ id_ushort header.c /^static ID id_notset, id_uchar, id_char, id_ushort, id_short
103
102
  id_white image_conversion.c /^static ID id_black, id_extend, id_repeat, id_mirror, id_white;$/;" v file:
104
103
  id_xyz image.c /^static ID id_b_w, id_histogram, id_fourier, id_xyz, id_lab, id_cmyk, id_labq,$/;" v file:
105
104
  id_yxy image.c /^ id_rgb, id_ucs, id_lch, id_labs, id_srgb, id_yxy, id_rgb16, id_grey16;$/;" v file:
106
- im_openout ruby_vips.h 41;" d
107
- im_openout ruby_vips.h 42;" d
105
+ im_openout ruby_vips.h 35;" d
106
+ im_openout ruby_vips.h 36;" d
108
107
  imask mask.h /^ INTMASK *imask;$/;" m struct:_vipsMask
109
108
  imask2rb mask.c /^imask2rb(INTMASK *msk)$/;" f
110
109
  img_abs image_arithmetic.c /^img_abs(VALUE obj)$/;" f
@@ -420,12 +419,11 @@ mask_scale mask.c /^mask_scale(VALUE obj)$/;" f file:
420
419
  mask_to_image mask.c /^mask_to_image(VALUE obj)$/;" f file:
421
420
  mask_xsize mask.c /^mask_xsize(VALUE obj)$/;" f file:
422
421
  mask_ysize mask.c /^mask_ysize(VALUE obj)$/;" f file:
423
- png_buf_internal reader.c /^png_buf_internal(VALUE obj, VALUE buf)$/;" f file:
424
422
  png_buf_internal writer.c /^png_buf_internal(VALUE obj, VALUE compression, VALUE interlace)$/;" f file:
425
423
  png_write_internal writer.c /^png_write_internal(VALUE obj, VALUE path)$/;" f file:
426
424
  ppm_write_internal writer.c /^ppm_write_internal(VALUE obj, VALUE path)$/;" f file:
427
425
  raw_read_internal reader.c /^raw_read_internal(VALUE obj, VALUE path, VALUE width, VALUE height, VALUE bpp,$/;" f file:
428
- rb_str_new_cstr ruby_vips.h 34;" d
426
+ rb_str_new_cstr ruby_vips.h 28;" d
429
427
  reader_fmt_set reader.c /^reader_fmt_set(VALUE klass, const char* val)$/;" f file:
430
428
  reader_get_fmt_class reader.c /^reader_get_fmt_class(VALUE klass)$/;" f
431
429
  reader_read_internal reader.c /^reader_read_internal(VALUE obj, VALUE path, VALUE flags)$/;" f file:
@@ -435,10 +433,9 @@ ruby_vips_type_map ruby_vips.c /^ruby_vips_type_map( GType base, VipsTypeMap2 fn
435
433
  tiff_write_internal writer.c /^tiff_write_internal(VALUE obj, VALUE path)$/;" f file:
436
434
  vipsImg image.h /^typedef struct _vipsImg vipsImg;$/;" t typeref:struct:_vipsImg
437
435
  vipsMask mask.h /^typedef struct _vipsMask vipsMask;$/;" t typeref:struct:_vipsMask
438
- vips_class_map_concrete_all ruby_vips.h 50;" d
436
+ vips_class_map_concrete_all ruby_vips.h 44;" d
439
437
  vips_lib_error ruby_vips.c /^vips_lib_error()$/;" f
440
438
  vips_s_debug_info ruby_vips.c /^vips_s_debug_info(VALUE obj)$/;" f file:
441
- vips_s_thread_shutdown ruby_vips.c /^vips_s_thread_shutdown(VALUE obj)$/;" f file:
442
439
  vips_s_version_array ruby_vips.c /^vips_s_version_array()$/;" f file:
443
440
  vips_s_version_string ruby_vips.c /^vips_s_version_string()$/;" f file:
444
441
  vips_write_internal writer.c /^vips_write_internal(VALUE obj, VALUE path)$/;" f file:
data/ext/writer.c CHANGED
@@ -248,6 +248,23 @@ png_write_internal(VALUE obj, VALUE path)
248
248
 
249
249
  /* :nodoc: */
250
250
 
251
+ static VALUE
252
+ webp_write_internal(VALUE obj, VALUE path)
253
+ {
254
+ #if ATLEAST_VIPS( 7, 42 )
255
+ GetImg(obj, data, im);
256
+
257
+ if (im_vips2webp(im, RSTRING_PTR(path)))
258
+ vips_lib_error();
259
+ #else
260
+ rb_raise(eVIPSError, "This method is not implemented in your version of VIPS");
261
+ #endif
262
+
263
+ return obj;
264
+ }
265
+
266
+ /* :nodoc: */
267
+
251
268
  static VALUE
252
269
  csv_write_internal(VALUE obj, VALUE path)
253
270
  {
@@ -327,6 +344,13 @@ init_Writer(void)
327
344
  rb_define_private_method(png_writer, "write_internal", png_write_internal, 1);
328
345
  rb_define_private_method(png_writer, "buf_internal", png_buf_internal, 2);
329
346
 
347
+ /*
348
+ * Write WebP images.
349
+ */
350
+
351
+ VALUE webp_writer = rb_define_class_under(mVIPS, "WEBPWriter", writer);
352
+ rb_define_private_method(webp_writer, "write_internal", webp_write_internal, 1);
353
+
330
354
  /*
331
355
  * Write CSV images.
332
356
  */
data/lib/vips/reader.rb CHANGED
@@ -214,6 +214,12 @@ module VIPS
214
214
  end
215
215
  end
216
216
 
217
+ class MagickReader < Reader
218
+ def read_buffer
219
+ @_im = buf_internal @path
220
+ end
221
+ end
222
+
217
223
  class Image
218
224
 
219
225
  # Load a ppm file straight to a VIPS Image.
data/lib/vips/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VIPS
2
- VERSION = "0.3.9"
2
+ VERSION = "0.3.12"
3
3
  end
data/lib/vips/writer.rb CHANGED
@@ -14,14 +14,14 @@ module VIPS
14
14
  # GCing before every write would have a horrible effect on performance, so
15
15
  # as a compromise we GC every @@gc_interval writes
16
16
 
17
- @@gc_interval = 100
17
+ @@gc_interval = 10
18
18
  @@gc_countdown = @@gc_interval
19
19
 
20
20
  def write_gc(path)
21
21
  @@gc_countdown -= 1
22
22
  if @@gc_countdown < 0
23
23
  @@gc_countdown = @@gc_interval
24
- GC.start
24
+ GC.start full_mark: false, immediate_sweep: false
25
25
  end
26
26
 
27
27
  write_internal path
@@ -102,6 +102,40 @@ module VIPS
102
102
  end
103
103
  end
104
104
 
105
+ class WEBPWriter < Writer
106
+ attr_accessor :quality, :lossless
107
+
108
+ def initialize(image, options={})
109
+ super image
110
+
111
+ @quality = 75
112
+ @lossless = false
113
+
114
+ self.quality = options[:quality] if options.has_key?(:quality)
115
+ self.lossless = options[:lossless] if options.has_key?(:lossless)
116
+ end
117
+
118
+ def write(path)
119
+ write_gc "#{path}:#{@quality},#{@lossless ? 1 : 0}"
120
+ end
121
+
122
+ def quality=(quality_v)
123
+ unless (0..100).include?(quality_v)
124
+ raise ArgumentError, 'quality must be a numeric value between 0 and 100'
125
+ end
126
+
127
+ @quality = quality_v
128
+ end
129
+
130
+ def lossless=(lossless_v)
131
+ unless [True, False].include?(lossless_v)
132
+ raise ArgumentError, 'lossless must be a boolean value'
133
+ end
134
+
135
+ @lossless = lossless_v
136
+ end
137
+ end
138
+
105
139
  class PPMWriter < Writer
106
140
  attr_reader :format
107
141
 
data/ruby-vips.gemspec CHANGED
@@ -2,14 +2,17 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: ruby-vips 0.3.12 ruby lib
6
+ # stub: ext/extconf.rb
5
7
 
6
8
  Gem::Specification.new do |s|
7
9
  s.name = "ruby-vips"
8
- s.version = "0.3.9"
10
+ s.version = "0.3.12"
9
11
 
10
12
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
13
+ s.require_paths = ["lib"]
11
14
  s.authors = ["Timothy Elliott", "John Cupitt"]
12
- s.date = "2014-07-17"
15
+ s.date = "2016-01-17"
13
16
  s.description = "Ruby extension for the vips image processing library."
14
17
  s.email = "jcupitt@gmail.com"
15
18
  s.extensions = ["ext/extconf.rb"]
@@ -70,30 +73,26 @@ Gem::Specification.new do |s|
70
73
  s.homepage = "http://github.com/jcupitt/ruby-vips"
71
74
  s.licenses = ["MIT"]
72
75
  s.rdoc_options = ["--title", "ruby-vips \#{version}", "ext"]
73
- s.require_paths = ["lib"]
74
- s.rubygems_version = "1.8.23"
76
+ s.rubygems_version = "2.2.2"
75
77
  s.summary = "ruby-vips is a ruby extension for vips. It is extremely fast and it can process huge images without requiring the entire image to be loaded into memory."
76
78
 
77
79
  if s.respond_to? :specification_version then
78
- s.specification_version = 3
80
+ s.specification_version = 4
79
81
 
80
82
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
81
- s.add_development_dependency(%q<rdoc>, ["~> 4.1"])
82
- s.add_development_dependency(%q<rdoc-data>, ["~> 4.0"])
83
- s.add_development_dependency(%q<bundler>, [">= 0"])
83
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
84
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
84
85
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
85
86
  s.add_development_dependency(%q<rspec>, [">= 0"])
86
87
  else
87
- s.add_dependency(%q<rdoc>, ["~> 4.1"])
88
- s.add_dependency(%q<rdoc-data>, ["~> 4.0"])
89
- s.add_dependency(%q<bundler>, [">= 0"])
88
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
89
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
90
90
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
91
91
  s.add_dependency(%q<rspec>, [">= 0"])
92
92
  end
93
93
  else
94
- s.add_dependency(%q<rdoc>, ["~> 4.1"])
95
- s.add_dependency(%q<rdoc-data>, ["~> 4.0"])
96
- s.add_dependency(%q<bundler>, [">= 0"])
94
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
95
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
97
96
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
98
97
  s.add_dependency(%q<rspec>, [">= 0"])
99
98
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-vips
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.9
5
- prerelease:
4
+ version: 0.3.12
6
5
  platform: ruby
7
6
  authors:
8
7
  - Timothy Elliott
@@ -10,86 +9,62 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-07-17 00:00:00.000000000 Z
12
+ date: 2016-01-17 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rdoc
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
- - - ~>
18
+ - - "~>"
21
19
  - !ruby/object:Gem::Version
22
- version: '4.1'
20
+ version: '3.12'
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
- - - ~>
25
+ - - "~>"
29
26
  - !ruby/object:Gem::Version
30
- version: '4.1'
31
- - !ruby/object:Gem::Dependency
32
- name: rdoc-data
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
37
- - !ruby/object:Gem::Version
38
- version: '4.0'
39
- type: :development
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: '4.0'
27
+ version: '3.12'
47
28
  - !ruby/object:Gem::Dependency
48
29
  name: bundler
49
30
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
31
  requirements:
52
- - - ! '>='
32
+ - - "~>"
53
33
  - !ruby/object:Gem::Version
54
- version: '0'
34
+ version: '1.0'
55
35
  type: :development
56
36
  prerelease: false
57
37
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
38
  requirements:
60
- - - ! '>='
39
+ - - "~>"
61
40
  - !ruby/object:Gem::Version
62
- version: '0'
41
+ version: '1.0'
63
42
  - !ruby/object:Gem::Dependency
64
43
  name: jeweler
65
44
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
45
  requirements:
68
- - - ~>
46
+ - - "~>"
69
47
  - !ruby/object:Gem::Version
70
48
  version: 1.8.3
71
49
  type: :development
72
50
  prerelease: false
73
51
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
52
  requirements:
76
- - - ~>
53
+ - - "~>"
77
54
  - !ruby/object:Gem::Version
78
55
  version: 1.8.3
79
56
  - !ruby/object:Gem::Dependency
80
57
  name: rspec
81
58
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
59
  requirements:
84
- - - ! '>='
60
+ - - ">="
85
61
  - !ruby/object:Gem::Version
86
62
  version: '0'
87
63
  type: :development
88
64
  prerelease: false
89
65
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
66
  requirements:
92
- - - ! '>='
67
+ - - ">="
93
68
  - !ruby/object:Gem::Version
94
69
  version: '0'
95
70
  description: Ruby extension for the vips image processing library.
@@ -104,7 +79,9 @@ extra_rdoc_files:
104
79
  files:
105
80
  - CHANGELOG.md
106
81
  - Gemfile.lock
82
+ - LICENSE
107
83
  - README.md
84
+ - TODO
108
85
  - ext/extconf.rb
109
86
  - ext/header.c
110
87
  - ext/header.h
@@ -149,38 +126,32 @@ files:
149
126
  - lib/vips/writer.rb
150
127
  - ruby-vips.gemspec
151
128
  - ruby.supp
152
- - LICENSE
153
- - TODO
154
129
  homepage: http://github.com/jcupitt/ruby-vips
155
130
  licenses:
156
131
  - MIT
132
+ metadata: {}
157
133
  post_install_message:
158
134
  rdoc_options:
159
- - --title
160
- - ! 'ruby-vips #{version}'
135
+ - "--title"
136
+ - 'ruby-vips #{version}'
161
137
  - ext
162
138
  require_paths:
163
139
  - lib
164
140
  required_ruby_version: !ruby/object:Gem::Requirement
165
- none: false
166
141
  requirements:
167
- - - ! '>='
142
+ - - ">="
168
143
  - !ruby/object:Gem::Version
169
144
  version: '0'
170
- segments:
171
- - 0
172
- hash: -1056499539870116090
173
145
  required_rubygems_version: !ruby/object:Gem::Requirement
174
- none: false
175
146
  requirements:
176
- - - ! '>='
147
+ - - ">="
177
148
  - !ruby/object:Gem::Version
178
149
  version: '0'
179
150
  requirements: []
180
151
  rubyforge_project:
181
- rubygems_version: 1.8.23
152
+ rubygems_version: 2.2.2
182
153
  signing_key:
183
- specification_version: 3
154
+ specification_version: 4
184
155
  summary: ruby-vips is a ruby extension for vips. It is extremely fast and it can process
185
156
  huge images without requiring the entire image to be loaded into memory.
186
157
  test_files: []