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.