image_pack 0.2.2 → 0.2.3

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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1 -0
  3. data/README.md +23 -4
  4. data/ext/image_pack/extconf.rb +35 -124
  5. data/ext/image_pack/image_pack.c +638 -595
  6. data/ext/image_pack/mozjpeg_sources.rb +178 -0
  7. data/ext/image_pack/vendor/mozjpeg/BUILDING.md +744 -0
  8. data/ext/image_pack/vendor/mozjpeg/CODE_OF_CONDUCT.md +15 -0
  9. data/ext/image_pack/vendor/mozjpeg/ChangeLog.md +1996 -0
  10. data/lib/image_pack/configuration.rb +54 -8
  11. data/lib/image_pack/version.rb +1 -1
  12. data/lib/image_pack.rb +65 -18
  13. metadata +13 -78
  14. data/ext/image_pack/vendor/mozjpeg/README.ijg +0 -258
  15. data/ext/image_pack/vendor/mozjpeg/cdjpeg.c +0 -156
  16. data/ext/image_pack/vendor/mozjpeg/cjpeg.c +0 -961
  17. data/ext/image_pack/vendor/mozjpeg/djpeg.c +0 -855
  18. data/ext/image_pack/vendor/mozjpeg/jaricom.c +0 -157
  19. data/ext/image_pack/vendor/mozjpeg/jcarith.c +0 -972
  20. data/ext/image_pack/vendor/mozjpeg/jcstest.c +0 -126
  21. data/ext/image_pack/vendor/mozjpeg/jdarith.c +0 -782
  22. data/ext/image_pack/vendor/mozjpeg/jdatadst-tj.c +0 -198
  23. data/ext/image_pack/vendor/mozjpeg/jdatasrc-tj.c +0 -194
  24. data/ext/image_pack/vendor/mozjpeg/jpegtran.c +0 -827
  25. data/ext/image_pack/vendor/mozjpeg/jpegyuv.c +0 -172
  26. data/ext/image_pack/vendor/mozjpeg/rdbmp.c +0 -690
  27. data/ext/image_pack/vendor/mozjpeg/rdcolmap.c +0 -253
  28. data/ext/image_pack/vendor/mozjpeg/rdgif.c +0 -720
  29. data/ext/image_pack/vendor/mozjpeg/rdjpeg.c +0 -160
  30. data/ext/image_pack/vendor/mozjpeg/rdjpgcom.c +0 -494
  31. data/ext/image_pack/vendor/mozjpeg/rdpng.c +0 -194
  32. data/ext/image_pack/vendor/mozjpeg/rdppm.c +0 -781
  33. data/ext/image_pack/vendor/mozjpeg/rdswitch.c +0 -642
  34. data/ext/image_pack/vendor/mozjpeg/rdtarga.c +0 -508
  35. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jccolext-neon.c +0 -148
  36. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jchuff-neon.c +0 -334
  37. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd.c +0 -976
  38. data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimd.c +0 -1312
  39. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd.c +0 -1143
  40. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolext-mmi.c +0 -455
  41. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolor-mmi.c +0 -148
  42. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgray-mmi.c +0 -132
  43. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgryext-mmi.c +0 -374
  44. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample-mmi.c +0 -98
  45. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolext-mmi.c +0 -415
  46. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolor-mmi.c +0 -139
  47. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmerge-mmi.c +0 -149
  48. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmrgext-mmi.c +0 -615
  49. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdsample-mmi.c +0 -304
  50. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctfst-mmi.c +0 -255
  51. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctint-mmi.c +0 -398
  52. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctfst-mmi.c +0 -395
  53. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctint-mmi.c +0 -571
  54. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jquanti-mmi.c +0 -124
  55. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd.c +0 -866
  56. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolext-altivec.c +0 -269
  57. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolor-altivec.c +0 -116
  58. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgray-altivec.c +0 -111
  59. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgryext-altivec.c +0 -228
  60. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample-altivec.c +0 -159
  61. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolext-altivec.c +0 -276
  62. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolor-altivec.c +0 -106
  63. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmerge-altivec.c +0 -130
  64. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmrgext-altivec.c +0 -329
  65. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdsample-altivec.c +0 -400
  66. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctfst-altivec.c +0 -154
  67. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctint-altivec.c +0 -258
  68. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctfst-altivec.c +0 -255
  69. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctint-altivec.c +0 -357
  70. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jquanti-altivec.c +0 -250
  71. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd.c +0 -884
  72. data/ext/image_pack/vendor/mozjpeg/strtest.c +0 -170
  73. data/ext/image_pack/vendor/mozjpeg/tjbench.c +0 -1044
  74. data/ext/image_pack/vendor/mozjpeg/tjexample.c +0 -406
  75. data/ext/image_pack/vendor/mozjpeg/tjunittest.c +0 -961
  76. data/ext/image_pack/vendor/mozjpeg/tjutil.c +0 -70
  77. data/ext/image_pack/vendor/mozjpeg/transupp.c +0 -2373
  78. data/ext/image_pack/vendor/mozjpeg/turbojpeg-jni.c +0 -1259
  79. data/ext/image_pack/vendor/mozjpeg/turbojpeg.c +0 -2320
  80. data/ext/image_pack/vendor/mozjpeg/wrbmp.c +0 -552
  81. data/ext/image_pack/vendor/mozjpeg/wrgif.c +0 -580
  82. data/ext/image_pack/vendor/mozjpeg/wrjpgcom.c +0 -577
  83. data/ext/image_pack/vendor/mozjpeg/wrppm.c +0 -366
  84. data/ext/image_pack/vendor/mozjpeg/wrtarga.c +0 -258
  85. data/ext/image_pack/vendor/mozjpeg/yuvjpeg.c +0 -268
