Add backwards compatibility define_singleton_method for Ruby 1.8.
This commit is contained in:
		
							parent
							
								
									2de2bc908b
								
							
						
					
					
						commit
						4f775ac5ca
					
				| 
						 | 
				
			
			@ -1,6 +1,25 @@
 | 
			
		|||
require 'ffi'
 | 
			
		||||
 | 
			
		||||
if VERSION =~ /^1.8/
 | 
			
		||||
  require 'process_shared/define_singleton_method'
 | 
			
		||||
  
 | 
			
		||||
  module ProcessShared
 | 
			
		||||
    module PSem
 | 
			
		||||
      extend DefineSingletonMethod
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    module RT
 | 
			
		||||
      extend DefineSingletonMethod
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    module LibC
 | 
			
		||||
      extend DefineSingletonMethod
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
require 'process_shared/semaphore'
 | 
			
		||||
require 'process_shared/bounded_semaphore'
 | 
			
		||||
require 'process_shared/mutex'
 | 
			
		||||
require 'process_shared/shared_memory'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
module ProcessShared
 | 
			
		||||
  module DefineSingletonMethod
 | 
			
		||||
    # This method was added in Ruby 1.9.x.  Include this module for
 | 
			
		||||
    # backwards compatibility.
 | 
			
		||||
    #
 | 
			
		||||
    # This isn't exactly compatible with the method in 1.9 which can
 | 
			
		||||
    # take a Proc, Method, or a block.  This only accepts a block.
 | 
			
		||||
    def define_singleton_method(sym, &block)
 | 
			
		||||
      eigenclass = class << self; self; end
 | 
			
		||||
      eigenclass.send(:define_method, sym, &block)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,11 @@
 | 
			
		|||
require 'rubygems' if VERSION =~ /^1.8/
 | 
			
		||||
gem 'minitest'
 | 
			
		||||
require 'minitest/spec'
 | 
			
		||||
require 'minitest/autorun'
 | 
			
		||||
require 'minitest/matchers'
 | 
			
		||||
 | 
			
		||||
require 'process_shared'
 | 
			
		||||
 | 
			
		||||
class RangeMatcher
 | 
			
		||||
  def initialize(operator, limit)
 | 
			
		||||
    @operator = operator.to_sym
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue