Auto-generates a native Ruby wrapper stub for a given Go package.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
cmd/gorbgen
codegen
ext/test
native
test
.gitignore
.travis.yml
Dockerfile
Makefile
README.md
gorb.go
gorb_array.go
gorb_free.go
start-docker.sh

README.md

gorb

go<->rb

gorb provides a tool gorbgen to generate a native Ruby wrapper for a given Go package into the ext/<package> directory. The module name generated will be relative to the package directory you run gorbgen from.

Installing

$ go get -a github.com/lsegal/gorb/...
$ go install github.com/lsegal/gorb/cmd/gorbgen

Requirements

Currently, this project only works under Linux. See the Docker notes below for testing in a working environment.

Docker

You can use Docker to run the examples:

cd $GOPATH/github.com/lsegal/gorb
docker build -t lsegal/gorb .
sh start-docker.sh

Usage Example

Here is an example of running the built-in Test::Fib::Fibonacci package:

cd $GOPATH/github.com/lsegal/gorb
gorbgen -build test/fib
ruby ext/test/fib/test_fib.rb

Run Tests

To run acceptance tests:

$ ./test/test.sh

Tests pass if exit code is 0.

TODO

  • Support for slices, maps, complex pointer types.
  • Support for basic slice types (string, bool, int, float64).
  • Support for pass-by-value structs (partial value type support).
  • Support for external packages (partial support for local packages).
  • Support for error returns (as exceptions?).
  • Support for blocks
  • Compilation support for other systems (Windows not supported).

License

Licensed under the BSD license. Copyright Loren Segal 2016.