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,455 +1,482 @@
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::Builders::ArgumentBuilder do
6
6
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
7
7
  let(:builder) { GirFFI::Builders::ArgumentBuilder.new(var_gen, arg_info) }
8
8
 
9
- describe 'for an argument with direction :in' do
10
- describe 'for :c' do
11
- describe 'with full ownership transfer' do
9
+ describe "for an argument with direction :in" do
10
+ describe "for :c" do
11
+ describe "with full ownership transfer" do
12
12
  let(:arg_info) do
13
- get_introspection_data('GIMarshallingTests', 'array_struct_take_in').args[0]
13
+ get_introspection_data("GIMarshallingTests", "array_struct_take_in").args[0]
14
14
  end
15
15
 
16
- it 'has the correct value for #pre_conversion' do
17
- builder.pre_conversion.
18
- must_equal ['_v1 = GirFFI::SizedArray.copy_from([:pointer, GIMarshallingTests::BoxedStruct], -1, structs)']
16
+ it "has the correct value for #pre_conversion" do
17
+ _(builder.pre_conversion)
18
+ .must_equal [
19
+ "_v1 = GirFFI::SizedArray.copy_from(" \
20
+ "[:pointer, GIMarshallingTests::BoxedStruct], -1, structs)"
21
+ ]
19
22
  end
20
23
 
21
- it 'has the correct value for #post_conversion' do
22
- builder.post_conversion.must_equal []
24
+ it "has the correct value for #post_conversion" do
25
+ _(builder.post_conversion).must_equal []
23
26
  end
24
27
  end
25
28
  end
26
29
 
27
- describe 'for :callback' do
30
+ describe "for :callback" do
28
31
  let(:arg_info) do
29
- get_introspection_data('Regress', 'test_callback_destroy_notify').args[0]
32
+ get_introspection_data("Regress", "test_callback_destroy_notify").args[0]
30
33
  end
31
34
 
32
- it 'has the correct value for #pre_conversion' do
33
- builder.pre_conversion.must_equal ['_v1 = Regress::TestCallbackUserData.from(callback)']
35
+ it "has the correct value for #pre_conversion" do
36
+ _(builder.pre_conversion)
37
+ .must_equal ["_v1 = Regress::TestCallbackUserData.from(callback)"]
34
38
  end
35
39
 
36
- it 'has the correct value for #post_conversion' do
37
- builder.post_conversion.must_equal []
40
+ it "has the correct value for #post_conversion" do
41
+ _(builder.post_conversion).must_equal []
38
42
  end
39
43
  end
40
44
 
41
- describe 'for :zero_terminated' do
45
+ describe "for :zero_terminated" do
42
46
  let(:arg_info) do
43
- get_introspection_data('GIMarshallingTests',
44
- 'array_in_len_zero_terminated').args[0]
47
+ get_introspection_data("GIMarshallingTests",
48
+ "array_in_len_zero_terminated").args[0]
45
49
  end
46
50
 
47
- it 'has the correct value for #pre_conversion' do
48
- builder.pre_conversion.must_equal ['_v1 = GirFFI::ZeroTerminated.from(:gint32, ints)']
51
+ it "has the correct value for #pre_conversion" do
52
+ _(builder.pre_conversion)
53
+ .must_equal ["_v1 = GirFFI::ZeroTerminated.from(:gint32, ints)"]
49
54
  end
50
55
 
51
- it 'has the correct value for #post_conversion' do
52
- builder.post_conversion.must_equal []
56
+ it "has the correct value for #post_conversion" do
57
+ _(builder.post_conversion).must_equal []
53
58
  end
54
59
  end
55
60
 
56
- describe 'for :void' do
57
- let(:arg_info) { get_introspection_data('Regress', 'test_callback_user_data').args[1] }
61
+ describe "for :void" do
62
+ let(:arg_info) do
63
+ get_introspection_data("Regress", "test_callback_user_data").args[1]
64
+ end
58
65
 
59
- describe 'when it is a regular argument' do
60
- it 'has the correct value for method_argument_name' do
61
- builder.method_argument_name.must_equal arg_info.name
66
+ describe "when it is a regular argument" do
67
+ it "has the correct value for method_argument_name" do
68
+ _(builder.method_argument_name).must_equal arg_info.name
62
69
  end
63
70
 
64
- it 'has the correct value for #pre_conversion' do
65
- builder.pre_conversion.must_equal ['_v1 = user_data']
71
+ it "has the correct value for #pre_conversion" do
72
+ _(builder.pre_conversion).must_equal ["_v1 = user_data"]
66
73
  end
67
74
 
68
- it 'has the correct value for #post_conversion' do
69
- builder.post_conversion.must_equal []
75
+ it "has the correct value for #post_conversion" do
76
+ _(builder.post_conversion).must_equal []
70
77
  end
71
78
  end
72
79
 
73
- describe 'when it is a closure' do
80
+ describe "when it is a closure" do
74
81
  before do
75
82
  callback = Object.new
76
- allow(callback).to receive(:call_argument_name).and_return 'foo'
83
+ allow(callback).to receive(:call_argument_name).and_return "foo"
77
84
  builder.mark_as_user_data callback
78
85
  end
79
86
 
80
- it 'has the correct value for method_argument_name' do
81
- builder.method_argument_name.must_be_nil
87
+ it "has the correct value for method_argument_name" do
88
+ _(builder.method_argument_name).must_be_nil
82
89
  end
