[Ironruby-core] Accessing classes defined in IronRuby.dll from within IronRuby (IronRuby 1.0RC1)

Orion Edwards orion.edwards at gmail.com
Mon Jan 18 15:40:31 EST 2010


Thanks for that Tomas.

I ended up copy/pasting the String#camelize and #underscore methods from
rails as they were only a couple of lines long. This is probably less error
prone than importing types from the IronRuby dll in the long run anyway :-)

Cheers.

On Mon, Jan 18, 2010 at 7:35 PM, Tomas Matousek <
Tomas.Matousek at microsoft.com> wrote:

> BTW, if you really needed to get to IronRuby.dll’s types you can use this
> workaround:
>
>
>
> >>> Utils = System::Type.get_type('IronRuby.Runtime.RubyUtils,
> IronRuby').to_class
>
> => IronRuby::Runtime::RubyUtils
>
> >>> Utils.try_unmangle_name("foo_bar")
>
> => 'FooBar'
>
>
>
> Tomas
>
>
>
> *From:* ironruby-core-bounces at rubyforge.org [mailto:
> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Tomas Matousek
> *Sent:* Sunday, January 17, 2010 10:24 PM
>
> *To:* ironruby-core at rubyforge.org
> *Subject:* Re: [Ironruby-core] Accessing classes defined in IronRuby.dll
> from within IronRuby (IronRuby 1.0RC1)
>
>
>
> IronRuby is a module already defined in standard library. It gives you
> access to a bunch of useful APIs, including name mangling:
>
>
>
> >>> IronRuby.singleton_methods
>
> => ["configuration", "globals", "load", "loaded_assemblies",
> "loaded_scripts", "require", 'create_runtime', 'create_engine',
> 'create_ruby_setup', 'get_engine', 'require_file', 'get_execution_context']
>
> >>> IronRuby.constants
>
> => ["Clr", "Print"]
>
> >>> IronRuby::Clr.constants
>
> => ["BigInteger", "FlagEnumeration", "Float", "Integer",
> "MultiDimensionalArray", "String", "Name", "Scope"]
>
> >>> IronRuby::Clr::Name.singleton_methods(false)
>
> => ["clr_to_ruby", "mangle", "ruby_to_clr", "unmangle"]
>
> >>> include IronRuby::Clr
>
> >>> Name.mangle("FooBar")
>
> => "foo_bar"
>
> >>> Name.unmangle("my_foo")
>
> => "MyFoo"
>
>
>
> Re loading IronRuby.dll – the problem is that IronRuby is also a namespace
> in IronRuby.dll so there is a name conflict we don’t probably handle the
> best we could. Loading IronRuby.dll shouldn’t be a common scenario though.
> The best place for IronRuby specific functionality is in the IronRuby
> module. If you’re missing some let us know.
>
>
>
> Tomas
>
>
>
> *From:* ironruby-core-bounces at rubyforge.org [mailto:
> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Orion Edwards
> *Sent:* Sunday, January 17, 2010 8:29 PM
> *To:* ironruby-core at rubyforge.org
> *Subject:* Re: [Ironruby-core] Accessing classes defined in IronRuby.dll
> from within IronRuby (IronRuby 1.0RC1)
>
>
>
> I am doing load_assembly 'IronRuby', and it didn't work (the example is
> copy/pasted pretty much verbatim). Not sure if that means your version of IR
> is different to mine, or what?
>
>
>
> Cheers,
>
> On Mon, Jan 18, 2010 at 3:56 PM, Jimmy Schementi <
> Jimmy.Schementi at microsoft.com> wrote:
>
> load_assembly 'IronRuby' will do the trick.
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100119/d2008f67/attachment.html>


More information about the Ironruby-core mailing list