gir_ffi 0.14.0 → 0.15.3

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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +45 -0
  3. data/Gemfile +6 -4
  4. data/README.md +11 -10
  5. data/Rakefile +5 -5
  6. data/lib/ffi-glib.rb +16 -16
  7. data/lib/ffi-glib/array.rb +14 -4
  8. data/lib/ffi-glib/byte_array.rb +7 -2
  9. data/lib/ffi-glib/container_class_methods.rb +1 -1
  10. data/lib/ffi-glib/error.rb +1 -1
  11. data/lib/ffi-glib/hash_table.rb +3 -3
  12. data/lib/ffi-glib/list.rb +1 -1
  13. data/lib/ffi-glib/list_methods.rb +1 -1
  14. data/lib/ffi-glib/main_loop.rb +3 -3
  15. data/lib/ffi-glib/ptr_array.rb +30 -8
  16. data/lib/ffi-glib/s_list.rb +1 -1
  17. data/lib/ffi-glib/variant.rb +1 -1
  18. data/lib/ffi-gobject.rb +13 -13
  19. data/lib/ffi-gobject/object.rb +23 -32
  20. data/lib/ffi-gobject/param_spec.rb +1 -1
  21. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  22. data/lib/ffi-gobject/value.rb +40 -29
  23. data/lib/ffi-gobject_introspection.rb +20 -20
  24. data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
  25. data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
  26. data/lib/ffi-gobject_introspection/i_base_info.rb +27 -17
  27. data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
  28. data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
  29. data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
  30. data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
  32. data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
  33. data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
  34. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  35. data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
  36. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
  37. data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
  38. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
  39. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
  40. data/lib/ffi-gobject_introspection/lib.rb +30 -19
  41. data/lib/ffi-gobject_introspection/strv.rb +1 -1
  42. data/lib/gir_ffi-base.rb +1 -1
  43. data/lib/gir_ffi-base/gobject.rb +26 -25
  44. data/lib/gir_ffi-base/gobject/lib.rb +3 -2
  45. data/lib/gir_ffi.rb +3 -3
  46. data/lib/gir_ffi/allocation_helper.rb +1 -1
  47. data/lib/gir_ffi/arg_helper.rb +4 -4
  48. data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -23
  49. data/lib/gir_ffi/boolean.rb +1 -1
  50. data/lib/gir_ffi/boxed_base.rb +1 -1
  51. data/lib/gir_ffi/builder.rb +18 -10
  52. data/lib/gir_ffi/builder_helper.rb +6 -1
  53. data/lib/gir_ffi/builders/argument_builder.rb +19 -19
  54. data/lib/gir_ffi/builders/argument_builder_collection.rb +2 -2
  55. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  56. data/lib/gir_ffi/builders/base_method_builder.rb +7 -7
  57. data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
  58. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  59. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
  60. data/lib/gir_ffi/builders/callback_argument_builder.rb +8 -8
  61. data/lib/gir_ffi/builders/callback_builder.rb +16 -4
  62. data/lib/gir_ffi/builders/callback_return_value_builder.rb +2 -2
  63. data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
  64. data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
  65. data/lib/gir_ffi/builders/constant_builder.rb +1 -1
  66. data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
  67. data/lib/gir_ffi/builders/enum_builder.rb +16 -3
  68. data/lib/gir_ffi/builders/field_builder.rb +20 -18
  69. data/lib/gir_ffi/builders/flags_builder.rb +2 -2
  70. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
  71. data/lib/gir_ffi/builders/function_builder.rb +11 -5
  72. data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
  73. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
  74. data/lib/gir_ffi/builders/interface_builder.rb +2 -2
  75. data/lib/gir_ffi/builders/mapping_method_builder.rb +9 -9
  76. data/lib/gir_ffi/builders/marshalling_method_builder.rb +7 -7
  77. data/lib/gir_ffi/builders/method_template.rb +1 -1
  78. data/lib/gir_ffi/builders/module_builder.rb +7 -7
  79. data/lib/gir_ffi/builders/object_builder.rb +6 -6
  80. data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
  81. data/lib/gir_ffi/builders/property_builder.rb +13 -12
  82. data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
  83. data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
  84. data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
  85. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
  86. data/lib/gir_ffi/builders/signal_closure_builder.rb +2 -2
  87. data/lib/gir_ffi/builders/struct_builder.rb +6 -4
  88. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  89. data/lib/gir_ffi/builders/type_builder.rb +12 -12
  90. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
  91. data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
  92. data/lib/gir_ffi/builders/union_builder.rb +4 -4
  93. data/lib/gir_ffi/builders/user_defined_builder.rb +2 -2
  94. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  95. data/lib/gir_ffi/builders/vfunc_builder.rb +8 -8
  96. data/lib/gir_ffi/builders/with_layout.rb +2 -2
  97. data/lib/gir_ffi/callback_base.rb +4 -6
  98. data/lib/gir_ffi/class_base.rb +6 -5
  99. data/lib/gir_ffi/core.rb +19 -20
  100. data/lib/gir_ffi/enum_base.rb +1 -1
  101. data/lib/gir_ffi/enum_like_base.rb +2 -2
  102. data/lib/gir_ffi/error_argument_info.rb +2 -2
  103. data/lib/gir_ffi/error_type_info.rb +1 -1
  104. data/lib/gir_ffi/ffi_ext.rb +1 -1
  105. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  106. data/lib/gir_ffi/flags_base.rb +1 -1
  107. data/lib/gir_ffi/in_pointer.rb +10 -0
  108. data/lib/gir_ffi/info_ext.rb +15 -14
  109. data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
  110. data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
  111. data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
  112. data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
  113. data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
  114. data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
  115. data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
  116. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
  117. data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
  118. data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
  119. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
  120. data/lib/gir_ffi/info_ext/i_value_info.rb +25 -0
  121. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  122. data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
  123. data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
  124. data/lib/gir_ffi/interface_base.rb +3 -3
  125. data/lib/gir_ffi/lib_c.rb +1 -1
  126. data/lib/gir_ffi/method_stubber.rb +1 -1
  127. data/lib/gir_ffi/module_base.rb +1 -1
  128. data/lib/gir_ffi/object_base.rb +3 -4
  129. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  130. data/lib/gir_ffi/receiver_type_info.rb +2 -2
  131. data/lib/gir_ffi/registered_type_base.rb +1 -1
  132. data/lib/gir_ffi/sized_array.rb +4 -2
  133. data/lib/gir_ffi/struct.rb +1 -1
  134. data/lib/gir_ffi/struct_base.rb +1 -1
  135. data/lib/gir_ffi/type_map.rb +2 -23
  136. data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
  137. data/lib/gir_ffi/unintrospectable_type_info.rb +5 -1
  138. data/lib/gir_ffi/union.rb +1 -1
  139. data/lib/gir_ffi/union_base.rb +1 -1
  140. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  141. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  142. data/lib/gir_ffi/version.rb +1 -1
  143. data/tasks/test.rake +3 -2
  144. data/test/base_test_helper.rb +16 -9
  145. data/test/ffi-glib/array_test.rb +71 -56
  146. data/test/ffi-glib/byte_array_test.rb +13 -7
  147. data/test/ffi-glib/bytes_test.rb +24 -19
  148. data/test/ffi-glib/closure_test.rb +11 -11
  149. data/test/ffi-glib/destroy_notify_test.rb +6 -6
  150. data/test/ffi-glib/hash_table_test.rb +27 -27
  151. data/test/ffi-glib/list_test.rb +22 -22
  152. data/test/ffi-glib/main_loop_test.rb +12 -12
  153. data/test/ffi-glib/ptr_array_test.rb +39 -39
  154. data/test/ffi-glib/ruby_closure_test.rb +10 -10
  155. data/test/ffi-glib/s_list_test.rb +20 -20
  156. data/test/ffi-glib/strv_test.rb +19 -19
  157. data/test/ffi-glib/variant_test.rb +5 -5
  158. data/test/ffi-gobject/gobject_test.rb +48 -44
  159. data/test/ffi-gobject/object_class_test.rb +8 -8
  160. data/test/ffi-gobject/object_test.rb +51 -68
  161. data/test/ffi-gobject/param_spec_test.rb +12 -12
  162. data/test/ffi-gobject/value_test.rb +145 -125
  163. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +9 -9
  164. data/test/ffi-gobject_introspection/i_base_info_test.rb +15 -16
  165. data/test/ffi-gobject_introspection/i_constant_info_test.rb +9 -13
  166. data/test/ffi-gobject_introspection/i_enum_info_test.rb +7 -7
  167. data/test/ffi-gobject_introspection/i_function_info_test.rb +1 -1
  168. data/test/ffi-gobject_introspection/i_interface_info_test.rb +10 -10
  169. data/test/ffi-gobject_introspection/i_object_info_test.rb +23 -23
  170. data/test/ffi-gobject_introspection/i_property_info_test.rb +19 -19
  171. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +10 -10
  172. data/test/ffi-gobject_introspection/i_repository_test.rb +34 -34
  173. data/test/ffi-gobject_introspection/i_struct_info_test.rb +10 -10
  174. data/test/ffi-gobject_introspection/i_type_info_test.rb +12 -15
  175. data/test/ffi-gobject_introspection/i_union_info_test.rb +7 -7
  176. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +16 -16
  177. data/test/ffi-gobject_introspection/lib_test.rb +3 -3
  178. data/test/ffi-gobject_introspection/strv_test.rb +9 -9
  179. data/test/ffi-gobject_test.rb +47 -45
  180. data/test/gir_ffi/allocation_helper_test.rb +13 -13
  181. data/test/gir_ffi/arg_helper_test.rb +71 -65
  182. data/test/gir_ffi/boolean_test.rb +20 -20
  183. data/test/gir_ffi/boxed_base_test.rb +18 -18
  184. data/test/gir_ffi/builder_test.rb +81 -213
  185. data/test/gir_ffi/builders/argument_builder_test.rb +321 -287
  186. data/test/gir_ffi/builders/base_argument_builder_test.rb +1 -1
  187. data/test/gir_ffi/builders/callback_argument_builder_test.rb +57 -56
  188. data/test/gir_ffi/builders/callback_builder_test.rb +71 -72
  189. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +40 -41
  190. data/test/gir_ffi/builders/constant_builder_test.rb +1 -1
  191. data/test/gir_ffi/builders/constructor_builder_test.rb +12 -10
  192. data/test/gir_ffi/builders/enum_builder_test.rb +12 -11
  193. data/test/gir_ffi/builders/field_builder_test.rb +48 -42
  194. data/test/gir_ffi/builders/function_builder_test.rb +256 -224
  195. data/test/gir_ffi/builders/initializer_builder_test.rb +16 -14
  196. data/test/gir_ffi/builders/interface_builder_test.rb +9 -9
  197. data/test/gir_ffi/builders/module_builder_test.rb +18 -18
  198. data/test/gir_ffi/builders/object_builder_test.rb +41 -41
  199. data/test/gir_ffi/builders/property_builder_test.rb +94 -94
  200. data/test/gir_ffi/builders/registered_type_builder_test.rb +35 -11
  201. data/test/gir_ffi/builders/return_value_builder_test.rb +227 -223
  202. data/test/gir_ffi/builders/signal_closure_builder_test.rb +124 -113
  203. data/test/gir_ffi/builders/struct_builder_test.rb +38 -35
  204. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +8 -14
  205. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +34 -23
  206. data/test/gir_ffi/builders/union_builder_test.rb +12 -15
  207. data/test/gir_ffi/builders/user_defined_builder_test.rb +152 -148
  208. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +46 -40
  209. data/test/gir_ffi/builders/vfunc_builder_test.rb +149 -157
  210. data/test/gir_ffi/callback_base_test.rb +9 -9
  211. data/test/gir_ffi/class_base_test.rb +56 -53
  212. data/test/gir_ffi/core_test.rb +36 -35
  213. data/test/gir_ffi/enum_base_test.rb +19 -19
  214. data/test/gir_ffi/error_type_info_test.rb +23 -23
  215. data/test/gir_ffi/ffi_ext/pointer_test.rb +9 -7
  216. data/test/gir_ffi/g_type_test.rb +11 -11
  217. data/test/gir_ffi/in_pointer_test.rb +70 -50
  218. data/test/gir_ffi/info_ext/i_callable_info_test.rb +5 -5
  219. data/test/gir_ffi/info_ext/i_callback_info_test.rb +6 -5
  220. data/test/gir_ffi/info_ext/i_field_info_test.rb +6 -6
  221. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -17
  222. data/test/gir_ffi/info_ext/i_signal_info_test.rb +8 -8
  223. data/test/gir_ffi/info_ext/i_type_info_test.rb +231 -216
  224. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +4 -4
  225. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +8 -8
  226. data/test/gir_ffi/info_ext/safe_function_name_test.rb +8 -8
  227. data/test/gir_ffi/interface_base_test.rb +8 -8
  228. data/test/gir_ffi/method_stubber_test.rb +21 -19
  229. data/test/gir_ffi/object_base_test.rb +23 -23
  230. data/test/gir_ffi/object_store_test.rb +13 -13
  231. data/test/gir_ffi/receiver_argument_info_test.rb +15 -15
  232. data/test/gir_ffi/sized_array_test.rb +68 -68
  233. data/test/gir_ffi/struct_base_test.rb +8 -8
  234. data/test/gir_ffi/struct_like_base_test.rb +64 -64
  235. data/test/gir_ffi/type_map_test.rb +8 -8
  236. data/test/gir_ffi/unintrospectable_type_info_test.rb +33 -33
  237. data/test/gir_ffi/union_base_test.rb +8 -8
  238. data/test/gir_ffi/user_defined_object_info_test.rb +34 -34
  239. data/test/gir_ffi/user_defined_property_info_test.rb +16 -16
  240. data/test/gir_ffi/variable_name_generator_test.rb +8 -8
  241. data/test/gir_ffi/version_test.rb +4 -4
  242. data/test/gir_ffi/zero_terminated_test.rb +34 -34
  243. data/test/gir_ffi_test_helper.rb +3 -3
  244. data/test/integration/callback_exceptions_test.rb +17 -21
  245. data/test/integration/derived_classes_test.rb +14 -13
  246. data/test/integration/generated_everything_test.rb +225 -224
  247. data/test/integration/generated_gimarshallingtests_test.rb +1174 -1060
  248. data/test/integration/generated_gio_test.rb +36 -36
  249. data/test/integration/generated_glib_test.rb +4 -6
  250. data/test/integration/generated_gobject_test.rb +43 -35
  251. data/test/integration/generated_gst_test.rb +20 -16
  252. data/test/integration/generated_gtk_source_test.rb +9 -15
  253. data/test/integration/generated_gtop_test.rb +8 -15
  254. data/test/integration/generated_pango_ft2_test.rb +2 -2
  255. data/test/integration/generated_pango_test.rb +4 -4
  256. data/test/integration/generated_regress_test.rb +1858 -1632
  257. data/test/integration/generated_secret_test.rb +8 -11
  258. data/test/integration/generated_utility_test.rb +81 -81
  259. data/test/integration/generated_warnlib_test.rb +17 -21
  260. data/test/integration/method_lookup_test.rb +6 -6
  261. data/test/introspection_test_helper.rb +49 -7
  262. data/test/minitest/stats_plugin.rb +1 -1
  263. metadata +21 -23
  264. data/lib/ffi-glib/array_methods.rb +0 -16
  265. data/test/gir_ffi/in_out_pointer_test.rb +0 -56
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :Regress
6
6
 
