2009-02-01から1ヶ月間の記事一覧
okkez さんに Kernel.__method__ を教えてもらった。 RUBY_VERSION # => "1.9.1" def foo __method__ # => :foo end def bar foo __method__ # => :bar end bar __method__ # => nil Ruby 1.8.7 でも、ちゃんと動く。
Ruby で今実行中のメソッド名を知る - 趣味的にっき Ruby 1.8 の時は、こんな感じだった。 RUBY_VERSION # => "1.8.7" class Object def current_method caller.first.scan(/`(.*)'/).to_s end end def foo current_method # => "foo" end def bar foo curre…
本格的に Ruby 1.9.1 に移行してみようと、仕事で使ってるユニットテストを動かしてみた。エンコード絡みのエラーが頻発。 Encoding::CompatibilityError: incompatible character encodings: Windows-31J and ASCII-8BIT もちろんスクリプトは CP932 で書い…
本格的に Ruby 1.9.1 に移行してみようと、仕事で使ってるユニットテストを動かしてみた。test/unit を素直に使うと、勝手にテストが実行される。*1これだと、テスト全体の前処理, 後処理を実装できない。 テスト全体の準備と後始末 Ruby1.8.x の頃は、 Test…
ありがたいことに成瀬さんからコメントを頂いたので昨日の続き。 エンコーディング 結論から言うと、コメント頂いた通り、スクリプトを Windows-31J で書けば、何も迷うことはありません。環境変数 LANG が ja_JP.SJIS なのは間違ってるけど、Encoding.defau…
Ruby 1.9.1 のエンコーディングをいろいろ試してみる。 #!/usr/local/bin/ruby19 # -*- coding: shift_jis; -*- RUBY_VERSION # => "1.9.1" ENV['LANG'] # => "ja_JP.SJIS" __ENCODING__ # => #<Encoding:Shift_JIS> Encoding.default_external # => #<Encoding:Windows-31J> Encoding.default_internal</encoding:windows-31j></encoding:shift_jis>…
これも昔書いた「Unix ユーザのための DOS FAQ」まず簡単なバッチファイルを作る。 ECHO foo ECHO bar それを実行すると、 DOS> foo.bat DOS> ECHO foo foo DOS> ECHO bar bar DOS> _ いちいち実行するコマンドを表示してくれる。 プロンプトまで表示してく…
諸般の事情で今まで放置していたが、やっと職場の Cygwin 環境に Ruby 1.9.1 をインストールした。軟弱者なので --program-suffix=19 で作った。 $ ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin] $ ruby19 -v ruby 1.9.1p0 (2009-01-30 revi…
これも昔書いたもの。 make で何ができるのか? 実行モジュールを作るためのファイルの依存関係を定義。 タイムスタンプを比較して必要なものだけコンパイル。 一般的なコンパイル規則の提供。 コンパイル & インストール作業の抽象化。 make の魂 Unix の世…
ユーザに何か入力してもらうためにプロンプトを出したい。プロンプトは出力に混じらないように標準エラー出力に出す。 $ cat sample ... echo "Are you sure? " >&2 read ask case $ask in [Yy]) ... ;; ... $ ./sample Are you sure? _ echo にそのままプロ…
コマンドプロンプト (いわゆる DOS 窓) を起動すると、プロンプト*1が現われてコマンドを受け付ける。 C:\Documents and Settings\higaki>_プロンプトにカレントディレクトリが表示されていて鬱陶しい。 変更したい。 プロンプトの変更 プロンプトは変数 pro…
普通はファイル名の指定に使うけど、case 文のパターンにも使える。 $ ls bar foo foobar food fool foot $ ls foo? # 1 文字にマッチ food fool foot $ ls foo* # 0 文字以上にマッチ foo foobar food fool foot $ ls foo[a-n] # 範囲内の 1 文字にマッチ f…
社内の勉強会で使った資料や、個人的なメモなど、公開できそうなものを小出しにしてゆきます。
あるコードを見ていたら、こんなのが出てきた。 #if defined(XERCES_NO_NATIVE_BOOL) #ifndef bool typedef int bool; #endif #ifndef true #define true 1 #endif #ifndef false #define false 0 #endif #endif きしょくわる〜 # って 1 桁目じゃなくてもい…
あるライブラリを使おうとヘッダファイルを include したら、意味不明なエラーが出た。 (×) 1 error C2059: 構文エラー : '文字列' (×) 2 error C2091: 関数は関数を返せません。 (×) 3 error C2802: 静的なメンバ 'operator new' に仮引数リストがありませ…
普通こういうタイトル付けると、結論は NG ですよね。 このエントリの結論も「代わりにはならない」です。普段 Palm Z22 と 初期の iPod Touch を持ち歩いているのですが、「ひょっとすると、ひとつにまとめられるのでは?」と思って 2 週間ほど試してみまし…
職場からめちゃくちゃ近いので、少し早めに行ってみたら、開場 15 分前には待ち行列ができていた。yhara 先生のトークイベントのときとは明らかに客層が違う。 序盤は、まつもとさんがこれまでの Ruby 本について説明。あんまり売れなかったらしい「Ruby デ…