Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rkh/monkey-lib

Making ruby extension frameworks pluggable (extracted from BigBand).
https://github.com/rkh/monkey-lib

Last synced: about 1 month ago
JSON representation

Making ruby extension frameworks pluggable (extracted from BigBand).

Awesome Lists containing this project

README

        

Makes ruby extension libraries pluggable (thus not forcing such a library
on the users of your library - like BigBand - but still giving you some
fancy features).

TODO: Describe what it actually does. Feel free to have a look at the specs/code, should
be pretty easy to understand.

Version number will soon be synchronized with BigBand.

== Backends
Those libraries are supported as backends out of the box:
* ActiveSupport (tested with 2.3.2 to 3.0.beta)
* Backports (tested with 1.11.1 to 1.15.0, >= 1.13.1 required for Rubinius)
* Extlib (tested with 0.9.13 and 0.9.14)
* Facets (tested with 2.8.0 to 2.8.2)

== Ruby versions
MonkeyLib has been tested and is known to work with the following Ruby implementations:

* Ruby (MRI) 1.8.6, 1.8.7, 1.9.1, 1.9.2-preview1, also tested with trunk on regular basis
* Ruby Enterprise Edition 2009.10, 2010.01
* Rubinius 1.0.0-rc2 to 1.0.0-rc4, also tested with master branch on regular basis
* JRuby 1.3.1, 1.4.0
* MagLev 22780 to 23191 (Backports backend recommended, but all expectations pass on all backends)
* IronRuby 0.9.3, 1.0-rc2 (only Extlib and Backports)

Currently it does *not* run on MacRuby, but I'm working on it.

== Running the specs

Run specs with all backends:
rake spec

Run specs with active_support:
rake spec:active_support

Run specs with backports and using mspec instead of rspec (so it might work on incomplete ruby implementations):
SPEC_RUNNER=mspec rake spec:backports

Sometimes there are issues with running rake from the ruby implementation (maybe rake is not fully supported, or the backend detection messes
with your ruby). You can use one ruby implementation to run the specs on another one. For instance, I use rvm to manage my rubies:

rvm install macruby-0.5
rvm use macruby-0.5
gem install mspec backports
rvm use default
RUBY=$rvm_path/rubies/macruby-0.5/bin/ruby SPEC_RUNNER=mspec rake spec:backports