0

エディタ保存したらブラウザリロードするsinatra/auto-reloadを作った

エディタを保存したらブラウザを自動リロードするsinatraプラグインを作った。
これでサブモニタにchromeとJavaScriptコンソール置いておくと幸せになれる。
ソースはgithubに。

Google ChromeもしくはFirefox+Greasemonkeyで動作する。エディタには依存しない。
sinatraアプリをローカルではなくサーバーで実行していてもリロードできる。



■インストール

sudo gem install sinatra-auto-reload
rubygems.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としてインストールできる。


スクリーンショット
sinatra-auto-reload Firefox userscript


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



■監視しないファイルを定義
sinatraアプリ内でauto_reload_ignoresという関数を定義しておく
def auto_reload_ignores
  [/db.*/, /config.yaml/, /log.*/, /pid.*/]
end
配列内に正規表現で書いたファイルは、更新されてもリロードしない。logとかpidに反応しても困るので。


ところでプラグインに変数を渡すのは、こういう方法でいいんですかね?もっとまともなやり方がある気がするんだけど。



■しくみ
sinatra/baseに新しくgetでアクセスできるページを追加し、 http://hostname:port/sinatra_auto_reload にファイルの最終更新日時が出るようにした。
これをuserscriptからsetIntervalで監視して、更新があればリロードする。



■参考
JavaScript部分はこれを参考にした
最速インターフェース研究会 :: Firefoxでの開発を高速化する自動リロードスクリプト



■オススメ
sinatra-reloader か shotgun と一緒に使うのをおすすめします
sinatraはサーバーを再起動しないとrubyのコードの変更を読み込んでくれないんだけど、こいつらを使うと毎回読み込み直してくれるようになる。


■今後
よく考えたらSub URIで動かしている場合に動かなそうだ。あとで修正する。

2

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にする。

0

Firefox3にした あとtumblrとか

macのfirefoxはFlash上で日本語入力できないみたいだけどWindowsの方をFirefox3にした。2よりページ開く速度が速い。アドレスバーでのURLの履歴も前方一致だけでなくなって、例えばhate sho とか打てば自分のはてな関係のアカウントが全部でて良い。

url history of firefoxというかページタイトルでひっかかるので橋本とかうつとだいたい出てくる

■入れた

add-ons firefox3

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用

tombloo+socialブックマーククロスポスト

stylishまわり

styles on firefox3

greasemonkey userscripts

userscripts of firefoxuserscripts of firefox

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