@@ -2,14 +2,27 @@
2
2
 
3
3
  module ImagePack
4
4
  class Configuration
5
- attr_accessor :execution,
6
- :direct_input_threshold,
7
- :direct_pixel_threshold,
8
- :max_pixels,
9
- :max_width,
10
- :max_height,
11
- :max_output_size,
12
- :max_input_size
5
+ SIZE_ATTRIBUTES = %i[
6
+ direct_input_threshold
7
+ direct_pixel_threshold
8
+ max_pixels
9
+ max_output_size
10
+ max_input_size
11
+ ].freeze
12
+
13
+ INT_ATTRIBUTES = %i[
14
+ max_width
15
+ max_height
16
+ ].freeze
17
+
18
+ attr_reader :execution,
19
+ :direct_input_threshold,
20
+ :direct_pixel_threshold,
21
+ :max_pixels,
22
+ :max_width,
23
+ :max_height,
24
+ :max_output_size,
25
+ :max_input_size
13
26
 
14
27
  def initialize
15
28
  @execution = :auto
@@ -21,5 +34,38 @@ module ImagePack
21
34
  @max_output_size = 256 * 1024 * 1024
22
35
  @max_input_size = 256 * 1024 * 1024
23
36
  end
37
+
38
+ def execution=(value)
39
+ unless ImagePack::EXECUTION_MODES.include?(value)
40
+ raise InvalidArgumentError, "execution must be one of #{ImagePack::EXECUTION_MODES}, got: #{value.inspect}"
41
+ end
42
+
43
+ if value == :offload && ImagePack.respond_to?(:offload_safe?) && !ImagePack.offload_safe?
44
+ raise UnsupportedError,
45
+ "execution: :offload requires Ruby >= 3.4.0; use execution: :nogvl or :auto"
46
+ end
47
+
48
+ @execution = value
49
+ end
50
+
51
+ SIZE_ATTRIBUTES.each do |name|
52
+ define_method("#{name}=") do |value|
53
+ instance_variable_set("@#{name}", validate_nonnegative_integer!(name, value))
54
+ end
55
+ end
56
+
57
+ INT_ATTRIBUTES.each do |name|
58
+ define_method("#{name}=") do |value|
59
+ instance_variable_set("@#{name}", validate_nonnegative_integer!(name, value))
60
+ end
61
+ end
62
+
63
+ private
64
+
65
+ def validate_nonnegative_integer!(name, value)
66
+ return value if value.is_a?(Integer) && value >= 0
67
+
68
+ raise InvalidArgumentError, "#{name} must be an Integer >= 0, got: #{value.inspect}"
69
+ end
24
70
  end
25
71
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ImagePack
4
- VERSION = "0.2.2"
4
+ VERSION = "0.2.3"
5
5
  end
data/lib/image_pack.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- required = Gem::Version.new("3.4.0")
3
+ required = Gem::Version.new("3.1.0")
4
4
  current = Gem::Version.new(RUBY_VERSION)
5
5
 
6
6
  if current < required
7
7
  raise LoadError,
8
- "image_pack requires Ruby >= 3.4.0, got #{RUBY_VERSION}. " \
9
- "Reason: gem relies on RB_NOGVL_OFFLOAD_SAFE / Fiber::Scheduler hooks."
8
+ "image_pack requires Ruby >= 3.1.0, got #{RUBY_VERSION}. " \
9
+ "Ruby >= 3.4.0 is required only for execution: :offload."
10
10
  end
11
11
 
12
12
  require "pathname"
@@ -50,10 +50,15 @@ module ImagePack
50
50
  {
51
51
  version: VERSION,
52
52
  mozjpeg: defined?(NATIVE_MOZJPEG_VERSION) ? NATIVE_MOZJPEG_VERSION : nil,
53
- simd: defined?(NATIVE_SIMD) ? NATIVE_SIMD : nil
53
+ simd: defined?(NATIVE_SIMD) ? NATIVE_SIMD : nil,
54
+ offload_safe: offload_safe?
54
55
  }
55
56
  end
56
57
 
58
+ def offload_safe?
59
+ defined?(NATIVE_OFFLOAD_SAFE) && NATIVE_OFFLOAD_SAFE == true
60
+ end
61
+
57
62
  def compress_bytes(bytes, **options)
58
63
  raise InvalidArgumentError, "bytes must be a String" unless bytes.is_a?(String)
59
64
 
@@ -86,8 +91,12 @@ module ImagePack
86
91
  strip_metadata: false,
87
92
  execution: nil,
88
93
  cancellable: false)
94
+ validate_boolean!(:progressive, progressive)
95
+ validate_boolean!(:strip_metadata, strip_metadata)
96
+ validate_boolean!(:cancellable, cancellable)
89
97
  execution ||= configuration.execution
90
98
  validate_execution!(execution)
99
+ validate_execution_supported!(execution)
91
100
  validate_cancellable!(:lossless_optimize, execution, cancellable)
92
101
 
93
102
  normalized_input_kind = input_kind!(input)
@@ -115,13 +124,17 @@ module ImagePack
115
124
  cancellable: false)
116
125
  validate_algo!(algo)
117
126
  validate_min_ssim!(min_ssim)
118
- validate_mozjpeg_trellis!(mozjpeg_trellis)
127
+ validate_boolean!(:mozjpeg_trellis, mozjpeg_trellis)
128
+ validate_boolean!(:progressive, progressive)
129
+ validate_boolean!(:strip_metadata, strip_metadata)
130
+ validate_boolean!(:cancellable, cancellable)
119
131
  quality_was_given = !quality.nil?
120
132
  effective_quality = quality_was_given ? quality : DEFAULT_QUALITY
121
133
  effective_quality = 1 if min_ssim && !quality_was_given
122
134
  validate_quality!(effective_quality)
123
135
  execution ||= configuration.execution
124
136
  validate_execution!(execution)
137
+ validate_execution_supported!(execution)
125
138
  validate_cancellable!(algo, execution, cancellable)
126
139
 
127
140
  normalized_input_kind = input_kind!(input)
@@ -130,7 +143,7 @@ module ImagePack
130
143
 
131
144
  __compress_jpeg(input, normalized_input_kind,
132
145
  output, normalized_output_kind,
133
- ALGO_TO_NATIVE.fetch(algo), effective_quality.to_i,
146
+ ALGO_TO_NATIVE.fetch(algo), effective_quality,
134
147
  min_ssim ? min_ssim.to_f : 0.0,
135
148
  mozjpeg_trellis ? 1 : 0,
136
149
  progressive ? 1 : 0,
@@ -146,21 +159,33 @@ module ImagePack
146
159
  channels:,
147
160
  output: nil,
148
161
  algo: DEFAULT_ALGO,
149
- quality: DEFAULT_QUALITY,
162
+ quality: nil,
150
163
  min_ssim: nil,
164
+ mozjpeg_trellis: true,
151
165
  progressive: false,
152
166
  drop_alpha: nil,
167
+ exact_size: false,
153
168
  execution: nil,
154
169
  cancellable: false)
