ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

Ruby

IEnumerable(オブジェクトをforeachできるようにする)

プログラミングC# p207さっきのRectangleをEnumerableにしてみる。 順番にxとyを返すというもの。 using System; using System.Collections; using System.Collections.Generic; class Rectangle : IEnumerable { private int x; private int y; public Rect…

インデクサ([]演算子を使ってアクセスする)

プログラミングC# p197オブジェクトに[]の機能を追加する機能です。 Rubyでもできますね。Javaはできないような気がします。 とりあえずサンプルコード。おなじみ(?)Rectangleのxをindex=0で、yをindex=1で読み書きできるようにしてみました。 using System;…

paramsキーワード(可変長パラメータ)

プログラミングC# p184パラメータをいくつ渡してもよいメソッドを作るためのキーワード。 呼び側はパラメータ数を任意の個数設定でき、受け側は設定された個数の配列で受け取れるという仕組み。 C言語でいうprintfみたいなのを実現するために使う。で、とり…

staticクラス

プログラミングC# p82C#では、インスタンス化できないクラス(staticクラス)を作成できます。 using System; static class StaticClass { static void main(string[] args) { StaticClass sc = new StaticClass(); } static void sMethod() { Console.WriteLi…

Ruby1.9でRailsはまだ動かないらしい。

http://www.rubyonrails.org/down によれば、1.8.6が推奨で、1.8.5と1.8.4と1.8.2は使えるけど、1.8.3はダメらしい。なんでそんな半端なの? とりあえず待ちかな。なんか早そうだし。と期待してみる。

続々・getsメソッドが認識する改行文字を変更する方法は?(解決)

なんのことはない、\rの動きが、改行せずに行頭にカーソル(?)を戻すというものだったため、 cr.txt@cygwinで表示 $ od -cx cr.txt 0000000 A A A \r B B B \r C C C \r 4141 0d41 4242 0d42 4343 0d43 0000014 $ の場合、 AAAを出力して先頭にカーソルを戻…

動的にクラスを生成

RubyではStructクラスを使うと、データを格納するだけのクラスを作成できるそうです。 # Personクラスを定義 Person = Struct.new("Person", "name", "address", "tel") taro = Person.new("Taro", "Tokyo", "03-3xxx-xxxx") hanako = Person.new("Hanako", …

gdbmエラーになる。

たのしいRuby第二版のp425 23章の郵便番号のサンプルを動かすと、gdbmが無いというエラーになる。 C:/work/rubyproject/funruby/jzipcode.rb:1:in `require': no such file to load -- gdbm (LoadError) from C:/work/rubyproject/funruby/jzipcode.rb:1:in `<top (required)></top>…

続・getsメソッドが認識する改行文字を変更する方法は? (できねえ)

たのしいRuby第二版のp346 0[octal]: 行末文字の指定 とかあったので、多分これだと思い、早速サンプルを書いてみることに。cr.txt@cygwinで表示 $ od -cx cr.txt 0000000 A A A \r B B B \r C C C \r 4141 0d41 4242 0d42 4343 0d43 0000014 $ gets_text_2…

String#eachも動かない@Ruby1.9。

たのしいRuby第二版のp351 このサンプルもエラーになりました。 dirlist = `dir` dirlist.each{|line| if line =~ /.rb$/i print line end } >ruby backquote_sample.rb backquote_sample.rb:2:in `<main>': undefined method `each' for #<String:0xb86de8 > (NoMethodError) >同じ</string:0xb86de8></main>…

Object#idは1.9で完全廃止になったらしい。

たのしいRuby第二版のp344 サンプルはwarningではなく、エラーになりました。 >ruby -e 'p 1.id' -e:1:in `<main>': undefined method `id' for 1:Fixnum (NoMethodError)リファレンスマニュアル(Object#__id__)によれば、 version 1.7 では、obsolete となりまし</main>…

C++っぽいRuby

$stdout << "aaa" << "bbb" << "ccc"って、なんだかC++っぽい。 $stdout C++においてもそういう意味だったんでしょうね。きっと。

一つのプロセスが開けるファイルの数はいくつ?(分からずじまい)

