lib/react/component/state.rb in isomorfeus-react-16.13.11 vs lib/react/component/state.rb in isomorfeus-react-16.13.12
- old
+ new
@@ -1,54 +1,58 @@
-module React
- module Component
- class State
- include ::Native::Wrapper
-
- def method_missing(key, *args, &block)
- if `args.length > 0`
- new_state = `{}`
- new_state.JS[(`key.endsWith('=')` ? key.chop : key)] = args[0]
- if block_given?
- @native.JS.setState(new_state, `function() { block.$call(); }`)
- else
- @native.JS.setState(new_state, `null`)
- end
- else
- %x{
- if (typeof #@native.state[key] === 'undefined') { return nil; }
- return #@native.state[key];
- }
- end
- end
-
- def set_state(updater, &block)
- new_state = `{}`
- updater.each do |key, value|
- new_state.JS[key] = value
- end
- if block_given?
- @native.JS.setState(new_state, `function() { block.$call(); }`)
- else
- @native.JS.setState(new_state, `null`)
- end
- end
-
- def size
- `Object.keys(#@native.state).length`;
- end
-
- def to_n
- %x{
- var new_native = {};
- for (var key in #@native.state) {
- if (typeof #@native.state[key].$to_n !== "undefined") {
- new_native[key] = #@native.state[key].$to_n();
- } else {
- new_native[key] = #@native.state[key];
- }
- }
- return new_native;
- }
- end
- end
- end
-end
+module React
+ module Component
+ class State
+ include ::Native::Wrapper
+
+ def initialize(native)
+ @native = native
+ end
+
+ def method_missing(key, *args, &block)
+ if `args.length > 0`
+ new_state = `{}`
+ new_state.JS[(`key.endsWith('=')` ? key.chop : key)] = args[0]
+ if block_given?
+ @native.JS.setState(new_state, `function() { block.$call(); }`)
+ else
+ @native.JS.setState(new_state, `null`)
+ end
+ else
+ %x{
+ if (typeof #@native.state[key] === 'undefined') { return nil; }
+ return #@native.state[key];
+ }
+ end
+ end
+
+ def set_state(updater, &block)
+ new_state = `{}`
+ updater.each do |key, value|
+ new_state.JS[key] = value
+ end
+ if block_given?
+ @native.JS.setState(new_state, `function() { block.$call(); }`)
+ else
+ @native.JS.setState(new_state, `null`)
+ end
+ end
+
+ def size
+ `Object.keys(#@native.state).length`;
+ end
+
+ def to_n
+ %x{
+ var new_native = {};
+ for (var key in #@native.state) {
+ if (typeof #@native.state[key].$to_n !== "undefined") {
+ new_native[key] = #@native.state[key].$to_n();
+ } else {
+ new_native[key] = #@native.state[key];
+ }
+ }
+ return new_native;
+ }
+ end
+ end
+ end
+end