170
+ validate_pixel_buffer!(buffer)
155
171
  validate_algo!(algo)
156
172
  validate_min_ssim!(min_ssim)
157
- validate_quality!(quality)
173
+ validate_boolean!(:mozjpeg_trellis, mozjpeg_trellis)
174
+ validate_boolean!(:progressive, progressive)
175
+ validate_drop_alpha!(drop_alpha)
176
+ validate_boolean!(:exact_size, exact_size)
177
+ validate_boolean!(:cancellable, cancellable)
178
+ quality_was_given = !quality.nil?
179
+ effective_quality = quality_was_given ? quality : DEFAULT_QUALITY
180
+ effective_quality = 1 if min_ssim && !quality_was_given
181
+ validate_quality!(effective_quality)
158
182
  validate_dimensions!(width, height, channels)
159
183
  execution ||= configuration.execution
160
184
  validate_execution!(execution)
185
+ validate_execution_supported!(execution)
161
186
  validate_cancellable!(algo, execution, cancellable)
162
187
 
163
- if channels.to_i == 4
188
+ if channels == 4
164
189
  case drop_alpha
165
190
  when nil
166
191
  warn "ImagePack.compress_pixels: RGBA input has its alpha channel " \
@@ -175,16 +200,18 @@ module ImagePack
175
200
  normalized_output_kind = output_kind!(output)
176
201
  has_scheduler = fiber_scheduler_active?
177
202
 
178
- if min_ssim && channels.to_i == 4
203
+ if min_ssim && channels == 4
179
204
  raise UnsupportedError, "min_ssim is not supported for RGBA input"
180
205
  end
181
206
 
182
207
  __compress_pixels(buffer,
183
- width.to_i, height.to_i, channels.to_i,
208
+ width, height, channels,
184
209
  output, normalized_output_kind,
185
- ALGO_TO_NATIVE.fetch(algo), quality.to_i,
210
+ ALGO_TO_NATIVE.fetch(algo), effective_quality,
186
211
  min_ssim ? min_ssim.to_f : 0.0,
212
+ mozjpeg_trellis ? 1 : 0,
187
213
  progressive ? 1 : 0,
214
+ exact_size ? 1 : 0,
188
215
  execution,
189
216
  cancellable ? 1 : 0,
190
217
  has_scheduler ? 1 : 0)
@@ -246,11 +273,16 @@ module ImagePack
246
273
  raise InvalidArgumentError, "min_ssim must be Numeric > 0.0 and <= 1.0, got: #{min_ssim.inspect}"
247
274
  end
248
275
 
249
-
250
- def validate_mozjpeg_trellis!(value)
276
+ def validate_boolean!(name, value)
251
277
  return if value == true || value == false
252
278
 
253
- raise InvalidArgumentError, "mozjpeg_trellis must be true or false, got: #{value.inspect}"
279
+ raise InvalidArgumentError, "#{name} must be true or false, got: #{value.inspect}"
280
+ end
281
+
282
+ def validate_drop_alpha!(value)
283
+ return if value.nil? || value == true || value == false
284
+
285
+ raise InvalidArgumentError, "drop_alpha must be true, false, or nil, got: #{value.inspect}"
254
286
  end
255
287
 
256
288
  def validate_execution!(execution)
@@ -259,12 +291,27 @@ module ImagePack
259
291
  raise InvalidArgumentError, "execution must be one of #{EXECUTION_MODES}, got: #{execution.inspect}"
260
292
  end
261
293
 
294
+ def validate_execution_supported!(execution)
295
+ return unless execution == :offload
296
+ return if offload_safe?
297
+
298
+ raise UnsupportedError,
299
+ "execution: :offload requires Ruby >= 3.4.0; use execution: :nogvl or :auto"
300
+ end
301
+
262
302
  def validate_dimensions!(width, height, channels)
263
- raise InvalidArgumentError, "width must be > 0" unless width.is_a?(Integer) && width.positive?
264
- raise InvalidArgumentError, "height must be > 0" unless height.is_a?(Integer) && height.positive?
303
+ raise InvalidArgumentError, "width must be Integer > 0" unless width.is_a?(Integer) && width.positive?
304
+ raise InvalidArgumentError, "height must be Integer > 0" unless height.is_a?(Integer) && height.positive?
265
305
  raise InvalidArgumentError, "channels must be 1, 3 or 4" unless [1, 3, 4].include?(channels)
