isomorfeus-react 16.8.0 → 16.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lucid_app/native_component_constructor.rb +2 -1
- data/lib/lucid_component/native_component_constructor.rb +2 -1
- data/lib/lucid_material/app/native_component_constructor.rb +2 -1
- data/lib/lucid_material/component/native_component_constructor.rb +2 -1
- data/lib/react.rb +16 -0
- data/lib/react/component/api.rb +14 -29
- data/lib/react/component/native_component_constructor.rb +2 -1
- data/lib/react/redux_component/native_component_constructor.rb +2 -1
- data/lib/react/ref.rb +1 -11
- data/lib/react/version.rb +1 -1
- 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: 6e1f51aa98f40271693104f25f9321a0b1ce04668666efe2f6b345958f2d4687
|
4
|
+
data.tar.gz: 0c823d4922443ab1b157b638438a908caff664906be19c7fbef4f0410cb3a36d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d14aa94c3504a7cf2eee50db467e468045660f4fcdc1dbc8f2beb95f7f2ad45e6ceca07c8a53b8291a354859e42e8c1d6cc2f6245ef5e2c0ab0bc2ccf4865cda
|
7
|
+
data.tar.gz: 9b36d35c724f49776ec46bb4c4bf4530f7ccd3cb2b29d83ed2b8fbbb7c619dbf5c4c23a5c86c87ebd13eb8cccbe315f2f543a6bca5f7f2a102eae2c1051d4322
|
@@ -38,7 +38,8 @@ module LucidApp
|
|
38
38
|
for (var ref in defined_refs) {
|
39
39
|
if (defined_refs[ref] != null) {
|
40
40
|
this[ref] = function(element) {
|
41
|
-
|
41
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
42
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
42
43
|
}
|
43
44
|
this[ref] = this[ref].bind(this);
|
44
45
|
} else {
|
@@ -35,7 +35,8 @@ module LucidComponent
|
|
35
35
|
for (var ref in defined_refs) {
|
36
36
|
if (defined_refs[ref] != null) {
|
37
37
|
this[ref] = function(element) {
|
38
|
-
|
38
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
39
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
39
40
|
}
|
40
41
|
this[ref] = this[ref].bind(this);
|
41
42
|
} else {
|
@@ -40,7 +40,8 @@ module LucidMaterial
|
|
40
40
|
for (var ref in defined_refs) {
|
41
41
|
if (defined_refs[ref] != null) {
|
42
42
|
this[ref] = function(element) {
|
43
|
-
|
43
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
44
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
44
45
|
}
|
45
46
|
this[ref] = this[ref].bind(this);
|
46
47
|
} else {
|
@@ -31,7 +31,8 @@ module LucidMaterial
|
|
31
31
|
for (var ref in defined_refs) {
|
32
32
|
if (defined_refs[ref] != null) {
|
33
33
|
this[ref] = function(element) {
|
34
|
-
|
34
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
35
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
35
36
|
}
|
36
37
|
this[ref] = this[ref].bind(this);
|
37
38
|
} else {
|
data/lib/react.rb
CHANGED
@@ -5,6 +5,15 @@ module React
|
|
5
5
|
%x{
|
6
6
|
self.render_buffer = [];
|
7
7
|
|
8
|
+
self.set_validate_prop = function(component, prop_name) {
|
9
|
+
if (typeof component.react_component.propTypes == "undefined") {
|
10
|
+
component.react_component.propTypes = {};
|
11
|
+
component.react_component.propValidations = {};
|
12
|
+
component.react_component.propValidations[prop_name] = {};
|
13
|
+
}
|
14
|
+
component.react_component.propTypes[prop_name] = component.react_component.prototype.validateProp;
|
15
|
+
};
|
16
|
+
|
8
17
|
self.lower_camelize = function(snake_cased_word) {
|
9
18
|
var parts = snake_cased_word.split('_');
|
10
19
|
var res = parts[0];
|
@@ -15,6 +24,13 @@ module React
|
|
15
24
|
return res;
|
16
25
|
};
|
17
26
|
|
27
|
+
self.native_element_or_component_to_ruby = function (element) {
|
28
|
+
if (typeof element.__ruby_instance !== 'undefined') { return element.__ruby_instance }
|
29
|
+
if (element instanceof Element) { return #{Browser::DOM::Element.new(`element`)} }
|
30
|
+
if (element instanceof Node) { return #{Browser::DOM::Node.new(`element`)} }
|
31
|
+
return element;
|
32
|
+
};
|
33
|
+
|
18
34
|
self.to_native_react_props = function(ruby_style_props) {
|
19
35
|
var result = {};
|
20
36
|
var keys = ruby_style_props.$keys();
|
data/lib/react/component/api.rb
CHANGED
@@ -57,53 +57,29 @@ module React
|
|
57
57
|
end
|
58
58
|
if options.has_key?(:class)
|
59
59
|
%x{
|
60
|
-
|
61
|
-
self.react_component.propTypes = {};
|
62
|
-
self.react_component.propValidations = {};
|
63
|
-
self.react_component.propValidations[name] = {};
|
64
|
-
}
|
65
|
-
self.react_component.propTypes[name] = self.react_component.prototype.validateProp;
|
60
|
+
Opal.React.set_validate_prop(self, name);
|
66
61
|
self.react_component.propValidations[name].ruby_class = options.$fetch("class");
|
67
62
|
}
|
68
63
|
elsif options.has_key?(:is_a)
|
69
64
|
%x{
|
70
|
-
|
71
|
-
self.react_component.propTypes = {};
|
72
|
-
self.react_component.propValidations = {};
|
73
|
-
self.react_component.propValidations[name] = {};
|
74
|
-
}
|
75
|
-
self.react_component.propTypes[name] = self.react_component.prototype.validateProp;
|
65
|
+
Opal.React.set_validate_prop(self, name);
|
76
66
|
self.react_component.propValidations[name].is_a = options.$fetch("is_a");
|
77
67
|
}
|
78
68
|
end
|
79
69
|
if options.has_key?(:required)
|
80
70
|
%x{
|
81
|
-
|
82
|
-
self.react_component.propTypes = {};
|
83
|
-
self.react_component.propValidations = {};
|
84
|
-
self.react_component.propValidations[name] = {};
|
85
|
-
}
|
86
|
-
self.react_component.propTypes[name] = self.react_component.prototype.validateProp;
|
71
|
+
Opal.React.set_validate_prop(self, name);
|
87
72
|
self.react_component.propValidations[name].required = options.$fetch("required");
|
88
73
|
}
|
89
74
|
elsif !options.has_key?(:default)
|
90
75
|
%x{
|
91
|
-
|
92
|
-
self.react_component.propTypes = {};
|
93
|
-
self.react_component.propValidations = {};
|
94
|
-
}
|
95
|
-
self.react_component.propTypes[name] = self.react_component.prototype.validateProp;
|
76
|
+
Opal.React.set_validate_prop(self, name);
|
96
77
|
self.react_component.propValidations[name].required = true;
|
97
78
|
}
|
98
79
|
end
|
99
80
|
else
|
100
81
|
%x{
|
101
|
-
|
102
|
-
self.react_component.propTypes = {};
|
103
|
-
self.react_component.propValidations = {};
|
104
|
-
self.react_component.propValidations[name] = {};
|
105
|
-
}
|
106
|
-
self.react_component.propTypes[name] = self.react_component.prototype.validateProp;
|
82
|
+
Opal.React.set_validate_prop(self, name);
|
107
83
|
self.react_component.propValidations[name].required = options.$fetch("required");
|
108
84
|
}
|
109
85
|
end
|
@@ -134,6 +110,15 @@ module React
|
|
134
110
|
end
|
135
111
|
end
|
136
112
|
|
113
|
+
def ref(name)
|
114
|
+
`#@native[name]`
|
115
|
+
end
|
116
|
+
|
117
|
+
def ruby_ref(name)
|
118
|
+
return `#@native[name]` if `(typeof #@native[name] === 'function')`
|
119
|
+
React::Ref::new(`#@native[name]`)
|
120
|
+
end
|
121
|
+
|
137
122
|
def set_state(updater, &callback)
|
138
123
|
@state.set_state(updater, &callback)
|
139
124
|
end
|
@@ -25,7 +25,8 @@ module React
|
|
25
25
|
for (var ref in defined_refs) {
|
26
26
|
if (defined_refs[ref] != null) {
|
27
27
|
this[ref] = function(element) {
|
28
|
-
|
28
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
29
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
29
30
|
}
|
30
31
|
this[ref] = this[ref].bind(this);
|
31
32
|
} else {
|
@@ -37,7 +37,8 @@ module React
|
|
37
37
|
for (var ref in defined_refs) {
|
38
38
|
if (defined_refs[ref] != null) {
|
39
39
|
this[ref] = function(element) {
|
40
|
-
|
40
|
+
element = Opal.React.native_element_or_component_to_ruby(element);
|
41
|
+
#{`this.__ruby_instance`.instance_exec(`element`, &`defined_refs[ref]`)}
|
41
42
|
}
|
42
43
|
this[ref] = this[ref].bind(this);
|
43
44
|
} else {
|
data/lib/react/ref.rb
CHANGED
@@ -6,18 +6,8 @@ module React
|
|
6
6
|
true
|
7
7
|
end
|
8
8
|
|
9
|
-
def initialize(native_ref)
|
10
|
-
@native = native_ref
|
11
|
-
end
|
12
|
-
|
13
9
|
def current
|
14
|
-
|
15
|
-
if (typeof #@native.current.__ruby_instance != undefined) {
|
16
|
-
return #@native.current.__ruby_instance;
|
17
|
-
} else {
|
18
|
-
#@native.current;
|
19
|
-
}
|
20
|
-
}
|
10
|
+
`Opal.React.native_element_or_component_to_ruby(#@native.current)`
|
21
11
|
end
|
22
12
|
end
|
23
13
|
end
|
data/lib/react/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-react
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 16.8.
|
4
|
+
version: 16.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|