Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Making ruby extension frameworks pluggable (extracted from BigBand).

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 monkey-lib.gemspec
README.rdoc

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
Something went wrong with that request. Please try again.