266
306
  end
267
307
 
308
+ def validate_pixel_buffer!(buffer)
309
+ return if buffer.is_a?(String)
310
+ return if defined?(IO::Buffer) && buffer.is_a?(IO::Buffer)
311
+
312
+ raise InvalidArgumentError, "pixel buffer must be a String or IO::Buffer"
313
+ end
314
+
268
315
  def validate_cancellable!(_algo, execution, cancellable)
269
316
  return unless cancellable
270
317
  return unless execution == :direct
@@ -274,7 +321,7 @@ module ImagePack
274
321
  end
275
322
 
276
323
  def fiber_scheduler_active?
277
- Fiber.respond_to?(:scheduler) && !Fiber.scheduler.nil?
324
+ offload_safe? && Fiber.respond_to?(:scheduler) && !Fiber.scheduler.nil?
278
325
  end
279
326
  end
280
327
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Haydarov
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-06-17 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: rake
@@ -80,8 +81,8 @@ dependencies:
80
81
  - !ruby/object:Gem::Version
81
82
  version: '2.21'
82
83
  description: Single API, vendored pure-C MozJPEG/libjpeg codec, no tempfiles, Ruby
83
- 3.4 Fiber::Scheduler-aware native execution. Ships vendored C sources — no system
84
- libjpeg, git, or CMake required.
84
+ 3.1+ native JPEG execution; Ruby 3.4+ enables Fiber::Scheduler-aware offload. Ships
85
+ vendored C sources — no system libjpeg, git, or CMake required.
85
86
  email:
86
87
  - romnhajdarov@gmail.com
87
88
  executables: []
@@ -95,27 +96,25 @@ files:
95
96
  - THIRD_PARTY_NOTICES.md
96
97
  - ext/image_pack/extconf.rb
97
98
  - ext/image_pack/image_pack.c
99
+ - ext/image_pack/mozjpeg_sources.rb
98
100
  - ext/image_pack/vendor/.vendored
101
+ - ext/image_pack/vendor/mozjpeg/BUILDING.md
99
102
  - ext/image_pack/vendor/mozjpeg/BUILDING.txt
100
103
  - ext/image_pack/vendor/mozjpeg/CMakeLists.txt
104
+ - ext/image_pack/vendor/mozjpeg/CODE_OF_CONDUCT.md
105
+ - ext/image_pack/vendor/mozjpeg/ChangeLog.md
101
106
  - ext/image_pack/vendor/mozjpeg/LICENSE.md
102
107
  - ext/image_pack/vendor/mozjpeg/README-mozilla.txt
103
108
  - ext/image_pack/vendor/mozjpeg/README-turbo.txt
104
- - ext/image_pack/vendor/mozjpeg/README.ijg
105
109
  - ext/image_pack/vendor/mozjpeg/README.md
106
110
  - ext/image_pack/vendor/mozjpeg/cderror.h
107
- - ext/image_pack/vendor/mozjpeg/cdjpeg.c
108
111
  - ext/image_pack/vendor/mozjpeg/cdjpeg.h
109
- - ext/image_pack/vendor/mozjpeg/cjpeg.c
110
112
  - ext/image_pack/vendor/mozjpeg/cmyk.h
111
113
  - ext/image_pack/vendor/mozjpeg/coderules.txt
112
114
  - ext/image_pack/vendor/mozjpeg/croptest.in
113
- - ext/image_pack/vendor/mozjpeg/djpeg.c
114
115
  - ext/image_pack/vendor/mozjpeg/example.txt
115
- - ext/image_pack/vendor/mozjpeg/jaricom.c
116
116
  - ext/image_pack/vendor/mozjpeg/jcapimin.c
117
117
  - ext/image_pack/vendor/mozjpeg/jcapistd.c
118
- - ext/image_pack/vendor/mozjpeg/jcarith.c
119
118
  - ext/image_pack/vendor/mozjpeg/jccoefct.c
120
119
  - ext/image_pack/vendor/mozjpeg/jccolext.c
121
120
  - ext/image_pack/vendor/mozjpeg/jccolor.c
@@ -137,14 +136,10 @@ files:
137
136
  - ext/image_pack/vendor/mozjpeg/jcphuff.c
138
137
  - ext/image_pack/vendor/mozjpeg/jcprepct.c
139
138
  - ext/image_pack/vendor/mozjpeg/jcsample.c
140
- - ext/image_pack/vendor/mozjpeg/jcstest.c
141
139
  - ext/image_pack/vendor/mozjpeg/jctrans.c
142
140
  - ext/image_pack/vendor/mozjpeg/jdapimin.c
143
141
  - ext/image_pack/vendor/mozjpeg/jdapistd.c
144
- - ext/image_pack/vendor/mozjpeg/jdarith.c
145
- - ext/image_pack/vendor/mozjpeg/jdatadst-tj.c
146
142
  - ext/image_pack/vendor/mozjpeg/jdatadst.c
147
- - ext/image_pack/vendor/mozjpeg/jdatasrc-tj.c
148
143
  - ext/image_pack/vendor/mozjpeg/jdatasrc.c
149
144
  - ext/image_pack/vendor/mozjpeg/jdcoefct.c
150
145
  - ext/image_pack/vendor/mozjpeg/jdcoefct.h
@@ -189,8 +184,6 @@ files:
189
184
  - ext/image_pack/vendor/mozjpeg/jpegcomp.h
190
185
  - ext/image_pack/vendor/mozjpeg/jpegint.h
191
186
  - ext/image_pack/vendor/mozjpeg/jpeglib.h
192
- - ext/image_pack/vendor/mozjpeg/jpegtran.c
193
- - ext/image_pack/vendor/mozjpeg/jpegyuv.c
194
187
  - ext/image_pack/vendor/mozjpeg/jquant1.c
195
188
  - ext/image_pack/vendor/mozjpeg/jquant2.c
196
189
  - ext/image_pack/vendor/mozjpeg/jsimd.h
@@ -201,18 +194,6 @@ files:
201
194
  - ext/image_pack/vendor/mozjpeg/jversion.h.in
202
195
  - ext/image_pack/vendor/mozjpeg/libjpeg.map.in
203
196
  - ext/image_pack/vendor/mozjpeg/libjpeg.txt
204
- - ext/image_pack/vendor/mozjpeg/rdbmp.c
205
- - ext/image_pack/vendor/mozjpeg/rdcolmap.c
206
- - ext/image_pack/vendor/mozjpeg/rdgif.c
207
- - ext/image_pack/vendor/mozjpeg/rdjpeg.c
208
- - ext/image_pack/vendor/mozjpeg/rdjpgcom.c
209
- - ext/image_pack/vendor/mozjpeg/rdpng.c
210
- - ext/image_pack/vendor/mozjpeg/rdppm.c
211
- - ext/image_pack/vendor/mozjpeg/rdswitch.c
212
- - ext/image_pack/vendor/mozjpeg/rdtarga.c
213
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jccolext-neon.c
214
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jchuff-neon.c
215
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd.c
216
197
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd_neon.S
217
198
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jccolext-neon.c
218
199
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jchuff-neon.c
@@ -293,29 +274,11 @@ files:
293
274
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquantf-sse2.asm
294
275
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-avx2.asm
295
276
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-sse2.asm
296
- - ext/image_pack/vendor/mozjpeg/simd/i386/jsimd.c
297
277
  - ext/image_pack/vendor/mozjpeg/simd/i386/jsimdcpu.asm
298
278
  - ext/image_pack/vendor/mozjpeg/simd/jsimd.h
299
- - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd.c
300
279
  - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2.S
301
280
  - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2_asm.h
302
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jccolext-mmi.c
303
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jccolor-mmi.c
304
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcgray-mmi.c
305
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcgryext-mmi.c
306
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample-mmi.c
307
281
  - ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample.h
308
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolext-mmi.c
309
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolor-mmi.c
310
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdmerge-mmi.c
311
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdmrgext-mmi.c
312
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdsample-mmi.c
313
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctfst-mmi.c
314
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctint-mmi.c
315
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jidctfst-mmi.c
316
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jidctint-mmi.c
317
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jquanti-mmi.c
318
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd.c
319
282
  - ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd_mmi.h
