From 982665aafa36aa7ca900f6ccc6fd4142637805ca Mon Sep 17 00:00:00 2001
From: Dan Hirsch <thequux@upstandinghackers.com>
Date: Sat, 11 Jan 2014 04:27:40 +0100
Subject: [PATCH] Got travis working, fixed ruby 1.9.3 compatibility

---
 .travis.yml                            | 38 ++++++++++++++++----------
 src/bindings/ruby/Gemfile              |  1 +
 src/bindings/ruby/SConscript           |  6 +++-
 src/bindings/ruby/lib/hammer/parser.rb |  4 +--
 4 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index dddf7601..e483b5ff 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,6 +6,30 @@ env:
   - BINDINGS=none
 matrix:
   include:
+    - compiler: gcc
+      language: ruby
+      rvm: ruby-1.9.3-p484
+      env: BINDINGS=ruby
+    - compiler: clang
+      language: ruby
+      rvm: ruby-1.9.3-p484
+      env: BINDINGS=ruby CC=clang
+    - compiler: gcc
+      language: ruby
+      rvm: ruby-2.0.0-p353
+      env: BINDINGS=ruby
+    - compiler: clang
+      language: ruby
+      rvm: ruby-2.0.0-p353
+      env: BINDINGS=ruby CC=clang
+    - compiler: gcc
+      language: ruby
+      rvm: ruby-2.1.0
+      env: BINDINGS=ruby
+    - compiler: clang
+      language: ruby
+      rvm: ruby-2.1.0
+      env: BINDINGS=ruby CC=clang
     - compiler: gcc
       language: python
       python: "2.7"
@@ -60,20 +84,6 @@ matrix:
     - compiler: clang
       language: dotnet
       env: BINDINGS=dotnet CC=clang
-    - compiler: gcc
-      language: ruby
-      rvm:
-        - ruby-1.9.3-p484
-        - ruby-2.0.0-p353
-        - ruby-2.1.0
-      env: BINDINGS=ruby
-    - compiler: clang
-      language: ruby
-      rvm:
-        - ruby-1.9.3-p484
-        - ruby-2.0.0-p353
-        - ruby-2.1.0
-      env: BINDINGS=ruby CC=clang
 before_install:
   - sudo apt-get update -qq
   - if [ "$BINDINGS" != "none" ]; then sudo apt-get install -qq swig; fi
diff --git a/src/bindings/ruby/Gemfile b/src/bindings/ruby/Gemfile
index df428143..c5029fc9 100644
--- a/src/bindings/ruby/Gemfile
+++ b/src/bindings/ruby/Gemfile
@@ -4,4 +4,5 @@ gemspec
 
 group :test do
   gem 'minitest', '~> 5.2'
+  gem 'rake', '>10'
 end
diff --git a/src/bindings/ruby/SConscript b/src/bindings/ruby/SConscript
index 290eb168..6d85a932 100644
--- a/src/bindings/ruby/SConscript
+++ b/src/bindings/ruby/SConscript
@@ -9,11 +9,15 @@ rubysources = [
     "hammer-parser.gemspec",
     "Rakefile",
     "Gemfile",
-    "Gemfile.lock",
     "README.md",
 ]
 
 rubyenv = env.Clone()
+
+for k,v in os.environ.items():
+     if "RUBY" in k or "GEM" in k or "rvm" in k:
+         rubyenv['ENV'][k] = v
+
 rubyenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
 rubyenv['RBDIR'] = os.path.dirname(str(rubyenv.File("Gemfile").path))
 
diff --git a/src/bindings/ruby/lib/hammer/parser.rb b/src/bindings/ruby/lib/hammer/parser.rb
index 3a11d2ec..d1177c57 100644
--- a/src/bindings/ruby/lib/hammer/parser.rb
+++ b/src/bindings/ruby/lib/hammer/parser.rb
@@ -113,8 +113,8 @@ module Hammer
 
     def self.marshal_ch_arg(num)
       if num.is_a?(String)
-        raise ArgumentError, "Expecting either a fixnum in 0..255 or a single-byte String" unless num.bytes.length == 1
-        num = num.bytes[0]
+        raise ArgumentError, "Expecting either a fixnum in 0..255 or a single-byte String" unless num.bytesize == 1
+        num = num.bytes.first
       end
       raise ArgumentError, 'Expecting a Fixnum in 0..255 or a single-byte String' unless num.is_a?(Fixnum) and num.between?(0, 255)
       return num
-- 
GitLab