Anyone know why __END__ and DATA don't work in Rails?

When writing Ruby you have the option to end the file early with __END__. Anything after the __END__ is assigned to a constant called DATA which is available within the file.

I recently tried using this in Rails and it didn't work. Instead I get an uninitialized constant exception. Anyone know why?

Has it been disabled in Rails?

thanks

Gavin

The DATA constant is only created for the running script. Thus, require'd files do not get the DATA constant.

see the following:

xeno@amrita:~ $ cat data.rb puts DATA.read __END__ helloooooo xeno@amrita:~ $ cat d2.rb require 'data' xeno@amrita:~ $ ruby data.rb helloooooo xeno@amrita:~ $ ruby d2.rb /home/xeno/data.rb:1:in `<top (required)>': uninitialized constant DATA (NameError)         from d2.rb:1:in `require'         from d2.rb:1:in `<main>' xeno@amrita:~ $

That makes sense!

Thanks for that!