[MacRuby-devel] Frameworks Help

Mario Steele mario at ruby-im.net
Sun Oct 24 00:17:07 PDT 2010


Hey Shaun,

On Sun, Oct 24, 2010 at 1:14 AM, Shaun August <shaun at eoslightmedia.com>wrote:

> Hi Again,
>
> I have spent some time with Nick's tutorial and I am looking into wrapping
> the framework I have been provided with and I have a few more questions.
>
> The framework I am working with is already compiled and not in an xcode
> file. I am guessing all I need to do is write the Objective-C wrapper?
>

Yeah, all you have to worry about, is writing the wrapper, as it is what I
did with my code writing for my wrapper.


> The other issue I am having is the framework only contains one header file
> which links out to a series of files contained in a system extension.
>

The header file, is all you need to import, as it should define all public
API Access you need, including structs, to interface with the binary
library.


> Am I able to write my wrapper in an Objective-C class from within my
> macruby application or do I need to create a bundle and import that into my
> project.
>

You will need to write Pure Objective-C code for the API Access, but the
code can be included with your macruby application, in the project itself.
 What will happen, is when you compile the main Objective C File, Main.m,
it'll compile all the other Objective C files into the binary executable,
that will eventually run your rb_main.rb file.  It'll give all the access of
your Objective C libraries that you wrote, right within your application.

hth,

Mario


> Thanks,
>
> Shaun
>
>
>
>
> On 2010-10-19, at 10:12 PM, Mario Steele wrote:
>
> Hello Shaun,
>
> On Wed, Oct 20, 2010 at 12:00 AM, Shaun August <shaun at eoslightmedia.com>wrote:
>
>> Hi Robert,
>>
>> Thanks! That make sense. All those cocoa classes have capitals and they
>> work fine. I seem to be able to call from the framework but I am running
>> into an undefined method 'extern'. I have also read somewhere that extern
>> doesn't work with MacRuby. Is that correct? The framework I am dealing with
>> is calling C functions and I am having trouble accessing them.
>>
>
> extern is a macro for the ld library, to export an API Address in the
> Dynamic library, that can be access dynamically at run time.  With
> Objective-C, or more so specifically with MacRuby, you need to write a sort
> of thin wrapper around C Functions in Objective C, in order to access said
> Functions.  So if the framework that you are working with, doesn't expose
> Objective C API Functions, you'll need to write a thin wrapper in order to
> access them.  See the tutorial done by Nick Ludlam about wrapping the TagLib
> C Library, in Objective C.  You can find it here:
> http://www.macruby.org/documentation/reading-an-mp3-with-macruby.html  It's
> best to read through the entire article, as it gives you information about
> wrapping C Functions in Objective C, which is quite useful, when writing
> your own wrapper.
>
> hth,
>
> Mario
>
>
>> Thanks,
>>
>> Shaun
>>
>>
>> On 2010-10-19, at 8:26 PM, Robert Rice wrote:
>>
>> > Hi Shaun:
>> >
>> > Lower case method names is only a convention. MacRuby will work fine
>> using upper case, i.e., constant, method names.
>> > I know because I only recently changed my project to conform to the
>> convention.
>> >
>> > Bob Rice
>> >
>> >
>> > On Oct 19, 2010, at 7:17 PM, Shaun August wrote:
>> >
>> >> Hi There,
>> >>
>> >> I am attempting to work with a framework provided by a USB device
>> manufacturer and all of their method names start with capitols and I am
>> wondering about the easiest way to access these methods through macruby. I
>> remember reading somewhere about fixing the constants in Obj-C but I cannot
>> locate the information.
>> >>
>> >> Does anyone have any suggestions as to how to remedy this? Should I
>> rename every command in the framework?
>> >>
>> >> Thanks,
>> >>
>> >> Shaun
>> >>
>> >> _______________________________________________
>> >> MacRuby-devel mailing list
>> >> MacRuby-devel at lists.macosforge.org
>> >> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>> >>
>> >
>> > _______________________________________________
>> > MacRuby-devel mailing list
>> > MacRuby-devel at lists.macosforge.org
>> > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>
>
>
>
> --
> Mario Steele
> Lieutenant Commander 3
> XO - Geo 99
> XO - STO IFT Fleet
> http://www.trekfederation.com
> http://geo99.ruby-im.net
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>


-- 
Mario Steele
Lieutenant Commander 3
XO - Geo 99
XO - STO IFT Fleet
http://www.trekfederation.com
http://geo99.ruby-im.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20101024/13ab98a2/attachment.html>


More information about the MacRuby-devel mailing list