83
90
 
84
- it 'has the correct value for #pre_conversion' do
85
- builder.pre_conversion.must_equal ['_v1 = GirFFI::ArgHelper.store(foo)']
91
+ it "has the correct value for #pre_conversion" do
92
+ _(builder.pre_conversion).must_equal ["_v1 = GirFFI::ArgHelper.store(foo)"]
86
93
  end
87
94
 
88
- it 'has the correct value for #post_conversion' do
89
- builder.post_conversion.must_equal []
95
+ it "has the correct value for #post_conversion" do
96
+ _(builder.post_conversion).must_equal []
90
97
  end
91
98
  end
92
99
  end
93
100
  end
94
101
 
95
- describe 'for an argument with direction :out' do
96
- describe 'for :enum' do
97
- let(:arg_info) { get_introspection_data('GIMarshallingTests', 'genum_out').args[0] }
102
+ describe "for an argument with direction :out" do
103
+ describe "for :enum" do
104
+ let(:arg_info) { get_introspection_data("GIMarshallingTests", "genum_out").args[0] }
98
105
 
99
- it 'has the correct value for #pre_conversion' do
100
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new GIMarshallingTests::GEnum']
106
+ it "has the correct value for #pre_conversion" do
107
+ _(builder.pre_conversion)
108
+ .must_equal ["_v1 = FFI::MemoryPointer.new GIMarshallingTests::GEnum"]
101
109
  end
102
110
 
103
- it 'has the correct value for #post_conversion' do
104
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::GEnum.get_value_from_pointer(_v1, 0)']
111
+ it "has the correct value for #post_conversion" do
112
+ _(builder.post_conversion)
113
+ .must_equal ["_v2 = GIMarshallingTests::GEnum.get_value_from_pointer(_v1, 0)"]
105
114
  end
106
115
  end
107
116
 
108
- describe 'for :flags' do
117
+ describe "for :flags" do
109
118
  let(:arg_info) do
110
- get_introspection_data('GIMarshallingTests', 'flags_out').args[0]
119
+ get_introspection_data("GIMarshallingTests", "flags_out").args[0]
111
120
  end
112
121
 
113
- it 'has the correct value for #pre_conversion' do
114
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new GIMarshallingTests::Flags']
122
+ it "has the correct value for #pre_conversion" do
123
+ _(builder.pre_conversion)
124
+ .must_equal ["_v1 = FFI::MemoryPointer.new GIMarshallingTests::Flags"]
115
125
  end
116
126
 
117
- it 'has the correct value for #post_conversion' do
118
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Flags.get_value_from_pointer(_v1, 0)']
127
+ it "has the correct value for #post_conversion" do
128
+ _(builder.post_conversion)
129
+ .must_equal ["_v2 = GIMarshallingTests::Flags.get_value_from_pointer(_v1, 0)"]
119
130
  end
120
131
  end
121
132
 
122
- describe 'for :object' do
123
- describe 'with full ownership transfer' do
133
+ describe "for :object" do
134
+ describe "with full ownership transfer" do
124
135
  let(:arg_info) do
125
- get_method_introspection_data('Regress', 'TestObj', 'null_out').args[0]
136
+ get_method_introspection_data("Regress", "TestObj", "null_out").args[0]
126
137
  end
127
138
 
128
- it 'has the correct value for #pre_conversion' do
129
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
139
+ it "has the correct value for #pre_conversion" do
140
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
130
141
  end
131
142
 
132
- it 'has the correct value for #post_conversion' do
133
- builder.post_conversion.must_equal ['_v2 = Regress::TestObj.wrap(_v1.get_pointer(0))']
143
+ it "has the correct value for #post_conversion" do
144
+ _(builder.post_conversion)
145
+ .must_equal ["_v2 = Regress::TestObj.wrap(_v1.get_pointer(0))"]
134
146
  end
135
147
  end
136
148
 
137
- describe 'with no ownership transfer' do
149
+ describe "with no ownership transfer" do
138
150
  let(:arg_info) do
139
- get_method_introspection_data('GIMarshallingTests', 'Object', 'none_out').args[0]
151
+ get_method_introspection_data("GIMarshallingTests", "Object", "none_out").args[0]
140
152
  end
141
153
 
142
- it 'has the correct value for #pre_conversion' do
143
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
154
+ it "has the correct value for #pre_conversion" do
155
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
144
156
  end
145
157
 
146
- it 'has the correct value for #post_conversion' do
147
- builder.post_conversion.
148
- must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1.get_pointer(0)).tap { |it| it && it.ref }']
158
+ it "has the correct value for #post_conversion" do
159
+ _(builder.post_conversion)
160
+ .must_equal [
161
+ "_v2 = GIMarshallingTests::Object.wrap(_v1.get_pointer(0)).tap" \
162
+ " { |it| it && it.ref }"
163
+ ]
149
164
  end
150
165
  end
151
166
  end
152
167
 
153
- describe 'for :struct' do
154
- describe 'when not allocated by the caller' do
168
+ describe "for :struct" do
169
+ describe "when not allocated by the caller" do
155
170
  let(:arg_info) do
156
- get_introspection_data('GIMarshallingTests', 'boxed_struct_out').args[0]
171
+ get_introspection_data("GIMarshallingTests", "boxed_struct_out").args[0]
157
172
  end
158
173
 
