kamifusen 0.9.7 → 1.4

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: 2664cf5dea01a7294d0f2c9b017b2d6bd00a3d0a81daaa161f95f924ee62479e
4
- data.tar.gz: 5301c3d3ad0733b2a7376f3a8a417b4a02d74c59eebf35f5cde3906e2e179523
3
+ metadata.gz: 21b6ef8996df081487d71d6a914c245ab3fedb803a775ed1b4c10384b3f5a1df
4
+ data.tar.gz: 9e481700b2654d2bafae6cf79f6f4b44b7d4445407075283b7a2bd9a01200aea
5
5
  SHA512:
6
- metadata.gz: 3c06c337ed793d477bd3dd9539517c4ba09011e8c0e801b084e8ae477991dc168f45d63165fa4754170003b60aab1ce0ef886eacd98bf2a80823f9dc7ab81eda
7
- data.tar.gz: 69acef22af9cb3beb364f593f7fb6005e564f3f93ec95af6005bf3255b166715cb79f11fd3253e56f1fc0e3b1c6cb09f1d171126236a148bb180b737736fa5a0
6
+ metadata.gz: fad6e4138146acb5e5afc4ad9b9522aad4179fecdd97dd97f822fcacac49eb8dcceaed6fde41ff09f397d8aa074f7366f28175fb3e26d62acc7fb7126065ff2a
7
+ data.tar.gz: ea01b9e4e5ca7d82e9e26f51907a62609a6c1edfcf994735031cd576810bdec80c23785b881609c3eaffecdb23d91d86b4ac7269305015093a5d3e9cc8364601
data/Gemfile CHANGED
@@ -8,3 +8,5 @@ gemspec
8
8
  gem "rake", "~> 13.0"
9
9
 
10
10
  gem "rubocop", "~> 1.7"
11
+
12
+ gem "byebug"
data/Gemfile.lock CHANGED
@@ -1,67 +1,67 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kamifusen (0.9.7)
4
+ kamifusen (1.4)
5
5
  image_processing
6
6
  rails
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (6.1.3.2)
12
- actionpack (= 6.1.3.2)
13
- activesupport (= 6.1.3.2)
11
+ actioncable (6.1.4)
12
+ actionpack (= 6.1.4)
13
+ activesupport (= 6.1.4)
14
14
  nio4r (~> 2.0)
15
15
  websocket-driver (>= 0.6.1)
16
- actionmailbox (6.1.3.2)
17
- actionpack (= 6.1.3.2)
18
- activejob (= 6.1.3.2)
19
- activerecord (= 6.1.3.2)
20
- activestorage (= 6.1.3.2)
21
- activesupport (= 6.1.3.2)
16
+ actionmailbox (6.1.4)
17
+ actionpack (= 6.1.4)
18
+ activejob (= 6.1.4)
19
+ activerecord (= 6.1.4)
20
+ activestorage (= 6.1.4)
21
+ activesupport (= 6.1.4)
22
22
  mail (>= 2.7.1)
23
- actionmailer (6.1.3.2)
24
- actionpack (= 6.1.3.2)
25
- actionview (= 6.1.3.2)
26
- activejob (= 6.1.3.2)
27
- activesupport (= 6.1.3.2)
23
+ actionmailer (6.1.4)
24
+ actionpack (= 6.1.4)
25
+ actionview (= 6.1.4)
26
+ activejob (= 6.1.4)
27
+ activesupport (= 6.1.4)
28
28
  mail (~> 2.5, >= 2.5.4)
29
29
  rails-dom-testing (~> 2.0)
30
- actionpack (6.1.3.2)
31
- actionview (= 6.1.3.2)
32
- activesupport (= 6.1.3.2)
30
+ actionpack (6.1.4)
31
+ actionview (= 6.1.4)
32
+ activesupport (= 6.1.4)
33
33
  rack (~> 2.0, >= 2.0.9)
34
34
  rack-test (>= 0.6.3)
35
35
  rails-dom-testing (~> 2.0)