たのしいRuby第二版のp285 1つのプログラムが同時に開くことのできるファイルの数には制限があるので との記述がありますが、じゃあ一体いくつなの?と思い調べてみることにしました。 で、こんなプログラムを書いてみました。 i = 1 while true open("openl…

getsメソッドが認識する改行文字を変更する方法は?

たのしいRuby第二版のp230 getsメソッドが認識する改行文字を変更する方法についてはp.329を参照 とあるが、p.329を見てもそれっぽい記述がない。。 『たのしいRuby 第2版』正誤表 http://www.notwork.org/sbcr-ruby/errata.html にも載ってないようです。 →…

String#[]

たのしいRuby第二版のp224 str = "abcdef" p str[0]これの結果は97であると書かれていますが、実行すると"a"になります。 多分、Ruby1.9で変更になった Changes for 1.9Incompatible (Severe) * String o Encoding-awareness の影響なのでしょう。上のp219の…

日本語文字列の長さ

たのしいRuby第二版のp219 p 'オブジェクト指向プログラミング言語'.length p 'オブジェクト指向プログラミング言語'.size p 'オブジェクト指向プログラミング言語'.split(//s).sizeのプログラムですが、そのまま実行するとエラーになります。 >ruby p219-1.…

配列式%w

たのしいRuby第二版のp184 配列式%wの区切り文字の話で、サンプルの()のみならず、<>、||、!!、@@、AAが使えるようなことが書いてありますが、AAはエラーになってしまいますね。 >type p183-2.rb lang = %wARuby Perl Python Scheme Pike REBOLA p lang >rub…

続・timesメソッドと中括弧の関係

いわゆるiteratorというやつなのですね。 昨日の 100.times { print "All work and no play makes Jack a dull boy.\n" }は 100.times do print "All work and no play makes Jack a dull boy.\n" endと書き直しできるとのことです。 あとは、 100.times do …

timesメソッドと中括弧の関係

たのしいRuby第二版のp26 100.times { print "All work and no play makes Jack a dull boy.\n" }はOKだけど、 100.times { print "All work and no play makes Jack a dull boy.\n" }はsyntaxエラーになる。 中括弧の位置がポイントらしい。 多分、eachメソ…

printメソッドも文字化け

pメソッドで文字化けしたら、-Ks(Windowsの場合)を付けて実行みたいなことが書いてありますが、 printメソッドでも文字化けしてしまいました。 楓ハ積=2200 体積=6000 -Ksを付けて起動したら、問題なく表示されました。

Ruby-1.9.0.msiをWindowsXP Proにインストール

この環境でたのしいRuby第二版を読んでいこうかと。 C:\>ruby -v ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] C:\>

「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」

たのしいRuby 第2版 Rubyではじめる気軽なプログラミング作者: 高橋征義,後藤裕蔵出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/08/05メディア: 単行本購入: 11人 クリック: 350回この商品を含むブログ (259件) を見る買ってきました。Ruby1.9で…

WEBrickでHTTPサーバ

gserverより、こっちの方が本格的かも。ちと手軽さには欠けるけど。そして何故かやっぱりCtrl+Cで終了しない。なんで? 以下のサンプルは、ドキュメントルートが/work/rubyproject/webrickで、/script以下のディレクトリを含むURL(http://localhost:10080/sc…

gserverでHTTPサーバを作る

http://d.hatena.ne.jp/taka_2/20051219 以前、prototype.jsのAjax機能っていうのを試そうと思って、rubyのgserverで簡単なWEBサービスを作ってやろうと考えたのですが、サーバは正しく動いているものの、WEBブラウザ(IE)からアクセスすると、「ページを表示…

続・gserver

昨日のエントリに突っ込みをいただきました。 # すごい勢いで(?)回り続けます。 while(true) endの部分を、 while(true) sleep(5) endとしてもウェイトを起こさず普通に動きました。sleepって組み込み関数なんですね。ついJavaの感覚でObjectの項を探してし…

gserverを試す

上の続きなのですが、prototype.jsのAjaxな機能を試すのに、サーバサイドをどうしようかと考えていました。僕が電車内の勉強のお供に使っているノートPCにはJavaとRubyの環境しかないので、「Javaで作るのは面倒だけど、Rubyでは簡単に作れそうにないなぁ。…

社内勉強会無事終了

マニアック言語祭と称して行われた中、あんまりRubyについて語らずRailsについて語ってきたわけですが、設定ファイルが少ないことや、ActiveRecordの素晴らしさが伝わったようで、なかなか良かったのではないかと思います。Webアプリケーションのとっかかり…

土曜日は社内勉強会

ようやくパワポが書けた。。あとはRailsのデモをどういう手順でやるかだけ決めとこう。

Rails着々学習中

小さなWebアプリケーションを作りながら理解しているのですが、徐々にどこで何をすればいいのか分かってきました。いまだにFour Days on Railsがリファレンスマニュアル的な感じになっていて、一度目を通しておいてかなり良かったと思います。もちろん、Rail…

RailsのrhtmlはUTF-8じゃないとだめらしい

Railsの開発に、コマンドプロンプトとvimでしこしこやってるのですが、どうにも面倒な問題に当たりました。それは、rhtmlファイルはUTF-8で保存しないといけないっていうことです。 ためしにNotepadでUTF-8指定で保存してみたところ、普通に日本語が表示され…