isomorfeus-react 16.12.8 → 16.12.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isomorfeus-react.rb +5 -0
- data/lib/isomorfeus/config.rb +1 -0
- data/lib/isomorfeus/react_view_helper.rb +1 -1
- data/lib/isomorfeus/thread_local_cache.rb +21 -0
- data/lib/isomorfeus_react/lucid_app/native_lucid_component_constructor.rb +1 -3
- data/lib/react.rb +5 -8
- data/lib/react/version.rb +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ef15798090505fea9a8a626a0a6b17553a7b09757b61c2ad0c416ad1f4454f2
|
4
|
+
data.tar.gz: 9cd4286f75cc58bc7506c14433207f667d8af539588520186b7c4ce7dca89cbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afb9834547c4a8cf33a819d0b188d568abfe7a2fbc0373c1eb0c319d5658fb986d3487b01a8a60d28c2f7119e9dcdb49326b83c1b5567441f61de2ae428a6bd3
|
7
|
+
data.tar.gz: 1dae5154593d5edc5f04e622994e9d8201230ac47efc46ef7e9da3dc27a6c22e420cb39039b48ec60d14d87a6002a7c9d94a215b7ae2d87f044a54f4eb7a20d3
|
data/lib/isomorfeus-react.rb
CHANGED
@@ -131,6 +131,7 @@ else
|
|
131
131
|
require 'opal'
|
132
132
|
require 'opal-activesupport'
|
133
133
|
require 'opal-zeitwerk'
|
134
|
+
require 'opal-webpack-loader'
|
134
135
|
require 'isomorfeus-redux'
|
135
136
|
require 'isomorfeus-speednode'
|
136
137
|
require 'react/version'
|
@@ -150,8 +151,12 @@ else
|
|
150
151
|
|
151
152
|
Isomorfeus.server_side_rendering = true
|
152
153
|
|
154
|
+
# cache
|
155
|
+
require 'isomorfeus/thread_local_cache'
|
153
156
|
require 'isomorfeus/react_view_helper'
|
154
157
|
|
158
|
+
Isomorfeus.component_cache_class = Isomorfeus::ThreadLocalCache
|
159
|
+
|
155
160
|
Opal.append_path(__dir__.untaint)
|
156
161
|
|
157
162
|
require 'concurrent'
|
data/lib/isomorfeus/config.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Isomorfeus
|
2
|
+
class ThreadLocalCache
|
3
|
+
def initialize
|
4
|
+
Thread.current[:local_cache] = {}
|
5
|
+
end
|
6
|
+
|
7
|
+
def [](key)
|
8
|
+
Thread.current[:local_cache][key]
|
9
|
+
end
|
10
|
+
alias fetch []
|
11
|
+
|
12
|
+
def []=(key, value)
|
13
|
+
Thread.current[:local_cache][key] = value
|
14
|
+
end
|
15
|
+
alias store []=
|
16
|
+
|
17
|
+
def key?(key)
|
18
|
+
Thread.current[:local_cache].key?(key)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -76,10 +76,8 @@ module LucidApp
|
|
76
76
|
oper.active_redux_components.pop();
|
77
77
|
oper.active_components.pop();
|
78
78
|
let children = oper.render_buffer.pop();
|
79
|
-
if (children.length === 1) { children = children[0]; }
|
80
|
-
else if (children.length === 0) { children = null; }
|
81
79
|
// console.log("lucid app popping", oper.render_buffer, oper.render_buffer.toString());
|
82
|
-
return Opal.global.React.createElement(Opal.global.LucidApplicationContext.Provider, { value: this.state.isomorfeus_store_state }
|
80
|
+
return Opal.global.React.createElement.apply(this, [Opal.global.LucidApplicationContext.Provider, { value: this.state.isomorfeus_store_state }].concat(children));
|
83
81
|
}
|
84
82
|
data_access() {
|
85
83
|
this.state.isomorfeus_store_state;
|
data/lib/react.rb
CHANGED
@@ -78,7 +78,7 @@ module React
|
|
78
78
|
let children;
|
79
79
|
let native_props = null;
|
80
80
|
if (string_child) {
|
81
|
-
children = string_child;
|
81
|
+
children = [string_child];
|
82
82
|
} else if (block && block !== nil) {
|
83
83
|
operabu.push([]);
|
84
84
|
// console.log("internal_render pushed", Opal.React.render_buffer, Opal.React.render_buffer.toString());
|
@@ -88,11 +88,9 @@ module React
|
|
88
88
|
}
|
89
89
|
// console.log("internal_render popping", Opal.React.render_buffer, Opal.React.render_buffer.toString());
|
90
90
|
children = operabu.pop();
|
91
|
-
if (children.length === 1) { children = children[0]; }
|
92
|
-
else if (children.length === 0) { children = null; }
|
93
91
|
}
|
94
92
|
if (props && props !== nil) { native_props = Opal.React.to_native_react_props(props); }
|
95
|
-
operabu[operabu.length - 1].push(Opal.global.React.createElement(component, native_props
|
93
|
+
operabu[operabu.length - 1].push(Opal.global.React.createElement.apply(this, [component, native_props].concat(children)));
|
96
94
|
};
|
97
95
|
|
98
96
|
self.active_components = [];
|
@@ -147,11 +145,10 @@ module React
|
|
147
145
|
}
|
148
146
|
// console.log("create_element popping", Opal.React.render_buffer, Opal.React.render_buffer.toString());
|
149
147
|
children = operabu.pop();
|
150
|
-
|
151
|
-
|
152
|
-
} else if (children === nil) { children = null; }
|
148
|
+
} else if (children === nil) { children = []; }
|
149
|
+
else if (typeof children === 'string') { children = [children]; }
|
153
150
|
if (props && props !== nil) { native_props = Opal.React.to_native_react_props(props); }
|
154
|
-
return Opal.global.React.createElement(component, native_props
|
151
|
+
return Opal.global.React.createElement.apply(this, [component, native_props].concat(children));
|
155
152
|
}
|
156
153
|
end
|
157
154
|
|
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.12.
|
4
|
+
version: 16.12.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 4.0.
|
103
|
+
version: 4.0.17
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 4.0.
|
110
|
+
version: 4.0.17
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: isomorfeus-speednode
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,28 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 2.2.
|
131
|
+
version: 2.2.2
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 2.2.
|
138
|
+
version: 2.2.2
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: isomorfeus-puppetmaster
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.3.
|
145
|
+
version: 0.3.4
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.3.
|
152
|
+
version: 0.3.4
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rake
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -200,6 +200,7 @@ files:
|
|
200
200
|
- lib/isomorfeus/props/validate_hash_proxy.rb
|
201
201
|
- lib/isomorfeus/props/validator.rb
|
202
202
|
- lib/isomorfeus/react_view_helper.rb
|
203
|
+
- lib/isomorfeus/thread_local_cache.rb
|
203
204
|
- lib/isomorfeus/top_level.rb
|
204
205
|
- lib/isomorfeus/top_level_ssr.rb
|
205
206
|
- lib/isomorfeus/vivify_module.rb
|