36
36
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
- actiontext (6.1.3.2)
38
- actionpack (= 6.1.3.2)
39
- activerecord (= 6.1.3.2)
40
- activestorage (= 6.1.3.2)
41
- activesupport (= 6.1.3.2)
37
+ actiontext (6.1.4)
38
+ actionpack (= 6.1.4)
39
+ activerecord (= 6.1.4)
40
+ activestorage (= 6.1.4)
41
+ activesupport (= 6.1.4)
42
42
  nokogiri (>= 1.8.5)
43
- actionview (6.1.3.2)
44
- activesupport (= 6.1.3.2)
43
+ actionview (6.1.4)
44
+ activesupport (= 6.1.4)
45
45
  builder (~> 3.1)
46
46
  erubi (~> 1.4)
47
47
  rails-dom-testing (~> 2.0)
48
48
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
- activejob (6.1.3.2)
50
- activesupport (= 6.1.3.2)
49
+ activejob (6.1.4)
50
+ activesupport (= 6.1.4)
51
51
  globalid (>= 0.3.6)
52
- activemodel (6.1.3.2)
53
- activesupport (= 6.1.3.2)
54
- activerecord (6.1.3.2)
55
- activemodel (= 6.1.3.2)
56
- activesupport (= 6.1.3.2)
57
- activestorage (6.1.3.2)
58
- actionpack (= 6.1.3.2)
59
- activejob (= 6.1.3.2)
60
- activerecord (= 6.1.3.2)
61
- activesupport (= 6.1.3.2)
52
+ activemodel (6.1.4)
53
+ activesupport (= 6.1.4)
54
+ activerecord (6.1.4)
55
+ activemodel (= 6.1.4)
56
+ activesupport (= 6.1.4)
57
+ activestorage (6.1.4)
58
+ actionpack (= 6.1.4)
59
+ activejob (= 6.1.4)
60
+ activerecord (= 6.1.4)
61
+ activesupport (= 6.1.4)
62
62
  marcel (~> 1.0.0)
63
- mini_mime (~> 1.0.2)
64
- activesupport (6.1.3.2)
63
+ mini_mime (>= 1.1.0)
64
+ activesupport (6.1.4)
65
65
  concurrent-ruby (~> 1.0, >= 1.0.2)
66
66
  i18n (>= 1.6, < 2)
67
67
  minitest (>= 5.1)
@@ -69,10 +69,11 @@ GEM
69
69
  zeitwerk (~> 2.3)
70
70
  ast (2.4.2)
71
71
  builder (3.2.4)
72
- concurrent-ruby (1.1.8)
72
+ byebug (11.1.3)
73
+ concurrent-ruby (1.1.9)
73
74
  crass (1.0.6)
74
75
  erubi (1.10.0)
75
- ffi (1.15.0)
76
+ ffi (1.15.3)
76
77
  globalid (0.4.2)
77
78
  activesupport (>= 4.2.0)
78
79
  i18n (1.8.10)
@@ -83,7 +84,7 @@ GEM
83
84
  listen (3.5.1)
84
85
  rb-fsevent (~> 0.10, >= 0.10.3)
85
86
  rb-inotify (~> 0.9, >= 0.9.10)
86
- loofah (2.9.1)
87
+ loofah (2.10.0)
87
88
  crass (~> 1.0.2)
88
89
  nokogiri (>= 1.5.9)
89
90
  mail (2.7.1)
@@ -91,10 +92,12 @@ GEM
91
92
  marcel (1.0.1)
92
93
  method_source (1.0.0)
93
94
  mini_magick (4.11.0)
94
- mini_mime (1.0.3)
95
+ mini_mime (1.1.0)
96
+ mini_portile2 (2.5.3)
95
97
  minitest (5.14.4)
96
98
  nio4r (2.5.7)
97
- nokogiri (1.11.6-x86_64-darwin)
99
+ nokogiri (1.11.7)
100
+ mini_portile2 (~> 2.5.0)
98
101
  racc (~> 1.4)
99
102
  parallel (1.20.1)
100
103
  parser (3.0.1.1)
@@ -103,31 +106,31 @@ GEM
103
106
  rack (2.2.3)
104
107
  rack-test (1.1.0)
105
108
  rack (>= 1.0, < 3)
