bundle add rbs rbs_rails steepこうなる
| Array.from(document.links).filter((a)=>/^javascript:\s*GREE\.ui/.test(a.href)).forEach((a)=>a.href=decodeURIComponent(a.href.match(/'callback_url':'([^']+)/)[1])) |
| class ActiveSupport::TestCase | |
| # context 'foo' => class Context_foo < self | |
| def self.context(name, &block) | |
| class_name = "Context_#{name.gsub(/[[:^word:]]+/, '_')}".to_sym | |
| const_set(class_name, Class.new(self, &block)) | |
| end | |
| end |
| import { StoreEnhancer } from "redux"; | |
| /** | |
| * 最初に localStorage から取ってきて | |
| * dispatch 毎に localStorage に保存する | |
| * @usage | |
| * createStore(reducer, localStorageEnhancer('unko')) | |
| * createStore(reducer, compose(applyMiddleware(...), localStorageEnhancer('unko'))) | |
| */ | |
| const enhancer = (key: string): StoreEnhancer => { |
| import { useMemo, useState, useEffect, useDebugValue } from "react"; | |
| import { createStore, Reducer, Action, Dispatch, StoreEnhancer } from "redux"; | |
| const useRedux = <S, A extends Action<any>>( | |
| reducer: Reducer<S, A>, | |
| enhancer?: StoreEnhancer<S, A> | |
| ): [S, Dispatch<A>] => { | |
| // store を一度だけ作る | |
| const store = useMemo(() => createStore(reducer, enhancer), [reducer, enhancer]); | |
| const [state, setState] = useState(store.getState()); |