Я пытаюсь использовать метод self.instance_exec
. переменная экземпляра @legend
в моем случае печатается очень красиво, но переменная класса выдает ошибку:Доступ к переменной глобального класса в анонимной функции
uninitialized class variable @@holiday_legend_counter in Object (NameError)
Мой пример кода:
class Calender
def initialize(options)
@@holiday_legend_counter = "a"
@legend = 'A'
end
def print_date(print_date)
# some calculation to calculate date and the current date
self.instance_exec date, @current_start_date, &print_date
end
end
print_legend = Proc.new do |date,current_date|
print @@holiday_legend_counter
print @legend
end
cal = Calender.new
cal.print_date(print_legend)