@@ -13,20 +13,20 @@ describe GirFFI::InfoExt::ISignalInfo do
13
13
  end
14
14
  let(:signal_info) { signal_class.new }
15
15
 
16
- describe '#arguments_to_gvalues' do
16
+ describe "#arguments_to_gvalues" do
17
17
  let(:object) { Regress::TestSubObj.new }
18
18
  let(:boxed) { Regress::TestSimpleBoxedA.const_return }
19
- let(:signal_info) { Regress::TestSubObj.find_signal 'test-with-static-scope-arg' }
19
+ let(:signal_info) { Regress::TestSubObj.find_signal "test-with-static-scope-arg" }
20
20
  let(:result) { signal_info.arguments_to_gvalues(object, [boxed]) }
21
21
 
22
- it 'correctly wraps :object' do
23
- result[0].get_value.must_equal object
22
+ it "correctly wraps :object" do
23
+ _(result[0].get_value).must_equal object
24
24
  end
25
25
 
26
- it 'correctly wraps :struct' do
26
+ it "correctly wraps :struct" do
27
27
  result_boxed = result[1].get_value
28
- result_boxed.some_int8.must_equal boxed.some_int8
29
- result_boxed.some_int.must_equal boxed.some_int
28
+ _(result_boxed.some_int8).must_equal boxed.some_int8
29
+ _(result_boxed.some_int).must_equal boxed.some_int
30
30
  end