159
- it 'has the correct value for #pre_conversion' do
160
- builder.pre_conversion.must_equal [
161
- '_v1 = FFI::MemoryPointer.new :pointer'
174
+ it "has the correct value for #pre_conversion" do
175
+ _(builder.pre_conversion).must_equal [
176
+ "_v1 = FFI::MemoryPointer.new :pointer"
162
177
  ]
163
178
  end
164
179
 
165
- it 'has the correct value for #post_conversion' do
166
- builder.post_conversion.
167
- must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap_copy(_v1.get_pointer(0))']
180
+ it "has the correct value for #post_conversion" do
181
+ _(builder.post_conversion)
182
+ .must_equal ["_v2 = GIMarshallingTests::BoxedStruct.wrap_copy("\
183
+ "_v1.get_pointer(0))"]
168
184
  end
169
185
  end
170
186
 
171
- describe 'when allocated by the caller' do
187
+ describe "when allocated by the caller" do
172
188
  let(:arg_info) do
173
- get_method_introspection_data('Regress', 'TestStructA', 'clone').args[0]
189
+ get_method_introspection_data("Regress", "TestStructA", "clone").args[0]
174
190
  end
175
191
 
176
- it 'has the correct value for #pre_conversion' do
177
- builder.pre_conversion.must_equal ['_v1 = Regress::TestStructA.new']
192
+ it "has the correct value for #pre_conversion" do
193
+ _(builder.pre_conversion).must_equal ["_v1 = Regress::TestStructA.new"]
178
194
  end
179
195
 
180
- it 'has empty #post_conversion' do
181
- builder.post_conversion.must_equal []
196
+ it "has empty #post_conversion" do
197
+ _(builder.post_conversion).must_equal []
182
198
  end
183
199
  end
184
200
  end
185
201
 
186
- describe 'for :strv' do
202
+ describe "for :strv" do
187
203
  let(:arg_info) do
188
- get_introspection_data('GIMarshallingTests', 'gstrv_out').args[0]
204
+ get_introspection_data("GIMarshallingTests", "gstrv_out").args[0]
189
205
  end
190
206
 
191
- it 'has the correct value for #pre_conversion' do
192
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
207
+ it "has the correct value for #pre_conversion" do
208
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
193
209
  end
194
210
 
195
- it 'has the correct value for #post_conversion' do
196
- builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1.get_pointer(0))']
211
+ it "has the correct value for #post_conversion" do
212
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Strv.wrap(_v1.get_pointer(0))"]
197
213
  end
198
214
  end
199
215
 
200
- describe 'for :array' do
201
- describe 'when allocated by the callee' do
216
+ describe "for :array" do
217
+ describe "when allocated by the callee" do
202
218
  let(:arg_info) do
203
- get_introspection_data('GIMarshallingTests', 'garray_utf8_none_out').args[0]
219
+ get_introspection_data("GIMarshallingTests", "garray_utf8_none_out").args[0]
204
220
  end
205
221
 
206
- it 'has the correct value for #pre_conversion' do
207
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
222
+ it "has the correct value for #pre_conversion" do
223
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
208
224
  end
209
225
 
210
- it 'has the correct value for #post_conversion' do
211
- builder.post_conversion.must_equal ['_v2 = GLib::Array.wrap(:utf8, _v1.get_pointer(0))']
226
+ it "has the correct value for #post_conversion" do
227
+ _(builder.post_conversion)
228
+ .must_equal ["_v2 = GLib::Array.wrap(:utf8, _v1.get_pointer(0))"]
212
229
  end
213
230
  end
214
231
 
215
- describe 'when allocated by the caller' do
232
+ describe "when allocated by the caller" do
216
233
  let(:function_info) do
217
- get_introspection_data('GIMarshallingTests', 'garray_utf8_full_out_caller_allocated')
234
+ get_introspection_data("GIMarshallingTests",
235
+ "garray_utf8_full_out_caller_allocated")
218
236
  end
219
237
 
220
238
  let(:arg_info) { function_info.args[0] }
221
239
 
222
- before do
223
- skip unless function_info
224
- end
225
-
226
- it 'has the correct value for #pre_conversion' do
227
- builder.pre_conversion.must_equal ['_v1 = GLib::Array.new :utf8']
240
+ it "has the correct value for #pre_conversion" do
241
+ _(builder.pre_conversion).must_equal ["_v1 = GLib::Array.new :utf8"]
228
242
  end
229
243
 
230
- it 'has empty #post_conversion' do
231
- builder.post_conversion.must_equal []
244
+ it "has empty #post_conversion" do
245
+ _(builder.post_conversion).must_equal []
232
246
  end
233
247
  end
234
248
  end
235
249
 
236
- describe 'for :ptr_array' do
250
+ describe "for :ptr_array" do
237
251
  let(:arg_info) do
238
- get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_out').args[0]
252
+ get_introspection_data("GIMarshallingTests", "gptrarray_utf8_none_out").args[0]
239
253
  end
240
254
 
241
- it 'has the correct value for #pre_conversion' do
242
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
255
+ it "has the correct value for #pre_conversion" do
256
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
243
257
  end
244
258
 
245
- it 'has the correct value for #post_conversion' do
246
- builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1.get_pointer(0))']
259
+ it "has the correct value for #post_conversion" do
260
+ _(builder.post_conversion)
261
+ .must_equal ["_v2 = GLib::PtrArray.wrap(:utf8, _v1.get_pointer(0))"]
247
262
  end
248
263
  end
249
264
 
