gir_ffi 0.0.14 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/History.txt +6 -0
  2. data/README.rdoc +36 -12
  3. data/examples/01_empty_window.rb +1 -3
  4. data/examples/02_hello_world.rb +1 -3
  5. data/examples/03_upgraded_hello_world.rb +1 -3
  6. data/examples/04_webkit.rb +2 -2
  7. data/examples/05_notification.rb +1 -2
  8. data/examples/print_class.rb +6 -4
  9. data/lib/ffi-glib.rb +107 -0
  10. data/lib/ffi-glib/array.rb +14 -0
  11. data/lib/ffi-glib/byte_array.rb +10 -0
  12. data/lib/ffi-glib/hash_table.rb +55 -0
  13. data/lib/ffi-glib/list.rb +9 -0
  14. data/lib/ffi-glib/list_methods.rb +31 -0
  15. data/lib/ffi-glib/s_list.rb +9 -0
  16. data/lib/ffi-gobject.rb +94 -0
  17. data/lib/ffi-gobject/closure.rb +12 -0
  18. data/lib/ffi-gobject/helper.rb +119 -0
  19. data/lib/ffi-gobject/initially_unowned.rb +10 -0
  20. data/lib/ffi-gobject/ruby_closure.rb +47 -0
  21. data/lib/ffi-gobject/value.rb +65 -0
  22. data/lib/ffi-gobject_introspection.rb +3 -0
  23. data/lib/{gir_ffi → ffi-gobject_introspection}/g_error.rb +1 -1
  24. data/lib/ffi-gobject_introspection/gobject_lib.rb +7 -0
  25. data/lib/{gir_ffi → ffi-gobject_introspection}/i_arg_info.rb +2 -2
  26. data/lib/{gir_ffi → ffi-gobject_introspection}/i_base_info.rb +1 -1
  27. data/lib/{gir_ffi → ffi-gobject_introspection}/i_callable_info.rb +4 -4
  28. data/lib/{gir_ffi → ffi-gobject_introspection}/i_callback_info.rb +1 -1
  29. data/lib/{gir_ffi → ffi-gobject_introspection}/i_constant_info.rb +2 -3
  30. data/lib/{gir_ffi → ffi-gobject_introspection}/i_enum_info.rb +1 -1
  31. data/lib/{gir_ffi → ffi-gobject_introspection}/i_field_info.rb +1 -1
  32. data/lib/{gir_ffi → ffi-gobject_introspection}/i_flags_info.rb +1 -1
  33. data/lib/{gir_ffi → ffi-gobject_introspection}/i_function_info.rb +1 -1
  34. data/lib/{gir_ffi → ffi-gobject_introspection}/i_interface_info.rb +1 -1
  35. data/lib/{gir_ffi → ffi-gobject_introspection}/i_object_info.rb +1 -1
  36. data/lib/{gir_ffi → ffi-gobject_introspection}/i_property_info.rb +1 -1
  37. data/lib/{gir_ffi → ffi-gobject_introspection}/i_registered_type_info.rb +1 -1
  38. data/lib/{gir_ffi → ffi-gobject_introspection}/i_repository.rb +37 -23
  39. data/lib/{gir_ffi → ffi-gobject_introspection}/i_signal_info.rb +1 -1
  40. data/lib/{gir_ffi → ffi-gobject_introspection}/i_struct_info.rb +1 -1
  41. data/lib/{gir_ffi → ffi-gobject_introspection}/i_type_info.rb +2 -2
  42. data/lib/{gir_ffi → ffi-gobject_introspection}/i_union_info.rb +1 -1
  43. data/lib/{gir_ffi → ffi-gobject_introspection}/i_value_info.rb +1 -1
  44. data/lib/{gir_ffi → ffi-gobject_introspection}/i_vfunc_info.rb +1 -1
  45. data/lib/{gir_ffi → ffi-gobject_introspection}/lib.rb +1 -1
  46. data/lib/ffi-gtk/base.rb +17 -0
  47. data/lib/ffi-gtk2.rb +5 -0
  48. data/lib/ffi-gtk3.rb +5 -0
  49. data/lib/gir_ffi.rb +11 -4
  50. data/lib/gir_ffi/arg_helper.rb +5 -4
  51. data/lib/gir_ffi/builder.rb +3 -25
  52. data/lib/gir_ffi/builder/argument.rb +0 -2
  53. data/lib/gir_ffi/builder/argument/hash_table_base.rb +1 -1
  54. data/lib/gir_ffi/builder/argument/list_base.rb +1 -1
  55. data/lib/gir_ffi/builder/module.rb +1 -6
  56. data/lib/gir_ffi/builder/type/unintrospectable.rb +1 -1
  57. data/lib/gir_ffi/callback_helper.rb +14 -7
  58. data/lib/gir_ffi/in_out_pointer.rb +1 -1
  59. data/lib/gir_ffi/in_pointer.rb +1 -1
  60. data/lib/gir_ffi/module_base.rb +4 -0
  61. data/lib/gir_ffi/type_map.rb +29 -0
  62. data/lib/gir_ffi/version.rb +1 -1
  63. data/tasks/test.rake +20 -1
  64. data/test/arg_helper_test.rb +10 -13
  65. data/test/builder_test.rb +2 -2
  66. data/test/class_base_test.rb +1 -1
  67. data/test/{glib_overrides_test.rb → ffi-glib/glib_overrides_test.rb} +3 -5
  68. data/test/{g_object_overrides_test.rb → ffi-gobject/g_object_overrides_test.rb} +7 -37
  69. data/test/ffi-gobject/gobject_test.rb +22 -0
  70. data/test/ffi-gobject/value_test.rb +34 -0
  71. data/test/{unit → ffi-gobject_introspection}/i_base_info_test.rb +2 -2
  72. data/test/{unit → ffi-gobject_introspection}/i_constant_info_test.rb +1 -1
  73. data/test/ffi-gobject_introspection/i_object_info_test.rb +20 -0
  74. data/test/{unit → ffi-gobject_introspection}/i_repository_test.rb +11 -11
  75. data/test/function_definition_builder_test.rb +1 -1
  76. data/test/gir_ffi_test_helper.rb +114 -0
  77. data/test/girffi_test.rb +2 -2
  78. data/test/gtk_overrides_test.rb +15 -12
  79. data/test/integration/generated_gimarshallingtests_test.rb +10 -5
  80. data/test/integration/generated_gio_test.rb +1 -1
  81. data/test/integration/generated_gobject_test.rb +1 -1
  82. data/test/integration/generated_gtk_test.rb +3 -3
  83. data/test/integration/generated_regress_test.rb +11 -3
  84. data/test/interface_type_builder_test.rb +1 -1
  85. data/test/module_builder_test.rb +1 -1
  86. data/test/test_helper.rb +2 -111
  87. data/test/type_builder_test.rb +2 -2
  88. data/test/unintrospectable_type_builder_test.rb +1 -1
  89. data/test/unit/builder_test.rb +1 -1
  90. data/test/unit/callback_helper_test.rb +13 -10
  91. data/test/unit/constant_builder_test.rb +1 -1
  92. data/test/unit/in_out_pointer_test.rb +1 -1
  93. data/test/unit/in_pointer_test.rb +1 -1
  94. data/test/unit/object_type_builder_test.rb +1 -1
  95. metadata +62 -43
  96. data/lib/gir_ffi/g_object.rb +0 -38
  97. data/lib/gir_ffi/overrides/glib.rb +0 -225
  98. data/lib/gir_ffi/overrides/gobject.rb +0 -330
  99. data/lib/gir_ffi/overrides/gtk.rb +0 -29
  100. data/test/g_object_test.rb +0 -21
  101. data/test/i_object_info_test.rb +0 -20
