Я хочу иметь метод класса return_empty_set
в Ruby, похожий на методы attr_reader
. Моя предлагаемая реализация
class Class
def return_empty_set *list
list.each do |x|
class_eval "def #{x}; Set.new; end"
end
end
end
и пример использования:
class Foo
return_empty_set :one
end
Foo.new.one # returns #<Set: {}>
но прибегнуть к струне похоже на хакера. Есть ли более чистый или лучший способ написать это, возможно, избегая class_eval
? Или это лучший путь?