ruby ​​- переопределить метод, а затем вернуться

Я пытаюсь найти способ, которым я могу переопределить метод, сделать что-нибудь, а затем вернуться, не оставляя никаких артефактов.

I реализовали это с помощью мокко, но, очевидно, это не будет работать в производственном приложении. Обратите внимание, что новый метод имеет параметры, а старый - нет.

Пример следующего содержания

require 'rubygems'
require 'mocha'

class Example

  def to_something
    self.stubs(:attribs => other(1))
    r = attribs_caller
    self.unstub(:attribs)
    r
  end

  def other(int)
    {"other" => int }
  end

  def attribs_caller
    attribs
  end

  def attribs
    {"this" => 1 }
  end

end

a1 = Example.new

puts a1.attribs_caller  #=> this1
puts a1.to_something    #=> other1
puts a1.attribs_caller  #=> this1
7
задан Andrew Grimm 20 April 2011 в 23:26
поделиться