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?