vitals_image 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -2
- data/app/models/vitals_image/source.rb +2 -2
- data/db/migrate/20210809171706_add_fingerprint_to_vitals_image_sources.rb +6 -0
- data/lib/vitals_image.rb +1 -2
- data/lib/vitals_image/cache.rb +11 -1
- data/lib/vitals_image/engine.rb +2 -2
- data/lib/vitals_image/gem_version.rb +2 -2
- data/lib/vitals_image/optimizer/url.rb +5 -1
- 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: 070dabcbfcfe58cf4ad78ed7509cf16963484fa160db4358ed2f400a1a7d7925
|
4
|
+
data.tar.gz: cecf4c19afeed8df374686752e3ee7300ecbe6ced03c15781a9f0caa6134418b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 424b3c5908a10ee87df1e8174b786f30166af7b8fc28c4473ca77775dafb77fb1cce5780568a1098efac6898eb4b97584857ea122555d68f81ead1f6b1cfbb5c
|
7
|
+
data.tar.gz: 9510a8c14a5363997d6729933b3356f0bf7145410498e850ccd27d346fbde54e6bdf013e4b6b97afd557279f26dae4e082c07ad188ecdbcdb3e1e3b984c1655e
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -134,6 +134,7 @@ The following configuration options are available. The defaults were chosen for
|
|
134
134
|
| jpeg_optimization | see below | see below | Hash of options to pass to active storage when optimizing a JPEG. |
|
135
135
|
| png_optimization | see below | see below | Hash of options to pass to active storage when optimizing a PNG. |
|
136
136
|
| active_storage_route | `:inherited` | `:inherited` | Defines how urls of active storage images will be generated. If `inherited` it will use the same as active storage. Other valid options are `redirect`, `proxy` and `public`. Whatever is set here can be overriden in the helper. |
|
137
|
+
| domains | empty | - | Limits the domains that vitals image source can be created from |
|
137
138
|
|
138
139
|
Minimagick
|
139
140
|
```ruby
|
@@ -164,8 +165,6 @@ These can be configured in your environment files, just like any other rails set
|
|
164
165
|
```
|
165
166
|
Rails.application.configure do |config|
|
166
167
|
config.vitals_image.image_library = :vips
|
167
|
-
config.vitals_image.mobile_width = 410
|
168
|
-
config.vitals_image.desktop_width = 1264
|
169
168
|
config.vitals_image.lazy_loading = :lozad
|
170
169
|
config.vitals_image.require_alt_attribute = true
|
171
170
|
config.vitals_image.check_for_white_background = true
|
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
module VitalsImage
|
4
4
|
class Source < ActiveRecord::Base
|
5
|
-
store :metadata, accessors: [ :analyzed, :width, :height ], coder: ActiveRecord::Coders::JSON
|
5
|
+
store :metadata, accessors: [ :identified, :analyzed, :width, :height ], coder: ActiveRecord::Coders::JSON
|
6
6
|
|
7
|
-
|
7
|
+
after_create_commit -> { AnalyzeJob.perform_later(self) }
|
8
8
|
end
|
9
9
|
end
|
data/lib/vitals_image.rb
CHANGED
@@ -14,8 +14,6 @@ module VitalsImage
|
|
14
14
|
mattr_accessor :analyzers
|
15
15
|
mattr_accessor :image_library
|
16
16
|
|
17
|
-
mattr_accessor :mobile_width
|
18
|
-
mattr_accessor :desktop_width
|
19
17
|
mattr_accessor :resolution
|
20
18
|
mattr_accessor :lazy_loading
|
21
19
|
mattr_accessor :lazy_loading_placeholder
|
@@ -28,6 +26,7 @@ module VitalsImage
|
|
28
26
|
mattr_accessor :jpeg_optimization
|
29
27
|
mattr_accessor :png_optimization
|
30
28
|
mattr_accessor :active_storage_route
|
29
|
+
mattr_accessor :domains
|
31
30
|
|
32
31
|
mattr_accessor :skip_ssl_verification
|
33
32
|
end
|
data/lib/vitals_image/cache.rb
CHANGED
@@ -15,7 +15,7 @@ module VitalsImage
|
|
15
15
|
source = @store.read(key)
|
16
16
|
|
17
17
|
if source.blank?
|
18
|
-
source =
|
18
|
+
source = find_or_create_by(key)
|
19
19
|
expires_in = source.analyzed ? nil : 1.minute
|
20
20
|
@store.write(key, source, expires_in: expires_in)
|
21
21
|
end
|
@@ -25,6 +25,16 @@ module VitalsImage
|
|
25
25
|
end
|
26
26
|
|
27
27
|
private
|
28
|
+
def find_or_create_by(key)
|
29
|
+
uri = URI.parse(key)
|
30
|
+
|
31
|
+
if VitalsImage.domains.present? && !VitalsImage.domains.include?(uri.host)
|
32
|
+
Source.new(key: key, metadata: { identified: false })
|
33
|
+
else
|
34
|
+
Source.find_or_create_by(key: key) { |source| source.identified = true }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
28
38
|
def with_retry
|
29
39
|
yield
|
30
40
|
rescue ActiveRecord::RecordNotUnique
|
data/lib/vitals_image/engine.rb
CHANGED
@@ -29,6 +29,7 @@ module VitalsImage
|
|
29
29
|
config.vitals_image = ActiveSupport::OrderedOptions.new
|
30
30
|
config.vitals_image.optimizers = [VitalsImage::Optimizer::Blank, VitalsImage::Optimizer::Variable, VitalsImage::Optimizer::Invariable, VitalsImage::Optimizer::Url]
|
31
31
|
config.vitals_image.analyzers = [VitalsImage::Analyzer::UrlAnalyzer]
|
32
|
+
config.vitals_image.domains = []
|
32
33
|
|
33
34
|
config.eager_load_namespaces << VitalsImage
|
34
35
|
|
@@ -40,8 +41,6 @@ module VitalsImage
|
|
40
41
|
VitalsImage.optimizers = app.config.vitals_image.optimizers || []
|
41
42
|
VitalsImage.analyzers = app.config.vitals_image.analyzers || []
|
42
43
|
|
43
|
-
VitalsImage.mobile_width = app.config.vitals_image.mobile_width || :original
|
44
|
-
VitalsImage.desktop_width = app.config.vitals_image.desktop_width || :original
|
45
44
|
VitalsImage.resolution = app.config.vitals_image.resolution || 2
|
46
45
|
VitalsImage.lazy_loading = app.config.vitals_image.lazy_loading || :native
|
47
46
|
VitalsImage.lazy_loading_placeholder = app.config.vitals_image.lazy_loading_placeholder || VitalsImage::Base::TINY_GIF
|
@@ -54,6 +53,7 @@ module VitalsImage
|
|
54
53
|
VitalsImage.jpeg_conversion = app.config.vitals_image.jpeg_conversion
|
55
54
|
VitalsImage.jpeg_optimization = app.config.vitals_image.jpeg_optimization
|
56
55
|
VitalsImage.png_optimization = app.config.vitals_image.png_optimization
|
56
|
+
VitalsImage.domains = app.config.vitals_image.domains || []
|
57
57
|
|
58
58
|
VitalsImage.skip_ssl_verification = app.config.vitals_image.skip_ssl_verification || false
|
59
59
|
end
|
@@ -17,7 +17,7 @@ module VitalsImage
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def style
|
20
|
-
if !analyzed?
|
20
|
+
if !identified? || !analyzed?
|
21
21
|
# Do nothing
|
22
22
|
elsif !requested_height
|
23
23
|
"height:auto;"
|
@@ -26,6 +26,10 @@ module VitalsImage
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
def identified?
|
30
|
+
metadata.identified
|
31
|
+
end
|
32
|
+
|
29
33
|
def analyzed?
|
30
34
|
metadata.analyzed
|
31
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vitals_image
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Breno Gazzola
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
@@ -243,6 +243,7 @@ files:
|
|
243
243
|
- app/views/layouts/vitals_image/application.html.erb
|
244
244
|
- config/routes.rb
|
245
245
|
- db/migrate/20210502132155_create_vitals_image_sources.rb
|
246
|
+
- db/migrate/20210809171706_add_fingerprint_to_vitals_image_sources.rb
|
246
247
|
- lib/tasks/vitals_image_tasks.rake
|
247
248
|
- lib/vitals_image.rb
|
248
249
|
- lib/vitals_image/analyzer.rb
|