README.md in fiddle-1.0.0.beta2 vs README.md in fiddle-1.0.0

- old
+ new

@@ -1,11 +1,15 @@ # Fiddle -Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/fiddle`. To experiment with that code, run `bin/console` for an interactive prompt. +[![Build Status](https://travis-ci.org/ruby/fiddle.svg?branch=master)](https://travis-ci.org/ruby/fiddle) -TODO: Delete this and the text above, and describe your gem +A libffi wrapper for Ruby. +Fiddle is an extension to translate a foreign function interface (FFI) with ruby. + +It wraps [libffi](http://sourceware.org/libffi/), a popular C library which provides a portable interface that allows code written in one language to call code written in another language. + ## Installation Add this line to your application's Gemfile: ```ruby @@ -20,10 +24,24 @@ $ gem install fiddle ## Usage -TODO: Write usage instructions here + Here we will use Fiddle::Function to wrap [floor(3) from libm](http://linux.die.net/man/3/floor) + +``` +require 'fiddle' + +libm = Fiddle.dlopen('/lib/libm.so.6') + +floor = Fiddle::Function.new( + libm['floor'], + [Fiddle::TYPE_DOUBLE], + Fiddle::TYPE_DOUBLE + ) + +puts floor.call(3.14159) #=> 3.0 +``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.