31
31
  end
32
32
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  describe GirFFI::InfoExt::ITypeInfo do
6
6
  let(:info_class) do
@@ -16,15 +16,15 @@ describe GirFFI::InfoExt::ITypeInfo do
16
16
  let(:iface_info) { Object.new }
17
17
 
18
18
  let(:callback_type_info) do
19
- get_introspection_data('Regress', 'test_callback').args[0].argument_type
19
+ get_introspection_data("Regress", "test_callback").args[0].argument_type
20
20
  end
21
21
  let(:ghash_type_info) do
22
- get_introspection_data('Regress',
23
- 'test_ghash_nested_everything_return').return_type
22
+ get_introspection_data("Regress",
23
+ "test_ghash_nested_everything_return").return_type
24
24
  end
25
25
 
26
- describe '#to_ffi_type' do
27
- it 'returns an array with elements subtype and size for type :array' do
26
+ describe "#to_ffi_type" do
27
+ it "returns an array with elements subtype and size for type :array" do
28
28
  expect(type_info).to receive(:pointer?).and_return false
29
29
  allow(type_info).to receive(:tag).and_return :array
30
30
  expect(type_info).to receive(:array_fixed_size).and_return 2
@@ -36,7 +36,7 @@ describe GirFFI::InfoExt::ITypeInfo do
36
36
  assert_equal [:foo, 2], result
37
37
  end
38
38
 
39
- describe 'for an :interface type' do
39
+ describe "for an :interface type" do
40
40
  before do
41
41
  allow(type_info).to receive(:interface).and_return iface_info
42
42
  allow(type_info).to receive(:tag).and_return :interface
@@ -46,13 +46,13 @@ describe GirFFI::InfoExt::ITypeInfo do
46
46
  it "maps a the interface's ffi_type" do
47
47
  allow(iface_info).to receive(:to_ffi_type).and_return :foo
48
48
 
49
- type_info.to_ffi_type.must_equal :foo
49
+ _(type_info.to_ffi_type).must_equal :foo
50
50
  end
51
51
  end
52
52
  end
53
53
 
54
- describe '#element_type' do
55
- it 'returns the element type for lists' do
54
+ describe "#element_type" do
55
+ it "returns the element type for lists" do
56
56
  allow(elmtype_info).to receive(:tag).and_return :foo
57
57
  expect(elmtype_info).to receive(:pointer?).and_return false
58
58
 
@@ -60,10 +60,10 @@ describe GirFFI::InfoExt::ITypeInfo do
60
60
  expect(type_info).to receive(:param_type).with(0).and_return elmtype_info
61
61
 
62
62
  result = type_info.element_type
63
- result.must_equal :foo
63
+ _(result).must_equal :foo
64
64
  end
65
65
 
66
- it 'returns the key and value types for ghashes' do
66
+ it "returns the key and value types for ghashes" do
67
67
  allow(keytype_info).to receive(:tag).and_return :foo
