クラス自体に特定の機能を持たせるには、クラスメソッドを作ります。クラスメソッドは、クラス名.メソッド名 のように呼び出します。
railsでは、データベースのテーブル全体を対象にするメソッドをクラスメソッドとして用意しています。
それでは、例を見てみましょう。
class Robot
def initialize(name, x, y)
@name = name
@x = x; @y = y
end
def to_s
"#{@name}: #{@x},#{@y}"
end
def self.load(fname)
robots = []
File.open(fname, encoding: "utf-8") do |f|
f.each_line do |line|
cols = line.chomp.split(/\t/)
robots << new(cols[0], cols[1].to_i, cols[2].to_i)
end
end
robots
end
end
robots = Robot.load("test.txt")
robots.each{|robo| puts robo }
test.txt
ロボ1号 83 14 ロボ2号 5 51 ロボ3号 78 66
コマンド
C:\rails>ruby test.rb ロボ1号: 83,14 ロボ2号: 5,51 ロボ3号: 78,66