読者です 読者をやめる 読者になる 読者になる

PerlerのRuby日記

Rubyとか

Ruby

XMLを解析してハッシュにするベンチマーク

XMLをハッシュにしたかったのだけれど、やり方がいろいろあるらしくって計測してみた。 NokogiriのXPath NokogiriのSAX REXMLのpull-perser REXMLのstream REXMLのSAX2 参考: http://d.hatena.ne.jp/tohtas/20091101/1257092607 http://d.hatena.ne.jp/wine…

やったーRuby技術者認定Gold受かったよー\(^o^)/

一週間くらい公式教科書読んで、受けてきました。 75%で合格のところを、76%でした。なんというボーダー。 あと1問間違ってたら落ちてた。 とはいえ合格は合格なので、ありがたく履歴書の資格欄などに書かせていただこうと思います。 で、この資格試験なん…

Classはincludeできない

class Hoge; end class Fuga include Hoge end test.rb:4:in `include': wrong argument type Class (expected Module) (TypeError) from t.rb:4:in `<class:Fuga>' from t.rb:3:in `<main>'</main></class:fuga>

クラスを再オープンすると元のインスタンスも影響を受ける

# クラスを作る 1.9.3-p194 :001 > class Hoge 1.9.3-p194 :002?> def hoge 1.9.3-p194 :003?> "hoge-----!!!!" 1.9.3-p194 :004?> end 1.9.3-p194 :005?> alias :fuga :hoge 1.9.3-p194 :006?> end => nil # インスタンスを作る 1.9.3-p194 :007 > h = Hoge…

参考書読んで覚えたこと雑記

rescue HogeError で、HogeErrorクラスを継承しているクラスの例外ならそれもキャッチされる。(よく考えたらrescue Exceptionが全部拾うなぁ) コマンドラインオプション c:文法チェック、w:警告モード、r:指定ファイル実行、d:デバッグモード、W:すべて警…

be_[predicate]マッチャ

ローカルの勉強会に行ってきた。ブログを書くまでが勉強会です。 RSpec の入門とその一歩先へ - t-wadaの日記 Rspec入門を上記ページに沿ってペアで書いた。 2時間いかないくらいでは、第1イテレーションしか進まなかった。 「お」と思ったのは、be_[predica…

継承先の子クラスの呼び方が分からない

Perlだとこうなるのは、Rubyだとどうなるのか。 package Hoge; sub new { my $class = shift; bless {}, $class; } sub fuga { my $self = shift; my $class = ref $self; "$class\::Fuga"->new; } package Piyo; our @ISA = ('Hoge'); package Piyo::Fuga; …

Rubyレシピブック050~053途中

050 文字列をバイトごとに処理する 割愛 051 文字列を連結する なお、短い文字列を大量に追加する場合は、+ではなくString#concatを使うべきです。 なるほど。 Perlは「.」の文字列連結演算子一択だけれど、Rubyは用途によって使い分けが必要らしい。 参照先…

Yokohama.rb #22 に行ってきた

2012/7/14(Sat)に行われたYokohama.rbに行ってきた。 誰も書いてないみたいなので書いておく。 http://bukt.org/events/49 ちなみに勉強会なるものに初めて参加した。 PerlerなのにRubyの方が先とはこれいかに。 17:00開始だと思っていたら17:30開始だった …

YAML.loadの例外補足がわからない

"RuntimeError occur at here!!!"の例外はどこにいってしまったのでしょう。

Youtube検索

WEB+DB PRESS Vol.44より、MVCの解説としてYoutubeから検索するプログラムをPerlで例として掲載されていたのをRubyで書き直してみた。 WEB+DB PRESS Vol.44 作者: 鵜飼文敏,ミック,大塚知洋,下岡秀幸,山本陽平,伊藤直也,高井直人,永安悟史,角谷信太郎,高林哲…

クラスの階層

練習も兼ねて簡単なフレームワークを作っていて以下のように書いたらエラーになった。 lib/myapp/controller/search/index.rb class Search::Index < Controller … end uninitialized constant Object::Search (NameError) まだまだよく理解しきっていないの…

多重ループからの脱出

単純なループやイテレータは、breakで脱出できる。 num = [1,2,3,4,5,6,7,8,9,10] num.each do |i| break if i > 5 puts i end puts "----------------------" for i in num break if i > 5 puts i end 1 2 3 4 5 ---------------------- 1 2 3 4 5 ただしこ…

=~ による正規表現パターンマッチ

正規表現は、正規表現クラスつまりRegexpクラスから作るか、「/regexp/」のようにスラッシュで囲むかで作れるけれど、まあ後者が簡単。 test_regexp = Regexp.new('^test', true) #=> /^test/i test_regexp = /^test/i #=> /^test/i マニュアルには左辺に正…

ヒアドキュメント

Rubyのヒアドキュメント。 「<<区切り語」から「区切り語だけ書いてある行」までが、指定できる文字列。 「<<」と「区切り語」の間にスペースは入れられない。 「区切り語」をダブルクオートで括れば式展開される。シングルクオートならされない。 「区切り…

Ruby on Railsインストール

RubyGems を利用して流行の Ruby on Rails をインストール。 Ruby on Rails インストール $ gem install rails Successfully installed activesupport-3.0.2 Successfully installed builder-2.1.2 Successfully installed i18n-0.4.2 Successfully installe…

インストール

サクラレンタルサーバにRubyをインストールした手順。 現在最新版はRuby1.9.2。 レンサバなのでもちろん管理者権限はなく、ホームディレクトリにインストール。 ちなみにbash。 Ruby $ cd ~/src $ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.…

Ruby日記

Rubyについて学いだことを主に私的メモとして記録していく。