ruby

Multi-method

[ruby-talk:187149] http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/187149にて、 [ruby-dev:28533] Multi Methods URABE Shyouhei proposed a rough idea for multi methods (in lisp as generic function) for ruby The syntax is def foo(…

aliasとalias_methodの続き:

http://d.hatena.ne.jp/rubyco/20060319/aliasより。 id:rubycoさんの実験によると、メソッドの中でaliasが使える模様。ということで、ちょっと実験してみた。 def rubyco puts "rubyco" end def change(x) alias_method :walf443, :rubyco end #=> undefine…

Rubyのaliasとalias_method

Rubyのaliasは文法でalias_methodはメソッドなのだけど、Railsの影響か、class内でショートカット的な役割をするメソッドはシンボルを引数に取るということが多くなっているので、 class SomeClass def old_some_method end alias new_some_method old_some_…

RHGを手に入れたー

絶版で手に入らないらしくAmazonにて非常な高値がついているRHGこと「Rubyソースコード完全解説」を新宿のジュンク堂にて発見しました。新品なのに若干傷物なのは何故に。。。Rubyソースコード完全解説作者: 青木峰郎,まつもとゆきひろ出版社/メーカー: イン…

Kernel#Path

Pathname.path: 満足せる豚。眠たげなポチ。 http://blog.hacklife.net/archives/50375130.htmlより。PathnameもURIと同じような感じでいけそうな気がしたので、こういうのはいかがでしょう? module Kernel def Path(path_str) Path.new(path_str) end modu…

文字列を文字コードの列に変換する

str = "あいうえお" code = "" str.length.times {|i| code += str[i]. to_s(16) } puts code #=> "a4a2a4a4a4a6a4a8a4aa"文字コードは16進数になってます。頻繁に使うなら class String def to_code code = "" self.length.times {|i| code += self[i].to_s…

RailsによるアジャイルWebアプリケーション開発

RailsによるアジャイルWebアプリケーション開発作者: 前田修吾出版社/メーカー: オーム社発売日: 2006/02/25メディア: 単行本(ソフトカバー)購入: 2人 クリック: 109回この商品を含むブログ (211件) を見る買った。

==とequal?とeql?と===の違い

前回のやつでArray#-を独自定義したクラスで使うためにはeql?メソッドのオーバーロードが必要そうなのだけど、いろいろ似たようなのがあって紛らわしいのでRubyリファレンスで調べてみた。 Object#== self==(other) self と other が等しければ真を返します…

配列の差分を取るメソッド − Array#diff

(追記:Array#-というメソッドがあるようです。id:yuguiさんありがとうございます)二つの配列の比較をして、[レシーバー側にあったもの, 引数側にあったもの]を返すメソッドを作成してみました。どっかで見たことあるような気もする。。。 class Array def d…

カレントディレクトリからバックアップの最新のデータを開く

元ファイル名が"filename.xxx"で、バックアップファイル名が"filename.yyyymmdd.HHMMSS.xxx"とする*1と、 filename = "filename.xxx" Dir.glob("#{File.basename(filename, '.xxx')}.[0-9]*.[0-9]*.xxx").maxあらかじめ拡張子を決め打ちしているのは良くない…

るびま13号

http://jp.rubyist.net/magazine/?0013出たようです。関係各位の皆様お疲れ様です。ざっと見た感じ Rubyist Hotlinks 【第 13 回】 関将俊さん RubyOnRails を使ってみる 【第 6 回】 テストの書き方 あなたの Ruby コードを添削します 【第 3 回】 dbf.rb …

module内のproc

[ruby-list:41831]よりmodule内のProcオブジェクトのコンテキストに関して。 module Module1 def func1 # 何らかの処理 end Func = proc { func1 } def func2 Func end end class Class1 include Module1 end obj = Class1.new obj.func1 #=> 動作する obj.f…

ライブラリだと実行しないコードを書く

if $0 == __FILE__ # コードを書く endRubyリファレンスマニュアルによると、 $0 $PROGRAM_NAME (ruby 1.8 feature) 現在実行中のRubyスクリプトの名前を表す文字列です。OSによってはこの変数に代入すると ps(1) の出力が変化します。この機能はプログラム…