ruby
ちょうど京都にいるので、ちょいと参加してきます。今京都は祇園祭の真っ最中です。
1.demoアプリケーションの作成 以下のコマンドを実行 rails demo iconv.dllがないというエラー。 zlib.dllの時と同じように探して、binに置く。 http://www.kaoriya.net/の「Libiconv」より「Libiconv DLL 1.9.1 for Windows」をダウンロード。iconv.dllをru…
昨日のXP祭りで衝撃的だったのは角谷さんのライトニングトークスでした。あまりにも衝撃だったので、早速Railsを試してみました。WEB+DB PRESS Vol.28を参考に次の手順でまずはインストール。1.Windows版のRuby「ruby-1.8.2-20050201-i386-mswin32」をインス…
メモ、いいね。
PartyパターンをRubyで書いてみました、ってこんな感じでしょうか? アナリシスパターン、Rubyの書き方ともにつっこみあったらお願いします!! class Party def initialize @addresses = Array.new @emails = Array.new @telephoneNumbers = Array.new end …
moduleを使ったパターン。これなら継承する必要がありません。 こっちのほうがRubyっぽい気がしますが、どうでしょう? module BaseAction def execute() doValidate(); doExecute() end end class AddAction include BaseAction def doValidate() puts "Add…
TemplateパターンはJavaと同じ感覚で書けますね。 class BaseAction def execute() doValidate(); doExecute() end end class AddAction
先日の日記にRubyにはJavaでいうインターフェイスや抽象メソッドはないと 書きましたが、moduleという機能で似たような目的を果たすことができるようです。moduleはインターフェイスとTemplate Methodパターンを組み合わせたようなものでしょうか(下記のよ…
Javaでいうインターフェイスの代わりに基底クラスを使うって正しいのでしょうか?以下の例でいうとEncryptクラスの部分です。 抽象メソッドが定義できないようなので、基底クラスにメソッドを用意しても 下位クラスが実装するかどうかは保証できません。これ…
Rubyの場合、メソッドの引数に型を指定できないため、 ダブルディスパッチャが使用できないので、 メソッド名を分けて実装するみたいです。 # ファイルの一覧を出力するプログラム。 class Node def initialize(path) @path = path @name = File.basename(pa…
インクリメント演算子はない! num += 1
1行でアクセサ作れるなんて、ステキです。 class Person def initialize(name, age) @name = name @age = age end # いわゆるゲッター attr_reader :name, :age # いわゆるセッター attr_writer :name, :age # セッターゲッターを同時に作成 #attr_accessor…
initializeメソッドがコンストラクタのようです。 class Test def initialize(name = "unknown") @name = name end end test = Test.new("agata")
マーチンファウラーのblikiのサンプルとかもRubyだし、 やっぱオブジェクト指向なスクリプト言語でしょうということで、 前々気になっていたRubyを使い始めました。Macは最初からRubyインストール済みなので、インストールの必要はありませんでした。まずは…