Parent

Class

Public Class Methods

===(object) click to toggle source
    # File lib/gherkin/native/ikvm.rb, line 40
40:       def ===(object)
41:         super || object.java_kind_of?(java_class)
42:       end
===(object) click to toggle source
    # File lib/gherkin/native/java.rb, line 40
40:       def ===(object)
41:         super || object.java_kind_of?(java_class)
42:       end
ikvm_class() click to toggle source
    # 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
ikvmify(arg) click to toggle source
    # 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
java_class() click to toggle source
    # 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
javaify(arg) click to toggle source
    # 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
new(*args) click to toggle source
    # 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
new(*args) click to toggle source
    # File lib/gherkin/native/ikvm.rb, line 36
36:       def new(*args)
37:         ikvm_class.new(*ikvmify(args))
38:       end

Public Instance Methods

implements(java_class_name) click to toggle source
   # File lib/gherkin/native/java.rb, line 3
3:   def implements(java_class_name)
4:     # no-op
5:   end
implements(java_class_name) click to toggle source
   # 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
implements(java_class_name) click to toggle source
   # File lib/gherkin/native/null.rb, line 2
2:   def implements(java_class_name)
3:     # no-op
4:   end
native_impl(lib) click to toggle source

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
native_impl(lib) click to toggle source
   # File lib/gherkin/native/null.rb, line 6
6:   def native_impl(lib)
7:     # no-op
8:   end
native_impl(lib) click to toggle source

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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.