Object
# File lib/gherkin/native/ikvm.rb, line 40 40: def ===(object) 41: super || object.java_kind_of?(java_class) 42: end
# File lib/gherkin/native/java.rb, line 40 40: def ===(object) 41: super || object.java_kind_of?(java_class) 42: end
# File lib/gherkin/native/ikvm.rb, line 44 44: def ikvm_class 45: names = self.name.split('::') 46: namespace = Object 47: names[0..2].each do |module_name| 48: namespace = namespace.const_get(module_name.downcase) 49: end 50: 51: namespace.const_get(names[1]) 52: end
# File lib/gherkin/native/ikvm.rb, line 23 23: def ikvmify(arg) 24: if Array === arg 25: arg.map{|a| ikvmify(a)} 26: else 27: case(arg) 28: when Regexp 29: Object.const_get('java').const_get('util').const_get('regex').const_get('Pattern').compile(arg.source) 30: else 31: arg 32: end 33: end 34: end
# File lib/gherkin/native/java.rb, line 44 44: def java_class 45: names = self.name.split('::') 46: package = Java 47: names[0..2].each do |module_name| 48: package = package.__send__(module_name.downcase) 49: end 50: 51: package.__send__(names[1]) 52: end
# File lib/gherkin/native/java.rb, line 15 15: def javaify(arg) 16: if Array === arg 17: arg.map{|a| javaify(a)} 18: else 19: case(arg) 20: when Regexp 21: java.util.regex.Pattern.compile(arg.source) 22: else 23: arg 24: end 25: end 26: end
# File lib/gherkin/native/java.rb, line 28 28: def new(*args) 29: begin 30: java_class.new(*javaify(args)) 31: rescue ArgumentError => e 32: e.message << "\n#{java_class.name}" 33: raise e 34: rescue NameError => e 35: e.message << "\n args: #{args.inspect}" 36: raise e 37: end 38: end
# File lib/gherkin/native/java.rb, line 3 3: def implements(java_class_name) 4: # no-op 5: end
# File lib/gherkin/native/ikvm.rb, line 3 3: def implements(java_class_name) 4: m = java_class_name.split('.').inject(Object) do |mod, name| 5: mod = mod.const_get(name) 6: end 7: include m 8: end
# File lib/gherkin/native/null.rb, line 2 2: def implements(java_class_name) 3: # no-op 4: end
Causes a .NET class to be instantiated instead of the Ruby class when running on IronRuby. This is used to test both pure .NET and pure Ruby classes from the same Ruby based test suite. The .NET Class must have a package name that corresponds with the Ruby class.
# File lib/gherkin/native/ikvm.rb, line 14 14: def native_impl(lib) 15: begin 16: load_assembly(lib) 17: rescue LoadError => e 18: e.message << "\nTry this: SET MONO_PATH=#{File.expand_path(File.dirname(__FILE__) + '/../..')} (or export MONO_PATH=...)" 19: raise e 20: end 21: 22: class << self 23: def ikvmify(arg) 24: if Array === arg 25: arg.map{|a| ikvmify(a)} 26: else 27: case(arg) 28: when Regexp 29: Object.const_get('java').const_get('util').const_get('regex').const_get('Pattern').compile(arg.source) 30: else 31: arg 32: end 33: end 34: end 35: 36: def new(*args) 37: ikvm_class.new(*ikvmify(args)) 38: end 39: 40: def ===(object) 41: super || object.java_kind_of?(java_class) 42: end 43: 44: def ikvm_class 45: names = self.name.split('::') 46: namespace = Object 47: names[0..2].each do |module_name| 48: namespace = namespace.const_get(module_name.downcase) 49: end 50: 51: namespace.const_get(names[1]) 52: end 53: end 54: end
# File lib/gherkin/native/null.rb, line 6 6: def native_impl(lib) 7: # no-op 8: end
Causes a Java class to be instantiated instead of the Ruby class when running on JRuby. This is used to test both pure Java and pure Ruby classes from the same Ruby based test suite. The Java Class must have a package name that corresponds with the Ruby class.
# File lib/gherkin/native/java.rb, line 11 11: def native_impl(lib) 12: require "#{lib}.jar" 13: 14: class << self 15: def javaify(arg) 16: if Array === arg 17: arg.map{|a| javaify(a)} 18: else 19: case(arg) 20: when Regexp 21: java.util.regex.Pattern.compile(arg.source) 22: else 23: arg 24: end 25: end 26: end 27: 28: def new(*args) 29: begin 30: java_class.new(*javaify(args)) 31: rescue ArgumentError => e 32: e.message << "\n#{java_class.name}" 33: raise e 34: rescue NameError => e 35: e.message << "\n args: #{args.inspect}" 36: raise e 37: end 38: end 39: 40: def ===(object) 41: super || object.java_kind_of?(java_class) 42: end 43: 44: def java_class 45: names = self.name.split('::') 46: package = Java 47: names[0..2].each do |module_name| 48: package = package.__send__(module_name.downcase) 49: end 50: 51: package.__send__(names[1]) 52: end 53: end 54: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.