vitals_image 0.4.1 → 0.5.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 +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
|