pura-image 0.2.3 → 0.2.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6561b3b8ec72933d8b01613638ae8e767e3948c402831bf8f401c9985525990
4
- data.tar.gz: 386ef6ed67ed028cb82e630859826b7c4d43689c93923b96141febd65b0f0cfd
3
+ metadata.gz: 5349acbd820a01a5adce41d49add96c50a8e91adc2555629e62268c0876531a5
4
+ data.tar.gz: 293af000448458dbb3554cf203b0eeccc8432516a768116cb7dab56a3a9a3472
5
5
  SHA512:
6
- metadata.gz: 82d791ee984e2d7d014ac2a3f62c8cbfa9ad59135b2a06c0c10d2ca86ae401c57ac271520a1828a590f251a1f8e8bc51748dd8e09b41d766dbe9aad00c3c6b8b
7
- data.tar.gz: 65cd7a61332dd414f53f3f12366c23844292b955ac5e032675871af36e68c5a96de54c7d84d2c40df26680768d0e794b8e8c977295fec53cf5e634c5292211b6
6
+ metadata.gz: 06aca37f6a3f060428b1f61dc62ceb39b073b71b7b5f8c3337d451bdc1aa0e95bd3c5b6ffb2a4f9cd610ec73f6e51bf55cadbaa61b1f7a016a705173d2f97bfd
7
+ data.tar.gz: 1864fdfa00abf7767c15c755a4d89211639695448192a0cee09b487029ebefd8096b4fb95d00d9c88de776c44f24ba900060a918c0f18344717b489c6b8594df
data/README.md CHANGED
@@ -2,6 +2,33 @@
2
2
 
3
3
  Pure Ruby image processing library with **zero C extension dependencies**. Bundles all **pura-*** format gems and provides an `ImageProcessing` adapter for Rails Active Storage.
4
4
 
5
+ ## Why this exists (in 30 seconds)
6
+
7
+ Stop installing system libraries just to resize an image in Rails.
8
+
9
+ ```diff
10
+ # Gemfile
11
+ gem "image_processing"
12
+ + gem "pura-image"
13
+ ```
14
+
15
+ ```ruby
16
+ # config/application.rb
17
+ config.active_storage.variant_processor = :pura
18
+ ```
19
+
20
+ ```diff
21
+ # Dockerfile
22
+ - RUN apt-get install -y libvips-dev imagemagick
23
+ ```
24
+
25
+ That's it. No `brew install vips`. No `apt install imagemagick`. No C compiler. Works on macOS, Linux, Windows, Docker, CI, ruby.wasm — anywhere Ruby runs.
26
+
27
+ - ✅ **Drop-in** for `ImageProcessing::Vips` / `ImageProcessing::MiniMagick`
28
+ - ✅ **7 formats** — JPEG, PNG, BMP, GIF, TIFF, ICO/CUR, WebP
29
+ - ✅ **Some operations are faster than C** (no process-spawn overhead — see [Benchmark](#benchmark))
30
+ - ✅ **Runs on ruby.wasm, JRuby, TruffleRuby**
31
+
5
32
  ## Supported Formats
6
33
 
7
34
  | Format | Decode | Encode | Gem |
@@ -29,7 +56,7 @@ require "pura-image"
29
56
 
30
57
  # Load any format (auto-detected from magic bytes)
31
58
  image = Pura::Image.load("photo.jpg")
32
- image = Pura::Image.load("icon.webp")
59
+ image = Pura::Image.load("logo.png")
33
60
  image.width #=> 800
34
61
  image.height #=> 600
35
62
 
@@ -132,7 +159,6 @@ ImageProcessing::Pura.valid_image?("photo.jpg") #=> true
132
159
  | BMP | **39 ms** | 59 ms | 🚀 **1.5× faster** |
133
160
  | GIF | 77 ms | 65 ms | ~1× (comparable) |
134
161
  | PNG | 111 ms | 60 ms | 1.9× slower |
135
- | WebP | 207 ms | 66 ms | 3.1× slower |
136
162
  | JPEG | 304 ms | 55 ms | 5.5× slower |
137
163
 
138
164
  ### Encode
@@ -86,7 +86,7 @@ module Pura
86
86
  when :tiff then Pura::Tiff.decode(path)
87
87
  when :ico then Pura::Ico.decode(path)
88
88
  when :webp
89
- raise ArgumentError, "WebP support not available" unless defined?(Pura::Webp)
89
+ raise ArgumentError, "WebP support requires the pura-webp gem" unless defined?(Pura::Webp)
90
90
 
91
91
  Pura::Webp.decode(path)
92
92
  else
@@ -114,7 +114,7 @@ module Pura
114
114
  ico_img = Pura::Ico::Image.new(image.width, image.height, image.pixels)
115
115
  Pura::Ico.encode(ico_img, path)
116
116
  when :webp
117
- raise ArgumentError, "WebP encoding not available" unless defined?(Pura::Webp)
117
+ raise ArgumentError, "WebP support requires the pura-webp gem" unless defined?(Pura::Webp)
118
118
 
119
119
  webp_img = Pura::Webp::Image.new(image.width, image.height, image.pixels)
120
120
  Pura::Webp.encode(webp_img, path, **options)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Pura
4
4
  module Image
5
- VERSION = "0.2.3"
5
+ VERSION = "0.2.5"
6
6
  end
7
7
  end
data/lib/pura-image.rb CHANGED
@@ -9,7 +9,7 @@ require "pura-ico"
9
9
  begin
10
10
  require "pura-webp"
11
11
  rescue LoadError
12
- # pura-webp is optional
12
+ # pura-webp is optional — install the gem to enable WebP support.
13
13
  end
14
14
 
15
15
  require_relative "pura/image/version"
data/pura-image.gemspec CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency "pura-gif", "~> 0.1"
27
27
  spec.add_dependency "pura-tiff", "~> 0.1"
28
28
  spec.add_dependency "pura-ico", "~> 0.1"
29
+ spec.add_dependency "pura-webp", "~> 0.2"
29
30
  spec.add_dependency "image_processing", "~> 1.2"
30
31
  spec.add_development_dependency "minitest", "~> 5.0"
31
32
  spec.add_development_dependency "rake", "~> 13.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pura-image
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - komagata
@@ -93,6 +93,20 @@ dependencies:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.1'
96
+ - !ruby/object:Gem::Dependency
97
+ name: pura-webp
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '0.2'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.2'
96
110
  - !ruby/object:Gem::Dependency
97
111
  name: image_processing
98
112
  requirement: !ruby/object:Gem::Requirement