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.