[MacRuby-devel] macruby and sqlite3 gem

Tim Rand timrandg at gmail.com
Tue Mar 31 08:32:04 PDT 2009


I was worried that it was an IO issue with macruby, which is why I am
very excited that the 0.5 version is going to be address the IO
system--hopefully it will help with this issue. I would love to help,
but an issue spanning macruby, obj-c, sqlite3, and possibly C is
really stretching my abilities.

On the subject of sqlite wrappers in objective-C. I tried several that
I found on the sqlite webpage (the have a long list of wrappers in
several languages including obj-c). But it appears that most if not
all are not being maintained and are not up to date and don't work
with Leopard. If anyone knows of a light weight obj-c wrapper for
sqlite3 that works in Leopard, please let us know. If I had some code
that works to look at, I should be able to adapt it for macruby.

framework 'QuickLite.framework'   # fails with the error below
framework 'QuickLite'                   # fails can't find file

Error Domain=NSCocoaErrorDomain Code=3585 UserInfo=0x800621ae0 "The
bundle “QuickLite” could not be loaded because it does not contain a
version for the current architecture."


On Tue, Mar 31, 2009 at 7:24 AM,
<macruby-devel-request at lists.macosforge.org> wrote:
> Send MacRuby-devel mailing list submissions to
>        macruby-devel at lists.macosforge.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>        http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
> or, via email, send a message with subject or body 'help' to
>        macruby-devel-request at lists.macosforge.org
>
> You can reach the person managing the list at
>        macruby-devel-owner at lists.macosforge.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of MacRuby-devel digest..."
>
>
> Today's Topics:
>
>   1. Re: Can any kind macruby experts help me get      sqlite3 gem
>      working with macruby--please? (Matt Aimonetti)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 31 Mar 2009 01:51:07 -0700
> From: Matt Aimonetti <mattaimonetti at gmail.com>
> Subject: Re: [MacRuby-devel] Can any kind macruby experts help me get
>        sqlite3 gem working with macruby--please?
> To: "MacRuby development discussions."
>        <macruby-devel at lists.macosforge.org>
> Message-ID:
>        <20fefa50903310151r6cb96a11lf2f0d394428f5738 at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> the sqlite3 gem uses a native C extension which needs to compiled for your
> system. (usually done when installed via rubygems)
> The installation will fail if you use macgem, probably due to some IO issues
> and the lack of support of C extension.
>
> Someone should look into writing a wrapper for macruby using an obj-c
> driver. That can't be that hard and that would be very useful. I've been
> thinking about porting the DataObject and the DO SQlite3 driver to MacRuby
> but I didn't have time yet (and I didn't really need it either).  DataObject
> is the uniform API used by DataMapper to talk to its drivers.
> If someone is interested in working on that, I can put him/her in contact
> with the DM team.
>
> - Matt
>
>
>
> 2009/3/31 Tim Rand <timrandg at gmail.com>
>
>> Can any kind macruby experts help me get sqlite3 gem working with macruby?
>>
>> sqlite3-ruby-1.2.4 ruby gem works in ruby 1.9.0. So I think it should work
>> in macruby also...
>> From macirb I added the path to the gem:
>>
>> $: << "path/to/the/sqlite3-ruby-1.2.4/lib"
>>
>> require 'sqlite3.rb'  # => true
>>
>> $db = SQLite3::Database.new("/path/to/x.db.rsd")
>>
>> RuntimeError: *no driver for sqlite3 found*
>> the error comes from the load_driver method near line 621 of the
>> sqlite3/database.rb file.
>>
>>    def load_driver( driver )
>>       case driver
>>         when Class
>>           # do nothing--use what was given
>>         when Symbol, String
>>           require "sqlite3/driver/#{driver.to_s.downcase}/driver"
>>           driver = SQLite3::Driver.const_get( driver )::Driver
>>         else
>>           [ "Native", "DL" ].each do |d|
>>             begin
>>               require "sqlite3/driver/#{d.downcase}/driver"
>>               driver = SQLite3::Driver.const_get( d )::Driver
>>               break
>>             rescue SyntaxError
>>               raise
>>             rescue ScriptError, Exception, NameError
>>             end
>>           end
>>           raise "no driver for sqlite3 found" unless driver
>>       end
>>
>>       @driver = driver.new
>>     end
>>     private :load_driver
>>
>> Macruby enters the method with driver set to NSNull, and the driver fails
>> to load. In ruby (1.9.0) the driver loads via the Native driver.
>>
>> irb19 session:
>> >> db = SQLite3::Database.new("/Users/Tim/Desktop/newdb")
>> => #<SQLite3::Database:0x5cba48
>> @driver=#<SQLite3::Driver::Native::Driver:0x5c4784 @callback_data={},
>> @authorizer={}, @busy_handler={}, @trace={}>,
>> @statement_factory=SQLite3::Statement,
>> @handle=#<SWIG::TYPE_p_sqlite3:0x5c470c>, @closed=false,
>> @results_as_hash=false, @type_translation=false, @translator=nil,
>> @transaction_active=false>
>>
>> Can anyone offer an idea about how they might try to patch this to work
>> with macruby?  I know an alternative would be CoreData--but it is too
>> cumbersome for me.
>> Thanks,
>> Tim
>>
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>
>>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20090331/83530eaa/attachment-0001.html>
>
> ------------------------------
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
> End of MacRuby-devel Digest, Vol 13, Issue 47
> *********************************************
>


More information about the MacRuby-devel mailing list