Я изучаю, как использовать class_eval в модулях (я немного знаком с class_eval) и наткнулся на этот полезный класс в resource_controller. Там они имеют такие вещи:
class_eval <<-"end_eval", __FILE__, __LINE__
def #{block_accessor}(*args, &block)
unless args.empty? && block.nil?
args.push block if block_given?
@#{block_accessor} = [args].flatten
end
@#{block_accessor}
end
end_eval
Что делает __FILE__
и __LINE__
в этом контексте? Я знаю, что __FILE__
ссылается на текущий файл, но что делает все это в точности? Не знаю, как это искать:).