68
68
  expect(keytype_info).to receive(:pointer?).and_return false
69
69
  allow(valtype_info).to receive(:tag).and_return :bar
@@ -74,17 +74,17 @@ describe GirFFI::InfoExt::ITypeInfo do
74
74
  expect(type_info).to receive(:param_type).with(1).and_return valtype_info
75
75
 
76
76
  result = type_info.element_type
77
- result.must_equal [:foo, :bar]
77
+ _(result).must_equal [:foo, :bar]
78
78
  end
79
79
 
80
- it 'returns nil for other types' do
80
+ it "returns nil for other types" do
81
81
  expect(type_info).to receive(:tag).and_return :foo
82
82
 
83
83
  result = type_info.element_type
84
- result.must_be_nil
84
+ _(result).must_be_nil
85
85
  end
86
86
 
87
- it 'returns [:pointer, :void] if the element type is a pointer with tag :void' do
87
+ it "returns [:pointer, :void] if the element type is a pointer with tag :void" do
88
88
  allow(elmtype_info).to receive(:tag_or_class).and_return [:pointer, :void]
89
89
 
90
90
  expect(type_info).to receive(:tag).and_return :glist
@@ -94,100 +94,100 @@ describe GirFFI::InfoExt::ITypeInfo do
94
94
  end
95
95
  end
96
96
 
97
- describe '#flattened_tag' do
98
- describe 'for a simple type' do
99
- it 'returns the type tag' do
97
+ describe "#flattened_tag" do
98
+ describe "for a simple type" do
99
+ it "returns the type tag" do
100
100
  allow(type_info).to receive(:tag).and_return :uint32
101
101
 
102
- type_info.flattened_tag.must_equal :uint32
102
+ _(type_info.flattened_tag).must_equal :uint32
103
103
  end
104
104
  end
105
105
 
106
- describe 'for a zero-terminated array' do
106
+ describe "for a zero-terminated array" do
107
107
  before do
108
108
  allow(type_info).to receive(:tag).and_return :array
109
109
  allow(type_info).to receive(:param_type).with(0).and_return elmtype_info
110
110
  allow(type_info).to receive(:zero_terminated?).and_return true
111
111
  end
112
112
 
113
- describe 'of utf8' do
114
- it 'returns :strv' do
113
+ describe "of utf8" do
114
+ it "returns :strv" do
115
115
  allow(elmtype_info).to receive(:tag).and_return :utf8
116
116
  allow(elmtype_info).to receive(:pointer?).and_return true
117
117
 
118
- type_info.flattened_tag.must_equal :strv
118
+ _(type_info.flattened_tag).must_equal :strv
119
119
  end
120
120
  end
121
121
 
122
- describe 'of filename' do
123
- it 'returns :strv' do
122
+ describe "of filename" do
123
+ it "returns :strv" do
124
124
  allow(elmtype_info).to receive(:tag).and_return :filename
125
125
  allow(elmtype_info).to receive(:pointer?).and_return true
126
126
 
127
- type_info.flattened_tag.must_equal :strv
127
+ _(type_info.flattened_tag).must_equal :strv
128
128
  end
129
129
  end
130
130
 
131
- describe 'of another type' do
132
- it 'returns :zero_terminated' do
131
+ describe "of another type" do
132
+ it "returns :zero_terminated" do
133
133
  allow(elmtype_info).to receive(:tag).and_return :foo
134
134
  allow(elmtype_info).to receive(:pointer?).and_return false
135
135
 
136
- type_info.flattened_tag.must_equal :zero_terminated
136
+ _(type_info.flattened_tag).must_equal :zero_terminated
137
137
  end
138
138
  end
139
139
  end
140
140
 
141
- describe 'for a fixed length c-like array' do
142
- it 'returns :c' do
141
+ describe "for a fixed length c-like array" do
142
+ it "returns :c" do
143
143
  expect(type_info).to receive(:tag).and_return :array
144
144
  expect(type_info).to receive(:zero_terminated?).and_return false
145
145
  expect(type_info).to receive(:array_type).and_return :c
146
146
 
147
- type_info.flattened_tag.must_equal :c
147
+ _(type_info.flattened_tag).must_equal :c
148
148
  end
149
149
  end
150
150
 
151
- describe 'for a GLib array' do
152
- it 'returns :c' do
151
+ describe "for a GLib array" do
152
+ it "returns :c" do
153
153
  expect(type_info).to receive(:tag).and_return :array
154
154
  expect(type_info).to receive(:zero_terminated?).and_return false
155
155
  expect(type_info).to receive(:array_type).and_return :array
156
156
 
157
- type_info.flattened_tag.must_equal :array
157
+ _(type_info.flattened_tag).must_equal :array
158
158
  end
159
159
  end
160
160
  end
161
161
 
162
- describe '#tag_or_class' do
163
- describe 'for a simple type' do
162
+ describe "#tag_or_class" do
163
+ describe "for a simple type" do
164
164
  it "returns the type's tag" do
165
165
  allow(type_info).to receive(:tag).and_return :foo
166
166
  expect(type_info).to receive(:pointer?).and_return false
167
167
 
168
- type_info.tag_or_class.must_equal :foo
168
+ _(type_info.tag_or_class).must_equal :foo
169
169
  end
170
170
  end
171
171
 
172
- describe 'for utf8 strings' do
173
- it 'returns the tag :utf8' do
172
+ describe "for utf8 strings" do
173
+ it "returns the tag :utf8" do
174
174
  allow(type_info).to receive(:tag).and_return :utf8
175
175
  expect(type_info).to receive(:pointer?).and_return true
176
176
 
177
- type_info.tag_or_class.must_equal :utf8
177
+ _(type_info.tag_or_class).must_equal :utf8
178
178
  end
179
179
  end
180
180
 
181
- describe 'for filename strings' do
182
- it 'returns the tag :filename' do
181
+ describe "for filename strings" do
182
+ it "returns the tag :filename" do
183
183
  allow(type_info).to receive(:tag).and_return :filename
184
184
  expect(type_info).to receive(:pointer?).and_return true
185
185
 
186
- type_info.tag_or_class.must_equal :filename
186
+ _(type_info.tag_or_class).must_equal :filename
187
187
  end
188
188
  end
189
189
 
190
- describe 'for an interface class' do
190
+ describe "for an interface class" do
191
191
  let(:interface) { Object.new }
192
192
 
193
193
  before do
@@ -195,61 +195,62 @@ describe GirFFI::InfoExt::ITypeInfo do
195
195
  allow(type_info).to receive(:interface).and_return iface_info
