Hi

I had a strange error with the rails-script and the files generated by it. 
For some reason everything looked quite messed up, but Charles reports his 
stuff work right.
I've been trying to isolate what the error is, since it's obviously 
platform dependant, and I've actually found an interesting thing that 
people sitting on Linux won't notice. Look at this code:

template = 
File.read("d:/Project/jruby/lib/ruby/gems/1.8/gems/rails-1.1.2/html/index.html")
puts "#{template[0..70].inspect}"

the index.html is just a convenient test-case. I run this with Ruby and the 
output is this:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        "

but when I run it with jruby:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\r\n       "

As you see, JRuby preserves the Win32-line endings, which messes up a whole 
slew of regexps, among them every use of the template-method on 
create-command in Rails. Ouch.

So, the solution? I don't really know. My best suggestion right now is to 
always wrap our File reading with a Filter that transforms from 
line.separator to \n ... Not really great, but this will cause no ends of 
trouble on Win32.
Actually, we can do better by only wrapping when line.separator is 
different from \n ...

Regards
  Ola Bini




_______________________________________________
Jruby-devel mailing list
Jruby-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jruby-devel

Reply via email to