250
- describe 'for :error' do
265
+ describe "for :error" do
251
266
  let(:arg_info) do
252
- get_introspection_data('GIMarshallingTests', 'gerror_out').args[0]
267
+ get_introspection_data("GIMarshallingTests", "gerror_out").args[0]
253
268
  end
254
269
 
255
- it 'has the correct value for #pre_conversion' do
256
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
270
+ it "has the correct value for #pre_conversion" do
271
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
257
272
  end
258
273
 
259
- it 'has the correct value for #post_conversion' do
260
- builder.post_conversion.must_equal ['_v2 = GLib::Error.wrap(_v1.get_pointer(0))']
274
+ it "has the correct value for #post_conversion" do
275
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Error.wrap(_v1.get_pointer(0))"]
261
276
  end
262
277
  end
263
278
 
264
- describe 'for :c' do
265
- describe 'with fixed size' do
279
+ describe "for :c" do
280
+ describe "with fixed size" do
266
281
  let(:arg_info) do
267
- get_introspection_data('GIMarshallingTests', 'array_fixed_out').args[0]
282
+ get_introspection_data("GIMarshallingTests", "array_fixed_out").args[0]
268
283
  end
269
284
 
270
- it 'has the correct value for #pre_conversion' do
271
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
285
+ it "has the correct value for #pre_conversion" do
286
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
272
287
  end
273
288
 
274
- it 'has the correct value for #post_conversion' do
275
- builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.get_pointer(0))']
289
+ it "has the correct value for #post_conversion" do
290
+ _(builder.post_conversion)
291
+ .must_equal ["_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.get_pointer(0))"]
276
292
  end
277
293
  end
278
294
 
279
- describe 'with separate size parameter' do
295
+ describe "with separate size parameter" do
280
296
  let(:arg_info) do
281
- get_introspection_data('GIMarshallingTests', 'array_out').args[0]
297
+ get_introspection_data("GIMarshallingTests", "array_out").args[0]
282
298
  end
283
299
 
284
300
  let(:length_argument) { Object.new }
285
301
  before do
286
- allow(length_argument).to receive(:post_converted_name).and_return 'bar'
302
+ allow(length_argument).to receive(:post_converted_name).and_return "bar"
287
303
  builder.length_arg = length_argument
288
304
  end
289
305
 
290
- it 'has the correct value for #pre_conversion' do
291
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
306
+ it "has the correct value for #pre_conversion" do
307
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
292
308
  end
293
309
 
294
- it 'has the correct value for #post_conversion' do
295
- builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1.get_pointer(0))']
310
+ it "has the correct value for #post_conversion" do
311
+ _(builder.post_conversion)
312
+ .must_equal ["_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1.get_pointer(0))"]
296
313
  end
297
314
  end
298
315
  end
299
316
 
300
- describe 'for :glist' do
317
+ describe "for :glist" do
301
318
  let(:arg_info) do
302
- get_introspection_data('GIMarshallingTests', 'glist_utf8_none_out').args[0]
319
+ get_introspection_data("GIMarshallingTests", "glist_utf8_none_out").args[0]
303
320
  end
304
321
 
305
- it 'has the correct value for #pre_conversion' do
306
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
322
+ it "has the correct value for #pre_conversion" do
323
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
307
324
  end
308
325
 
309
- it 'has the correct value for #post_conversion' do
310
- builder.post_conversion.must_equal ['_v2 = GLib::List.wrap(:utf8, _v1.get_pointer(0))']
326
+ it "has the correct value for #post_conversion" do
327
+ _(builder.post_conversion)
328
+ .must_equal ["_v2 = GLib::List.wrap(:utf8, _v1.get_pointer(0))"]
311
329
  end
312
330
  end
313
331
 
314
- describe 'for :gslist' do
332
+ describe "for :gslist" do
315
333
  let(:arg_info) do
316
- get_introspection_data('GIMarshallingTests', 'gslist_utf8_none_out').args[0]
334
+ get_introspection_data("GIMarshallingTests", "gslist_utf8_none_out").args[0]
317
335
  end
318
336
 
319
- it 'has the correct value for #pre_conversion' do
320
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
337
+ it "has the correct value for #pre_conversion" do
338
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
321
339
  end
322
340
 
323
- it 'has the correct value for #post_conversion' do
324
- builder.post_conversion.must_equal ['_v2 = GLib::SList.wrap(:utf8, _v1.get_pointer(0))']
341
+ it "has the correct value for #post_conversion" do
342
+ _(builder.post_conversion)
343
+ .must_equal ["_v2 = GLib::SList.wrap(:utf8, _v1.get_pointer(0))"]
325
344
  end
326
345
  end
327
346
 
328
- describe 'for :ghash' do
347
+ describe "for :ghash" do
329
348
  let(:arg_info) do
330
- get_introspection_data('GIMarshallingTests', 'ghashtable_utf8_none_out').args[0]
349
+ get_introspection_data("GIMarshallingTests", "ghashtable_utf8_none_out").args[0]
331
350
  end
332
351
 
333
- it 'has the correct value for #pre_conversion' do
334
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
352
+ it "has the correct value for #pre_conversion" do
353
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
335
354
  end
336
355
 
337
- it 'has the correct value for #post_conversion' do
338
- builder.post_conversion.must_equal ['_v2 = GLib::HashTable.wrap([:utf8, :utf8], _v1.get_pointer(0))']
356
+ it "has the correct value for #post_conversion" do
357
+ _(builder.post_conversion)
358
+ .must_equal ["_v2 = GLib::HashTable.wrap([:utf8, :utf8], _v1.get_pointer(0))"]
339
359
  end
