アーカイブ
エディタ保存したらブラウザリロードするsinatra/auto-reloadを作った
エディタを保存したらブラウザを自動リロードするsinatraプラグインを作った。
これでサブモニタにchromeとJavaScriptコンソール置いておくと幸せになれる。
ソースはgithubに。
Google ChromeもしくはFirefox+Greasemonkeyで動作する。エディタには依存しない。
sinatraアプリをローカルではなくサーバーで実行していてもリロードできる。
■インストール
sudo gem install sinatra-auto-reloadrubygems.orgに置いたので、gemコマンドでインストールできる
■使う
sinatraアプリ内で読み込む
require 'sinatra/auto-reloader' if development?if development? すると、shotgunか -e development オプションを付けて起動した時だけ有効になる。production環境には影響を与えない。
■ブラウザ拡張をインストール
localhost:4567 でアプリを起動しているとして、
http://localhost:4567/sinatra_auto_reload.user.js にgreasemonkeyスクリプトが生成される。
Firefox 3.5+Greasemonkey、もしくはChrome 5.0のuserscriptとしてインストールできる。
スクリーンショット

ホスト名ごとに違うuserscriptとしてインストールされるので、調べ物して同じブラウザで他のページを開いても大丈夫

■監視しないファイルを定義
sinatraアプリ内でauto_reload_ignoresという関数を定義しておく
def auto_reload_ignores配列内に正規表現で書いたファイルは、更新されてもリロードしない。logとかpidに反応しても困るので。
[/db.*/, /config.yaml/, /log.*/, /pid.*/]
end
ところでプラグインに変数を渡すのは、こういう方法でいいんですかね?もっとまともなやり方がある気がするんだけど。
■しくみ
sinatra/baseに新しくgetでアクセスできるページを追加し、 http://hostname:port/sinatra_auto_reload にファイルの最終更新日時が出るようにした。
これをuserscriptからsetIntervalで監視して、更新があればリロードする。
■参考
JavaScript部分はこれを参考にした
最速インターフェース研究会 :: Firefoxでの開発を高速化する自動リロードスクリプト
■オススメ
sinatra-reloader か shotgun と一緒に使うのをおすすめします
sinatraはサーバーを再起動しないとrubyのコードの変更を読み込んでくれないんだけど、こいつらを使うと毎回読み込み直してくれるようになる。
■今後
よく考えたらSub URIで動かしている場合に動かなそうだ。あとで修正する。
WordPressの投稿画面のアクセスキーがMacのemacsキーバインドとバッティングするのを無効化
素のwordpressだと、ctrl+dで文字を消そうとするとdelタグが挿入されたり、ctrl+aでアンカータグが入ったりする。
wp-includes/js/quicktags.jsとかをいじってうまくいったと思ったら、ctrl+Pはquicktags.jsと別の所で定義されていた。カーソル上に移動させようとしたら「公開」されてしまった。
Firefoxの設定でやる方が良い
retlet.net – VimperatorのキーバインドとバッティングするのでFirefoxのaccesskeyを無効化
about:configでui.key.generalAccessKey = 0にする。
Firefox3にした あとtumblrとか
macのfirefoxはFlash上で日本語入力できないみたいだけどWindowsの方をFirefox3にした。2よりページ開く速度が速い。アドレスバーでのURLの履歴も前方一致だけでなくなって、例えばhate sho とか打てば自分のはてな関係のアカウントが全部でて良い。
というかページタイトルでひっかかるので橋本とかうつとだいたい出てくる
tabmixplusのfirefox3対応版 Tab Mix Plus Dev-Build 0.3.6.X-Tab Mix Plus
■reblogまわり
ようやくtombloo入れた。どこからでもreblogをキメれる
tombloo on LDR(下の方にある)
AutoPagerize+LDRize+Minibuffer+ReblogCommand これはdashboard用
stylishまわり

他になんかあったら教えてれ




最近のコメント