GirFFI

by Matijs van Zuijlen

Description

Ruby bindings for GNOME using the GObject Introspection Repository.

Status

Features

Usage

require 'gir_ffi'

# Set up the namespace you wish to use
GirFFI.setup :Gio

# Create an object
inet_address = Gio::InetAddress.new_from_string "127.0.0.1"

# Call some methods on the object
inet_address.is_loopback    # => true
inet_address.is_multicast   # => false

# Call a function in the namespace
Gio.dbus_is_name "foo"   # => false

See the documentation for more usage information.

Install

gem install gir_ffi

Requirements

GirFFI should work on CRuby 2.0.0, 2.1 and 2.2, JRuby 1.7.x in 1.9 or 2.0 mode, JRuby 9.0.0.0, and on Rubinius. If you need support for CRuby 1.9.3, use version 0.7.10.

You will also need gobject-introspection installed with some introspection data.

Depending on the GIR data, GirFFI needs the actual libraries to be available under the name ending in plain .so. If GirFFI complains that it cannot find the library, try installing development packages for those libraries.

GirFFI is developed on Debian sid, and tested through Travis CI on Ubuntu 12.04. Older versions of gobject-introspection than the ones used there are therefore not officially supported (although they may work).

On Debian and Ubuntu, installing libgirepository1.0-dev, gobject-introspection and gir1.2-gtop-2.0 should be enough to get rake test working.

GirFFI has not been tested on Mac OS X or Microsoft Windows. YMMV.

Overrides

Sometimes, the GIR data is incorrect, or not detailed enough, and a reasonable binding cannot be created automatically. For these cases, overrides can be defined. The following gems with overrides already exist:

Hacking and contributing

Please feel free to file bugs or send pull requests!

If you just want to help out but don't know where to start, have a look at TODO.md, and check the notes in the code (e.g., using dnote).

If you want to send pull requests or patches, please try to follow these instructions. If you get stuck, make a pull request anyway and I'll try to help out.

Contributors

The following people have contributed to GirFFI over the years:

License

Copyright © 2009–2015 Matijs van Zuijlen

GirFFI is free software, distributed under the terms of the GNU Lesser General Public License, version 2.1 or later. See the file COPYING.LIB for more information.