340
360
  end
341
361
 
342
- describe 'for :utf8' do
343
- describe 'with full ownership transfer' do
362
+ describe "for :utf8" do
363
+ describe "with full ownership transfer" do
344
364
  let(:arg_info) do
345
- get_introspection_data('GIMarshallingTests', 'utf8_full_out').args[0]
365
+ get_introspection_data("GIMarshallingTests", "utf8_full_out").args[0]
346
366
  end
347
367
 
348
- it 'has the correct value for #pre_conversion' do
349
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
368
+ it "has the correct value for #pre_conversion" do
369
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
350
370
  end
351
371
 
352
- it 'has the correct value for #post_conversion' do
353
- builder.post_conversion.must_equal [
354
- '_v2 = GirFFI::AllocationHelper.free_after _v1.get_pointer(0), &:to_utf8'
372
+ it "has the correct value for #post_conversion" do
373
+ _(builder.post_conversion).must_equal [
374
+ "_v2 = GirFFI::AllocationHelper.free_after _v1.get_pointer(0), &:to_utf8"
355
375
  ]
356
376
  end
357
377
 
358
- it 'has the correct value for #return_value_name' do
378
+ it "has the correct value for #return_value_name" do
359
379
  builder.post_conversion
360
- builder.return_value_name.must_equal '_v2'
380
+ _(builder.return_value_name).must_equal "_v2"
361
381
  end
362
382
  end
363
383
 
364
- describe 'with no ownership transfer' do
384
+ describe "with no ownership transfer" do
365
385
  let(:arg_info) do
366
- get_introspection_data('GIMarshallingTests', 'utf8_none_out').args[0]
386
+ get_introspection_data("GIMarshallingTests", "utf8_none_out").args[0]
367
387
  end
368
388
 
369
- it 'has the correct value for #pre_conversion' do
370
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
389
+ it "has the correct value for #pre_conversion" do
390
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
371
391
  end
372
392
 
373
- it 'has the correct value for #post_conversion' do
374
- builder.post_conversion.must_equal ['_v2 = _v1.get_pointer(0).to_utf8']
393
+ it "has the correct value for #post_conversion" do
394
+ _(builder.post_conversion).must_equal ["_v2 = _v1.get_pointer(0).to_utf8"]
375
395
  end
376
396
  end
377
397
  end
378
398
 
379
- describe 'for :void' do
399
+ describe "for :void" do
380
400
  let(:function_info) do
381
- get_introspection_data('Everything', 'one_outparam_gpointer')
401
+ get_introspection_data("Everything", "one_outparam_gpointer")
382
402
  end
383
403
  let(:arg_info) { function_info.args[0] }
384
404
 
385
- before do
386
- skip unless function_info
387
- end
405
+ before { skip_below "1.47.1" }
388
406
 
389
- it 'has the correct value for #pre_conversion' do
390
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer']
407
+ it "has the correct value for #pre_conversion" do
408
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer"]
391
409
  end
392
410
 
393
- it 'has the correct value for #post_conversion' do
394
- builder.post_conversion.must_equal ['_v2 = _v1.get_pointer(0)']
411
+ it "has the correct value for #post_conversion" do
412
+ _(builder.post_conversion).must_equal ["_v2 = _v1.get_pointer(0)"]
395
413
  end
396
414
  end
397
415
  end
398
416
 
399
- describe 'for an argument with direction :inout' do
400
- describe 'for :enum' do
417
+ describe "for an argument with direction :inout" do
418
+ describe "for :enum" do
401
419
  let(:arg_info) do
402
- get_introspection_data('GIMarshallingTests', 'enum_inout').args[0]
420
+ get_introspection_data("GIMarshallingTests", "enum_inout").args[0]
403
421
  end
404
422
 
405
- it 'has the correct value for #pre_conversion' do
406
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new GIMarshallingTests::Enum',
407
- "GIMarshallingTests::Enum.copy_value_to_pointer(#{arg_info.name}, _v1)"]
423
+ it "has the correct value for #pre_conversion" do
424
+ _(builder.pre_conversion)
425
+ .must_equal [
426
+ "_v1 = FFI::MemoryPointer.new GIMarshallingTests::Enum",
427
+ "GIMarshallingTests::Enum.copy_value_to_pointer(#{arg_info.name}, _v1)"
428
+ ]
408
429
  end
409
430
 
410
- it 'has the correct value for #post_conversion' do
411
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Enum.get_value_from_pointer(_v1, 0)']
431
+ it "has the correct value for #post_conversion" do
432
+ _(builder.post_conversion)
433
+ .must_equal ["_v2 = GIMarshallingTests::Enum.get_value_from_pointer(_v1, 0)"]
412
434
  end
413
435
  end
414
436
 
415
- describe 'for :flags' do
437
+ describe "for :flags" do
416
438
  let(:arg_info) do
417
- get_introspection_data('GIMarshallingTests', 'no_type_flags_inout').args[0]
439
+ get_introspection_data("GIMarshallingTests", "no_type_flags_inout").args[0]
418
440
  end
419
441
 