106
- rails (6.1.3.2)
107
- actioncable (= 6.1.3.2)
108
- actionmailbox (= 6.1.3.2)
109
- actionmailer (= 6.1.3.2)
110
- actionpack (= 6.1.3.2)
111
- actiontext (= 6.1.3.2)
112
- actionview (= 6.1.3.2)
113
- activejob (= 6.1.3.2)
114
- activemodel (= 6.1.3.2)
115
- activerecord (= 6.1.3.2)
116
- activestorage (= 6.1.3.2)
117
- activesupport (= 6.1.3.2)
109
+ rails (6.1.4)
110
+ actioncable (= 6.1.4)
111
+ actionmailbox (= 6.1.4)
112
+ actionmailer (= 6.1.4)
113
+ actionpack (= 6.1.4)
114
+ actiontext (= 6.1.4)
115
+ actionview (= 6.1.4)
116
+ activejob (= 6.1.4)
117
+ activemodel (= 6.1.4)
118
+ activerecord (= 6.1.4)
119
+ activestorage (= 6.1.4)
120
+ activesupport (= 6.1.4)
118
121
  bundler (>= 1.15.0)
119
- railties (= 6.1.3.2)
122
+ railties (= 6.1.4)
120
123
  sprockets-rails (>= 2.0.0)
121
124
  rails-dom-testing (2.0.3)
122
125
  activesupport (>= 4.2.0)
123
126
  nokogiri (>= 1.6)
124
127
  rails-html-sanitizer (1.3.0)
125
128
  loofah (~> 2.3)
126
- railties (6.1.3.2)
127
- actionpack (= 6.1.3.2)
128
- activesupport (= 6.1.3.2)
129
+ railties (6.1.4)
130
+ actionpack (= 6.1.4)
131
+ activesupport (= 6.1.4)
129
132
  method_source
130
- rake (>= 0.8.7)
133
+ rake (>= 0.13)
131
134
  thor (~> 1.0)
132
135
  rainbow (3.0.0)
133
136
  rake (13.0.3)
@@ -136,16 +139,16 @@ GEM
136
139
  ffi (~> 1.0)
137
140
  regexp_parser (2.1.1)
138
141
  rexml (3.2.5)
139
- rubocop (1.15.0)
142
+ rubocop (1.18.2)
140
143
  parallel (~> 1.10)
141
144
  parser (>= 3.0.0.0)
142
145
  rainbow (>= 2.2.2, < 4.0)
143
146
  regexp_parser (>= 1.8, < 3.0)
144
147
  rexml
145
- rubocop-ast (>= 1.5.0, < 2.0)
148
+ rubocop-ast (>= 1.7.0, < 2.0)
146
149
  ruby-progressbar (~> 1.7)
147
150
  unicode-display_width (>= 1.4.0, < 3.0)
148
- rubocop-ast (1.5.0)
151
+ rubocop-ast (1.7.0)
149
152
  parser (>= 3.0.1.1)
150
153
  ruby-progressbar (1.11.0)
151
154
  ruby-vips (2.1.2)
@@ -162,15 +165,17 @@ GEM
162
165
  tzinfo (2.0.4)
163
166
  concurrent-ruby (~> 1.0)
164
167
  unicode-display_width (2.0.0)
165
- websocket-driver (0.7.4)
168
+ websocket-driver (0.7.5)
166
169
  websocket-extensions (>= 0.1.0)
167
170
  websocket-extensions (0.1.5)
168
171
  zeitwerk (2.4.2)
169
172
 
170
173
  PLATFORMS
174
+ ruby
171
175
  x86_64-darwin-20
172
176
 
173
177
  DEPENDENCIES
178
+ byebug
174
179
  kamifusen!
175
180
  listen
176
181
  rake (~> 13.0)
@@ -2,16 +2,45 @@
2
2
  # image_tag options
3
3
  options ||= {}
4
4
  alt = options[:alt]
5
+ klass = options[:class]
6
+ picture_class = options[:picture_class]
5
7
  width = options[:width]
6
8
  height = options[:height]