320
283
  - ext/image_pack/vendor/mozjpeg/simd/mips64/loongson-mmintrin.h
321
284
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jcolsamp.inc
@@ -323,23 +286,7 @@ files:
323
286
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc
324
287
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc.h
325
288
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdext.inc
326
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolext-altivec.c
327
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolor-altivec.c
328
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgray-altivec.c
329
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgryext-altivec.c
330
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample-altivec.c
331
289
  - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample.h
332
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolext-altivec.c
333
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolor-altivec.c
334
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmerge-altivec.c
335
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmrgext-altivec.c
336
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdsample-altivec.c
337
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctfst-altivec.c
338
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctint-altivec.c
339
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctfst-altivec.c
340
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctint-altivec.c
341
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jquanti-altivec.c
342
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd.c
343
290
  - ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd_altivec.h
344
291
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-avx2.asm
345
292
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-sse2.asm
@@ -377,30 +324,16 @@ files:
377
324
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jquanti-sse2.asm
378
325
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimd.c
379
326
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimdcpu.asm
380
- - ext/image_pack/vendor/mozjpeg/strtest.c
381
327
  - ext/image_pack/vendor/mozjpeg/structure.txt
382
- - ext/image_pack/vendor/mozjpeg/tjbench.c
383
328
  - ext/image_pack/vendor/mozjpeg/tjbenchtest.in
384
329
  - ext/image_pack/vendor/mozjpeg/tjbenchtest.java.in
385
- - ext/image_pack/vendor/mozjpeg/tjexample.c
386
330
  - ext/image_pack/vendor/mozjpeg/tjexampletest.in
387
331
  - ext/image_pack/vendor/mozjpeg/tjexampletest.java.in
388
- - ext/image_pack/vendor/mozjpeg/tjunittest.c
389
- - ext/image_pack/vendor/mozjpeg/tjutil.c
390
332
  - ext/image_pack/vendor/mozjpeg/tjutil.h
391
- - ext/image_pack/vendor/mozjpeg/transupp.c
392
333
  - ext/image_pack/vendor/mozjpeg/transupp.h
393
- - ext/image_pack/vendor/mozjpeg/turbojpeg-jni.c
394
- - ext/image_pack/vendor/mozjpeg/turbojpeg.c
395
334
  - ext/image_pack/vendor/mozjpeg/turbojpeg.h
396
335
  - ext/image_pack/vendor/mozjpeg/usage.txt
397
336
  - ext/image_pack/vendor/mozjpeg/wizard.txt
398
- - ext/image_pack/vendor/mozjpeg/wrbmp.c
399
- - ext/image_pack/vendor/mozjpeg/wrgif.c
400
- - ext/image_pack/vendor/mozjpeg/wrjpgcom.c
401
- - ext/image_pack/vendor/mozjpeg/wrppm.c
402
- - ext/image_pack/vendor/mozjpeg/wrtarga.c
403
- - ext/image_pack/vendor/mozjpeg/yuvjpeg.c
404
337
  - lib/image_pack.rb
405
338
  - lib/image_pack/configuration.rb
406
339
  - lib/image_pack/errors.rb
@@ -412,6 +345,7 @@ metadata:
412
345
  homepage_uri: https://github.com/roman-haidarov/image_pack
413
346
  source_code_uri: https://github.com/roman-haidarov/image_pack
414
347
  changelog_uri: https://github.com/roman-haidarov/image_pack/blob/main/CHANGELOG.md
348
+ post_install_message:
415
349
  rdoc_options: []
416
350
  require_paths:
417
351
  - lib
@@ -419,14 +353,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
419
353
  requirements:
420
354
  - - ">="
421
355
  - !ruby/object:Gem::Version
422
- version: 3.4.0
356
+ version: 3.1.0
423
357
  required_rubygems_version: !ruby/object:Gem::Requirement
424
358
  requirements:
425
359
  - - ">="
426
360
  - !ruby/object:Gem::Version
427
361
  version: '0'
428
362
  requirements: []
429
- rubygems_version: 3.6.7
363
+ rubygems_version: 3.3.27
364
+ signing_key:
430
365
  specification_version: 4
431
366
  summary: 'Ruby-native pure-C JPEG runtime: MozJPEG/libjpeg'
432
367
  test_files: []