isomorfeus-react 16.12.8 → 16.12.9

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: c5d90a7865eb93c6d4fe0355e0dbaf8e03cae4bb2ebaabf33f78adecd9203f26
4
- data.tar.gz: bbd20f3e1025ae402846b5688677922ba23c54802d9ed87ea36b670282bb1244
3
+ metadata.gz: 7ef15798090505fea9a8a626a0a6b17553a7b09757b61c2ad0c416ad1f4454f2
4
+ data.tar.gz: 9cd4286f75cc58bc7506c14433207f667d8af539588520186b7c4ce7dca89cbe
5
5
  SHA512:
6
- metadata.gz: 3a50131debc40514af9eb558afe63137679d4b16a1b0b08baefa303c27a20ac3d9cc2a669eca9ca5900d1125712eb10bd5d465d6fd716a687aefdf19c8e0e0d6
7
- data.tar.gz: 0ad176660638690cecf5eb8d36152ea567dc3b61af5e193f3fe6f0538830b02cec831d352a3aa69d3fd05984867c06fbe935ec81b252ffb70b14828113d9d7e5
6
+ metadata.gz: afb9834547c4a8cf33a819d0b188d568abfe7a2fbc0373c1eb0c319d5658fb986d3487b01a8a60d28c2f7119e9dcdb49326b83c1b5567441f61de2ae428a6bd3
7
+ data.tar.gz: 1dae5154593d5edc5f04e622994e9d8201230ac47efc46ef7e9da3dc27a6c22e420cb39039b48ec60d14d87a6002a7c9d94a215b7ae2d87f044a54f4eb7a20d3
@@ -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'
@@ -111,6 +111,7 @@ module Isomorfeus
111
111
  self.add_client_option(:client_init_after_store_class_names, [])
112
112
  else
113
113
  class << self
114
+ attr_accessor :component_cache_class
114
115
  attr_accessor :server_side_rendering
115
116
  attr_accessor :ssr_hot_asset_url
116
117
  attr_reader :env
@@ -193,7 +193,7 @@ module Isomorfeus
193
193
  private
194
194
 
195
195
  def component_cache
196
- Thread.current[:component_cache] ||= {}
196
+ @_component_cache ||= Isomorfeus.component_cache_class.new
197
197
  end
198
198
  end
199
199
  end
@@ -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 }, children);
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;
@@ -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, children));
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
- if (children.length == 1) { children = children[0]; }
151
- else if (children.length == 0) { children = null; }
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, children);
151
+ return Opal.global.React.createElement.apply(this, [component, native_props].concat(children));
155
152
  }
156
153
  end
157
154
 
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.12.8'
2
+ VERSION = '16.12.9'
3
3
  end
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.8
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-17 00:00:00.000000000 Z
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.16
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.16
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.1
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.1
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.1
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.1
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