JavaScript

0.11 でモジュール化とユニットテスト

jspec が優秀なスペックテストをできるので、ヘルパーを用意。 require と log 関数だけはよく使うので用意してあげます。require は配布時とテスト時の違いを吸収できるような変な書き方をしているけれど。Rhino だと load でJSを読み込めますが、require …

ところでブラウザは?

素晴らしいまとめがありました。 http://www.ne.jp/asahi/nanto/moon/2007/08/17/number-to-string.html 。 Number.toString() には注意してください。

プリミティブクラスの拡張

CouchDBのスレでテンプレートエンジンの話があがっていたので、首を突っ込んでみた。いろいろあるんだがEJSをおすすめしたら、 がデフォでHTMLエスケープされないのが気に入らん、だそうで。Railsはじめたときに、確かに気に入らなかったんだが、もう慣れち…

ついでに extractOptions

これもRailsでよくお世話になったメソッドなのでポート。世の中探せばあるのかもしれないけれど。こうやって実装していくと、javaScriptの言語仕様の奥深いところではまったりするのでためになってます。 f = function(){ return Crayon.extractOptions.appl…

くれよん、 はじめました。

さすがに、主力言語がサーバーサイドJavaScriptになる中で、自分の手につくライブラリがないとつらい。かといってjQueryのお手軽さ、ActionViewのお手軽さを体感した身では、新しくJavaScriptフレームワークを探すのも微妙だなぁ、ということで、作り始めま…

JSpec

CouchDBアプリのテストのお話。 Integration Test は selenium で全部確認。 Functional Test は CouchDB 自体の test suite と同じように、ブラウザのJavaScriptでXHRを使って view/show/list のテスト。 Unit Test は ... どうすんの? という状態でした。

本日の便利関数 h()

最初にこれやるんだったw 使うテンプレートエンジンによってはもっているのかもしれませんが。erb.rb にシングルクオートとダブルクオートを加えたもの。 function html_escape(s){ return s.toString().replace(/&/g, "&"). replace(/\"/g, """). …

1.toString() はNG 1..toString()はOK

>>> 1.toString(); SyntaxError: missing ; before statement source=with(_FirebugCommandLine){1.toString();\n};>>> 1..toString(); "1"へぇ。この1.ってなんだろう。 >>> 1..constructor.name; "Number"Numberっていわれた。。。ええっとこれはもしかし…