ruby-vips 2.2.0 → 2.2.1
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 +4 -4
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/test.yml +2 -3
- data/CHANGELOG.md +7 -0
- data/VERSION +1 -1
- data/lib/vips/image.rb +8 -1
- data/lib/vips/interpolate.rb +3 -3
- data/lib/vips/mutableimage.rb +1 -1
- data/lib/vips/operation.rb +15 -10
- data/lib/vips/region.rb +3 -3
- data/lib/vips/sourcecustom.rb +1 -1
- data/lib/vips/targetcustom.rb +1 -1
- data/lib/vips/version.rb +1 -1
- data/lib/vips.rb +25 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: faf388c9ee4f7b130b34c0a30954da1d9efd08b09799befe88d676bca7c79f64
|
4
|
+
data.tar.gz: 015463ac062367c72195e8349669c8ed80123c81cb88710951130d030b6a4018
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e05333180a545ecae8a7aa4da0a0fa1382e2b8e0233338b2e818cfcaa7de6e2a14c9be0d6f11510393ffb4343e5ad84a7100ba665c158546fd8dfcb71e83462e
|
7
|
+
data.tar.gz: b4edb03ea9b62fd30c41fc51bb9cfb94214b4929e83df24c62742de63f7dbff1d13220e57a234da8592816f33e09f0122a9a60c790c9d459b236e655c7691467
|
data/.github/workflows/test.yml
CHANGED
@@ -20,7 +20,7 @@ jobs:
|
|
20
20
|
|
21
21
|
steps:
|
22
22
|
- name: Checkout code
|
23
|
-
uses: actions/checkout@
|
23
|
+
uses: actions/checkout@v4
|
24
24
|
|
25
25
|
- name: Set up Ruby
|
26
26
|
uses: ruby/setup-ruby@v1
|
@@ -38,7 +38,6 @@ jobs:
|
|
38
38
|
matrix:
|
39
39
|
os-version: [ 'ubuntu-20.04' ]
|
40
40
|
ruby-version:
|
41
|
-
- '2.0'
|
42
41
|
- '2.1'
|
43
42
|
- '2.2'
|
44
43
|
- '2.3'
|
@@ -56,7 +55,7 @@ jobs:
|
|
56
55
|
|
57
56
|
steps:
|
58
57
|
- name: Checkout code
|
59
|
-
uses: actions/checkout@
|
58
|
+
uses: actions/checkout@v4
|
60
59
|
|
61
60
|
- name: Set up Ruby
|
62
61
|
uses: ruby/setup-ruby@v1
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,13 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## Version 2.2.1 (2023-02-21)
|
6
|
+
|
7
|
+
* add `Vips.block_untrusted` method to block all untrusted operations. Only for libvips >= 8.13. [Docs](https://www.libvips.org/API/current/libvips-vips.html#vips-block-untrusted-set). [#382](https://github.com/libvips/ruby-vips/pull/382) [aglushkov](https://github.com/aglushkov)
|
8
|
+
* add `Vips.block` method to block specific operation. Only for libvips >= 8.13. [Docs](https://www.libvips.org/API/current/VipsOperation.html#vips-operation-block-set). [#382](https://github.com/libvips/ruby-vips/pull/382) [aglushkov](https://github.com/aglushkov)
|
9
|
+
* `new_from_source` keeps a ref to the source object [taylorthurlow]
|
10
|
+
* some fixes to object references system
|
11
|
+
|
5
12
|
## Version 2.2.0 (2023-10-18)
|
6
13
|
|
7
14
|
* add `draw_point!` [jcupitt]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.2.
|
1
|
+
2.2.1
|
data/lib/vips/image.rb
CHANGED
@@ -458,7 +458,14 @@ module Vips
|
|
458
458
|
loader = Vips.vips_foreign_find_load_source source
|
459
459
|
raise Vips::Error if loader.nil?
|
460
460
|
|
461
|
-
Vips::Operation.call loader, [source], opts, option_string
|
461
|
+
result = Vips::Operation.call loader, [source], opts, option_string
|
462
|
+
|
463
|
+
# keep a secret ref to the source object ... the libvips loader will
|
464
|
+
# keep a ref to the C source object, but we need the ruby wrapper object
|
465
|
+
# to stay alive too
|
466
|
+
result.references << source
|
467
|
+
|
468
|
+
result
|
462
469
|
end
|
463
470
|
|
464
471
|
def self.matrix_from_array width, height, array
|
data/lib/vips/interpolate.rb
CHANGED
@@ -49,10 +49,10 @@ module Vips
|
|
49
49
|
|
50
50
|
def initialize name
|
51
51
|
name = name.to_s if name.is_a? Symbol
|
52
|
-
|
53
|
-
raise Vips::Error if
|
52
|
+
pointer = Vips.vips_interpolate_new name
|
53
|
+
raise Vips::Error if pointer.nil?
|
54
54
|
|
55
|
-
super
|
55
|
+
super(pointer)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
data/lib/vips/mutableimage.rb
CHANGED
data/lib/vips/operation.rb
CHANGED
@@ -218,7 +218,7 @@ module Vips
|
|
218
218
|
raise Vips::Error if value.null?
|
219
219
|
end
|
220
220
|
|
221
|
-
super
|
221
|
+
super(value)
|
222
222
|
end
|
223
223
|
|
224
224
|
def build
|
@@ -283,7 +283,7 @@ module Vips
|
|
283
283
|
value = value.map { |x| Operation.imageize match_image, x }
|
284
284
|
end
|
285
285
|
|
286
|
-
super
|
286
|
+
super(name, value)
|
287
287
|
end
|
288
288
|
|
289
289
|
public
|
@@ -440,14 +440,12 @@ module Vips
|
|
440
440
|
end
|
441
441
|
end
|
442
442
|
|
443
|
-
#
|
444
|
-
|
443
|
+
# dedupe all input references here
|
444
|
+
deduped_references = Set.new
|
445
445
|
|
446
446
|
add_reference = lambda do |x|
|
447
447
|
if x.is_a?(Vips::Image)
|
448
|
-
x.references
|
449
|
-
references << i
|
450
|
-
end
|
448
|
+
deduped_references.merge x.references
|
451
449
|
end
|
452
450
|
false
|
453
451
|
end
|
@@ -482,20 +480,27 @@ module Vips
|
|
482
480
|
|
483
481
|
op = op.build
|
484
482
|
|
483
|
+
# we need an array of references for output objects
|
484
|
+
references = deduped_references.to_a
|
485
|
+
|
485
486
|
# attach all input refs to output x
|
486
487
|
set_reference = lambda do |x|
|
488
|
+
# stop early if there are no refs to attach
|
489
|
+
return true if references == []
|
490
|
+
|
487
491
|
if x.is_a? Vips::Image
|
488
|
-
x.references
|
492
|
+
references.each { |i| x.references << i }
|
489
493
|
end
|
494
|
+
|
490
495
|
false
|
491
496
|
end
|
492
497
|
|
493
498
|
# get all required results
|
494
499
|
result = []
|
495
500
|
required_output.each do |details|
|
496
|
-
value = details[:arg_name]
|
501
|
+
value = op.get(details[:arg_name])
|
497
502
|
flat_find value, &set_reference
|
498
|
-
result <<
|
503
|
+
result << value
|
499
504
|
end
|
500
505
|
|
501
506
|
# fetch all optional ones
|
data/lib/vips/region.rb
CHANGED
@@ -44,10 +44,10 @@ module Vips
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def initialize(name)
|
47
|
-
|
48
|
-
raise Vips::Error if
|
47
|
+
pointer = Vips.vips_region_new name
|
48
|
+
raise Vips::Error if pointer.null?
|
49
49
|
|
50
|
-
super
|
50
|
+
super(pointer)
|
51
51
|
end
|
52
52
|
|
53
53
|
def width
|
data/lib/vips/sourcecustom.rb
CHANGED
data/lib/vips/targetcustom.rb
CHANGED
data/lib/vips/version.rb
CHANGED
data/lib/vips.rb
CHANGED
@@ -779,6 +779,31 @@ module Vips
|
|
779
779
|
major > x || (major == x && minor >= y)
|
780
780
|
end
|
781
781
|
|
782
|
+
if at_least_libvips?(8, 13)
|
783
|
+
attach_function :vips_block_untrusted_set, [:bool], :void
|
784
|
+
attach_function :vips_operation_block_set, %i[string bool], :void
|
785
|
+
|
786
|
+
# Block/unblock all untrusted operations from running.
|
787
|
+
# Use `vips -l` at the command-line to see the class hierarchy and which operations are marked as untrusted.
|
788
|
+
def self.block_untrusted(enabled)
|
789
|
+
vips_block_untrusted_set(enabled)
|
790
|
+
end
|
791
|
+
|
792
|
+
# Block/unblock all operations in the libvips class hierarchy at specified *operation_name* and below.
|
793
|
+
#
|
794
|
+
# For example this will block all loaders except JPEG
|
795
|
+
#
|
796
|
+
# Vips.block("VipsForeignLoad", true);
|
797
|
+
# Vips.block("VipsForeignLoadJpeg", false)
|
798
|
+
#
|
799
|
+
# Use `vips -l` at the command-line to see the class hierarchy.
|
800
|
+
# This call does nothing if the named operation is not found.
|
801
|
+
#
|
802
|
+
def self.block(operation_name, enabled)
|
803
|
+
vips_operation_block_set(operation_name, enabled)
|
804
|
+
end
|
805
|
+
end
|
806
|
+
|
782
807
|
# Get a list of all supported file suffixes.
|
783
808
|
#
|
784
809
|
# @return [[String]] array of supported suffixes
|
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.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Cupitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -113,6 +113,7 @@ extra_rdoc_files:
|
|
113
113
|
- TODO
|
114
114
|
files:
|
115
115
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
116
|
+
- ".github/dependabot.yml"
|
116
117
|
- ".github/workflows/test.yml"
|
117
118
|
- ".gitignore"
|
118
119
|
- ".standard.yml"
|