hyalite 0.0.1 → 0.0.2
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/.travis.yml +3 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +42 -0
- data/Rakefile +12 -3
- data/client/hyalite.rb +19 -0
- data/client/hyalite/browser_event.rb +1 -2
- data/client/hyalite/component.rb +10 -0
- data/client/hyalite/composite_component.rb +1 -1
- data/client/hyalite/dom_property.rb +3 -1
- data/client/hyalite/element.rb +1 -1
- data/client/hyalite/input_wrapper.rb +6 -1
- data/client/hyalite/multi_children.rb +3 -2
- data/client/hyalite/proxy_component.rb +16 -0
- data/client/hyalite/short_hand.rb +7 -1
- data/client/hyalite/update_queue.rb +10 -0
- data/lib/hyalite/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad8c51336a33fc4b94adf83702f0c24611551752
|
4
|
+
data.tar.gz: 55032da2177b4efbdf791a7866e6bafea0fe0d90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ea894199b0519cab7c4b75c5b399a81f4d1cd21aa8aaa8b9d8c594870a42e11fc1e8a2e09dbe124e12af46000858a9398287fb284c2bedcbbd51428dfa33809
|
7
|
+
data.tar.gz: 1e017dd83054e9b768a47144b4b350534d3b029668169caae99da33011a5ec8558473bc75b73ac79a28476fa54681d13d0df6251ced2e184840cc682942397ae
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
hyalite (0.0.2)
|
5
|
+
opal
|
6
|
+
opal-browser
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
concurrent-ruby (1.0.2)
|
12
|
+
hike (1.2.3)
|
13
|
+
opal (0.9.2)
|
14
|
+
hike (~> 1.2)
|
15
|
+
sourcemap (~> 0.1.0)
|
16
|
+
sprockets (~> 3.1)
|
17
|
+
tilt (>= 1.4)
|
18
|
+
opal-browser (0.2.0)
|
19
|
+
opal
|
20
|
+
paggio
|
21
|
+
opal-rspec (0.5.0)
|
22
|
+
opal (>= 0.8.0, < 0.10)
|
23
|
+
paggio (0.2.6)
|
24
|
+
rack (1.6.4)
|
25
|
+
rake (10.5.0)
|
26
|
+
sourcemap (0.1.1)
|
27
|
+
sprockets (3.6.0)
|
28
|
+
concurrent-ruby (~> 1.0)
|
29
|
+
rack (> 1, < 3)
|
30
|
+
tilt (2.0.5)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
bundler (~> 1.8)
|
37
|
+
hyalite!
|
38
|
+
opal-rspec
|
39
|
+
rake (~> 10.0)
|
40
|
+
|
41
|
+
BUNDLED WITH
|
42
|
+
1.12.5
|
data/Rakefile
CHANGED
@@ -1,7 +1,16 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.require
|
3
3
|
|
4
|
-
|
4
|
+
require "bundler/gem_tasks"
|
5
5
|
|
6
6
|
task :default => :spec
|
7
7
|
|
8
|
+
Opal::Processor.source_map_enabled = true
|
9
|
+
|
10
|
+
require 'opal/rspec/rake_task'
|
11
|
+
Opal::RSpec::RakeTask.new(:default) do |server, task|
|
12
|
+
server.append_path File.expand_path('./client', __FILE__)
|
13
|
+
server.source_map = true
|
14
|
+
server.debug = true
|
15
|
+
end
|
16
|
+
|
data/client/hyalite.rb
CHANGED
@@ -40,6 +40,25 @@ module Hyalite
|
|
40
40
|
ElementObject.new(type, key, ref, Hyalite.current_owner, props)
|
41
41
|
end
|
42
42
|
|
43
|
+
def fn(&block)
|
44
|
+
Class.new {
|
45
|
+
include Component
|
46
|
+
include Component::ShortHand
|
47
|
+
|
48
|
+
def self.render_proc=(proc)
|
49
|
+
@render_proc = proc
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.render_proc
|
53
|
+
@render_proc
|
54
|
+
end
|
55
|
+
|
56
|
+
def render
|
57
|
+
self.instance_exec(@props, &self.class.render_proc)
|
58
|
+
end
|
59
|
+
}.tap{|cl| cl.render_proc = block }
|
60
|
+
end
|
61
|
+
|
43
62
|
def instantiate_component(node)
|
44
63
|
node = EmptyComponent.empty_element if node.nil?
|
45
64
|
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'set'
|
2
|
-
require 'math'
|
3
2
|
require 'hyalite/event_dispatcher'
|
4
3
|
require 'hyalite/synthetic_event'
|
5
4
|
require 'hyalite/event_plugin/event_plugin_registry'
|
@@ -48,7 +47,7 @@ module Hyalite
|
|
48
47
|
topWheel: 'wheel'
|
49
48
|
}
|
50
49
|
|
51
|
-
TOP_LISTENERS_ID_KEY = '_hyliteListenersID' +
|
50
|
+
TOP_LISTENERS_ID_KEY = '_hyliteListenersID' + rand.to_s.chars.drop(2).join
|
52
51
|
|
53
52
|
class << self
|
54
53
|
def enabled?
|
data/client/hyalite/component.rb
CHANGED
@@ -31,6 +31,9 @@ module Hyalite
|
|
31
31
|
def component_will_mount
|
32
32
|
end
|
33
33
|
|
34
|
+
def component_did_mount
|
35
|
+
end
|
36
|
+
|
34
37
|
def component_will_unmount
|
35
38
|
end
|
36
39
|
|
@@ -44,6 +47,13 @@ module Hyalite
|
|
44
47
|
true
|
45
48
|
end
|
46
49
|
|
50
|
+
def force_update(&block)
|
51
|
+
@updator.enqueue_force_update(self);
|
52
|
+
if block_given?
|
53
|
+
@updator.enqueue_callback(self, &block)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
47
57
|
def set_state(states, &block)
|
48
58
|
@updator.enqueue_set_state(self, states)
|
49
59
|
if block_given?
|
@@ -7,7 +7,7 @@ module Hyalite
|
|
7
7
|
include InternalComponent
|
8
8
|
|
9
9
|
attr_reader :current_element, :rendered_component
|
10
|
-
attr_accessor :top_level_wrapper, :pending_state_queue, :mount_order, :pending_callbacks, :pending_element
|
10
|
+
attr_accessor :top_level_wrapper, :pending_state_queue, :mount_order, :pending_callbacks, :pending_element, :pending_force_update
|
11
11
|
|
12
12
|
@next_mount_id = 1
|
13
13
|
|
@@ -34,6 +34,7 @@ module Hyalite
|
|
34
34
|
checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
|
35
35
|
classID: MUST_USE_ATTRIBUTE,
|
36
36
|
className: MUST_USE_PROPERTY,
|
37
|
+
class: MUST_USE_PROPERTY,
|
37
38
|
cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
|
38
39
|
colSpan: nil,
|
39
40
|
content: nil,
|
@@ -64,6 +65,7 @@ module Hyalite
|
|
64
65
|
href: nil,
|
65
66
|
hrefLang: nil,
|
66
67
|
htmlFor: nil,
|
68
|
+
for: nil,
|
67
69
|
httpEquiv: nil,
|
68
70
|
icon: nil,
|
69
71
|
id: MUST_USE_PROPERTY,
|
@@ -211,7 +213,7 @@ module Hyalite
|
|
211
213
|
end
|
212
214
|
|
213
215
|
def is_custom_attribute(attribute_name)
|
214
|
-
/^(data|aria)-[a-z_][a-z\d_.\-]*$/ =~ attribute_name
|
216
|
+
!!(/^(data|aria)-[a-z_][a-z\d_.\-]*$/ =~ attribute_name)
|
215
217
|
end
|
216
218
|
end
|
217
219
|
end
|
data/client/hyalite/element.rb
CHANGED
@@ -26,11 +26,16 @@ module Hyalite
|
|
26
26
|
def native_props(inst)
|
27
27
|
props = @dom_component.current_element.props
|
28
28
|
|
29
|
+
if props[:checked] || @wrapper_state[:initialChecked]
|
30
|
+
props = props.merge({
|
31
|
+
checked: props[:checked] || @wrapper_state[:initialChecked],
|
32
|
+
})
|
33
|
+
end
|
34
|
+
|
29
35
|
props.merge({
|
30
36
|
defaultChecked: nil,
|
31
37
|
defaultValue: nil,
|
32
38
|
value: props[:value] || @wrapper_state[:initialValue],
|
33
|
-
checked: props[:checked] || @wrapper_state[:initialChecked],
|
34
39
|
onChange: @wrapper_state[:onChange],
|
35
40
|
})
|
36
41
|
end
|
@@ -96,8 +96,9 @@ module Hyalite
|
|
96
96
|
class << self
|
97
97
|
def wrap_update(&block)
|
98
98
|
self.update_depth += 1
|
99
|
-
error_thrown =
|
99
|
+
error_thrown = true
|
100
100
|
yield
|
101
|
+
error_thrown = false
|
101
102
|
ensure
|
102
103
|
self.update_depth -= 1
|
103
104
|
if self.update_depth == 0
|
@@ -199,7 +200,7 @@ module Hyalite
|
|
199
200
|
if index >= parent_node.children.to_ary.length
|
200
201
|
parent_node.add_child(child_node)
|
201
202
|
else
|
202
|
-
parent_node[index].add_previous_sibling(child_node)
|
203
|
+
parent_node.children.to_ary[index].add_previous_sibling(child_node)
|
203
204
|
end
|
204
205
|
end
|
205
206
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class ProxyComponent
|
2
|
+
include Component
|
3
|
+
include Component::ShortHand
|
4
|
+
|
5
|
+
def self.render_proc=(proc)
|
6
|
+
@render_proc = proc
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.render_proc
|
10
|
+
@render_proc
|
11
|
+
end
|
12
|
+
|
13
|
+
def render
|
14
|
+
self.instance_exec(@props, &self.class.render_proc)
|
15
|
+
end
|
16
|
+
end
|
@@ -1,7 +1,13 @@
|
|
1
1
|
module Hyalite
|
2
2
|
module Component
|
3
3
|
module ShortHand
|
4
|
-
TAGS = %w(
|
4
|
+
TAGS = %w(
|
5
|
+
a abbr address area article aside audio b base bdi bdo blockquote body br button button button button canvas caption
|
6
|
+
cite code col colgroup command datalist dd del details dfn div dl dt em embed fieldset figcaption figure footer form
|
7
|
+
h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins kbd keygen label legend li link map mark menu meta
|
8
|
+
meter nav noscript object ol optgroup option output p param pre progress q rp rt ruby s samp script section select small
|
9
|
+
source span strong style sub summary sup table tbody td textarea tfoot th thead time title tr track u ul var video wbr
|
10
|
+
)
|
5
11
|
|
6
12
|
def self.included(klass)
|
7
13
|
TAGS.each do |tag|
|
@@ -30,6 +30,16 @@ module Hyalite
|
|
30
30
|
enqueue_update(internal_instance);
|
31
31
|
end
|
32
32
|
|
33
|
+
def enqueue_force_update(public_instance)
|
34
|
+
internal_instance = Hyalite.instance_map[public_instance]
|
35
|
+
|
36
|
+
return unless internal_instance
|
37
|
+
|
38
|
+
internal_instance.pending_force_update = true
|
39
|
+
|
40
|
+
enqueue_update(internal_instance)
|
41
|
+
end
|
42
|
+
|
33
43
|
def enqueue_update(internal_instance)
|
34
44
|
Hyalite.updates.enqueue_update(internal_instance)
|
35
45
|
end
|
data/lib/hyalite/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyalite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- youchan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|
@@ -73,7 +73,9 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
+
- ".travis.yml"
|
76
77
|
- Gemfile
|
78
|
+
- Gemfile.lock
|
77
79
|
- LICENSE.txt
|
78
80
|
- README.md
|
79
81
|
- Rakefile
|
@@ -98,6 +100,7 @@ files:
|
|
98
100
|
- client/hyalite/linked_value_utils.rb
|
99
101
|
- client/hyalite/mount.rb
|
100
102
|
- client/hyalite/multi_children.rb
|
103
|
+
- client/hyalite/proxy_component.rb
|
101
104
|
- client/hyalite/reconcile_transaction.rb
|
102
105
|
- client/hyalite/reconciler.rb
|
103
106
|
- client/hyalite/short_hand.rb
|
@@ -137,9 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
137
140
|
version: '0'
|
138
141
|
requirements: []
|
139
142
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.1
|
141
144
|
signing_key:
|
142
145
|
specification_version: 4
|
143
146
|
summary: Virtual DOM implimentation in Ruby
|
144
147
|
test_files: []
|
145
|
-
has_rdoc:
|