420
- it 'has the correct value for #pre_conversion' do
421
- builder.pre_conversion.
422
- must_equal ['_v1 = FFI::MemoryPointer.new GIMarshallingTests::NoTypeFlags',
423
- "GIMarshallingTests::NoTypeFlags.copy_value_to_pointer(#{arg_info.name}, _v1)"]
442
+ it "has the correct value for #pre_conversion" do
443
+ _(builder.pre_conversion)
444
+ .must_equal [
445
+ "_v1 = FFI::MemoryPointer.new GIMarshallingTests::NoTypeFlags",
446
+ "GIMarshallingTests::NoTypeFlags.copy_value_to_pointer(#{arg_info.name}, _v1)"
447
+ ]
424
448
  end
425
449
 
426
- it 'has the correct value for #post_conversion' do
427
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::NoTypeFlags.get_value_from_pointer(_v1, 0)']
450
+ it "has the correct value for #post_conversion" do
451
+ _(builder.post_conversion)
452
+ .must_equal [
453
+ "_v2 = GIMarshallingTests::NoTypeFlags.get_value_from_pointer(_v1, 0)"
454
+ ]
428
455
  end
429
456
  end
430
457
 
431
- describe 'for :gint32' do
458
+ describe "for :gint32" do
432
459
  let(:arg_info) do
433
- get_introspection_data('GIMarshallingTests', 'int32_inout_min_max').args[0]
460
+ get_introspection_data("GIMarshallingTests", "int32_inout_min_max").args[0]
434
461
  end
435
462
 
436
- it 'has the correct value for method_argument_name' do
437
- builder.method_argument_name.must_equal arg_info.name
463
+ it "has the correct value for method_argument_name" do
464
+ _(builder.method_argument_name).must_equal arg_info.name
438
465
  end
439
466
 
440
- it 'has the correct value for #pre_conversion' do
441
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :int32',
442
- "_v1.put_int32 0, #{arg_info.name}"]
467
+ it "has the correct value for #pre_conversion" do
468
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :int32",
469
+ "_v1.put_int32 0, #{arg_info.name}"]
443
470
  end
444
471
 
445
- it 'has the correct value for #post_conversion' do
446
- builder.post_conversion.must_equal ['_v2 = _v1.get_int32(0)']
472
+ it "has the correct value for #post_conversion" do
473
+ _(builder.post_conversion).must_equal ["_v2 = _v1.get_int32(0)"]
447
474
  end
448
475
  end
449
476
 
450
- describe 'for an array length' do
477
+ describe "for an array length" do
451
478
  let(:function_info) do
452
- get_introspection_data('Regress', 'test_array_int_inout')
479
+ get_introspection_data("Regress", "test_array_int_inout")
453
480
  end
454
481
  let(:arg_info) { function_info.args[0] }
455
482
  let(:array_arg_info) { function_info.args[1] }
@@ -461,104 +488,110 @@ describe GirFFI::Builders::ArgumentBuilder do
461
488
  builder.array_arg = array_arg_builder
462
489
  end
463
490
 
464
- it 'has the correct value for #pre_conversion' do
465
- builder.pre_conversion.must_equal ['n_ints = ints.nil? ? 0 : ints.length',
466
- '_v1 = FFI::MemoryPointer.new :int32',
467
- '_v1.put_int32 0, n_ints']
491
+ it "has the correct value for #pre_conversion" do
492
+ _(builder.pre_conversion).must_equal ["n_ints = ints.nil? ? 0 : ints.length",
493
+ "_v1 = FFI::MemoryPointer.new :int32",
494
+ "_v1.put_int32 0, n_ints"]
468
495
  end
469
496
 
470
- it 'has the correct value for #post_conversion' do
471
- builder.post_conversion.must_equal ['_v2 = _v1.get_int32(0)']
497
+ it "has the correct value for #post_conversion" do
498
+ _(builder.post_conversion).must_equal ["_v2 = _v1.get_int32(0)"]
472
499
  end
473
500
  end
474
501
 
475
- describe 'for :strv' do
502
+ describe "for :strv" do
476
503
  let(:arg_info) do
477
- get_introspection_data('GIMarshallingTests', 'gstrv_inout').args[0]
504
+ get_introspection_data("GIMarshallingTests", "gstrv_inout").args[0]
478
505
  end
479
506
 
480
- it 'has the correct value for #pre_conversion' do
481
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer',
482
- '_v1.put_pointer 0, GLib::Strv.from(g_strv)']
507
+ it "has the correct value for #pre_conversion" do
508
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :pointer",
509
+ "_v1.put_pointer 0, GLib::Strv.from(g_strv)"]
483
510
  end
484
511
 
485
- it 'has the correct value for #post_conversion' do
486
- builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1.get_pointer(0))']
512
+ it "has the correct value for #post_conversion" do
513
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Strv.wrap(_v1.get_pointer(0))"]
487
514
  end
488
515
  end
489
516
 
490
- describe 'for :ptr_array' do
517
+ describe "for :ptr_array" do
491
518
  let(:arg_info) do
492
- get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_inout').args[0]
519
+ get_introspection_data("GIMarshallingTests", "gptrarray_utf8_none_inout").args[0]
493
520
  end
494
521
 
495
- it 'has the correct value for #pre_conversion' do
496
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer',
497
- '_v1.put_pointer 0, GLib::PtrArray.from(:utf8, parray_)']
522
+ it "has the correct value for #pre_conversion" do
523
+ _(builder.pre_conversion)
524
+ .must_equal ["_v1 = FFI::MemoryPointer.new :pointer",
525
+ "_v1.put_pointer 0, GLib::PtrArray.from(:utf8, parray_)"]
498
526
  end
