izi_lightup 1.0.6 → 1.0.11

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: d011babd1a4cfbeea73964467576025f53ef3e3a24dd14a90693078ab245859a
4
- data.tar.gz: 720708d4116d9e985f45ad1c5c5e658b0bf315ad9195560a46166585e7b2c199
3
+ metadata.gz: 360a92b36f70a51ce881b38790774ecfddd8173598a369e484a21cd8a3c208e8
4
+ data.tar.gz: f8886f87bf6929f4cd625313834eca2eb11967847e31914a0308ce8e4cddc1f5
5
5
  SHA512:
6
- metadata.gz: 6e54a7446886a376f41cfa00fb94786f347413a03d00e070875baf00c6483e131c7b19afa6c745faf9e9be1ca4cea4085fdf454ec5c1e845750298362708937c
7
- data.tar.gz: 6d99793e586bff9041a8e3e8cfdfcc207e01ea9a8fe5dae56840f623841001e898edb091c6e60da9448cdde6ee7670576d65c0bfa996d3232ebaa165ff0e845b
6
+ metadata.gz: ad180f8fed8d29551ce495e9f5ed26a023b9186c17d14a1a5d70aecfa41aa9c4e501d3b1b107001660d505954528a80b0d1904a6954fc369663dc02a040da678
7
+ data.tar.gz: e98e0b5da1406df44e1ed716f7f84f3094aba31941fc1ca7a5977a3332a5ea844c6b0949891a6124ddaccde85874a2c35999be88b58aa62ea071bc3717dbf51e
@@ -1,6 +1,6 @@
1
1
  ((window, document) -> (
2
2
  EVENT_TYPE = window.__activeEventName || 'Activity'
3
- MAX_TIMEOUT = window.__activeTimeout || 5000
3
+ MAX_TIMEOUT = window.__activeTimeout || 10000
4
4
  TRACK_MARKING = window.__activeMark || '_real_track=true'
5
5
 
6
6
  if custom_mt = /^\?(\d+)$/.exec(window.location.search)
@@ -10,13 +10,11 @@
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]
17
17
  return if data.loaded
18
- data.callbacks ||= []
19
- data.started = true
20
18
 
21
19
  callback = node.onload
22
20
  node.onload = -> _onload(id)
@@ -34,14 +32,18 @@
34
32
  data.callbacks.push(callback) if typeof(callback) is 'function'
35
33
 
36
34
  window.miniRequire ||= (key, source_url, callback = undefined) ->
35
+ key ||= Math.random().toString(36).slice(2, 12)
37
36
  id = "source_#{key.replace(/[^a-z0-9_\-]+/ig, '_')}"
37
+ __required[id] ||= {loaded: false, callbacks: [], started: false}
38
+
39
+ # subscribe only if no source
40
+ return _subscribe(id, callback) unless source_url?.length > 0
38
41
 
39
42
  # subscribe only if already attached & started
40
- return _subscribe(id, callback) if __required[id]?.started?
43
+ return _subscribe(id, callback) if __required[id].started
41
44
 
42
- __required[id] = {loaded: false, callbacks: []}
43
- # subscribe only if no source
44
- return _subscribe(id, callback) unless source_url?
45
+ # mark as started
46
+ __required[id].started = true
45
47
 
46
48
  # attach script
47
49
  src = document.createElement('script')
@@ -49,9 +51,40 @@
49
51
  src.async = true
50
52
  src.defer = true
51
53
  src.src = source_url
54
+ __required[id].node = src
52
55
  _buildSubscriptions(id, src)
53
56
  _subscribe(id, callback)
54
57
 
55
58
  document.body.appendChild(src)
56
59
  true
60
+
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
65
+ id = "source_#{key.replace(/[^a-z0-9_\-]+/ig, '_')}"
66
+ __required[id] ||= {loaded: false, callbacks: [], started: false}
67
+
68
+ # subscribe only if no source
69
+ return _subscribe(id, callback) unless source_url?.length > 0
70
+
71
+ # subscribe only if already attached & started
72
+ return _subscribe(id, callback) if __required[id].started
73
+
74
+ # mark as started
75
+ __required[id].started = true
76
+
77
+ # attach script
78
+ src = document.createElement('link')
79
+ src.id = id
80
+ src.rel = 'preload'
81
+ src.href = source_url
82
+ src.as = params.as || 'style'
83
+ __required[id].node = src
84
+ _buildSubscriptions(id, src)
85
+ _subscribe(id, callback)
86
+
87
+ document.head.appendChild(src)
88
+ true
89
+
57
90
  ))(window, document)
@@ -28,7 +28,8 @@ module CriticalHelper
28
28
  end
29
29
 
30
30
  def critical_css(params = {})
31
- name = find_scoped_css('critical')
31
+ scope = params.fetch(:scope, 'critical')
32
+ name = find_scoped_css(scope)
32
33
  stylesheets = Array.wrap(params.fetch(:stylesheets, []))
33
34
  data = StringIO.new
34
35
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IziLightup
4
- VERSION = '1.0.6'
4
+ VERSION = '1.0.11'
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.6
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - IzikAJ
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-08 00:00:00.000000000 Z
11
+ date: 2020-12-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |-
14
14
  Utils to speed up page load by using critical css &