ruby-vips 0.3.9 → 0.3.12
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 +7 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile.lock +4 -7
- data/README.md +21 -18
- data/ext/reader.c +26 -0
- data/ext/tags +7 -10
- data/ext/writer.c +24 -0
- data/lib/vips/reader.rb +6 -0
- data/lib/vips/version.rb +1 -1
- data/lib/vips/writer.rb +36 -2
- data/ruby-vips.gemspec +13 -14
- metadata +23 -52
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.
|
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 (
|
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 (~>
|
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
|
65
|
-
|
66
|
-
|
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.
|
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.
|
76
|
-
|
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
|
-
|
87
|
+
$ pkg-config vips --modversion
|
83
88
|
```
|
84
89
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
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.
|
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
|
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
|
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
|
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
|
107
|
-
im_openout ruby_vips.h
|
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
|
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
|
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
data/lib/vips/version.rb
CHANGED
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 =
|
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.
|
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 = "
|
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.
|
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 =
|
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>, ["~>
|
82
|
-
s.add_development_dependency(%q<
|
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>, ["~>
|
88
|
-
s.add_dependency(%q<
|
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>, ["~>
|
95
|
-
s.add_dependency(%q<
|
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.
|
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:
|
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: '
|
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: '
|
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
|
-
-
|
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:
|
152
|
+
rubygems_version: 2.2.2
|
182
153
|
signing_key:
|
183
|
-
specification_version:
|
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: []
|