Есть ли взломать, чтобы переопределить имя класса с пользовательским? - PullRequest
1 голос
/ 20 февраля 2012

Допустим, у меня есть класс Set Я хочу что-то вроде этого, например

class Set
  def initialize(new_name)
    self.class = new_name
  end
end

Если вы сделаете что-то подобное x = Set.new("Dog"), x.class вернет Dog вместо Set.Класс выше тоже не работает!

1 Ответ

3 голосов
/ 20 февраля 2012

Я понял это!это должно работать;)

class Obj
  def initialize(name)
    @klass = Object.const_set(name.capitalize, Class.new()).new()
  end
end

Попробуйте:

dog = Obj.new("dog")
dog.class #=> Dog
dog.class.name #=> "Dog"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...