snabberb 0.2.0 → 0.2.1
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/examples/rack/Gemfile.lock +1 -1
- data/examples/roda/Gemfile.lock +1 -1
- data/examples/roda/config.ru +0 -1
- data/lib/snabberb/version.rb +1 -1
- data/opal/snabberb/component.rb +11 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98ff77b3a36c5ca9051b8daed1c6498da9ce011240cd5fe869969a1dbee957ec
|
4
|
+
data.tar.gz: 4dc1ed366b54af762a35bc206b3dbf55f2b8110a6fab8341dea9ec59862b808f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f67e569452ffeb5df152569141de8711fda3819ea7c67d4757f71b27864f6bfa743b9feb5bd0103f873743fab6b85899043c73c885b3fd5db3c1def1cdad5f00
|
7
|
+
data.tar.gz: 32e7c025a1bb9fcb4d9ef3e7b9adeadab45db078e6d2f3930e5e4bd30a4efa0067f20ceebc6ca4835860be9249c321f4f0987d9b36e0f04a9d84daa58e441cfb
|
data/examples/rack/Gemfile.lock
CHANGED
data/examples/roda/Gemfile.lock
CHANGED
data/examples/roda/config.ru
CHANGED
data/lib/snabberb/version.rb
CHANGED
data/opal/snabberb/component.rb
CHANGED
@@ -85,12 +85,16 @@ module Snabberb
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# Update the dom with the request animation frame queue.
|
88
|
+
# Add to a queue of request_ids so we can track calls.
|
88
89
|
def update
|
89
|
-
`window.requestAnimationFrame(function(timestamp) {#{update!}})`
|
90
|
+
request_ids << `window.requestAnimationFrame(function(timestamp) {#{update!}})`
|
90
91
|
end
|
91
92
|
|
92
|
-
# Update the dom immediately.
|
93
|
+
# Update the dom immediately if this is the final animation request.
|
93
94
|
def update!
|
95
|
+
request_ids.shift
|
96
|
+
return unless request_ids.empty?
|
97
|
+
|
94
98
|
@@patcher ||= %x{snabbdom.init([
|
95
99
|
snabbdom_attributes.default,
|
96
100
|
snabbdom_class.default,
|
@@ -113,7 +117,7 @@ module Snabberb
|
|
113
117
|
|
114
118
|
ivar = "@#{key}"
|
115
119
|
instance_variable_set(ivar, value)
|
116
|
-
root.instance_variable_set(ivar, value) if !root? && root.stores?(key)
|
120
|
+
@root.instance_variable_set(ivar, value) if !root? && @root.stores?(key)
|
117
121
|
|
118
122
|
update
|
119
123
|
end
|
@@ -126,6 +130,10 @@ module Snabberb
|
|
126
130
|
class_needs.dig(key, :store)
|
127
131
|
end
|
128
132
|
|
133
|
+
def request_ids
|
134
|
+
root? ? @request_ids ||= [] : @root.request_ids
|
135
|
+
end
|
136
|
+
|
129
137
|
private
|
130
138
|
|
131
139
|
def init_needs(needs)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snabberb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby Mao
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|