isomorfeus-react 16.6.1 → 16.6.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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -1
  3. data/lib/react.rb +11 -2
  4. data/lib/react/version.rb +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f5cb95862ec002593c0fa138708e7b836e5bde4cc5d98417fd9d1dc60822f3d
4
- data.tar.gz: c675459414c7682373017e52d6d4eb4588d517f6280d8af39aa4f9e2bed73ad6
3
+ metadata.gz: 61b8f04576385edf701a851c23d7844a692112c4350fe2fd05863711c277529c
4
+ data.tar.gz: bacec1878a3881c084805101d070c8dce6c934803085172ec3b2fd516660224e
5
5
  SHA512:
6
- metadata.gz: 02e9510d524a96550b74fba5d48b19d2d59d0c82f7c585dd6b95359422da967240d58b5f833b36526a41309ee59f16a8e8018cc168e52b2fa8396ea25f4ae240
7
- data.tar.gz: 72dd5a6d9f1adc6943f25d406125695c3ca7ad3414e5ab61b90714ececff2ca227b828e16dc790dbcb3004508ba181153e132179de0b459045fcfb4f8f20cef6
6
+ metadata.gz: 64d409626ef651aa300a38066514de2460a6f5232c4c7ca1ec8977fba314091f4a0690a12f302dfa1934d8eb7e3848f0398a9ee88d1f1eb805ebc113cea5b06e
7
+ data.tar.gz: 2f654f344ef6b82583aa51de25a33c55c526fa860d0e23635b69bb0997b99325d5e8a084989a66f0ba6bb2a888d416cde86358b5e08d6ee6286aa41ae959ce50
data/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  Develop React components for Opal Ruby along with very easy to use and advanced React-Redux Components.
4
4
 
5
+ ## Chat
6
+ At our [Gitter Isomorfeus Lobby](http://gitter.im/isomorfeus/Lobby)
7
+
5
8
  ## Versioning
6
9
  isomorfeus-react version follows the React version which features and API it implements.
7
10
  Isomorfeus-react 16.5.x implements features and the API of React 16.6 and should be used with React 16.6
@@ -20,6 +23,21 @@ and to your client code add:
20
23
  ```ruby
21
24
  require 'isomorfeus-react' # this will also require isomorfeus-redux
22
25
  ```
26
+
27
+ ### Dependencies
28
+
29
+ For full functionality the following are required:
30
+ - [Opal ES6 import export](https://github.com/opal/opal/pull/1832)
31
+ - [Opal Webpack Loader](https://github.com/janbiedermann/opal-webpack-loader)
32
+ - [Opal Autoloader](https://github.com/janbiedermann/opal-autoloader)
33
+
34
+ For the Gemfile:
35
+ ```ruby
36
+ gem 'opal', github: 'janbiedermann/opal', branch: 'es6_import_export'
37
+ gem 'opal-webpack-loader', '~> 0.3.7'
38
+ gem 'opal-autoloader', '~> 0.0.3'
39
+ ```
40
+
23
41
  ## Usage
24
42
  Because isomorfeus-react follows closely the React principles/implementation/API and Documentation, most things of the official React documentation
25
43
  apply, but in the Ruby way, see:
@@ -136,7 +154,14 @@ end
136
154
  This creates a native javascript components.
137
155
  The file containing the creator must be explicitly required, because the automatic resolution of Javascript constant names
138
156
  is not done by opal-autoloader.
139
-
157
+
158
+ A custom memo props function can be utilized when using React.memo directly with a function component and a block for checking the props:
159
+ ```ruby
160
+ React.memo(`MyComponent`) do |prev_props, next_props|
161
+ prev_props.var != next_props.var
162
+ end
163
+ ```
164
+
140
165
  A Function Component can then be used in other Components:
141
166
  ```ruby
142
167
  class MyComponent < React::PureComponent::Base
@@ -620,6 +645,17 @@ Overwriting should_component_update is also not supported.
620
645
  **Data flow of a LucidComponent within a LucidApp:**
621
646
  ![LucidComponent within a LucidApp Data Flow](https://raw.githubusercontent.com/isomorfeus/isomorfeus-react/master/images/data_flow_lucid_component.png)
622
647
 
648
+ ### Code Splitting with Suspense (doc is wip)
649
+
650
+ React.lazy is availalable and so is the Suspense Component, in a render block:
651
+ ```ruby
652
+ render do
653
+ Suspense do
654
+ MyComponent()
655
+ end
656
+ end
657
+ ```
658
+
623
659
  ### Development Tools
624
660
  The React Developer Tools allow for analyzing, debugging and profiling components. A very helpful toolset and working very nice with isomorfeus-react:
625
661
  https://github.com/facebook/react-devtools
@@ -149,7 +149,16 @@ module React
149
149
  `React.lazy(import_statement_function)`
150
150
  end
151
151
 
152
- def self.memo(function_component)
153
- `React.memo(function_component)`
152
+ def self.memo(function_component, &block)
153
+ if block_given?
154
+ %x{
155
+ var fun = function(prev_props, next_props) {
156
+ return #{block.call(::React::Component::Props.new(prev_props), ::React::Component::Props.new(next_props))};
157
+ }
158
+ return React.memo(function_component, fun);
159
+ }
160
+ else
161
+ `React.memo(function_component)`
162
+ end
154
163
  end
155
164
  end
@@ -1,3 +1,3 @@
1
1
  module React
2
- VERSION = '16.6.1'
2
+ VERSION = '16.6.2'
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.6.1
4
+ version: 16.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-29 00:00:00.000000000 Z
11
+ date: 2018-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal