Aldinei Sampaio
2011-Feb-25 12:35 UTC
[Ironruby-core] Linebreak issue with clr strings manipulated by Ruby code
Hi, guys. Sorry if I am posting this in the wrong place, but I need some kind of direction here. I isolated my problem in the following UnitTest in Visual Basic: <TestMethod()> Public Sub LineBreakProblem() Const SCRIPT = "print System::String.Format(''Line1{0}Line2'', System::Environment.NewLine)" Dim engine = IronRuby.Ruby.CreateEngine() Dim stream = New IO.MemoryStream Dim writer = New IO.StreamWriter(stream) engine.Runtime.IO.SetOutput(stream, writer) Dim source = engine.CreateScriptSourceFromString(SCRIPT, "Script", Microsoft.Scripting.SourceCodeKind.File) source.Execute() writer.Flush() stream.Position = 0 Dim actual = (New IO.StreamReader(stream)).ReadToEnd() Dim expected = String.Format("Line1{0}Line2", Environment.NewLine) Assert.AreEqual(expected, actual) End Sub As you can see, i am running this Ruby code: print System::String.Format(''Line1{0}Line2'', System::Environment.NewLine) And then I am using the engine.Runtime.IO.SetOutput to get back the result generated by the "print" statement. System.Environment.NewLine returns the char combination CR + LF. The "expected" variable will contain: "Line1" + CR + LF + "Line2". The "actual" variable receive the value "Line1" + CR + LF + CR + LF + "Line2" Seems that all the linebreaks are doubled when using the CLR string with the "print" statement. Any suggestion that you can give me to resolve or work around this problem will be much appreciated.
Aldinei Sampaio
2011-Mar-03 23:11 UTC
[Ironruby-core] Linebreak issue with clr strings manipulated by Ruby code
Hi, sorry again, but is anyone seeing this message? I coudnt get any response about this, either here or in the Codeplex issue tracker. 2011/2/25 Aldinei Sampaio <aldinei.sampaio at gmail.com>:> Hi, guys. Sorry if I am posting this in the wrong place, but I need > some kind of direction here. > > I isolated my problem in the following UnitTest in Visual Basic: > > <TestMethod()> > Public Sub LineBreakProblem() > ? ?Const SCRIPT = "print System::String.Format(''Line1{0}Line2'', > System::Environment.NewLine)" > > ? ?Dim engine = IronRuby.Ruby.CreateEngine() > ? ?Dim stream = New IO.MemoryStream > ? ?Dim writer = New IO.StreamWriter(stream) > ? ?engine.Runtime.IO.SetOutput(stream, writer) > ? ?Dim source = engine.CreateScriptSourceFromString(SCRIPT, "Script", > Microsoft.Scripting.SourceCodeKind.File) > ? ?source.Execute() > > ? ?writer.Flush() > ? ?stream.Position = 0 > ? ?Dim actual = (New IO.StreamReader(stream)).ReadToEnd() > > ? ?Dim expected = String.Format("Line1{0}Line2", Environment.NewLine) > > ? ?Assert.AreEqual(expected, actual) > End Sub > > > As you can see, i am running this Ruby code: > > print System::String.Format(''Line1{0}Line2'', System::Environment.NewLine) > > And then I am using the engine.Runtime.IO.SetOutput to get back the > result generated by the "print" statement. System.Environment.NewLine > returns the char combination CR + LF. > > The "expected" variable will contain: "Line1" + CR + LF + "Line2". > The "actual" variable receive the value "Line1" + CR + LF + CR + LF + "Line2" > > Seems that all the linebreaks are doubled when using the CLR string > with the "print" statement. > > Any suggestion that you can give me to resolve or work around this > problem will be much appreciated. >
Jimmy Schementi
2011-Mar-04 21:06 UTC
[Ironruby-core] Linebreak issue with clr strings manipulated by Ruby code
Yes, I can reproduce this. I''ll look into it. Have you opened a bug? I''ll follow up there. ~Jimmy On Thu, Mar 3, 2011 at 6:11 PM, Aldinei Sampaio <aldinei.sampaio at gmail.com> wrote:> Hi, sorry again, but is anyone seeing this message? > > I coudnt get any response about this, either here or in the Codeplex > issue tracker. > > 2011/2/25 Aldinei Sampaio <aldinei.sampaio at gmail.com>: >> Hi, guys. Sorry if I am posting this in the wrong place, but I need >> some kind of direction here. >> >> I isolated my problem in the following UnitTest in Visual Basic: >> >> <TestMethod()> >> Public Sub LineBreakProblem() >> ? ?Const SCRIPT = "print System::String.Format(''Line1{0}Line2'', >> System::Environment.NewLine)" >> >> ? ?Dim engine = IronRuby.Ruby.CreateEngine() >> ? ?Dim stream = New IO.MemoryStream >> ? ?Dim writer = New IO.StreamWriter(stream) >> ? ?engine.Runtime.IO.SetOutput(stream, writer) >> ? ?Dim source = engine.CreateScriptSourceFromString(SCRIPT, "Script", >> Microsoft.Scripting.SourceCodeKind.File) >> ? ?source.Execute() >> >> ? ?writer.Flush() >> ? ?stream.Position = 0 >> ? ?Dim actual = (New IO.StreamReader(stream)).ReadToEnd() >> >> ? ?Dim expected = String.Format("Line1{0}Line2", Environment.NewLine) >> >> ? ?Assert.AreEqual(expected, actual) >> End Sub >> >> >> As you can see, i am running this Ruby code: >> >> print System::String.Format(''Line1{0}Line2'', System::Environment.NewLine) >> >> And then I am using the engine.Runtime.IO.SetOutput to get back the >> result generated by the "print" statement. System.Environment.NewLine >> returns the char combination CR + LF. >> >> The "expected" variable will contain: "Line1" + CR + LF + "Line2". >> The "actual" variable receive the value "Line1" + CR + LF + CR + LF + "Line2" >> >> Seems that all the linebreaks are doubled when using the CLR string >> with the "print" statement. >> >> Any suggestion that you can give me to resolve or work around this >> problem will be much appreciated. >> > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core >
Aldinei Sampaio
2011-Mar-07 11:24 UTC
[Ironruby-core] Linebreak issue with clr strings manipulated by Ruby code
Yes, i created the issue #5836. Thank you very much. 2011/3/4 Jimmy Schementi <jimmy at schementi.com>:> Yes, I can reproduce this. I''ll look into it. Have you opened a bug? > I''ll follow up there. > ~Jimmy > > > > On Thu, Mar 3, 2011 at 6:11 PM, Aldinei Sampaio > <aldinei.sampaio at gmail.com> wrote: >> Hi, sorry again, but is anyone seeing this message? >> >> I coudnt get any response about this, either here or in the Codeplex >> issue tracker. >> >> 2011/2/25 Aldinei Sampaio <aldinei.sampaio at gmail.com>: >>> Hi, guys. Sorry if I am posting this in the wrong place, but I need >>> some kind of direction here. >>> >>> I isolated my problem in the following UnitTest in Visual Basic: >>> >>> <TestMethod()> >>> Public Sub LineBreakProblem() >>> ? ?Const SCRIPT = "print System::String.Format(''Line1{0}Line2'', >>> System::Environment.NewLine)" >>> >>> ? ?Dim engine = IronRuby.Ruby.CreateEngine() >>> ? ?Dim stream = New IO.MemoryStream >>> ? ?Dim writer = New IO.StreamWriter(stream) >>> ? ?engine.Runtime.IO.SetOutput(stream, writer) >>> ? ?Dim source = engine.CreateScriptSourceFromString(SCRIPT, "Script", >>> Microsoft.Scripting.SourceCodeKind.File) >>> ? ?source.Execute() >>> >>> ? ?writer.Flush() >>> ? ?stream.Position = 0 >>> ? ?Dim actual = (New IO.StreamReader(stream)).ReadToEnd() >>> >>> ? ?Dim expected = String.Format("Line1{0}Line2", Environment.NewLine) >>> >>> ? ?Assert.AreEqual(expected, actual) >>> End Sub >>> >>> >>> As you can see, i am running this Ruby code: >>> >>> print System::String.Format(''Line1{0}Line2'', System::Environment.NewLine) >>> >>> And then I am using the engine.Runtime.IO.SetOutput to get back the >>> result generated by the "print" statement. System.Environment.NewLine >>> returns the char combination CR + LF. >>> >>> The "expected" variable will contain: "Line1" + CR + LF + "Line2". >>> The "actual" variable receive the value "Line1" + CR + LF + CR + LF + "Line2" >>> >>> Seems that all the linebreaks are doubled when using the CLR string >>> with the "print" statement. >>> >>> Any suggestion that you can give me to resolve or work around this >>> problem will be much appreciated. >>> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core at rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >