Stupid to_clr_string

Ok, I keep running into this over and over. Whenever Silverlight passes
a
string to javascript, it comes out as some unreadable object. You have
to
call to_clr_string to get it working.
This is ok… You can monkey patch some of the javascript library code
to
fix it, but with HtmlPage.window.invoke, for example, it’s not easy to
do
because it sends a variable number of arguments.

Is this being fixed? Or is this something we’re going to have to deal
with
for a while?

Thanks
~sean

Ah, makes sense. I’m totally unfamiliar with the way IronRuby is
implemented. Is it possible to switch it to a clr string any time it
calls
any framework code? (like the invoke function I’m using).
~sean

This isn’t a Silverlight issue but an IronRuby one. A Ruby string
simply isn’t the same as a CLR string - the Ruby string is mutable while
the CLR string is not.

We need to come up with a cohesive plan for dealing with the difference
before we can “fix” anything.

From: [email protected]
[mailto:[email protected]] On Behalf Of Sean C.
Hess
Sent: Friday, August 15, 2008 9:25 AM
To: [email protected]
Subject: [Ironruby-core] Stupid to_clr_string

Ok, I keep running into this over and over. Whenever Silverlight passes
a string to javascript, it comes out as some unreadable object. You
have to call to_clr_string to get it working.

This is ok… You can monkey patch some of the javascript library code
to fix it, but with HtmlPage.window.invoke, for example, it’s not easy
to do because it sends a variable number of arguments.

Is this being fixed? Or is this something we’re going to have to deal
with for a while?

Thanks
~sean

The binder could automatically create a conversion - in effect, calling
to_clr_string for you automatically. But it might be a little strange
for the binder to do that automatically in one direction and not the
other - which is why I said that there needs to be a plan before we make
any changes.

From: [email protected]
[mailto:[email protected]] On Behalf Of Sean C.
Hess
Sent: Friday, August 15, 2008 9:39 AM
To: [email protected]
Subject: Re: [Ironruby-core] Stupid to_clr_string

Ah, makes sense. I’m totally unfamiliar with the way IronRuby is
implemented. Is it possible to switch it to a clr string any time it
calls any framework code? (like the invoke function I’m using).

~sean
On Fri, Aug 15, 2008 at 10:33 AM, Curt H.
<[email protected]mailto:[email protected]> wrote:

This isn’t a Silverlight issue but an IronRuby one. A Ruby string
simply isn’t the same as a CLR string - the Ruby string is mutable while
the CLR string is not.

We need to come up with a cohesive plan for dealing with the difference
before we can “fix” anything.

From:
[email protected]mailto:[email protected]
[mailto:[email protected]mailto:[email protected]]
On Behalf Of Sean C. Hess
Sent: Friday, August 15, 2008 9:25 AM
To: [email protected]mailto:[email protected]
Subject: [Ironruby-core] Stupid to_clr_string

Ok, I keep running into this over and over. Whenever Silverlight passes
a string to javascript, it comes out as some unreadable object. You
have to call to_clr_string to get it working.

This is ok… You can monkey patch some of the javascript library code
to fix it, but with HtmlPage.window.invoke, for example, it’s not easy
to do because it sends a variable number of arguments.

Is this being fixed? Or is this something we’re going to have to deal
with for a while?

Thanks

~sean

…oh, if the CLR interface we’re calling is typed to System.Object
instead of System.String, then we probably can’t do any kind of
automatic conversion.

From: [email protected]
[mailto:[email protected]] On Behalf Of Sean C.
Hess
Sent: Friday, August 15, 2008 9:39 AM
To: [email protected]
Subject: Re: [Ironruby-core] Stupid to_clr_string

Ah, makes sense. I’m totally unfamiliar with the way IronRuby is
implemented. Is it possible to switch it to a clr string any time it
calls any framework code? (like the invoke function I’m using).