@@ -1,9 +1,9 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  class BuilderTest < MiniTest::Spec
4
4
  context "The GirFFI::Builder module" do
5
5
  setup do
6
- @gir = GirFFI::IRepository.default
6
+ @gir = GObjectIntrospection::IRepository.default
7
7
  end
8
8
 
9
9
  context "building GObject::Object" do
@@ -1,4 +1,4 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  class ClassBaseTest < MiniTest::Spec
4
4
  context "A class derived from GirFFI::Base" do
@@ -1,10 +1,8 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- describe "With the GLib overrides" do
4
- before do
5
- GirFFI.setup :GLib
6
- end
3
+ require 'ffi-glib'
7
4
 
5
+ describe "With the GLib overrides" do
8
6
  describe "a HashTable provided by the system" do
9
7
  before do
10
8
  GirFFI.setup :Regress
@@ -1,4 +1,6 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'ffi-gobject'
2
4
 
3
5
  class GObjectOverridesTest < MiniTest::Spec
4
6
  context "In the GObject module with overridden functions" do
@@ -6,36 +8,6 @@ class GObjectOverridesTest < MiniTest::Spec
6
8
  GirFFI.setup :Regress
7
9
  end
8
10
 
9
- context "the Value class" do
10
- context "the wrap_ruby_value class method" do
11
- should "wrap a boolean false" do
12
- gv = GObject::Value.wrap_ruby_value false
13
- assert_instance_of GObject::Value, gv
14
- assert_equal false, gv.get_boolean
15
- end
16
-
17
- should "wrap a boolean true" do
18
- gv = GObject::Value.wrap_ruby_value true
19
- assert_instance_of GObject::Value, gv
20
- assert_equal true, gv.get_boolean
21
- end
22
- end
23
-
24
- context "the ruby_value method" do
25
- should "unwrap a boolean false" do
26
- gv = GObject::Value.wrap_ruby_value false
27
- result = gv.ruby_value
28
- assert_equal false, result
29
- end
30
-
31
- should "unwrap a boolean true" do
32
- gv = GObject::Value.wrap_ruby_value true
33
- result = gv.ruby_value
34
- assert_equal true, result
35
- end
36
- end
37
- end
38
-
39
11
  context "the signal_emit function" do
