gir_ffi 0.15.3 → 0.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +15 -0
  3. data/README.md +5 -6
  4. data/TODO.md +14 -35
  5. data/docs/Documentation.md +6 -0
  6. data/docs/Subclassing.md +38 -0
  7. data/lib/ffi-glib.rb +8 -3
  8. data/lib/ffi-glib/byte_array.rb +2 -1
  9. data/lib/ffi-glib/destroy_notify.rb +2 -2
  10. data/lib/ffi-glib/hash_table.rb +1 -2
  11. data/lib/ffi-glib/list.rb +11 -5
  12. data/lib/ffi-glib/list_methods.rb +12 -0
  13. data/lib/ffi-glib/s_list.rb +10 -4
  14. data/lib/ffi-gobject.rb +0 -3
  15. data/lib/ffi-gobject/object.rb +77 -73
  16. data/lib/ffi-gobject/object_class.rb +1 -1
  17. data/lib/ffi-gobject/value.rb +107 -108
  18. data/lib/ffi-gobject_introspection/i_base_info.rb +20 -19
  19. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  20. data/lib/gir_ffi/array_element_convertor.rb +1 -2
  21. data/lib/gir_ffi/boxed_base.rb +1 -5
  22. data/lib/gir_ffi/builder.rb +1 -1
  23. data/lib/gir_ffi/builder_helper.rb +7 -4
  24. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  25. data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
  26. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  27. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
  28. data/lib/gir_ffi/builders/callback_builder.rb +14 -12
  29. data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
  30. data/lib/gir_ffi/builders/class_struct_builder.rb +24 -0
  31. data/lib/gir_ffi/builders/enum_builder.rb +3 -3
  32. data/lib/gir_ffi/builders/interface_builder.rb +3 -1
  33. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  34. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
  35. data/lib/gir_ffi/builders/method_template.rb +4 -4
  36. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
  37. data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
  38. data/lib/gir_ffi/builders/object_builder.rb +16 -6
  39. data/lib/gir_ffi/builders/property_builder.rb +1 -2
  40. data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
  41. data/lib/gir_ffi/builders/struct_builder.rb +5 -5
  42. data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
  43. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  44. data/lib/gir_ffi/callback_base.rb +3 -3
  45. data/lib/gir_ffi/core.rb +17 -2
  46. data/lib/gir_ffi/glib_error.rb +1 -2
  47. data/lib/gir_ffi/in_pointer.rb +7 -0
  48. data/lib/gir_ffi/object_base.rb +27 -0
  49. data/lib/gir_ffi/return_value_info.rb +1 -2
  50. data/lib/gir_ffi/struct_base.rb +1 -9
  51. data/lib/gir_ffi/struct_like_base.rb +9 -5
  52. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  53. data/lib/gir_ffi/union_base.rb +1 -9
  54. data/lib/gir_ffi/user_defined_object_info.rb +3 -2
  55. data/lib/gir_ffi/version.rb +1 -1
  56. data/lib/gir_ffi/vfunc_implementation.rb +1 -0
  57. metadata +86 -136
  58. data/Gemfile +0 -14
  59. data/Rakefile +0 -9
  60. data/tasks/test.rake +0 -204
  61. data/test/base_test_helper.rb +0 -70
  62. data/test/ffi-glib/array_test.rb +0 -203
  63. data/test/ffi-glib/byte_array_test.rb +0 -28
  64. data/test/ffi-glib/bytes_test.rb +0 -61
  65. data/test/ffi-glib/closure_test.rb +0 -38
  66. data/test/ffi-glib/destroy_notify_test.rb +0 -18
  67. data/test/ffi-glib/hash_table_test.rb +0 -68
  68. data/test/ffi-glib/list_test.rb +0 -86
  69. data/test/ffi-glib/main_loop_test.rb +0 -53
  70. data/test/ffi-glib/ptr_array_test.rb +0 -112
  71. data/test/ffi-glib/ruby_closure_test.rb +0 -62
  72. data/test/ffi-glib/s_list_test.rb +0 -76
  73. data/test/ffi-glib/strv_test.rb +0 -60
  74. data/test/ffi-glib/variant_test.rb +0 -12
  75. data/test/ffi-gobject/gobject_test.rb +0 -76
  76. data/test/ffi-gobject/object_class_test.rb +0 -31
  77. data/test/ffi-gobject/object_test.rb +0 -123
  78. data/test/ffi-gobject/param_spec_test.rb +0 -32
  79. data/test/ffi-gobject/value_test.rb +0 -390
  80. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
  81. data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
  82. data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
  83. data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
  84. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
  85. data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
  86. data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
  87. data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
  88. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
  89. data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
  90. data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
  91. data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
  92. data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
  93. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
  94. data/test/ffi-gobject_introspection/lib_test.rb +0 -13
  95. data/test/ffi-gobject_introspection/strv_test.rb +0 -46
  96. data/test/ffi-gobject_test.rb +0 -153
  97. data/test/gir_ffi/allocation_helper_test.rb +0 -36
  98. data/test/gir_ffi/arg_helper_test.rb +0 -146
  99. data/test/gir_ffi/boolean_test.rb +0 -43
  100. data/test/gir_ffi/boxed_base_test.rb +0 -65
  101. data/test/gir_ffi/builder_test.rb +0 -168
  102. data/test/gir_ffi/builders/argument_builder_test.rb +0 -691
  103. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
  104. data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -130
  105. data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
  106. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -84
  107. data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
  108. data/test/gir_ffi/builders/constructor_builder_test.rb +0 -39
  109. data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
  110. data/test/gir_ffi/builders/field_builder_test.rb +0 -140
  111. data/test/gir_ffi/builders/function_builder_test.rb +0 -570
  112. data/test/gir_ffi/builders/initializer_builder_test.rb +0 -56
  113. data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
  114. data/test/gir_ffi/builders/module_builder_test.rb +0 -43
  115. data/test/gir_ffi/builders/object_builder_test.rb +0 -98
  116. data/test/gir_ffi/builders/property_builder_test.rb +0 -161
  117. data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
  118. data/test/gir_ffi/builders/return_value_builder_test.rb +0 -444
  119. data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -199
  120. data/test/gir_ffi/builders/struct_builder_test.rb +0 -96
  121. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
  122. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
  123. data/test/gir_ffi/builders/union_builder_test.rb +0 -28
  124. data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -528
  125. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -107
  126. data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -245
  127. data/test/gir_ffi/callback_base_test.rb +0 -22
  128. data/test/gir_ffi/class_base_test.rb +0 -171
  129. data/test/gir_ffi/core_test.rb +0 -99
  130. data/test/gir_ffi/enum_base_test.rb +0 -43
  131. data/test/gir_ffi/error_type_info_test.rb +0 -50
  132. data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -22
  133. data/test/gir_ffi/g_type_test.rb +0 -31
  134. data/test/gir_ffi/in_pointer_test.rb +0 -203
  135. data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
  136. data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -22
  137. data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
  138. data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
  139. data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
  140. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -712
  141. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
  142. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
  143. data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
  144. data/test/gir_ffi/interface_base_test.rb +0 -20
  145. data/test/gir_ffi/method_stubber_test.rb +0 -67
  146. data/test/gir_ffi/object_base_test.rb +0 -64
  147. data/test/gir_ffi/object_store_test.rb +0 -41
  148. data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
  149. data/test/gir_ffi/sized_array_test.rb +0 -206
  150. data/test/gir_ffi/struct_base_test.rb +0 -23
  151. data/test/gir_ffi/struct_like_base_test.rb +0 -167
  152. data/test/gir_ffi/type_map_test.rb +0 -17
  153. data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
  154. data/test/gir_ffi/union_base_test.rb +0 -23
  155. data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
  156. data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
  157. data/test/gir_ffi/variable_name_generator_test.rb +0 -18
  158. data/test/gir_ffi/version_test.rb +0 -9
  159. data/test/gir_ffi/zero_terminated_test.rb +0 -108
  160. data/test/gir_ffi_test_helper.rb +0 -84
  161. data/test/integration/callback_exceptions_test.rb +0 -59
  162. data/test/integration/derived_classes_test.rb +0 -54
  163. data/test/integration/generated_everything_test.rb +0 -453
  164. data/test/integration/generated_gimarshallingtests_test.rb +0 -3109
  165. data/test/integration/generated_gio_test.rb +0 -116
  166. data/test/integration/generated_glib_test.rb +0 -10
  167. data/test/integration/generated_gobject_test.rb +0 -124
  168. data/test/integration/generated_gst_test.rb +0 -38
  169. data/test/integration/generated_gtk_source_test.rb +0 -21
  170. data/test/integration/generated_gtop_test.rb +0 -22
  171. data/test/integration/generated_pango_ft2_test.rb +0 -17
  172. data/test/integration/generated_pango_test.rb +0 -24
  173. data/test/integration/generated_regress_test.rb +0 -4076
  174. data/test/integration/generated_secret_test.rb +0 -14
  175. data/test/integration/generated_utility_test.rb +0 -174
  176. data/test/integration/generated_warnlib_test.rb +0 -45
  177. data/test/integration/method_lookup_test.rb +0 -34
  178. data/test/introspection_test_helper.rb +0 -94
  179. data/test/lib/Makefile.am +0 -110
  180. data/test/lib/autogen.sh +0 -4
  181. data/test/lib/configure.ac +0 -34
  182. data/test/lib/m4/jhflags.m4 +0 -21
  183. data/test/minitest/stats_plugin.rb +0 -30
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::GObjectTypeInit do
6
- describe "Lib" do
7
- it "represents the gobject-2.0 library" do
8
- _(GObjectIntrospection::GObjectTypeInit::Lib.ffi_libraries.first.name)
9
- .must_match(/gobject-2\.0/)
10
- end
11
-
12
- it "provides the g_type_init function" do
13
- _(GObjectIntrospection::GObjectTypeInit::Lib).must_respond_to :g_type_init
14
- end
15
- end
16
-
17
- describe ".type_init" do
18
- it "calls the g_type_init function from the gobject-2.0 library" do
19
- allow(GObjectIntrospection::GObjectTypeInit::Lib).to receive(:g_type_init)
20
-
21
- GObjectIntrospection::GObjectTypeInit.type_init
22
-
23
- expect(GObjectIntrospection::GObjectTypeInit::Lib).to have_received(:g_type_init)
24
- end
25
- end
26
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IBaseInfo do
6
- let(:described_class) { GObjectIntrospection::IBaseInfo }
7
- describe "#initialize" do
8
- it "raises an error if a null pointer is passed" do
9
- expect(ptr = Object.new).to receive(:null?).and_return true
10
- _(proc { described_class.new ptr }).must_raise ArgumentError
11
- end
12
-
13
- it "raises no error if a non-null pointer is passed" do
14
- expect(ptr = Object.new).to receive(:null?).and_return false
15
- described_class.new ptr
16
- pass
17
- end
18
- end
19
-
20
- describe "#deprecated?" do
21
- let(:deprecated_info) { get_introspection_data "Regress", "test_versioning" }
22
- let(:other_info) { get_introspection_data "Regress", "test_value_return" }
23
-
24
- it "returns true for a deprecated item" do
25
- _(deprecated_info).must_be :deprecated?
26
- end
27
-
28
- it "returns false for a non-deprecated item" do
29
- _(other_info).wont_be :deprecated?
30
- end
31
- end
32
-
33
- describe "upon garbage collection" do
34
- it "calls g_base_info_unref" do
35
- skip "cannot be reliably tested on JRuby" if jruby?
36
-
37
- expect(ptr = Object.new).to receive(:null?).and_return false
38
- expect(lib = Object.new).to receive(:g_base_info_unref).with(ptr).and_return nil
39
- described_class.new ptr, lib
40
-
41
- GC.start
42
-
43
- # Yes, the next three lines are needed. https://gist.github.com/4277829
44
- allow(ptr2 = Object.new).to receive(:null?).and_return false
45
- allow(lib).to receive(:g_base_info_unref).with(ptr2).and_return nil
46
- described_class.new ptr2, lib
47
-
48
- GC.start
49
- GC.start
50
- end
51
- end
52
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IConstantInfo do
6
- describe "for GLib::USEC_PER_SEC, a constant of type :gint32" do
7
- let(:constant_info) { get_introspection_data "GLib", "USEC_PER_SEC" }
8
-
9
- it "returns :gint32 as its type" do
10
- assert_equal :gint32, constant_info.constant_type.tag
11
- end
12
-
13
- it "returns 1_000_000 as its value" do
14
- assert_equal 1_000_000, constant_info.value
15
- end
16
- end
17
-
18
- describe "for GLib::SOURCE_CONTINUE, a constant of type :gboolean" do
19
- let(:constant_info) { get_introspection_data "GLib", "SOURCE_CONTINUE" }
20
-
21
- it "returns :gboolean as its type" do
22
- assert_equal :gboolean, constant_info.constant_type.tag
23
- end
24
-
25
- it "returns true as its value" do
26
- assert_equal true, constant_info.value
27
- end
28
- end
29
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IEnumInfo do
6
- describe "#find_method" do
7
- before do
8
- gir = GObjectIntrospection::IRepository.default
9
- gir.require "Regress", nil
10
- @info = gir.find_by_name "Regress", "TestEnum"
11
- end
12
-
13
- it "finds a method by name" do
14
- result = @info.find_method("param")
15
- _(result.name).must_equal "param"
16
- end
17
- end
18
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IFunctionInfo do
6
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IInterfaceInfo do
6
- let(:object_info) { get_introspection_data("GObject", "TypePlugin") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("complete_interface_info")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:complete_interface_info)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#type_name" do
19
- it "returns the correct name" do
20
- _(object_info.type_name).must_equal "GTypePlugin"
21
- end
22
- end
23
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IObjectInfo do
6
- let(:object_info) { get_introspection_data("GObject", "Object") }
7
-
8
- describe "#find_vfunc" do
9
- it "finds a vfunc by name string" do
10
- _(object_info.find_vfunc("finalize")).wont_be_nil
11
- end
12
-
13
- it "finds a vfunc by name symbol" do
14
- _(object_info.find_vfunc(:finalize)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#find_method" do
19
- it "finds a method by name string" do
20
- _(object_info.find_method("bind_property")).wont_be_nil
21
- end
22
-
23
- it "finds a method by name symbol" do
24
- _(object_info.find_method(:bind_property)).wont_be_nil
25
- end
26
- end
27
-
28
- describe "#find_property" do
29
- let(:object_info) { get_introspection_data("GObject", "Binding") }
30
-
31
- it "finds a property by name string" do
32
- _(object_info.find_property("source-property")).wont_be_nil
33
- end
34
-
35
- it "finds a property by snake case string" do
36
- _(object_info.find_property("source_property")).wont_be_nil
37
- end
38
-
39
- it "finds a property by name symbol" do
40
- _(object_info.find_property(:source)).wont_be_nil
41
- end
42
- end
43
-
44
- describe "#type_name" do
45
- it "returns the correct name" do
46
- _(object_info.type_name).must_equal "GObject"
47
- end
48
- end
49
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IPropertyInfo do
6
- describe "for Regress::TestObj's 'double' property" do
7
- let(:property_info) { get_property_introspection_data "Regress", "TestObj", "double" }
8
-
9
- it "returns :gdouble as its type" do
10
- _(property_info.property_type.tag).must_equal :gdouble
11
- end
12
-
13
- it "flags the property as readable" do
14
- _(property_info.readable?).must_equal true
15
- end
16
-
17
- it "flags the property as writeable" do
18
- _(property_info.writeable?).must_equal true
19
- end
20
-
21
- it "flags the property as not construct-only" do
22
- _(property_info.construct_only?).must_equal false
23
- end
24
- end
25
-
26
- describe "for GObject::Binding's 'target-property' property" do
27
- let(:property_info) do
28
- get_property_introspection_data "GObject", "Binding", "target-property"
29
- end
30
-
31
- it "returns :utf8 as its type" do
32
- _(property_info.property_type.tag).must_equal :utf8
33
- end
34
-
35
- it "flags the property as readable" do
36
- _(property_info.readable?).must_equal true
37
- end
38
-
39
- it "flags the property as writeable" do
40
- _(property_info.writeable?).must_equal true
41
- end
42
-
43
- it "flags the property as construct-only" do
44
- _(property_info.construct_only?).must_equal true
45
- end
46
- end
47
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IRegisteredTypeInfo do
6
- describe "#get_type_name" do
7
- describe "for an interface" do
8
- let(:registered_type_info) do
9
- get_introspection_data("GIMarshallingTests", "Interface")
10
- end
11
-
12
- it "returns interface name" do
13
- _(registered_type_info.type_name).must_equal "GIMarshallingTestsInterface"
14
- end
15
- end
16
-
17
- describe "for a type that is not an interface" do
18
- let(:registered_type_info) do
19
- get_introspection_data("GIMarshallingTests", "Enum")
20
- end
21
-
22
- it "returns nil" do
23
- _(registered_type_info.type_name).must_be_nil
24
- end
25
- end
26
- end
27
- end
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IRepository do
6
- let(:gir) { GObjectIntrospection::IRepository.default }
7
-
8
- describe "an instance" do
9
- it "is not created by calling new()" do
10
- assert_raises NoMethodError do
11
- GObjectIntrospection::IRepository.new
12
- end
13
- end
14
-
15
- it "is created by calling default()" do
16
- assert_kind_of GObjectIntrospection::IRepository, gir
17
- end
18
-
19
- it "is a singleton" do
20
- gir2 = GObjectIntrospection::IRepository.default
21
- assert_equal gir, gir2
22
- end
23
- end
24
-
25
- describe "#require" do
26
- it "raises an error if the namespace doesn't exist" do
27
- assert_raises RuntimeError do
28
- gir.require "VeryUnlikelyGObjectNamespaceName", nil
29
- end
30
- end
31
-
32
- it "allows version to be nil" do
33
- gir.require "GObject", nil
34
- pass
35
- end
36
-
37
- it "allows version to be left out" do
38
- gir.require "GObject"
39
- pass
40
- end
41
- end
42
-
43
- describe "#find_by_gtype" do
44
- it "raises an error if 0 is passed as the gtype" do
45
- _(proc { gir.find_by_gtype 0 }).must_raise ArgumentError
46
- end
47
- end
48
-
49
- describe "#n_infos" do
50
- it "yields more than one object for the GObject namespace" do
51
- gir.require "GObject", "2.0"
52
- assert_operator gir.n_infos("GObject"), :>, 0
53
- end
54
- end
55
-
56
- describe "#info" do
57
- it "yields IBaseInfo objects" do
58
- gir.require "GObject", "2.0"
59
- assert_kind_of GObjectIntrospection::IBaseInfo, gir.info("GObject", 0)
60
- end
61
- end
62
-
63
- describe "#dependencies" do
64
- it "returns a list of dependencies of the given namespace" do
65
- gir.require "GObject", "2.0"
66
- result = gir.dependencies("GObject")
67
- _(result).must_equal ["GLib-2.0"]
68
- end
69
-
70
- it "passes its struct pointer to the c function just in case" do
71
- gir.require "GObject", "2.0"
72
- allow(GObjectIntrospection::Lib).to receive(:g_irepository_get_dependencies)
73
- .and_call_original
74
-
75
- gir.dependencies("GObject")
76
-
77
- expect(GObjectIntrospection::Lib).to have_received(:g_irepository_get_dependencies)
78
- .with(gir, "GObject")
79
- end
80
- end
81
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IStructInfo do
6
- let(:object_info) { get_introspection_data("GObject", "Closure") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("new_simple")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:new_simple)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#type_name" do
19
- it "returns the correct name" do
20
- _(object_info.type_name).must_equal "GClosure"
21
- end
22
- end
23
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::ITypeInfo do
6
- describe "#name?" do
7
- let(:object_info) { get_introspection_data("GIMarshallingTests", "Object") }
8
- let(:vfunc_info) { object_info.find_vfunc("vfunc_array_out_parameter") }
9
- let(:arg_info) { vfunc_info.args[0] }
10
- let(:type_info) { arg_info.argument_type }
11
-
12
- it "raises an error" do
13
- _(proc { type_info.name }).must_raise RuntimeError
14
- end
15
- end
16
-
17
- describe "#interface" do
18
- describe "for unresolvable interface types" do
19
- let(:function_info) { get_introspection_data "GObject", "signal_set_va_marshaller" }
20
- let(:argument_info) { function_info.args.last }
21
- let(:type_info) { argument_info.argument_type }
22
-
23
- it "returns an IUnresolvableInfo object" do
24
- result = type_info.interface
25
- _(result.info_type).must_equal :unresolved
26
- _(result).must_be_kind_of GObjectIntrospection::IUnresolvedInfo
27
- end
28
- end
29
- end
30
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IUnionInfo do
6
- let(:object_info) { get_introspection_data("GLib", "Mutex") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("clear")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:clear)).wont_be_nil
15
- end
16
- end
17
- end