2014-01-30 1 views

ответ

2

Какая часть перерыва в исполнении вы хотите?

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

# define 
class Foo 
    def bar 
    @bar ||= 'default' 
    end 

    def bar=(value) 
    @bar = value 
    end 
end 

# overwrite 
class Foo 
    def bar=(value) 
    super 
    abort("Message goes here") 
    end 
end 
+0

В моем случае я не знаю, где значение меняется. то есть я не знаю точную функцию/местоположение кода, в котором происходит изменение. Поэтому я хотел использовать такие функциональные возможности отладчика (если есть), что всякий раз, когда это значение изменяет выполнение отладки, выполняется разблокировка, и я смогу найти этот фрагмент кода. –

+1

Это всего лишь указание на стратегию поиска, от которой происходит изменение. Если он является внутренним для экземпляра, вы можете обеспечить доступ к этой переменной, используя методы getter/setter. Если это связано с внешним вызовом, то применяется аналогичная линия рассуждений. Если, однако, данные изменяются с помощью массового обновления таблицы db, тогда все ставки отключены. –

Смежные вопросы