40
12
  should "emit a signal" do
41
13
  a = 1
@@ -158,7 +130,7 @@ class GObjectOverridesTest < MiniTest::Spec
158
130
  b = Regress::TestSimpleBoxedA.new
159
131
 
160
132
  @gva =
161
- GirFFI::Overrides::GObject::Helper.signal_arguments_to_gvalue_array(
133
+ GObject::Helper.signal_arguments_to_gvalue_array(
162
134
  "test-with-static-scope-arg", o, b)
163
135
  end
164
136
 
@@ -185,7 +157,7 @@ class GObjectOverridesTest < MiniTest::Spec
185
157
  stub(arg_t = Object.new).tag { :utf8 }
186
158
  stub(info = Object.new).argument_type { arg_t }
187
159
  val =
188
- GirFFI::Overrides::GObject::Helper.signal_argument_to_gvalue(
160
+ GObject::Helper.signal_argument_to_gvalue(
189
161
  info, "foo")
190
162
  assert_instance_of GObject::Value, val
191
163
  assert_equal "foo", val.get_string
@@ -202,7 +174,7 @@ class GObjectOverridesTest < MiniTest::Spec
202
174
  sig = o.class._find_signal sig_name
203
175
 
204
176
  @gva =
205
- GirFFI::Overrides::GObject::Helper.cast_back_signal_arguments(
177
+ GObject::Helper.cast_back_signal_arguments(
206
178
  sig, o.class, o.to_ptr, b.to_ptr, ud)
207
179
  end
208
180
 
@@ -240,7 +212,7 @@ class GObjectOverridesTest < MiniTest::Spec
240
212
  end
241
213
 
242
214
  it "casts an integer to its enum symbol" do
243
- res = GirFFI::Overrides::GObject::Helper.cast_signal_argument @info, 7
215
+ res = GObject::Helper.cast_signal_argument @info, 7
244
216
  assert_equal :july, res
245
217
  end
246
218
  end
@@ -301,5 +273,3 @@ class GObjectOverridesTest < MiniTest::Spec
301
273
  end
302
274
  end
303
275
  end
304
-
305
-
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'ffi-gobject'
4
+
5
+ describe GObject do
6
+ it "has type_init as a public method" do
7
+ assert GObject.respond_to?('type_init')
8
+ end
9
+
10
+ it "does not have g_type_init as a public method" do
11
+ assert GObject.respond_to?('g_type_init') == false
12
+ end
13
+
14
+ context "::type_init" do
15
+ it "does not raise an error" do
16
+ assert_nothing_raised do
17
+ GObject.type_init
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,34 @@
1
+ require File.expand_path('../gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'ffi-gobject'
4
+
5
+ describe GObject::Value do
6
+ describe "::wrap_ruby_value class" do
7
+ it "wraps a boolean false" do
8
+ gv = GObject::Value.wrap_ruby_value false
9
+ assert_instance_of GObject::Value, gv
10
+ assert_equal false, gv.get_boolean
11
+ end
12
+
13
+ it "wraps a boolean true" do
14
+ gv = GObject::Value.wrap_ruby_value true
15
+ assert_instance_of GObject::Value, gv
16
+ assert_equal true, gv.get_boolean
17
+ end
18
+ end
19
+
20
+ describe "#ruby_value" do
21
+ it "unwraps a boolean false" do
22
+ gv = GObject::Value.wrap_ruby_value false
23
+ result = gv.ruby_value
24
+ assert_equal false, result
25
+ end
26
+
27
+ it "unwraps a boolean true" do
28
+ gv = GObject::Value.wrap_ruby_value true
29
+ result = gv.ruby_value
30
+ assert_equal true, result
31
+ end
32
+ end
33
+ end
34
+
@@ -1,11 +1,11 @@
1
1
  require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- describe GirFFI::IBaseInfo do
3
+ describe GObjectIntrospection::IBaseInfo do
4
4
  describe "#safe_name" do
5
5
  it "makes names starting with an underscore safe" do
6
6
  stub(ptr = Object.new).null? { false }
7
7
 
8
- info = GirFFI::IBaseInfo.wrap ptr
8
+ info = GObjectIntrospection::IBaseInfo.wrap ptr
9
9
 
10
10
  stub(info).name { "_foo" }
11
11
 
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- describe GirFFI::IConstantInfo do
3
+ describe GObjectIntrospection::IConstantInfo do
4
4
  describe "for GLib::ALLOCATOR_LIST, a constant of type :gint32" do
5
5
  before do
6
6
  @info = get_introspection_data 'GLib', 'ALLOCATOR_LIST'
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
+
3
+ module GirFFI
4
+ class IObjectInfoTest < MiniTest::Spec
5
+ context "An IObjectInfo object" do
6
+
7
+ setup do
8
+ gir = GObjectIntrospection::IRepository.default
9
+ gir.require 'GObject', nil
10
+ @info = gir.find_by_name 'GObject', 'Object'
11
+ end
12
+
13
+ should "find a vfunc by name" do
14
+ assert_not_nil @info.find_vfunc("finalize")
15
+ end
16
+ end
17
+
18
+ end
19
+ end
20
+
@@ -1,21 +1,21 @@
1
1
  require File.expand_path('../test_helper.rb', File.dirname(__FILE__))
2
2
 
3
- describe GirFFI::IRepository do
3
+ describe GObjectIntrospection::IRepository do
4
4
  describe "an instance" do
5
5
  should "not be created by calling new()" do
6
6
  assert_raises NoMethodError do
7
- GirFFI::IRepository.new
7
+ GObjectIntrospection::IRepository.new
8
8
  end
9
9
  end
10
10
 
11
11
  should "be created by calling default()" do
12
- gir = GirFFI::IRepository.default
13
- assert_kind_of GirFFI::IRepository, gir
12
+ gir = GObjectIntrospection::IRepository.default
13
+ assert_kind_of GObjectIntrospection::IRepository, gir
14
14
  end
15
15
 
16
16
  should "be a singleton" do
17
- gir = GirFFI::IRepository.default
18
- gir2 = GirFFI::IRepository.default
17
+ gir = GObjectIntrospection::IRepository.default
18
+ gir2 = GObjectIntrospection::IRepository.default
19
19
  assert_equal gir, gir2
20
20
  end
21
21
  end
@@ -23,26 +23,26 @@ describe GirFFI::IRepository do
23
23
  describe "#namespace" do
24
24
  should "raise an error if the namespace doesn't exist" do
25
25
  assert_raises RuntimeError do
26
- GirFFI::IRepository.default.require 'VeryUnlikelyGObjectNamespaceName', nil
26
+ GObjectIntrospection::IRepository.default.require 'VeryUnlikelyGObjectNamespaceName', nil
27
27
  end
28
28
  end
29
29
 
30
30
  should "allow version to be nil" do
31
31
  assert_nothing_raised do
32
- GirFFI::IRepository.default.require 'GObject', nil
32
+ GObjectIntrospection::IRepository.default.require 'GObject', nil
33
33
  end
34
34
  end
35
35
 
36
36
  should "allow version to be left out" do
37
37
  assert_nothing_raised do
38
- GirFFI::IRepository.default.require 'GObject'
38
+ GObjectIntrospection::IRepository.default.require 'GObject'
39
39
  end
40
40
  end
41
41
  end
42
42
 
43
43
  describe "enumerating the infos for Gtk" do
44
44
  setup do
45
- @gir = GirFFI::IRepository.default
45
+ @gir = GObjectIntrospection::IRepository.default
46
46
  @gir.require 'Gtk', "2.0"
47
47
  end
48
48
 
@@ -51,7 +51,7 @@ describe GirFFI::IRepository do
51
51
  end
52
52
 
53
53
  should "yield IBaseInfo objects" do
54
- assert_kind_of GirFFI::IBaseInfo, @gir.info('Gtk', 0)
54
+ assert_kind_of GObjectIntrospection::IBaseInfo, @gir.info('Gtk', 0)
55
55
  end
56
56
  end
57
57
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  class FunctionDefinitionBuilderTest < MiniTest::Spec
4
4
  context "The Builder::Function class" do
@@ -0,0 +1,114 @@
1
+ require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
+
3
+ require 'gir_ffi'
4
+
5
+ GObjectIntrospection::IRepository.prepend_search_path File.join(File.dirname(__FILE__), 'lib')
6
+ module GObjectIntrospection
7
+ class IRepository
8
+ def shared_library_with_regress namespace
9
+ case namespace
10
+ when "Regress"
11
+ return File.join(File.dirname(__FILE__), 'lib', 'libregress.so')
12
+ when "GIMarshallingTests"
13
+ return File.join(File.dirname(__FILE__), 'lib', 'libgimarshallingtests.so')
14
+ else
15
+ return shared_library_without_regress namespace
16
+ end
17
+ end
18
+
19
+ alias shared_library_without_regress shared_library
20
+ alias shared_library shared_library_with_regress
21
+ end
22
+ end
23
+
24
+ # Preload data for Gtk+ version 2.0.
25
+ gir = GObjectIntrospection::IRepository.default
26
+ gir.require "Gtk", "2.0"
27
+
28
+ # Need a dummy module for some tests.
29
+ module Lib
30
+ end
31
+
32
+ class MiniTest::Unit::TestCase
33
+ def cws code
34
+ code.gsub(/(^\s*|\s*$)/, "")
35
+ end
36
+
37
+ def get_method_introspection_data namespace, klass, name
38
+ get_introspection_data(namespace, klass).find_method name
39
+ end
40
+
41
+ SAVED_MODULES = {}
42
+
43
+ def save_module name
44
+ if Object.const_defined? name
45
+ puts "Saving #{name} over existing" if SAVED_MODULES.has_key? name
46
+ SAVED_MODULES[name] = Object.const_get name
47
+ Object.send(:remove_const, name)
48
+ end
49
+ end
50
+
51
+ def restore_module name
52
+ if Object.const_defined? name
53
+ Object.send(:remove_const, name)
54
+ end
55
+ if SAVED_MODULES.has_key? name
56
+ Object.const_set name, SAVED_MODULES[name]
57
+ SAVED_MODULES.delete name
58
+ end
59
+ end
60
+
61
+ def ref_count object
62
+ GObject::Object::Struct.new(object.to_ptr)[:ref_count]
63
+ end
64
+
65
+ def is_floating? object
66
+ (GObject::Object::Struct.new(object.to_ptr)[:qdata].address & 2) == 2
67
+ end
68
+
69
+ def max_for_unsigned_type type
70
+ ( 1 << (FFI.type_size(type) * 8) ) - 1
71
+ end
72
+
73
+ def max_for_type type
74
+ ( 1 << (FFI.type_size(type) * 8 - 1) ) - 1
75
+ end
76
+
77
+ def min_for_type type
78
+ ~max_for_type(type)
79
+ end
80
+
81
+ def max_long
82
+ max_for_type :long
83
+ end
84
+
85
+ def min_long
86
+ min_for_type :long
87
+ end
88
+
89
+ def max_size_t
90
+ max_for_unsigned_type :size_t
91
+ end
92
+
93
+ def max_ssize_t
94
+ # FFI has no :ssize_t, but it's the same number of bits as :size_t
95
+ max_for_type :size_t
96
+ end
97
+
98
+ def min_ssize_t
99
+ min_for_type :size_t
100
+ end
101
+
102
+ def max_ushort
103
+ max_for_unsigned_type :ushort
104
+ end
105
+
106
+ def max_uint
107
+ max_for_unsigned_type :uint
108
+ end
109
+
110
+ def max_ulong
111
+ max_for_unsigned_type :ulong
112
+ end
113
+ end
114
+
@@ -1,4 +1,4 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
1
+ require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
2
 
3
3
  class GirFFITest < MiniTest::Spec
4
4
  context "GirFFI" do
@@ -8,7 +8,7 @@ class GirFFITest < MiniTest::Spec
8
8
  end
9
9
 
10
10
  it "sets up xlib, which has no shared library" do
11
- gir = GirFFI::IRepository.default
11
+ gir = GObjectIntrospection::IRepository.default
12
12
  gir.require 'xlib'
13
13
  assert_nil gir.shared_library('xlib'), "Precondition for test failed"
14
14
  GirFFI.setup :xlib
@@ -1,32 +1,35 @@
1
- require File.expand_path('test_helper.rb', File.dirname(__FILE__))
2
- require 'gir_ffi/overrides/gtk'
1
+ require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
3
2
 
4
- describe GirFFI::Overrides::Gtk do
3
+ describe "Gtk's overrides" do
5
4
  before do
6
- @gtk = Module.new do
5
+ save_module :Gtk
6
+ ::Object.const_set :Gtk, Module.new
7
+ Gtk.class_eval do
7
8
  def self.init arr
8
9
  ["baz", "qux", "zonk"]
9
10
  end
10
11
  end
11
- stub(@gtk)._setup_method { }
12
+ stub(Gtk)._setup_method { }
12
13
 
13
- @gtk.instance_eval do
14
- include GirFFI::Overrides::Gtk
15
- end
14
+ load 'ffi-gtk/base.rb'
16
15
  end
17
16
 
18
17
  context "The .init function" do
19
18
  should "not take any arguments" do
20
- assert_raises(ArgumentError) { @gtk.init 1, ["foo"] }
21
- assert_raises(ArgumentError) { @gtk.init ["foo"] }
22
- assert_nothing_raised { @gtk.init }
19
+ assert_raises(ArgumentError) { Gtk.init 1, ["foo"] }
20
+ assert_raises(ArgumentError) { Gtk.init ["foo"] }
21
+ assert_nothing_raised { Gtk.init }
23
22
  end
24
23
 
25
24
  should "replace ARGV with the tail of the result of the original init function" do
26
25
  ARGV.replace ["foo", "bar"]
27
- @gtk.init
26
+ Gtk.init
28
27
  assert_equal ["qux", "zonk"], ARGV.to_a
29
28
  end
30
29
  end
30
+
31
+ after do
32
+ restore_module :Gtk
33
+ end
31
34
  end
32
35