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 +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: []
|