New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

rubber-generate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rubber-generate

  • 0.0.22
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

h1. Rubber Generate

h2. v0.0.20

Template language for generating Ruby bindings for C libraries by Geoff Youngs g@intersect-uk.co.uk

h3. Introduction

A simple ruby-style bindings generator for Ruby. It allows bindings to be laid out in a Ruby style, documentation to be included inline and explicit type casts within C code. It's somewhere between SWIG and pyrex.

It also allows features extconf.rb creation, including checks for headers, pkg-config etc. The modules it creates currently depend on Ruby/GTK, but it is planned to remove this dependency unless they genuinely require Ruby/GTK.

Other features include custom named type-maps, pre/post code inclusion within functions and some rudimentary understanding of C code.

h3. Changes

  • 0.0.20 - 31st Jul 2013

    • Auto-scan loaded gems for missing headers
    • Add support for %include_dir gem:foo or gem:foo/path/in/gem
  • 0.0.19 - 17th June 2013

    • Ruby 1.9 changes arguments for rb_num_coerce_cmp() - fixed.
  • 0.0.18 - 16th Nov 2012

    • Fixes for finding ruby-gnome2 header in gems
    • Improved error reporting
  • 0.0.17 - 16th Nov 2012

    • Ruby 1.9 fixes
  • 0.0.16 - 20th Oct 2011

    • Add GCC pragma to reduce warnings on unused variables
  • 0.0.15 - 18th Oct 2011

    • Add support for scanning gem directories for ruby-gnome2 headers
    • Fix missing fileutils dependency
  • 0.0.14 - 18th Oct 2011

    • Add define_on_self to genum (allow constants to be defined within submodule rather than on parent module/class)
  • 0.0.13 - 5th May 2011

    • Bug fix for gcpool
  • 0.0.12 - 3rd May 2011

    • Add support for uint64 conversion
  • 0.0.11 - 27th Apr 2011

    • Fix parsing of %min-version numbers
  • 0.0.10 - 27th Apr 2011

    • Add --install flag
  • 0.0.9 - 31st May 2010

    • Add support for --build-dir switch to specify output directory
  • 0.0.8 - 10th May 2010

    • Add support for %min-version ..
  • 0.0.7 - 7th May 2010

    • Add support for array constants (including autmatic type detection) - e.g array = [ "Text", NULL, 3 ]
    • Add syntax_error function to parser which reports slightly more helpful syntax error messages for a .cr file
    • Add tracking of code location so that C compiler throws errors which refer to the original line in the .cr file
    • Add support for GSList{type} or GList{type} conversion to arrays as return values for functions
  • 0.0.6 - 6th May 2010

    • Flags class allows wrapping a bit field with slightly more information. Plus automatic conversion to/from ruby and support for integer values.

h3. Dependencies

  • Ruby 1.8 / Ruby 1.9 / Ruby 2.0

h3. Example

Sample file:

  • example/vte.cr

Usage:

  $ rubber-generate --generate --build --install vte.cr

Which should generate [arch]/vte.c <- Source code for extension [arch]/vte.rd <- RD documentation from vte.cr [arch]/extconf.rb <- Config script [arch]/vte.o <- Object file [arch]/vte.so <- Compiled extension

h3. Installation

  $ sudo gem install rubber-generate

h3. Credits

Author: Geoff Youngs

Contributors:

  • Vincent Isambart

FAQs

Package last updated on 29 Oct 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc