string differences between ruby 1.8 & 1.9.3

Using Rails 3.1.1 and trying to switch over to Ruby 1.9.3-p125 (I've got 1.9.3-p125 running via NGINx and 1.8.7 running via webrick so I can side by side).

I've got the following in my 'host' model (activeldap but I don't that matters)   def hostipnumbers_columnized     if self.ipHostNumber == nil then       results =     else       results = self.ipHostNumber.to_a.sort {|a,b| a <=> b }.collect { |ipnumber| ipnumber + "\n" }     end     return results   end

# Note: had to add '.to_a' to the method because sort is no longer a string option and in 1.8.7 when only 1 ipHostNumber is returned, it's just a simple string but ruby 1.8.7 never complained but ruby 1.9.3 comes to a screeching halt

Anyway, in my view, I've got...

  <%= text_area 'host', 'hostipnumbers_columnized', :cols => '30', :rows => '8' %>

which when running on 1.8.7 was never an issue. Each ip address was put onto a new line because of the '\n' like this: 10.200.0.100 208.100.300.100

but when running on 1.9.3-p125 the text_area shows the array with all of it's raw markup like this: ["10.200.0.100\n", "208.100.300.100\n"]

I've done various things such as flattening, joining, etc. the hostipnumbers_columnized but it appears impossible to get them to display on individual lines in ruby-1.9.3 - without even considering code that will work equally as well with 1.8.7

Any suggestions?

join() seems to work fine for making the string suitable:

$ irb ruby-1.9.3-head :001 > x = ["10.200.0.100\n", "208.100.300.100\n"] => ["10.200.0.100\n", "208.100.300.100\n"] ruby-1.9.3-head :002 > x.join => "10.200.0.100\n208.100.300.100\n" ruby-1.9.3-head :003 > puts x.join 10.200.0.100 208.100.300.100 => nil ruby-1.9.3-head :004 > ^D

Would it cause problems elsewhere if hostipnumbers_columnized were to return results.join? What do you get in the text_area if you do that?

-Dave

Each ip address was put onto a new line because of the '\n' like this: 10.200.0.100 208.100.300.100

but when running on 1.9.3-p125 the text_area shows the array with all of it's raw markup like this: ["10.200.0.100\n", "208.100.300.100\n"]

I've done various things such as flattening, joining, etc. the hostipnumbers_columnized but it appears impossible to get them to display on individual lines in ruby-1.9.3 - without even considering code that will work equally as well with 1.8.7

Any suggestions?

join() seems to work fine for making the string suitable:

$ irb ruby-1.9.3-head :001 > x = ["10.200.0.100\n", "208.100.300.100\n"] => ["10.200.0.100\n", "208.100.300.100\n"] ruby-1.9.3-head :002 > x.join => "10.200.0.100\n208.100.300.100\n" ruby-1.9.3-head :003 > puts x.join 10.200.0.100 208.100.300.100 => nil ruby-1.9.3-head :004 > ^D

Would it cause problems elsewhere if hostipnumbers_columnized were to return results.join? What do you get in the text_area if you do that?

For the simple reason that single quotes in Ruby do not allow for string interpolation (such as \r and \n), while double quotes do.

sure but that was in the model and by the time the 'string' reached the view, the \r and \n were 'bare' (no quotes) so in my mind, they should not have been a factor at all.