From 5ea0b727d016df9686a3122b67b699c69a60b57e Mon Sep 17 00:00:00 2001
From: Jakob Rath <git@jakobrath.eu>
Date: Tue, 26 Nov 2013 18:20:02 +0100
Subject: [PATCH] Don't use C extensions (JRuby compatibility).

---
 src/bindings/ruby/.gitignore                  |  2 --
 src/bindings/ruby/Gemfile                     |  3 ---
 src/bindings/ruby/README.md                   |  6 +-----
 src/bindings/ruby/Rakefile                    |  8 --------
 src/bindings/ruby/ext/hammer_ext/extconf.rb   |  9 ---------
 src/bindings/ruby/ext/hammer_ext/hammer_ext.c |  6 ------
 src/bindings/ruby/ext/hammer_ext/hammer_ext.h |  6 ------
 src/bindings/ruby/ext/hammer_ext/token_type.c | 20 -------------------
 src/bindings/ruby/ext/hammer_ext/token_type.h |  6 ------
 src/bindings/ruby/lib/hammer.rb               |  1 -
 10 files changed, 1 insertion(+), 66 deletions(-)
 delete mode 100644 src/bindings/ruby/Rakefile
 delete mode 100644 src/bindings/ruby/ext/hammer_ext/extconf.rb
 delete mode 100644 src/bindings/ruby/ext/hammer_ext/hammer_ext.c
 delete mode 100644 src/bindings/ruby/ext/hammer_ext/hammer_ext.h
 delete mode 100644 src/bindings/ruby/ext/hammer_ext/token_type.c
 delete mode 100644 src/bindings/ruby/ext/hammer_ext/token_type.h

diff --git a/src/bindings/ruby/.gitignore b/src/bindings/ruby/.gitignore
index 0f57d625..66f8ed35 100644
--- a/src/bindings/ruby/.gitignore
+++ b/src/bindings/ruby/.gitignore
@@ -1,3 +1 @@
-/tmp/
-/lib/hammer/hammer_ext.bundle
 /Gemfile.lock
diff --git a/src/bindings/ruby/Gemfile b/src/bindings/ruby/Gemfile
index 96ca0895..9e7a9bec 100644
--- a/src/bindings/ruby/Gemfile
+++ b/src/bindings/ruby/Gemfile
@@ -2,9 +2,6 @@ source 'https://rubygems.org'
 
 gemspec
 
-gem 'rake'
-gem 'rake-compiler'
-
 group :test do
   # ...
 end
diff --git a/src/bindings/ruby/README.md b/src/bindings/ruby/README.md
index 1876fc73..e69a504a 100644
--- a/src/bindings/ruby/README.md
+++ b/src/bindings/ruby/README.md
@@ -7,8 +7,6 @@ Ruby bindings for [hammer](https://github.com/UpstandingHackers/hammer), a parsi
 
 * I called the gem `hammer-parser`, since there already is a [gem named `hammer`](https://rubygems.org/gems/hammer).
 
-* C extension not really needed at the moment, if we don't mind hardcoding the token types in the ruby code.
-
 
 ## Development
 
@@ -16,9 +14,7 @@ Ruby bindings for [hammer](https://github.com/UpstandingHackers/hammer), a parsi
 
 2. Run `bundle install` to install dependencies.
 
-3. Run `rake compile` to compile the C extension.
-
-4. Run `irb -I ./lib -r hammer` to open `irb` with hammer loaded.
+3. Run `irb -I ./lib -r hammer` to open `irb` with hammer loaded.
 
 
 ## Installation
diff --git a/src/bindings/ruby/Rakefile b/src/bindings/ruby/Rakefile
deleted file mode 100644
index 646654da..00000000
--- a/src/bindings/ruby/Rakefile
+++ /dev/null
@@ -1,8 +0,0 @@
-require 'rake/extensiontask'
-
-#spec = Gem::Specification.load('hammer-parser-ruby.gemspec')
-#Rake::ExtensionTask.new('hammer_ext', spec)
-
-Rake::ExtensionTask.new 'hammer_ext' do |ext|
-  ext.lib_dir = 'lib/hammer'
-end
diff --git a/src/bindings/ruby/ext/hammer_ext/extconf.rb b/src/bindings/ruby/ext/hammer_ext/extconf.rb
deleted file mode 100644
index d5158a70..00000000
--- a/src/bindings/ruby/ext/hammer_ext/extconf.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-require 'mkmf'
-
-extension_name = 'hammer_ext'
-dir_config extension_name
-
-abort 'ERROR: missing hammer library' unless have_library 'hammer'
-abort 'ERROR: missing hammer.h' unless have_header 'hammer.h'
-
-create_makefile extension_name
diff --git a/src/bindings/ruby/ext/hammer_ext/hammer_ext.c b/src/bindings/ruby/ext/hammer_ext/hammer_ext.c
deleted file mode 100644
index 6b461c6e..00000000
--- a/src/bindings/ruby/ext/hammer_ext/hammer_ext.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "token_type.h"
-
-void Init_hammer_ext(void)
-{
-  Init_token_type();
-}
diff --git a/src/bindings/ruby/ext/hammer_ext/hammer_ext.h b/src/bindings/ruby/ext/hammer_ext/hammer_ext.h
deleted file mode 100644
index 98fc2dad..00000000
--- a/src/bindings/ruby/ext/hammer_ext/hammer_ext.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef HAMMER_EXT__H
-#define HAMMER_EXT__H
-
-// ...
-
-#endif
diff --git a/src/bindings/ruby/ext/hammer_ext/token_type.c b/src/bindings/ruby/ext/hammer_ext/token_type.c
deleted file mode 100644
index a154d7ed..00000000
--- a/src/bindings/ruby/ext/hammer_ext/token_type.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <ruby.h>
-#include <hammer.h>
-
-#include "token_type.h"
-
-#define DefineHammerInternalConst(name) rb_define_const(mHammerInternal, #name, INT2FIX(name));
-
-void Init_token_type(void)
-{
-  VALUE mHammer = rb_define_module("Hammer");
-  VALUE mHammerInternal = rb_define_module_under(mHammer, "Internal");
-
-  DefineHammerInternalConst(TT_NONE);
-  DefineHammerInternalConst(TT_BYTES);
-  DefineHammerInternalConst(TT_SINT);
-  DefineHammerInternalConst(TT_UINT);
-  DefineHammerInternalConst(TT_SEQUENCE);
-  DefineHammerInternalConst(TT_ERR);
-  DefineHammerInternalConst(TT_USER);
-}
diff --git a/src/bindings/ruby/ext/hammer_ext/token_type.h b/src/bindings/ruby/ext/hammer_ext/token_type.h
deleted file mode 100644
index 5652ce6b..00000000
--- a/src/bindings/ruby/ext/hammer_ext/token_type.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef HAMMER_EXT_TOKEN_TYPE__H
-#define HAMMER_EXT_TOKEN_TYPE__H
-
-void Init_token_type(void);
-
-#endif
diff --git a/src/bindings/ruby/lib/hammer.rb b/src/bindings/ruby/lib/hammer.rb
index 4b86690c..2032b36a 100644
--- a/src/bindings/ruby/lib/hammer.rb
+++ b/src/bindings/ruby/lib/hammer.rb
@@ -1,4 +1,3 @@
-require 'hammer/hammer_ext'
 require 'hammer/internal'
 require 'hammer/parser'
 require 'hammer/parser_builder'
-- 
GitLab