Ruby

Twitterのログ

rubyのtwitterのgemでTwitterのログを取ってみる。 gem install twitterでインストール require 'rubygems' require 'twitter' auth = Twitter::HTTPAuth.new('ユーザー名', 'パスワード') tw = Twitter::Base.new(auth) tw.user_timeline(:page => 1).each …

コードゴルフ

昨日大学のメールを数カ月ぶりに読んでたら去年ゼミでコードゴルフをやってたみたい。 今日Ruby 1.9.1の変更点を読んでいたらそのコードゴルフに使えるメソッドを見つけたので一つ書いてみた。1〜99の範囲の乱数を10個表示 p (1..99).to_a.sample(10) 1.8じ…

const_get

クラスやモジュールの名前からクラスやモジュールそのものを取得したい時。 module Foo p const_get('String') end 一見Stringという名前の定数が表示されるだけに見えるけど、 module Foo p const_get('String').new end クラス名というのは実は単なる定数…

日付のパース

Rubyの組み込みライブラリのTimeは日付のフォーマットはできるけどパースはできない。実は結構見落とすことが多いんだけど、添付ライブラリのほうにtimeというのがあって、パースはそっちでできる。 require 'time' t = Time.parse('1999/07/01 06:06:06') r…

Threadとtimeoutと後始末

# 閉じられないファイルの例 Thread.start { f = open('foo', 'w') if false raise x end f.close } さて、このままスクリプトが終了するならいいんだけど、これが何度も繰り返されるとファイルがいつまでたっても閉じられないまま困ることになるかもしれな…

requireとrescue

なんとなく今日からRubyのよく書くパターンを紹介していくことにする。上?から順番にまずはrequire。 begin require 'ファイルがある時だけ読むライブラリとか' rescue LoadError end requireしたいファイルがないとエラーになるのでrescueしますが、rescue…

RubyForgeにプロジェクト作った

http://rubyforge.org/projects/kaibashira/ プロジェクト自体は休み前から承認されてたんだけど、さっきやっとSubversionのリポジトリにソースを入れた。単純にエクスポートしたファイルをコミットしただけなので履歴は移してないけど、どうせあんまり古い…

nilチェックを省略

配列が入る変数にnilが入ることがある時に最初はnilかチェックしてた。 if ary != nil ary.each {|a| .. } end nil?メソッドを知った。 if not ary.nil? ary.each {|a| .. } end unlessを使うようになった。 unless ary.nil? ary.each {|a| .. } end nilがif…

Ruby 1.9.0

昨日の夜中に1.9.0が出たのに気づいたけど、Windows版が使いたかったのでまだ保留。今日になってmswin版のバイナリもダウンロードできることに気づいて使ってみた。NetBeans上でKaibashiraのテストを動かそうとしたら、まずインストールようとしたライブラリ…

RubyForge

RubyForgeのアカウント作ろうとしたらフォームがほとんど日本語になってて分かりやすかった。

今年の予定

Gemの作り方を調べる。 Railsのgeneratorの作り方を調べる。 generatorでmigrationを生成できるようにする。

foxy fixtures

Ruby on Railsの2.0で新しくなったところを3分の1くらい目を通した。 フィクスチャから他のフィクスチャのデータをラベルで参照できるようになってるみたい。フィールド名と同じ名前のフィクスチャから探してくれるわけか。今までidの整合性を取るのが大変だ…

Netbeans 6.0 + jVi

Netbeansが6.0RCになってからjViのインストールができないなと思ってたんだけど、jViのダウンロード先を良く見ると日付は夏のままだけどRC向けのものがダウンロードできるようになっていた。前からかな? そっちだと6.0正式版でもjViがちゃんとインストールで…

最近知ったこと

def foo begin # ... rescue # ... end end のようにbegin〜endの外側で何もしないなら、 def foo # ... rescue # ... end こう書ける。 ちなみにクラスでも同じだけど、 class Bar # クラス定義 rescue # 定義中に例外が end なぜかこっちだけ知ってた。

家計簿 on Kaibashira

Kaibashiraってのはずっと前に作ったRDFデータベース。最後に手を入れたのは去年の10月だ。もう1年1ヶ月経ってる。改めてPostgreSQLを8.2に入れ換えてKaibashiraを動かしてみようとしたら動かなかった。PostgreSQLなんて久しぶりだし、cygwinで使うことが多…

NetBeans 6.0 beta + jVi

jViの気に入らないところはウィンドウを切り換えるたびにアウトプットウィンドウがjViのものに切り替わることだ。テストのログを見ながら別のファイルを編集したいのにいちいち切り替わらないでほしい。あとエディタへのフォーカス切り換えがキーボードのCTR…

NetBeans 6.0 beta + jVi

仕事はまたRubyだ。そこでNetBeansもRubyをサポートしているということなので試しに使ってみることになった。 昔みたいな重さは感じない。マシンが速いせいかもしれないけどAthronなのでどのくらいのマシンなのかはイマイチ分からない。 コードコンプリート…