7
- klass = options[:class]
9
+ if source&.metadata &&
10
+ source.metadata['analyzed'] &&
11
+ source.metadata.has_key?('width') &&
12
+ source.metadata.has_key?('height')
13
+ image_width = source.metadata['width']
14
+ image_height = source.metadata['height']
15
+ image_ratio = 1.0 * image_width / image_height
16
+ if width.nil? && height.nil?
17
+ # Prendre width et height réelles de l'image
18
+ width = image_width
19
+ height = image_height
20
+ elsif width.nil?
21
+ # Calculer la height sur ratio
22
+ width = height * image_ratio
23
+ elsif height.nil?
24
+ # Calcule la width sur ratio
25
+ height = width / image_ratio
26
+ else
27
+ # Width et height sont explicites,
28
+ # si le ratio demandé n'est pas celui de l'image,
29
+ # Redéfinir la height
30
+ width = [image_width, width].min
31
+ height = width / image_ratio
32
+ end
33
+ width = width.round
34
+ height = height.round
35
+ end
8
36
  parameters = " loading=\"lazy\" decoding=\"async\""
9
- parameters += " alt=\"#{ options[:alt] }\"" if alt
10
- parameters += " width=\"#{ options[:width] }\"" if width
11
- parameters += " height=\"#{ options[:height]}\"" if height
12
- parameters += " class=\"#{ options[:class] }\"" if klass
37
+ parameters += " alt=\"#{ alt }\"" if alt
38
+ parameters += " width=\"#{ width }\"" if width
39
+ parameters += " height=\"#{ height }\"" if height
40
+ parameters += " class=\"#{ klass }\"" if klass
13
41
  %>
14
42
  <% if source.variable? %>
43
+ <%#= "#{image_width} x #{image_height}, #{image_ratio} ratio => #{width} x #{height}<br>".html_safe %>
15
44
  <%
16
45
  # kamifusen settings
17
46
  sizes = [320, 576, 640, 768, 992, 1152, 1200, 1400, 1536, 1984, 2400]
@@ -19,15 +48,9 @@ parameters += " class=\"#{ options[:class] }\"" if klass
19
48
  # Computing
20
49
  if width
21
50
  width_retina = width * 2
22
- # If we ask for a 175px width, we should have 320 and 576 sizes
23
- size_is_too_big = false
24
- sizes.reject! do |size|
25
- # If the previous size was too big, we should reject this one
26
- should_reject_this_size = size_is_too_big
27
- # If this size is the first "too big" size, we should take it
28
- size_is_too_big = size > width_retina
29
- should_reject_this_size
30
- end
51
+ sizes.reject! { |size| size > width_retina }
52
+ sizes << width_retina
53
+ sizes.uniq!
31
54
  end
32
55
  default_width = sizes.max
33
56
  default_width = width_retina if width_retina && width_retina > default_width
@@ -41,14 +64,14 @@ parameters += " class=\"#{ options[:class] }\"" if klass
41
64
  }.join(', ')
42
65
  default = url_for source.variant(resize: "#{default_width}>", quality: quality)
43
66
  %>
44
- <picture>
67
+ <picture<%= " class=\"#{picture_class}\"".html_safe unless picture_class.blank? %>>
45
68
  <% if Kamifusen.with_webp %>
46
- <source srcset="<%= srcset_webp %>">
69
+ <source srcset="<%= srcset_webp %>" type="image/webp">
47
70
  <% end %>
48
- <img src="<%= default %>" srcset="<%= srcset_default %>"<%= raw parameters %>>
71
+ <img src="<%= default %>" srcset="<%= srcset_default %>" type="<%= source.content_type %>"<%= raw parameters %>>
49
72
  </picture>
50
73
  <% else %>
51
74
  <picture>
52
- <img src="<%= url_for source %>"<%= raw parameters %>>
75
+ <img src="<%= url_for source %>" type="<%= source.content_type %>"<%= raw parameters %>>
53
76
  </picture>
54
77
  <% end %>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kamifusen
4
- VERSION = "0.9.7"
4
+ VERSION = "1.4"
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.7
4
+ version: '1.4'
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-06-02 00:00:00.000000000 Z
12
+ date: 2021-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -116,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
- rubygems_version: 3.1.4
119
+ rubygems_version: 3.1.6
120
120
  signing_key:
121
121
  specification_version: 4
122
122
  summary: Images, light as balloons