kamifusen 0.9.3 → 1.0

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: 39fcc15893a5fea23ae7100f394582cb123e3dbe1b1d24351cd1b6a1b51dea12
4
- data.tar.gz: 628dac26bf2eb4790073755477679a56bc3c8dbc4a67b02201d3aded41f64767
3
+ metadata.gz: 3f238efa9930dad4bbd2b9986e601120870e7a0f96e2628c2a8d7b217c284e87
4
+ data.tar.gz: 3bc265f3e7deee21f942bb8391c77426bcc335fff4bd7d4bb05adc7f178febe5
5
5
  SHA512:
6
- metadata.gz: 818bb709d661c9908104cddbe90496950eafbb487d035f22efdd02cda3524b88e77e6cb60cca147bd19617cdca8c8691c13dc8a3e5416b9c73ac2c3d8c72c049
7
- data.tar.gz: ff9fef8645419e0330affbbfd98d187256803d66001e35aac5038fd3570728ecaa599afd6ce764ef57033637c4c858ebeecc1f6eb75d151e807dafe3f07f2391
6
+ metadata.gz: f35d8b955ca59cf265cbae61e229f68a0663d8e091a8216e8fbcacc785d3a6b0e4344cfc9a12f6c5f89ede49cab4835deded944f50764370909b74f773971033
7
+ data.tar.gz: 8ef30b63560714cc9b3f35cf1367554aec03f11ce4da37eac904346860d380b2367494e1dd1b79ccf1730c33f334473e3fa8ab5d326bc66ce06975f407517772
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kamifusen (0.9.3)
4
+ kamifusen (1.0)
5
5
  image_processing
6
6
  rails
7
7
 
@@ -94,7 +94,7 @@ GEM
94
94
  mini_mime (1.0.3)
95
95
  minitest (5.14.4)
96
96
  nio4r (2.5.7)
97
- nokogiri (1.11.6-x86_64-darwin)
97
+ nokogiri (1.11.7-x86_64-darwin)
98
98
  racc (~> 1.4)
99
99
  parallel (1.20.1)
100
100
  parser (3.0.1.1)
data/README.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  ![Kamifūsen in Yamagata](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/%E4%B8%AD%E6%B4%A5%E5%B7%9D%E9%9B%AA%E3%81%BE%E3%81%A4%E3%82%8A.jpg/1024px-%E4%B8%AD%E6%B4%A5%E5%B7%9D%E9%9B%AA%E3%81%BE%E3%81%A4%E3%82%8A.jpg)
4
4
 
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'kamifusen'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle install
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install kamifusen
20
+
21
+ In the views, use (where object is an active record model, and image is an active storage attachment):
22
+
23
+ ```erb
24
+ <%= kamifusen_tag object.image, alt: 'A nice image' %>
25
+ ```
26
+
27
+ If you want to disable webp, in config/initializers/kamifusen.rb:
28
+
29
+ ```ruby
30
+ Kamifusen.with_webp = false
31
+ ```
32
+
5
33
  ## Usage
6
34
 
7
35
  Simply use `kamifusen_tag` instead of `image_tag` in your rails views.## What's the problem?
@@ -76,11 +104,13 @@ Webp and AVIF are more efficient formats than jpg and png. They allow better com
76
104
  https://sebousan.github.io/kamifusen/
77
105
 
78
106
  The new helper is:
107
+
79
108
  ```erb
80
109
  <%= kamifusen_tag object.image, alt: 'A nice image' %>
81
110
  ```
82
111
 
83
112
  It generates a code like:
113
+
84
114
  ```html
85
115
  <picture>
86
116
  <source srcset="image-800w.avif, image-1600w.avif 2x" type="image/avif" media="(min-width: 800px)">
@@ -93,22 +123,6 @@ It generates a code like:
93
123
  </picture>
94
124
  ```
95
125
 
96
- ## Installation
97
-
98
- Add this line to your application's Gemfile:
99
-
100
- ```ruby
101
- gem 'kamifusen'
102
- ```
103
-
104
- And then execute:
105
-
106
- $ bundle install
107
-
108
- Or install it yourself as:
109
-
110
- $ gem install kamifusen
111
-
112
126
  ## References
113
127
 
114
128
  - https://developer.mozilla.org/fr/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
@@ -17,13 +17,28 @@ parameters += " class=\"#{ options[:class] }\"" if klass
17
17
  sizes = [320, 576, 640, 768, 992, 1152, 1200, 1400, 1536, 1984, 2400]
18
18
  quality = 80
19
19
  # Computing
20
- sizes.reject! { |size| size > width * 2 } if width
21
- srcset_webp = sizes.map { |size| "#{ url_for source.variant(resize: "#{size}>", format: :webp, quality: quality) } #{ size } vw" }.join(', ')
22
- srcset_default = sizes.map { |size| "#{ url_for source.variant(resize: "#{size}>", quality: quality) } #{ size } vw" }.join(', ')
23
- default = url_for source.variant(resize: "#{sizes.max}>", quality: quality)
20
+ if width
21
+ width_retina = width * 2
22
+ sizes.reject! { |size| size > width_retina }
23
+ sizes << width_retina
24
+ sizes.uniq!
25
+ end
26
+ default_width = sizes.max
27
+ default_width = width_retina if width_retina && width_retina > default_width
28
+ if Kamifusen.with_webp
29
+ srcset_webp = sizes.map { |size|
30
+ "#{ url_for source.variant(resize: "#{size}>", format: :webp, quality: quality) } #{ size }w"
31
+ }.join(', ')
32
+ end
33
+ srcset_default = sizes.map { |size|
34
+ "#{ url_for source.variant(resize: "#{size}>", quality: quality) } #{ size }w"
35
+ }.join(', ')
36
+ default = url_for source.variant(resize: "#{default_width}>", quality: quality)
24
37
  %>
25
38
  <picture>
26
- <source srcset="<%= srcset_webp %>">
39
+ <% if Kamifusen.with_webp %>
40
+ <source srcset="<%= srcset_webp %>">
41
+ <% end %>
27
42
  <img src="<%= default %>" srcset="<%= srcset_default %>"<%= raw parameters %>>
28
43
  </picture>
29
44
  <% else %>
data/lib/kamifusen.rb CHANGED
@@ -5,8 +5,13 @@ require "kamifusen/railtie"
5
5
  require "kamifusen/view_helper"
6
6
 
7
7
  module Kamifusen
8
+
9
+ mattr_accessor :with_webp
10
+ @@with_webp = true
11
+
8
12
  class Engine < ::Rails::Engine
9
13
  end
14
+
10
15
  class Error < StandardError
11
16
  end
12
17
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kamifusen
4
- VERSION = "0.9.3"
4
+ VERSION = "1.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kamifusen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sébastien Moulène
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-05-31 00:00:00.000000000 Z
12
+ date: 2021-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails