Jak dodajecie do aplikacji rozszerzenia napisane w C?

Napisałem rozszerzenie Rubyego w C.

Poniżej jak go kompiluję i używam.

[code]|-- ext
| -- my_ext | |-- extconf.rb | |-- some_lib.c |– my_ext.c
|-- lib

> cd /ext/my_ext

> ruby extconf.rb

> make

> rails c

>> require ‘my_ext/my_ext’

>> m = Myext.new

>> m.hello[/code]

Dodałem initializer z require ‘my_ext/my_ext’.

W jaki elegancki sposób powinienem teraz to zautomatyzować? Dodać jakiś rake task? Może można to jakoś spakować do gemu. Podczas kompilowania można by uruchomić także testy.

Możecie pokazać jakieś przykłady?

Rake task do developmentu jak najbardziej się przyda. Co do gema to patrz tu: http://guides.rubygems.org/specification-reference/#extensions .

Znalazłem https://github.com/luislavena/rake-compiler tyle, że co zrobić z Rakefile w którym ma być

[code]require ‘rake/extensiontask’

Rake::ExtensionTask.new(‘hello_world’)[/code]
mam go dodać do głównego katalogu aplikacji?

Tak, na to wygląda. Postępuj zgodnie z https://github.com/luislavena/rake-compiler#generating-native-rubygems .