~sean
On Fri, Aug 15, 2008 at 10:33 AM, Curt H.
<[email protected]mailto:[email protected]> wrote:

This isn’t a Silverlight issue but an IronRuby one. A Ruby string
simply isn’t the same as a CLR string - the Ruby string is mutable while
the CLR string is not.

We need to come up with a cohesive plan for dealing with the difference
before we can “fix” anything.

From:
[email protected]mailto:[email protected]
[mailto:[email protected]mailto:[email protected]]
On Behalf Of Sean C. Hess
Sent: Friday, August 15, 2008 9:25 AM
To: [email protected]mailto:[email protected]
Subject: [Ironruby-core] Stupid to_clr_string

Ok, I keep running into this over and over. Whenever Silverlight passes
a string to javascript, it comes out as some unreadable object. You
have to call to_clr_string to get it working.

This is ok… You can monkey patch some of the javascript library code
to fix it, but with HtmlPage.window.invoke, for example, it’s not easy
to do because it sends a variable number of arguments.

Is this being fixed? Or is this something we’re going to have to deal
with for a while?

Thanks

~sean

Makes sense.

You can monkey-patch the Silverlight classes you’re using to do the
to_clr_string for you. For example HtmlDocument#GetElementById requires
you pass it a ClrString, which can be annoying from IronRuby. So, you
can make it take a Ruby string or symbol like this:

module System::Windows::Browser
class HtmlDocument
alias_method orig_get_element_by_id, get_element_by_id
def get_element_by_id(id)
orig_get_element_by_id(id.to_s.to_clr_string)
end
end
end

usage

include System::Windows:Browser
element = HtmlPage.document.get_element_by_id(:foo)

From: [email protected]
[mailto:[email protected]] On Behalf Of Sean C.
Hess
Sent: Friday, August 15, 2008 9:48 AM
To: [email protected]
Subject: Re: [Ironruby-core] Stupid to_clr_string

Makes sense.
On Fri, Aug 15, 2008 at 10:44 AM, Curt H.
<[email protected]mailto:[email protected]> wrote:

The binder could automatically create a conversion - in effect, calling
to_clr_string for you automatically. But it might be a little strange
for the binder to do that automatically in one direction and not the
other - which is why I said that there needs to be a plan before we make
any changes.

From:
[email protected]mailto:[email protected]
[mailto:[email protected]mailto:[email protected]]
On Behalf Of Sean C. Hess
Sent: Friday, August 15, 2008 9:39 AM

To: [email protected]mailto:[email protected]
Subject: Re: [Ironruby-core] Stupid to_clr_string

Ah, makes sense. I’m totally unfamiliar with the way IronRuby is
implemented. Is it possible to switch it to a clr string any time it
calls any framework code? (like the invoke function I’m using).

~sean

On Fri, Aug 15, 2008 at 10:33 AM, Curt H.
<[email protected]mailto:[email protected]> wrote:

This isn’t a Silverlight issue but an IronRuby one. A Ruby string
simply isn’t the same as a CLR string - the Ruby string is mutable while
the CLR string is not.

We need to come up with a cohesive plan for dealing with the difference
before we can “fix” anything.

From:
[email protected]mailto:[email protected]
[mailto:[email protected]mailto:[email protected]]
On Behalf Of Sean C. Hess
Sent: Friday, August 15, 2008 9:25 AM
To: [email protected]mailto:[email protected]
Subject: [Ironruby-core] Stupid to_clr_string

Ok, I keep running into this over and over. Whenever Silverlight passes
a string to javascript, it comes out as some unreadable object. You
have to call to_clr_string to get it working.

This is ok… You can monkey patch some of the javascript library code
to fix it, but with HtmlPage.window.invoke, for example, it’s not easy
to do because it sends a variable number of arguments.

Is this being fixed? Or is this something we’re going to have to deal
with for a while?

Thanks

~sean


Ironruby-core mailing list
[email protected]mailto:[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core