What does class_eval <<-"end_eval", __FILE__, __LINE__ mean in Ruby?
Posted
by viatropos
on Stack Overflow
See other posts from Stack Overflow
or by viatropos
Published on 2010-03-22T22:01:53Z
Indexed on
2010/03/22
22:11 UTC
Read the original article
Hit count: 364
I'm learning how to use class_eval in modules (I'm somewhat familiar with class_eval) and came across this helpful class in resource_controller. In there they have things like this:
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
What does __FILE__
and __LINE__
do in that context? I know __FILE__
references the current file, but what does that whole thing do exactly? Don't really know how to search for that :).
© Stack Overflow or respective owner