499
527
 
500
- it 'has the correct value for #post_conversion' do
501
- builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1.get_pointer(0))']
528
+ it "has the correct value for #post_conversion" do
529
+ _(builder.post_conversion)
530
+ .must_equal ["_v2 = GLib::PtrArray.wrap(:utf8, _v1.get_pointer(0))"]
502
531
  end
503
532
  end
504
533
 
505
- describe 'for :utf8' do
534
+ describe "for :utf8" do
506
535
  let(:arg_info) do
507
- get_introspection_data('GIMarshallingTests', 'utf8_none_inout').args[0]
536
+ get_introspection_data("GIMarshallingTests", "utf8_none_inout").args[0]
508
537
  end
509
538
 
510
- it 'has the correct value for #pre_conversion' do
511
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :pointer',
512
- '_v1.put_pointer 0, GirFFI::InPointer.from_utf8(utf8)']
539
+ it "has the correct value for #pre_conversion" do
540
+ _(builder.pre_conversion)
541
+ .must_equal ["_v1 = FFI::MemoryPointer.new :pointer",
542
+ "_v1.put_pointer 0, GirFFI::InPointer.from_utf8(utf8)"]
513
543
  end
514
544
 
515
- it 'has the correct value for #post_conversion' do
516
- builder.post_conversion.must_equal ['_v2 = _v1.get_pointer(0).to_utf8']
545
+ it "has the correct value for #post_conversion" do
546
+ _(builder.post_conversion).must_equal ["_v2 = _v1.get_pointer(0).to_utf8"]
517
547
  end
518
548
  end
519
549
 
520
- describe 'for :struct' do
521
- describe 'with full ownership transfer' do
550
+ describe "for :struct" do
551
+ describe "with full ownership transfer" do
522
552
  let(:arg_info) do
523
- get_introspection_data('GIMarshallingTests', 'boxed_struct_inout').args[0]
553
+ get_introspection_data("GIMarshallingTests", "boxed_struct_inout").args[0]
524
554
  end
525
555
 
526
- it 'has the correct value for #pre_conversion' do
527
- builder.pre_conversion.must_equal [
528
- '_v1 = FFI::MemoryPointer.new :pointer',
529
- '_v1.put_pointer 0, GIMarshallingTests::BoxedStruct.copy_from(struct_)'
556
+ it "has the correct value for #pre_conversion" do
557
+ _(builder.pre_conversion).must_equal [
558
+ "_v1 = FFI::MemoryPointer.new :pointer",
559
+ "_v1.put_pointer 0, GIMarshallingTests::BoxedStruct.copy_from(struct_)"
530
560
  ]
531
561
  end
532
562
 
533
- it 'has the correct value for #post_conversion' do
534
- builder.post_conversion.
535
- must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap_own(_v1.get_pointer(0))']
563
+ it "has the correct value for #post_conversion" do
564
+ _(builder.post_conversion)
565
+ .must_equal [
566
+ "_v2 = GIMarshallingTests::BoxedStruct.wrap_own(_v1.get_pointer(0))"
567
+ ]
536
568
  end
537
569
  end
538
570
  end
539
571
 
540
- describe 'for :c' do
541
- describe 'with fixed size' do
572
+ describe "for :c" do
573
+ describe "with fixed size" do
542
574
  let(:arg_info) do
543
- get_introspection_data('GIMarshallingTests', 'array_fixed_inout').args[0]
575
+ get_introspection_data("GIMarshallingTests", "array_fixed_inout").args[0]
544
576
  end
545
577
 
546
- it 'has the correct value for #pre_conversion' do
547
- builder.pre_conversion.must_equal [
578
+ it "has the correct value for #pre_conversion" do
579
+ _(builder.pre_conversion).must_equal [
548
580
  'GirFFI::ArgHelper.check_fixed_array_size 4, ints, "ints"',
549
- '_v1 = FFI::MemoryPointer.new :pointer',
550
- '_v1.put_pointer 0, GirFFI::SizedArray.from(:gint32, 4, ints)'
581
+ "_v1 = FFI::MemoryPointer.new :pointer",
582
+ "_v1.put_pointer 0, GirFFI::SizedArray.from(:gint32, 4, ints)"
551
583
  ]
552
584
  end
553
585
 
554
- it 'has the correct value for #post_conversion' do
555
- builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.get_pointer(0))']
586
+ it "has the correct value for #post_conversion" do
587
+ _(builder.post_conversion)
588
+ .must_equal ["_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.get_pointer(0))"]
556
589
  end
557
590
  end
558
591
 
559
- describe 'with separate size parameter' do
592
+ describe "with separate size parameter" do
560
593
  let(:function_info) do
561
- get_introspection_data('Regress', 'test_array_int_inout')
594
+ get_introspection_data("Regress", "test_array_int_inout")
562
595
  end
563
596
  let(:length_arg_info) { function_info.args[0] }
564
597
  let(:arg_info) { function_info.args[1] }
@@ -570,87 +603,88 @@ describe GirFFI::Builders::ArgumentBuilder do
570
603
  builder.length_arg = length_arg_builder
571
604
  end
572
605
 
573
- it 'has the correct value for #pre_conversion' do
574
- builder.pre_conversion.must_equal [
575
- '_v1 = FFI::MemoryPointer.new :pointer',
576
- '_v1.put_pointer 0, GirFFI::SizedArray.copy_from(:gint32, -1, ints)'
606
+ it "has the correct value for #pre_conversion" do
607
+ _(builder.pre_conversion).must_equal [
608
+ "_v1 = FFI::MemoryPointer.new :pointer",
609
+ "_v1.put_pointer 0, GirFFI::SizedArray.copy_from(:gint32, -1, ints)"
577
610
  ]
578
611
  end
579
612
 
580
- it 'has the correct value for #post_conversion' do
581
- builder.post_conversion.must_equal ['_v3 = GirFFI::SizedArray.wrap(:gint32, _v2, _v1.get_pointer(0))']
613
+ it "has the correct value for #post_conversion" do
614
+ _(builder.post_conversion)
615
+ .must_equal ["_v3 = GirFFI::SizedArray.wrap(:gint32, _v2, _v1.get_pointer(0))"]
582
616
  end
583
617
  end
584
618
  end
585
619
  end
586
620
 
587
- describe 'for a skipped argument with direction :in' do
621
+ describe "for a skipped argument with direction :in" do
588
622
  let(:arg_info) do
589
- get_method_introspection_data('Regress', 'TestObj', 'skip_param').args[2]
623
+ get_method_introspection_data("Regress", "TestObj", "skip_param").args[2]
590
624
  end
591
625
 
592
- it 'has the correct value for method_argument_name' do
593
- builder.method_argument_name.must_be_nil
626
+ it "has the correct value for method_argument_name" do
627
+ _(builder.method_argument_name).must_be_nil
594
628
  end
595
629
 
596
- it 'has the correct value for #pre_conversion' do
597
- builder.pre_conversion.must_equal ['_v1 = 0']
630
+ it "has the correct value for #pre_conversion" do
631
+ _(builder.pre_conversion).must_equal ["_v1 = 0"]
598
632
  end
599
633
 
600
- it 'has the correct value for #post_conversion' do
601
- builder.post_conversion.must_equal []
634
+ it "has the correct value for #post_conversion" do
635
+ _(builder.post_conversion).must_equal []
602
636
  end
603
637
  end
604
638
 
605
- describe 'for a skipped argument with direction :inout' do
639
+ describe "for a skipped argument with direction :inout" do
606
640
  let(:arg_info) do
607
- get_method_introspection_data('Regress', 'TestObj', 'skip_inout_param').args[3]
641
+ get_method_introspection_data("Regress", "TestObj", "skip_inout_param").args[3]
608
642
  end
609
643
 
610
- it 'has the correct value for method_argument_name' do
611
- builder.method_argument_name.must_be_nil
644
+ it "has the correct value for method_argument_name" do
645
+ _(builder.method_argument_name).must_be_nil
612
646
  end
613
647
 
614
- it 'has the correct value for #pre_conversion' do
615
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :int32',
616
- '_v1.put_int32 0, 0']
648
+ it "has the correct value for #pre_conversion" do
649
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :int32",
650
+ "_v1.put_int32 0, 0"]
617
651
  end
