備忘録用に書いていきます。
①
class Sample
.
.
.
end
②
Sample = Class.new do
.
.
.
end
↓
メリット…ブロックの外の変数が呼び出せる
var = 'hogehoge'
class Sample
# classブロックの内部からは、ブロックの外で定義されたvarは呼び出せない
puts var
end
Sample = Class.new do
# Class.newブロックの内部からは、varを呼び出すことができる
puts var
end
③
self.class.const_set :'Sample', Class.new do
.
.
.
end
↓
メリット…クラスを動的に定義できる
class Sample
def self.create_new_class(class_name)
# 引数の値に応じて、クラスを作成する
self.class.const_set :"#{class_name}", Class.new
end
end