izi_lightup 1.0.9 → 1.0.14

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: 42f8d61f9ec4c7084a86d25b94406a90f50e143f8321019baa55c371c99f9954
4
- data.tar.gz: 1b69afac25575f41dc28f2b58f738e72da421324a9686d4741f1780a10684110
3
+ metadata.gz: b4fe3f152ceb2ca19f1a2fe17b50d4900304d9f90fe653ac85b93107f5263704
4
+ data.tar.gz: 570e5b0973a51cb297d2d1aecc67335433b432875b9d57400fa483d17efd2024
5
5
  SHA512:
6
- metadata.gz: eaa3f189c8f6dbe98b57d46b24a445f5be051a96eab836de9665b5d6984422de4f3915fe482100d198bac3290ec7049c214d64946964784314efcf8e8b239d0c
7
- data.tar.gz: d15c0663e94f3daa8059c5cfb25f2eaa98874c3d36f65608ab2d542649c7d32ae3ac060bcc56e210e94c4a2b0f5da9a6672ce309f7c20e5b25f08b3553b3bcde
6
+ metadata.gz: 356a0ba218ce60072b3680f423f385cdf1bc6f81e4477997a8ef2c80d666c3bb72683905fde9073078373059db0f86de5ecff85749471ddd8164b30cda4ada69
7
+ data.tar.gz: 9820ed029cc0d237fe35bcb67183945c0108eb95efdaa38ff29ba53c96895f85ce4449fec5174671542a0c55051062c6551064cc1665e07ab17ca25ccaaf1d94
@@ -10,7 +10,7 @@
10
10
 
11
11
  while callbacks.length > 0
12
12
  callback = callbacks.shift()
13
- callback.call(window) if typeof(callback) is 'function'
13
+ callback.call(window, __required[id]) if typeof(callback) is 'function'
14
14
 
15
15
  _buildSubscriptions = (id, node) ->
16
16
  data = __required[id]
@@ -32,6 +32,7 @@
32
32
  data.callbacks.push(callback) if typeof(callback) is 'function'
33
33
 
34
34
  window.miniRequire ||= (key, source_url, callback = undefined) ->
35
+ key ||= Math.random().toString(36).slice(2, 12)
35
36
  id = "source_#{key.replace(/[^a-z0-9_\-]+/ig, '_')}"
36
37
  __required[id] ||= {loaded: false, callbacks: [], started: false}
37
38
 
@@ -50,13 +51,17 @@
50
51
  src.async = true
51
52
  src.defer = true
52
53
  src.src = source_url
54
+ __required[id].node = src
53
55
  _buildSubscriptions(id, src)
54
56
  _subscribe(id, callback)
55
57
 
56
58
  document.body.appendChild(src)
57
59
  true
58
60
 
59
- window.miniPreload ||= (key, source_url, callback = undefined) ->
61
+ window.miniPreload ||= (params, callback = undefined) ->
62
+ key = params.key || Math.random().toString(36).slice(2, 12)
63
+ callback ||= params.callback
64
+ source_url = params.src
60
65
  id = "source_#{key.replace(/[^a-z0-9_\-]+/ig, '_')}"
61
66
  __required[id] ||= {loaded: false, callbacks: [], started: false}
62
67
 
@@ -74,6 +79,8 @@
74
79
  src.id = id
75
80
  src.rel = 'preload'
76
81
  src.href = source_url
82
+ src.as = params.as || 'style'
83
+ __required[id].node = src
77
84
  _buildSubscriptions(id, src)
78
85
  _subscribe(id, callback)
79
86
 
@@ -71,6 +71,26 @@ module CriticalHelper
71
71
  end
72
72
 
73
73
  def asset_exist?(name)
74
- Rails.application.assets_manifest.find_sources(name)&.first&.present?
74
+ return find_asset_source(name)&.present? if Rails.env.development?
75
+
76
+ manifest.assets.key?(name)
77
+ end
78
+
79
+ def find_asset_source(name)
80
+ return find_sources_fallback(name) if old_manifest?
81
+
82
+ manifest.find_sources(name)&.first
83
+ end
84
+
85
+ def find_sources_fallback(asset_path)
86
+ Rails.application.assets.find_asset(asset_path)
87
+ end
88
+
89
+ def old_manifest?
90
+ !manifest.respond_to?(:find_sources)
91
+ end
92
+
93
+ def manifest
94
+ @manifest ||= Rails.application.assets_manifest
75
95
  end
76
96
  end
@@ -22,7 +22,9 @@ module IziLightup
22
22
  next unless version&.file&.exists? && version&.url&.present?
23
23
 
24
24
  url = version.url
25
- params.merge!(%i[width height].zip(version.dimensions).to_h)
25
+ dimensions = safe_dimentions(item, version)
26
+ params.merge!(dimensions) if dimensions.present?
27
+
26
28
  return image_tag(url, params) unless block_given?
27
29
 
28
30
  yield(url, params)
@@ -35,6 +37,19 @@ module IziLightup
35
37
 
36
38
  private
37
39
 
40
+ def safe_dimentions(item, version)
41
+ dimensions = nil
42
+ begin
43
+ dimensions = version.dimensions
44
+ rescue MiniMagick::Error => _e
45
+ dimensions = [item&.width, item&.height].compact
46
+ end
47
+
48
+ return {} if dimensions.blank?
49
+
50
+ %i[width height].zip(dimensions).to_h
51
+ end
52
+
38
53
  def fetch_items(object, fields)
39
54
  Array.wrap(fields).map do |name|
40
55
  object.respond_to?(name) ? object.public_send(name) : nil
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IziLightup
4
- VERSION = '1.0.9'
4
+ VERSION = '1.0.14'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: izi_lightup
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - IzikAJ
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-23 00:00:00.000000000 Z
11
+ date: 2021-01-25 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  Utils to speed up page load by using critical css &