なんてことはない、単に jshint を Ruby を通して実行するだけのツール。
なんで作ったか
- npm の jshint ではファイルの除外ができない(たぶん)
- npm の jshint の出力がイマイチ
- jshint_on_rails gem は同梱の Rhino に依存しててスクリプト内の日本語を問答無用で unsafe character 言いまくってうざい
- 外から文字コードを教える方法が分からない
そのうえで、JavaScript の lint 系ツールは手軽に実行できるやつがいい。
jshint の情報をそのまま Ruby で扱えるようにして自分でいろいろカスタマイズできたら便利じゃね?と思い立つ。
特徴
- execjs を通しているので幅広い JS 環境で動く
- custom reporter を書けば様々な出力形式に対応できる(標準で npm の jshint っぽい出力の他に emacs の compilation-mode 対応形式を用意)
- custom reporter 自体は npm の jshint にもあるんだけど Ruby の方が慣れてるし
- 実行バイナリも用意してあるのですぐ試せる
動作環境
- Ruby 1.8.7 と 1.9.2 で確認
たぶんWindows でも動く
Unicode 以外でできたスクリプトがどうなるかは知らない。
使い方
gem install jshint4r
しておいて、
jshint4r [options] path1 path2 ...
か、あるいは自前のアプリやライブラリの中から
require 'jshint4r'
していい具合にオプションを与えて自由に利用することができる。はず。
ツール
以下のようなものが使えるはず。
苦労したところ
- jshint そのものの使い方がよく分かってなかった
- execjs のドキュメントが全然足りてない
- jshint の返す情報が valid な JSON でなく、どう解釈したらいいのか迷った
- file の exclude が面倒で、結局 Rake::FileList を使った
まとめ
意外にというか予想通りというか、とにかく便利。compilation-mode からジャンプできるし、何回実行してもダルいとか言わない。
でもなんか node 力も Ruby 力も足りてない気がした。
RubyKaigi 2010 が先週あったわけですが、参加してなくてもいろいろ漁れるのが最近のイベントのありがたいところ。
というわけで怒濤の更新がされていた RubyKaigi Nikki からたどってみたところ、
うわぁ。全部動画だ。
いや、ありがたいんです。とてもありがたいんです。が、
3日間マルチトラックで行われたイベントの動画を消化する時間を作れるならイベントに参加してます
これは困った。チェックしたいがとてもチェックできない。あぁ。せめて資料なら目を通せるか?
おおぅ。資料へのリンクはない。
さもありなん。資料はスピーカーの手元にあるので実行委員の自由にはならない。うーん。適当に検索すればいいのかなぁ。→ 適当に slideshare で検索してみる。あぁあるある。じゃあこれを…。えーと。
- RubyKaigi Nikki の category movie を直近の Quarter で検索した結果を scrape してセッションの名前と動画プレイヤーへのリンクを獲得
- スライド共有サイトでセッションタイトルを検索して scrape
- 2 を共有サイトの数だけくり返す
- 得られたデータからスライドへのリンクを持つ HTML を生成
すればいいのか?
手作業で検索して scrape 用の元データを作成し、着実にテストして確認、3, 4 のフェーズに入ったところ、
何もスライドが拾えない。
えっ。
ここでかなり長いことハマる。
……。
分かりました。
スライドタイトルと RubyKaigi Nikki 上のセッションタイトルが一致していない。
しかもスライドタイトルを入れる方法が複数ある。
諦めました orz
たぶん名の通った人が呼びかけた方が早いし、いろんなブログで評判の発表から眺めていくしかないかなぁ。今ちょっと feed 消化もままならないので、これは全部あとで送りにするしかないなぁ。うっうっ。
ときどきの雑記帖 リターンズ 2007年9月(上旬) - PHP
PHP 6 が ICU 拡張を採用とか言う辺りで ICU ってなんだんねん。あ、Ruby の方式か?(それは CSI)と思ったのがきっかけでるびま読んでたんだった。
ICU は昔は IBM Classes for Unicode と呼ばれていたらしいが、今は International Components for Unicode ということになっているようだ。
cf. ICU Homepage @ icu-project.org
Unicode っていっぱいあるなぁ…。
Rubyist Magazine - Rubyist Hotlinks 【第 19 回】 伊尾木将之さん
いいなぁ。このモテるかも、モテそうっていうのを Ruby 界隈で声高に言う人ってあんまり見ない気がするな。JavaScript とか CSS とか PHP とか Zope とか(え)なんかそっち方面のような気がする。
でまぁ、タイトルの通りですけど、Mac 使っててモテる可能性があるのって、例えば雑貨屋とかああいう、Mac そのものが似合う空間に居て違和感のない人なんじゃないかと思いますよ。つかほら Mac ってフツーに宗教入ってますから。
話飛びますがトラベルキーボードを Mac に繋いでゴニョゴニョすれば使えます1。ただ Windows キーがないんで、option キーをどこに割り当てようか悩みますけど。CapsLock を Ctrl にして、Ctrl を option キーにする、CapsLock はナシっていうのも潔くていいけど。
……。
はて。
なんでるびまなんか読んでたんだっけか。Perl 読んだり書いたりするのがイヤになっただけだったか? 違うなぁ。なーんか調べようと思ったんじゃなかったかなぁ。Rubyの会の Wiki の編集してる場合でもないはずだよなぁ。
なんだったかなぁ。
軽すぎて常用するにはアレですけど、滑り止めとか重りとかつければいいかも。 ↩
まだ 7% くらい。。。
勉強せねば。
moodle.com を netcraft してて気づいた
凝った、安全性の確認を十分に行っていないツールについてはできるだけ自衛した方がいいよな。他にも有用な module はあるから、仮にそういうサービスを運営するような事態になったら module にあれこれ頼むようにしよう。
Course Management System. WebCT という最近よく聞くものを作った人が今度は GPL で一から作ったらしい。
最近、業界の動きにはとんと疎いので細かいことはよく分からないが、見た目はまんま Nuke 系って感じで、例えば PHP でこれを作ったとしたら、なんか激しく車輪の再発明のように見えるのは自分だけか。誰か何が違うのか端的に教えてほしい。
FROM: dh013147@ni.bekkoame.ne.jp
SUBJECT: あいよ!
この前やっとケーキ作りを始めた訳ですよ!
ショコラってどうかなと思ったんだけど以外とカンタンにスポンジ上
手に作れたよ♪生クリームもできたし☆
結構ひとりで嬉しがってたり\(^o^)/
私ってもしかしてお菓子作りのプロ!?
とか思ってたけど。。。。
食べてみたらガナッシュにブランデー入れすぎたよ(-_-;)
次こそちゃんと作ってやる〜o(>_<)o
こういう内容で誰か返信しちゃうと思っている? 別にワームがくっついてきてるわけでもないし。。。
ヘッダに出てきたホストを ORDB で検索したけど登録なしなので踏み台なのかどうかは今のところ判断できないし、チェックを申請する義理もないしなぁ。
まぁ確かにこの間はあなたから内容のないメールがきたんですけど、、、って yahoo.co.jp アドレスからメールがきましたけどね。そういうメールを送るワームが出回っているのは知ってたけど、まさか真面目に返信してくる人が居るとは思わなんだ。いや、それも返信を装った何か別のものかもしれませんがね。(もうどこで疑うのをやめればいいのか分からん。)