196
196
  expect(type_info).to receive(:pointer?).and_return false
197
197
 
198
- expect(GirFFI::Builder).to receive(:build_class).with(iface_info).and_return interface
198
+ expect(GirFFI::Builder)
199
+ .to receive(:build_class).with(iface_info).and_return interface
199
200
  end
200
201
 
201
- describe 'when the interface type is :enum' do
202
- it 'returns the built interface module' do
202
+ describe "when the interface type is :enum" do
203
+ it "returns the built interface module" do
203
204
  allow(iface_info).to receive(:info_type).and_return :enum
204
205
 
205
- type_info.tag_or_class.must_equal interface
206
+ _(type_info.tag_or_class).must_equal interface
206
207
  end
207
208
  end
208
209
 
209
- describe 'when the interface type is :object' do
210
- it 'returns the built interface class' do
210
+ describe "when the interface type is :object" do
211
+ it "returns the built interface class" do
211
212
  allow(iface_info).to receive(:info_type).and_return :object
212
213
 
213
- type_info.tag_or_class.must_equal interface
214
+ _(type_info.tag_or_class).must_equal interface
214
215
  end
215
216
  end
216
217
 
217
- describe 'when the interface type is :struct' do
218
- it 'returns the built interface class' do
218
+ describe "when the interface type is :struct" do
219
+ it "returns the built interface class" do
219
220
  allow(iface_info).to receive(:info_type).and_return :struct
220
221
 
221
- type_info.tag_or_class.must_equal interface
222
+ _(type_info.tag_or_class).must_equal interface
222
223
  end
223
224
  end
224
225
  end
225
226
 
226
- describe 'for a callback' do
227
+ describe "for a callback" do
227
228
  it "returns the callback's wrapper class" do
228
- callback_type_info.tag_or_class.must_equal Regress::TestCallback
229
+ _(callback_type_info.tag_or_class).must_equal Regress::TestCallback
229
230
  end
230
231
  end
231
232
 
232
- describe 'for a pointer to simple type :foo' do
233
- it 'returns [:pointer, :foo]' do
233
+ describe "for a pointer to simple type :foo" do
234
+ it "returns [:pointer, :foo]" do
234
235
  allow(type_info).to receive(:tag).and_return :foo
235
236
  expect(type_info).to receive(:pointer?).and_return true
236
237
 
237
- type_info.tag_or_class.must_equal [:pointer, :foo]
238
+ _(type_info.tag_or_class).must_equal [:pointer, :foo]
238
239
  end
239
240
  end
240
241
 
241
- describe 'for a pointer to :void' do
242
- it 'returns [:pointer, :void]' do
242
+ describe "for a pointer to :void" do
243
+ it "returns [:pointer, :void]" do
243
244
  allow(type_info).to receive(:tag).and_return :void
244
245
  allow(type_info).to receive(:pointer?).and_return true
245
246
 
246
- type_info.tag_or_class.must_equal [:pointer, :void]
247
+ _(type_info.tag_or_class).must_equal [:pointer, :void]
247
248
  end
248
249
  end
249
250
 
