rubyで遊ぼう クラスメソッド

クラス自体に特定の機能を持たせるには、クラスメソッドを作ります。クラスメソッドは、クラス名.メソッド名 のように呼び出します。
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