From: Kashia Buch Date: 2007-10-09T04:41:52+09:00 Subject: Re: Ruby and (digitalmars) D in combination via RubyInline? ------------kCA5WRaQQ9Q0YyQ4r0R70y Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 Content-Transfer-Encoding: 7bit Hi, > [...] Or other approaches to combine D and Ruby? [...] Attached my work on marrying D and Ruby from like a year back. It works, it's kind of low level though, there could be better bindings. Kashia -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ ------------kCA5WRaQQ9Q0YyQ4r0R70y Content-Disposition: attachment; filename=rbDbridge.tar.bz2 Content-Type: application/bzip2; name=rbDbridge.tar.bz2 Content-Transfer-Encoding: Base64 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 H/xdyRThQkFO/mcQ ------------kCA5WRaQQ9Q0YyQ4r0R70y--