250
- describe 'for a complex nested hash type' do
251
- it 'returns a representeation of the nested structure' do
252
- ghash_type_info.tag_or_class.must_equal(
251
+ describe "for a complex nested hash type" do
252
+ it "returns a representeation of the nested structure" do
253
+ _(ghash_type_info.tag_or_class).must_equal(
253
254
  [:pointer,
254
255
  [:ghash,
255
256
  :utf8,
@@ -259,34 +260,34 @@ describe GirFFI::InfoExt::ITypeInfo do
259
260
  end
260
261
  end
261
262
 
262
- describe '#to_callback_ffi_type' do
263
- describe 'for an :interface argument' do
263
+ describe "#to_callback_ffi_type" do
264
+ describe "for an :interface argument" do
264
265
  before do
265
266
  allow(type_info).to receive(:interface).and_return iface_info
266
267
  allow(type_info).to receive(:tag).and_return :interface
267
268
  allow(type_info).to receive(:pointer?).and_return false
268
269
  end
269
270
 
270
- it 'delegates to interface info' do
271
+ it "delegates to interface info" do
271
272
  allow(iface_info).to receive(:to_callback_ffi_type).and_return :some_ffi_type
272
273
 
273
- type_info.to_callback_ffi_type.must_equal :some_ffi_type
274
+ _(type_info.to_callback_ffi_type).must_equal :some_ffi_type
274
275
  end
275
276
  end
276
277
  end
277
278
 
278
- describe '#extra_conversion_arguments' do
279
- describe 'for normal types' do
279
+ describe "#extra_conversion_arguments" do
280
+ describe "for normal types" do
280
281
  before do
281
282
  allow(type_info).to receive(:tag).and_return :foo
282
283
  end
283
284
 
284
- it 'returns an empty array' do
285
- type_info.extra_conversion_arguments.must_equal []
285
+ it "returns an empty array" do
286
+ _(type_info.extra_conversion_arguments).must_equal []
286
287
  end
287
288
  end
288
289
 
289
- describe 'for a fixed-size array' do
290
+ describe "for a fixed-size array" do
290
291
  before do
291
292
  allow(type_info).to receive(:tag).and_return :array
292
293
  allow(type_info).to receive(:zero_terminated?).and_return false
@@ -297,12 +298,12 @@ describe GirFFI::InfoExt::ITypeInfo do
297
298
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
298
299
  end
299
300
 
300
- it 'returns an array containing the element type' do
301
- type_info.extra_conversion_arguments.must_equal [:foo, 3]
301
+ it "returns an array containing the element type" do
302
+ _(type_info.extra_conversion_arguments).must_equal [:foo, 3]
302
303
  end
303
304
  end
304
305
 
305
- describe 'for a zero-terminated array' do
306
+ describe "for a zero-terminated array" do
306
307
  before do
307
308
  allow(type_info).to receive(:tag).and_return :array
308
309
  allow(type_info).to receive(:zero_terminated?).and_return true
@@ -311,12 +312,12 @@ describe GirFFI::InfoExt::ITypeInfo do
311
312
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
312
313
  end
313
314
 
314
- it 'returns an array containing the element type' do
315
- type_info.extra_conversion_arguments.must_equal [:foo]
315
+ it "returns an array containing the element type" do
316
+ _(type_info.extra_conversion_arguments).must_equal [:foo]
316
317
  end
317
318
  end
318
319
 
319
- describe 'for a GArray' do
320
+ describe "for a GArray" do
320
321
  before do
321
322
  allow(type_info).to receive(:tag).and_return :array
322
323
  allow(type_info).to receive(:zero_terminated?).and_return false
@@ -326,12 +327,12 @@ describe GirFFI::InfoExt::ITypeInfo do
326
327
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
327
328
  end
328
329
 
329
- it 'returns an array containing the element type' do
330
- type_info.extra_conversion_arguments.must_equal [:foo]
330
+ it "returns an array containing the element type" do
331
+ _(type_info.extra_conversion_arguments).must_equal [:foo]
331
332
  end
332
333
  end
333
334
 
334
- describe 'for a GHashTable' do
335
+ describe "for a GHashTable" do
335
336
  before do
336
337
  allow(type_info).to receive(:tag).and_return :ghash
337
338
  allow(type_info).to receive(:param_type).with(0).and_return keytype_info
@@ -341,12 +342,12 @@ describe GirFFI::InfoExt::ITypeInfo do
341
342
  allow(valtype_info).to receive(:tag_or_class).and_return :bar
342
343
  end
343
344
 
344
- it 'returns an array containing the element type pair' do
345
- type_info.extra_conversion_arguments.must_equal [[:foo, :bar]]
345
+ it "returns an array containing the element type pair" do
346
+ _(type_info.extra_conversion_arguments).must_equal [[:foo, :bar]]
346
347
  end
347
348
  end
348
349
 
349
- describe 'for a GList' do
350
+ describe "for a GList" do
350
351
  before do
351
352
  allow(type_info).to receive(:tag).and_return :glist
352
353
 
@@ -354,12 +355,12 @@ describe GirFFI::InfoExt::ITypeInfo do
354
355
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
355
356
  end
356
357
 
357
- it 'returns an array containing the element type' do
358
- type_info.extra_conversion_arguments.must_equal [:foo]
358
+ it "returns an array containing the element type" do
359
+ _(type_info.extra_conversion_arguments).must_equal [:foo]
359
360
  end
360
361
  end
361
362
 
362
- describe 'for a GSList' do
363
+ describe "for a GSList" do
363
364
  before do
364
365
  allow(type_info).to receive(:tag).and_return :gslist
365
366
 
@@ -367,12 +368,12 @@ describe GirFFI::InfoExt::ITypeInfo do
367
368
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
368
369
  end
369
370
 
370
- it 'returns an array containing the element type' do
371
- type_info.extra_conversion_arguments.must_equal [:foo]
371
+ it "returns an array containing the element type" do
372
+ _(type_info.extra_conversion_arguments).must_equal [:foo]
372
373
  end
373
374
  end
374
375
 
375
- describe 'for a GPtrArray' do
376
+ describe "for a GPtrArray" do
376
377
  before do
377
378
  allow(type_info).to receive(:tag).and_return :array
378
379
  allow(type_info).to receive(:zero_terminated?).and_return false
@@ -382,313 +383,327 @@ describe GirFFI::InfoExt::ITypeInfo do
382
383
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
383
384
  end
384
385
 
385
- it 'returns an array containing the element type' do
386
- type_info.extra_conversion_arguments.must_equal [:foo]
386
+ it "returns an array containing the element type" do
387
+ _(type_info.extra_conversion_arguments).must_equal [:foo]
387
388
  end
388
389
  end
389
390
 
390
- describe 'for a :callback' do
391
+ describe "for a :callback" do
391
392
  before do
392
- allow(interface_type_info = Object.new).to receive(:namespace).and_return 'Bar'
393
- allow(interface_type_info).to receive(:name).and_return 'Foo'
393
+ allow(interface_type_info = Object.new).to receive(:namespace).and_return "Bar"
394
+ allow(interface_type_info).to receive(:name).and_return "Foo"
394
395
 
395
396
  allow(type_info).to receive(:tag).and_return :callback
396
397
  allow(type_info).to receive(:interface).and_return interface_type_info
397
398
  end
398
399
 
399
- it 'returns an empty array' do
400
- type_info.extra_conversion_arguments.must_equal []
400
+ it "returns an empty array" do
401
+ _(type_info.extra_conversion_arguments).must_equal []
401
402
  end
402
403
  end
403
404
  end
404
405
 
405
- describe '#argument_class_name' do
406
+ describe "#argument_class_name" do
406
407
  before do
407
408
  allow(type_info).to receive(:tag).and_return tag
408
409
  end
409
410
 
410
- describe 'for :gint32' do
411
+ describe "for :gint32" do
411
412
  let(:tag) { :gint32 }
412
413
 
413
- it 'is nil' do
414
- type_info.argument_class_name.must_be_nil
414
+ it "is nil" do
415
+ _(type_info.argument_class_name).must_be_nil
415
416
  end
416
417
  end
417
418
 
418
- describe 'for interfaces' do
419
+ describe "for interfaces" do
419
420
  let(:tag) { :interface }
420
421
 
421
422
  before do
422
423
  allow(type_info).to receive(:interface).and_return iface_info
423
424
  allow(iface_info).to receive(:info_type).and_return interface_type
424
- allow(iface_info).to receive(:full_type_name).and_return 'Bar::Foo'
425
+ allow(iface_info).to receive(:full_type_name).and_return "Bar::Foo"
425
426
  end
426
427
 
427
- describe 'for :struct' do
428
+ describe "for :struct" do
428
429
  let(:interface_type) { :struct }
429
- it 'equals the struct class name' do
430
- type_info.argument_class_name.must_equal 'Bar::Foo'
430
+ it "equals the struct class name" do
431
+ _(type_info.argument_class_name).must_equal "Bar::Foo"
431
432
  end
432
433
  end
433
434
 
434
- describe 'for :union' do
435
+ describe "for :union" do
435
436
  let(:interface_type) { :union }
436
- it 'equals the union class name' do
437
- type_info.argument_class_name.must_equal 'Bar::Foo'
437
+ it "equals the union class name" do
438
+ _(type_info.argument_class_name).must_equal "Bar::Foo"
438
439
  end
439
440
  end
440
441
 
441
- describe 'for :interface' do
442
+ describe "for :interface" do
442
443
  let(:interface_type) { :interface }
443
444
 
444
- it 'equals the interface module name' do
445
- type_info.argument_class_name.must_equal 'Bar::Foo'
445
+ it "equals the interface module name" do
446
+ _(type_info.argument_class_name).must_equal "Bar::Foo"
446
447
  end
447
448
  end
448
449
 
449
- describe 'for :object' do
450
+ describe "for :object" do
450
451
  let(:interface_type) { :object }
451
452
 
452
- it 'equals the object class name' do
453
- type_info.argument_class_name.must_equal 'Bar::Foo'
453
+ it "equals the object class name" do
454
+ _(type_info.argument_class_name).must_equal "Bar::Foo"
454
455
  end
455
456
  end
456
457
 
457
- describe 'for :callback' do
458
+ describe "for :callback" do
458
459
  let(:interface_type) { :callback }
459
460
 
460
- it 'equals the callback type name' do
461
- type_info.argument_class_name.must_equal 'Bar::Foo'
461
+ it "equals the callback type name" do
462
+ _(type_info.argument_class_name).must_equal "Bar::Foo"
462
463
  end
463
464
  end
464
465
  end
465
466
 
466
- describe 'for :strv' do
467
+ describe "for :strv" do
467
468
  let(:tag) { :strv }
468
469
 
469
- it 'equals GLib::Strv' do
470
- type_info.argument_class_name.must_equal 'GLib::Strv'
470
+ it "equals GLib::Strv" do
471
+ _(type_info.argument_class_name).must_equal "GLib::Strv"
471
472
  end
472
473
  end
473
474
 
474
- describe 'for arrays' do
475
+ describe "for arrays" do
475
476
  let(:tag) { :array }
476
477
  before do
477
478
  allow(type_info).to receive(:param_type).with(0).and_return elmtype_info
478
479
  allow(elmtype_info).to receive(:tag_or_class).and_return :foo
479
480
  end
480
481
 
481
- describe 'for :zero_terminated' do
482
+ describe "for :zero_terminated" do
482
483
  before do
483
484
  allow(type_info).to receive(:zero_terminated?).and_return true
484
485
  end
485
486
 
486
- it 'equals GirFFI::ZeroTerminated' do
487
- type_info.argument_class_name.must_equal 'GirFFI::ZeroTerminated'
487
+ it "equals GirFFI::ZeroTerminated" do
488
+ _(type_info.argument_class_name).must_equal "GirFFI::ZeroTerminated"
488
489
  end
489
490
  end
490
491
 
491
- describe 'for :byte_array' do
492
+ describe "for :byte_array" do
492
493
  before do
493
494
  allow(type_info).to receive(:zero_terminated?).and_return false
494
495
  allow(type_info).to receive(:array_type).and_return :byte_array
495
496
  end
496
497
 
497
- it 'equals GLib::ByteArray' do
498
- type_info.argument_class_name.must_equal 'GLib::ByteArray'
498
+ it "equals GLib::ByteArray" do
499
+ _(type_info.argument_class_name).must_equal "GLib::ByteArray"
499
500
  end
500
501
  end
501
502
 
502
- describe 'for :ptr_array' do
503
+ describe "for :ptr_array" do
503
504
  before do
504
505
  allow(type_info).to receive(:zero_terminated?).and_return false
505
506
  allow(type_info).to receive(:array_type).and_return :ptr_array
506
507
  end
507
508
 
508
- it 'equals GLib::PtrArray' do
509
- type_info.argument_class_name.must_equal 'GLib::PtrArray'
509
+ it "equals GLib::PtrArray" do
510
+ _(type_info.argument_class_name).must_equal "GLib::PtrArray"
510
511
  end
511
512
  end
512
513
 
513
- describe 'for :array' do
514
+ describe "for :array" do
514
515
  before do
515
516
  allow(type_info).to receive(:zero_terminated?).and_return false
516
517
  allow(type_info).to receive(:array_type).and_return :array
517
518
  end
518
519
 
519
- it 'equals GLib::Array' do
520
- type_info.argument_class_name.must_equal 'GLib::Array'
520
+ it "equals GLib::Array" do
521
+ _(type_info.argument_class_name).must_equal "GLib::Array"
521
522
  end
522
523
  end
523
524
  end
524
525
 
525
- describe 'for :glist' do
526
+ describe "for :glist" do
526
527
  let(:tag) { :glist }
527
528
 
528
- it 'equals GLib::List' do
529
- type_info.argument_class_name.must_equal 'GLib::List'
529
+ it "equals GLib::List" do
530
+ _(type_info.argument_class_name).must_equal "GLib::List"
530
531
  end
531
532
  end
532
533
 
533
- describe 'for :gslist' do
534
+ describe "for :gslist" do
534
535
  let(:tag) { :gslist }
535
536
 
536
- it 'equals GLib::SList' do
537
- type_info.argument_class_name.must_equal 'GLib::SList'
537
+ it "equals GLib::SList" do
538
+ _(type_info.argument_class_name).must_equal "GLib::SList"
538
539
  end
539
540
  end
540
541
 
541
- describe 'for :ghash' do
542
+ describe "for :ghash" do
542
543
  let(:tag) { :ghash }
543
544
 
544
- it 'equals GLib::HashTable' do
545
- type_info.argument_class_name.must_equal 'GLib::HashTable'
545
+ it "equals GLib::HashTable" do
546
+ _(type_info.argument_class_name).must_equal "GLib::HashTable"
546
547
  end
547
548
  end
548
549
 
549
- describe 'for :error' do
550
+ describe "for :error" do
550
551
  let(:tag) { :error }
551
552
 
552
- it 'equals GLib::Error' do
553
- type_info.argument_class_name.must_equal 'GLib::Error'
553
+ it "equals GLib::Error" do
554
+ _(type_info.argument_class_name).must_equal "GLib::Error"
554
555
  end
555
556
  end
556
557
  end
557
558
 
558
- describe '#gtype' do
559
+ describe "#gtype" do
559
560
  before do
560
561
  allow(type_info).to receive(:tag).and_return tag
561
562
  allow(type_info).to receive(:pointer?).and_return pointer?
562
563
  end
563
564
 
564
- describe 'for :void' do
565
- let(:tag) { :void }
565
+ describe "for non-pointers" do
566
566
  let(:pointer?) { false }
567
+ describe "for :void" do
568
+ let(:tag) { :void }
567
569
 
568
- it 'equals the none type' do
569
- GObject.type_name(type_info.gtype).must_equal 'void'
570
+ it "equals the none type" do
571
+ _(GObject.type_name(type_info.gtype)).must_equal "void"
572
+ end
570
573
  end
571
- end
572
574
 
573
- describe 'for :void pointer' do
574
- let(:tag) { :void }
575
- let(:pointer?) { true }
575
+ describe "for :gboolean" do
576
+ let(:tag) { :gboolean }
576
577
 
577
- it 'equals the none type' do
578
- GObject.type_name(type_info.gtype).must_equal 'gpointer'
578
+ it "equals the gboolean type" do
579
+ _(GObject.type_name(type_info.gtype)).must_equal "gboolean"
580
+ end
579
581
  end
580
- end
581
582
 
582
- describe 'for :gboolean' do
583
- let(:tag) { :gboolean }
584
- let(:pointer?) { false }
583
+ describe "for :gint32" do
584
+ let(:tag) { :gint32 }
585
585
 
586
- it 'equals the gboolean type' do
587
- GObject.type_name(type_info.gtype).must_equal 'gboolean'
586
+ it "equals the gint type" do
587
+ _(GObject.type_name(type_info.gtype)).must_equal "gint"
588
+ end
588
589
  end
589
- end
590
590
 
591
- describe 'for :gint32' do
592
- let(:tag) { :gint32 }
593
- let(:pointer?) { false }
591
+ describe "for :gint64" do
592
+ let(:tag) { :gint64 }
594
593
 
595
- it 'equals the gint type' do
596
- GObject.type_name(type_info.gtype).must_equal 'gint'
594
+ it "equals the gint64 type" do
595
+ _(GObject.type_name(type_info.gtype)).must_equal "gint64"
596
+ end
597
597
  end
598
- end
599
598
 
600
- describe 'for :gint64' do
601
- let(:tag) { :gint64 }
602
- let(:pointer?) { false }
599
+ describe "for :guint64" do
600
+ let(:tag) { :guint64 }
603
601
 
604
- it 'equals the gint64 type' do
605
- GObject.type_name(type_info.gtype).must_equal 'gint64'
602
+ it "equals the guint64 type" do
603
+ _(GObject.type_name(type_info.gtype)).must_equal "guint64"
604
+ end
606
605
  end
607
606
  end
608
607
 
609
- describe 'for :guint64' do
610
- let(:tag) { :guint64 }
611
- let(:pointer?) { false }
608
+ describe "for pointers" do
609
+ let(:pointer?) { true }
610
+
611
+ describe "to :void" do
612
+ let(:tag) { :void }
612
613
 
613
- it 'equals the guint64 type' do
614
- GObject.type_name(type_info.gtype).must_equal 'guint64'
614
+ it "equals the gpointer type" do
615
+ _(GObject.type_name(type_info.gtype)).must_equal "gpointer"
616
+ end
615
617
  end
616
- end
617
618
 
618
- describe 'for pointer to :utf8' do
619
- let(:tag) { :utf8 }
620
- let(:pointer?) { true }
619
+ describe "to :utf8" do
620
+ let(:tag) { :utf8 }
621
621
 
622
- it 'equals the gchararray type' do
623
- GObject.type_name(type_info.gtype).must_equal 'gchararray'
622
+ it "equals the gchararray type" do
623
+ _(GObject.type_name(type_info.gtype)).must_equal "gchararray"
624
+ end
624
625
  end
625
- end
626
626
 
627
- describe 'for pointer to :ghash' do
628
- let(:tag) { :ghash }
629
- let(:pointer?) { true }
627
+ describe "to :ghash" do
628
+ let(:tag) { :ghash }
630
629
 
631
- it 'equals the GHashTable type' do
632
- GObject.type_name(type_info.gtype).must_equal 'GHashTable'
630
+ it "equals the GHashTable type" do
631
+ _(GObject.type_name(type_info.gtype)).must_equal "GHashTable"
632
+ end
633
633
  end
634
- end
635
634
 
636
- describe 'for pointer to :glist' do
637
- let(:tag) { :glist }
638
- let(:pointer?) { true }
635
+ describe "to :glist" do
636
+ let(:tag) { :glist }
639
637
 
640
- it 'equals the pointer type' do
641
- GObject.type_name(type_info.gtype).must_equal 'gpointer'
638
+ it "equals the pointer type" do
639
+ _(GObject.type_name(type_info.gtype)).must_equal "gpointer"
640
+ end
641
+ end
642
+
643
+ describe "to :error" do
644
+ let(:tag) { :error }
645
+
646
+ it "equals the gpointer type" do
647
+ _(GObject.type_name(type_info.gtype)).must_equal "gpointer"
648
+ end
649
+ end
650
+
651
+ describe "to :guint32" do
652
+ let(:tag) { :guint32 }
653
+
654
+ it "equals the gpointer type" do
655
+ _(GObject.type_name(type_info.gtype)).must_equal "gpointer"
656
+ end
642
657
  end
643
658
  end
644
659
 
645
- describe 'for arrays' do
660
+ describe "for arrays" do
646
661
  let(:tag) { :array }
647
662
  let(:pointer?) { true }
648
663
 
649
- describe 'for pointer to GArray' do
664
+ describe "for pointer to GArray" do
650
665
  before do
651
666
  allow(type_info).to receive(:zero_terminated?).and_return false
652
667
  allow(type_info).to receive(:array_type).and_return :array
653
668
  end
654
669
 
655
- it 'equals the GArray type' do
656
- GObject.type_name(type_info.gtype).must_equal 'GArray'
670
+ it "equals the GArray type" do
671
+ _(GObject.type_name(type_info.gtype)).must_equal "GArray"
657
672
  end
658
673
  end
659
674
 
660
- describe 'for a C array' do
675
+ describe "for a C array" do
661
676
  before do
662
677
  allow(type_info).to receive(:zero_terminated?).and_return false
663
678
  allow(type_info).to receive(:array_type).and_return :c
664
679
  end
665
680
 
666
- it 'equals the gpointer type' do
667
- GObject.type_name(type_info.gtype).must_equal 'gpointer'
681
+ it "equals the gpointer type" do
682
+ _(GObject.type_name(type_info.gtype)).must_equal "gpointer"
668
683
  end
669
684
  end
670
685
 
671
- describe 'for a zero-terminated array' do
686
+ describe "for a zero-terminated array" do
672
687
  before do
673
688
  allow(type_info).to receive(:param_type).with(0).and_return elmtype_info
674
689
  allow(type_info).to receive(:zero_terminated?).and_return true
675
690
  end
676
691
 
677
- describe 'of utf8' do
678
- it 'equals the GStrv type' do
692
+ describe "of utf8" do
693
+ it "equals the GStrv type" do
679
694
  allow(elmtype_info).to receive(:tag).and_return :utf8
680
695
  allow(elmtype_info).to receive(:pointer?).and_return true
681
696
 
682
- GObject.type_name(type_info.gtype).must_equal 'GStrv'
697
+ _(GObject.type_name(type_info.gtype)).must_equal "GStrv"
683
698
  end
684
699
  end
685
700
 
686
- describe 'of filename' do
687
- it 'equals the GStrv type' do
701
+ describe "of filename" do
702
+ it "equals the GStrv type" do
688
703
  allow(elmtype_info).to receive(:tag).and_return :filename
689
704
  allow(elmtype_info).to receive(:pointer?).and_return true
690
705
 
691
- GObject.type_name(type_info.gtype).must_equal 'GStrv'
706
+ _(GObject.type_name(type_info.gtype)).must_equal "GStrv"
692
707
  end
693
708
  end
694
709
  end