618
652
 
619
- it 'has the correct value for #post_conversion' do
620
- builder.post_conversion.must_equal []
653
+ it "has the correct value for #post_conversion" do
654
+ _(builder.post_conversion).must_equal []
621
655
  end
622
656
  end
623
657
 
624
- describe 'for a skipped argument with direction :out' do
658
+ describe "for a skipped argument with direction :out" do
625
659
  let(:arg_info) do
626
- get_method_introspection_data('Regress', 'TestObj', 'skip_out_param').args[1]
660
+ get_method_introspection_data("Regress", "TestObj", "skip_out_param").args[1]
627
661
  end
628
662
 
629
- it 'has the correct value for method_argument_name' do
630
- builder.method_argument_name.must_be_nil
663
+ it "has the correct value for method_argument_name" do
664
+ _(builder.method_argument_name).must_be_nil
631
665
  end
632
666
 
633
- it 'has the correct value for #pre_conversion' do
634
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new :int32']
667
+ it "has the correct value for #pre_conversion" do
668
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new :int32"]
635
669
  end
636
670
 
637
- it 'has the correct value for #post_conversion' do
638
- builder.post_conversion.must_equal []
671
+ it "has the correct value for #post_conversion" do
672
+ _(builder.post_conversion).must_equal []
639
673
  end
640
674
  end
641
675
 
642
- describe 'for an argument with direction :error' do
676
+ describe "for an argument with direction :error" do
643
677
  let(:arg_info) { GirFFI::ErrorArgumentInfo.new }
644
678
 
645
- it 'has the correct value for #pre_conversion' do
646
- builder.pre_conversion.must_equal [
647
- '_v1 = FFI::MemoryPointer.new(:pointer).write_pointer nil'
679
+ it "has the correct value for #pre_conversion" do
680
+ _(builder.pre_conversion).must_equal [
681
+ "_v1 = FFI::MemoryPointer.new(:pointer).write_pointer nil"
648
682
  ]
649
683
  end
650
684
 
651
- it 'has the correct value for #post_conversion' do
652
- builder.post_conversion.must_equal [
653
- 'GirFFI::ArgHelper.check_error(_v1)'
685
+ it "has the correct value for #post_conversion" do
686
+ _(builder.post_conversion).must_equal [
687
+ "GirFFI::ArgHelper.check_error(_v1)"
654
688
  ]
655
689
  end
656
690
  end