lib/preact/state.rb in isomorfeus-preact-10.6.16 vs lib/preact/state.rb in isomorfeus-preact-10.6.17
- old
+ new
@@ -11,9 +11,29 @@
if (Opal.Preact.state_is_not_equal(#@native.state, #{other_state.to_raw_n})) { return false; }
return true;
}
end
+ def [](key)
+ %x{
+ if (typeof #@native.state[key] === 'undefined') { return nil; }
+ return #@native.state[key];
+ }
+ end
+
+ def []=(key)
+ new_state = `{}`
+ new_state.JS[(`key.endsWith('=')` ? key.chop : key)] = args[0]
+ @native.JS.setState(new_state, `null`)
+ end
+
+ def key?(k)
+ %x{
+ if (typeof #@native.state[k] !== 'undefined') { return true; }
+ return false;
+ }
+ 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?