Метапрограммирование Ruby: использование специального конструктора суперкласса - PullRequest
1 голос
/ 03 января 2012

В Ruby я хотел бы использовать конкретный конструктор суперкласса в подклассе.Я хочу сделать это, потому что я динамически управлял конструктором суперкласса.Соответствующий подкласс тоже создается динамически.

Я уже нашел способ сделать это, но, поскольку я не очень знаком с Ruby Metaprogramming, мне интересно, есть ли лучший способ сделать это.

Ниже приведены мои занятия и мое текущее решение.Спасибо за чтение и размышления:)

class A < Object
  def self.new *args
    super
    #doing things
  end
end

class B < A
  def self.new *args
    #doing things
    return superclass.superclass.method(:new).unbind.bind(self).call(args)
  end
end
...