diff --git a/.travis.yml b/.travis.yml index dddf7601273e6555cbd6ec99274c48a76b644e6d..e483b5ff3ab597448facff290a5ea595d65856b3 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 df4281435fb46ad55a0f081e9ce583816586f2a5..c5029fc93d47c9d9ba5ecf8022cd547e7e99fb35 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 290eb168e4f91a3eb55f4c40ced87dc73f4d5496..6d85a9329d033cf1d247163f6dd3d078fc08746c 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 3a11d2ec5121ccf90b7cd0f7b897e2df17279247..d1177c576e7ba811f1bc75d7001747b1fcb23481 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