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,30 +1,54 @@
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
 
7
7
  describe GirFFI::Builders::RegisteredTypeBuilder do
8
- describe '#setup_instance_method' do
9
- it 'restores a method that was removed' do
10
- Regress::TestObj.class_eval { remove_method 'instance_method' }
8
+ describe "#setup_instance_method" do
9
+ it "restores a method that was removed" do
10
+ Regress::TestObj.class_eval { remove_method "instance_method" }
11
11
 
12
12
  builder = Regress::TestObj.gir_ffi_builder
13
13
 
14
- builder.setup_instance_method 'instance_method'
14
+ builder.setup_instance_method "instance_method"
15
15
 
16
16
  obj = Regress::TestObj.constructor
17
- obj.must_respond_to 'instance_method'
17
+ _(obj).must_respond_to "instance_method"
18
18
  end
19
19
 
20
- it 'returns the name of the generated method' do
20
+ it "returns the name of the generated method" do
21
21
  builder = Regress::TestObj.gir_ffi_builder
22
- result = builder.setup_instance_method 'instance_method'
23
- result.must_equal 'instance_method'
22
+ result = builder.setup_instance_method "instance_method"
23
+ _(result).must_equal "instance_method"
24
24
  end
25
25
 
26
- it 'returns the name of the generated method if different from the info name' do
27
- skip 'Need some way to test this now that GLib::IConv is gone'
26
+ it "returns the name of the generated method if different from the info name" do
27
+ skip "Need some way to test this now that GLib::IConv is gone"
28
+ end
29
+ end
30
+
31
+ describe "#stub_methods" do
32
+ it "adds getter method aliases" do
33
+ instance = Regress::TestWi8021x.new
34
+ _(instance).must_respond_to :testbool
35
+ end
36
+
37
+ it "adds setter method aliases" do
38
+ instance = Regress::TestWi8021x.new
39
+ _(instance).must_respond_to :testbool=
40
+ end
41
+
42
+ it "adds getter alias for method with arguments" do
43
+ instance = Regress::TestObj.constructor
44
+ _(instance).must_respond_to :get_qdata
45
+ _(instance).must_respond_to :qdata
46
+ end
47
+
48
+ it "does not add setter alias for method with more than one argument" do
49
+ instance = Regress::TestObj.constructor
50
+ _(instance).must_respond_to :set_data
51
+ _(instance).wont_respond_to :data=
28
52
  end
29
53
  end
30
54
  end
@@ -1,406 +1,409 @@
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::ReturnValueBuilder do
6
6
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
7
7
  let(:type_info) { method_info.return_type }
8
8
  let(:ownership_transfer) { method_info.caller_owns }
9
- let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, ownership_transfer, false) }
9
+ let(:return_type_info) do
10
+ GirFFI::ReturnValueInfo.new(type_info, ownership_transfer, false)
11
+ end
10
12
  let(:builder) do
11
13
  GirFFI::Builders::ReturnValueBuilder.new(var_gen, return_type_info)
12
14
  end
13
15
 
14
- describe 'for :gint32' do
16
+ describe "for :gint32" do
15
17
  let(:method_info) do
16
- get_introspection_data('GIMarshallingTests',
17
- 'int_return_min')
18
+ get_introspection_data("GIMarshallingTests",
19
+ "int_return_min")
18
20
  end
19
21
 
20
- it 'has no statements in #post_conversion' do
21
- builder.post_conversion.must_equal []
22
+ it "has no statements in #post_conversion" do
23
+ _(builder.post_conversion).must_equal []
22
24
  end
23
25
 
24
- it 'returns the result of the c function directly' do
25
- builder.capture_variable_name.must_equal '_v1'
26
- builder.return_value_name.must_equal '_v1'
26
+ it "returns the result of the c function directly" do
27
+ _(builder.capture_variable_name).must_equal "_v1"
28
+ _(builder.return_value_name).must_equal "_v1"
27
29
  end
28
30
  end
29
31
 
30
- describe 'for :struct' do
31
- describe 'with transfer :nothing' do
32
+ describe "for :struct" do
33
+ describe "with transfer :nothing" do
32
34
  let(:method_info) do
33
- get_method_introspection_data('GIMarshallingTests',
34
- 'BoxedStruct',
35
- 'returnv')
35
+ get_method_introspection_data("GIMarshallingTests",
36
+ "BoxedStruct",
37
+ "returnv")
36
38
  end
37
39
 
38
- it 'wraps and copies the result in #post_conversion' do
39
- builder.capture_variable_name.must_equal '_v1'
40
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap_copy(_v1)']
40
+ it "wraps and copies the result in #post_conversion" do
41
+ _(builder.capture_variable_name).must_equal "_v1"
42
+ _(builder.post_conversion)
43
+ .must_equal ["_v2 = GIMarshallingTests::BoxedStruct.wrap_copy(_v1)"]
41
44
  end
42
45
 
43
- it 'returns the copied result' do
44
- builder.capture_variable_name.must_equal '_v1'
45
- builder.return_value_name.must_equal '_v2'
46
+ it "returns the copied result" do
47
+ _(builder.capture_variable_name).must_equal "_v1"
48
+ _(builder.return_value_name).must_equal "_v2"
46
49
  end
47
50
  end
48
51
  end
49
52
 
50
- describe 'for :union' do
53
+ describe "for :union" do
51
54
  let(:method_info) do
52
- get_method_introspection_data('GIMarshallingTests',
53
- 'Union',
54
- 'returnv')
55
+ get_method_introspection_data("GIMarshallingTests",
56
+ "Union",
57
+ "returnv")
55
58
  end
56
59
 
57
- it 'wraps the result in #post_conversion' do
58
- builder.capture_variable_name.must_equal '_v1'
59
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Union.wrap_copy(_v1)']
60
+ it "wraps the result in #post_conversion" do
61
+ _(builder.capture_variable_name).must_equal "_v1"
62
+ _(builder.post_conversion)
63
+ .must_equal ["_v2 = GIMarshallingTests::Union.wrap_copy(_v1)"]
60
64
  end
61
65
 
62
- it 'returns the wrapped result' do
63
- builder.capture_variable_name.must_equal '_v1'
64
- builder.return_value_name.must_equal '_v2'
66
+ it "returns the wrapped result" do
67
+ _(builder.capture_variable_name).must_equal "_v1"
68
+ _(builder.return_value_name).must_equal "_v2"
65
69
  end
66
70
  end
67
71
 
68
- describe 'for :interface' do
72
+ describe "for :interface" do
69
73
  let(:method_info) do
70
- get_method_introspection_data('Gio',
71
- 'File',
72
- 'new_for_commandline_arg')
74
+ get_method_introspection_data("Gio",
75
+ "File",
76
+ "new_for_commandline_arg")
73
77
  end
74
78
 
75
- it 'wraps the result in #post_conversion' do
76
- builder.capture_variable_name.must_equal '_v1'
77
- builder.post_conversion.must_equal ['_v2 = Gio::File.wrap(_v1)']
79
+ it "wraps the result in #post_conversion" do
80
+ _(builder.capture_variable_name).must_equal "_v1"
81
+ _(builder.post_conversion).must_equal ["_v2 = Gio::File.wrap(_v1)"]
78
82
  end
79
83
 
80
- it 'returns the wrapped result' do
81
- builder.capture_variable_name.must_equal '_v1'
82
- builder.return_value_name.must_equal '_v2'
84
+ it "returns the wrapped result" do
85
+ _(builder.capture_variable_name).must_equal "_v1"
86
+ _(builder.return_value_name).must_equal "_v2"
83
87
  end
84
88
  end
85
89
 
86
- describe 'for :object' do
87
- describe 'with full ownership transfer' do
90
+ describe "for :object" do
91
+ describe "with full ownership transfer" do
88
92
  let(:method_info) do
89
- get_method_introspection_data('GIMarshallingTests',
90
- 'Object',
91
- 'full_return')
93
+ get_method_introspection_data("GIMarshallingTests",
94
+ "Object",
95
+ "full_return")
92
96
  end
93
97
 
94
- it 'wraps the result in #post_conversion' do
95
- builder.capture_variable_name.must_equal '_v1'
96
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1)']
98
+ it "wraps the result in #post_conversion" do
99
+ _(builder.capture_variable_name).must_equal "_v1"
100
+ _(builder.post_conversion).must_equal ["_v2 = GIMarshallingTests::Object.wrap(_v1)"]
97
101
  end
98
102
 
99
- it 'returns the wrapped result' do
100
- builder.capture_variable_name.must_equal '_v1'
101
- builder.return_value_name.must_equal '_v2'
103
+ it "returns the wrapped result" do
104
+ _(builder.capture_variable_name).must_equal "_v1"
105
+ _(builder.return_value_name).must_equal "_v2"
102
106
  end
103
107
  end
104
108
 
105
- describe 'with no ownership transfer' do
109
+ describe "with no ownership transfer" do
106
110
  let(:method_info) do
107
- get_method_introspection_data('GIMarshallingTests',
108
- 'Object',
109
- 'none_return')
111
+ get_method_introspection_data("GIMarshallingTests",
112
+ "Object",
113
+ "none_return")
110
114
  end
111
115
 
112
- it 'wraps the result in #post_conversion' do
113
- builder.capture_variable_name.must_equal '_v1'
114
- builder.post_conversion.
115
- must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1).tap { |it| it && it.ref }']
116
+ it "wraps the result in #post_conversion" do
117
+ _(builder.capture_variable_name).must_equal "_v1"
118
+ _(builder.post_conversion)
119
+ .must_equal [
120
+ "_v2 = GIMarshallingTests::Object.wrap(_v1).tap { |it| it && it.ref }"
121
+ ]
116
122
  end
117
123
 
118
- it 'returns the wrapped result' do
119
- builder.capture_variable_name.must_equal '_v1'
120
- builder.return_value_name.must_equal '_v2'
124
+ it "returns the wrapped result" do
125
+ _(builder.capture_variable_name).must_equal "_v1"
126
+ _(builder.return_value_name).must_equal "_v2"
121
127
  end
122
128
  end
123
129
  end
124
130
 
125
- describe 'for :strv' do
131
+ describe "for :strv" do
126
132
  let(:method_info) do
127
- get_method_introspection_data('GLib',
128
- 'KeyFile',
129
- 'get_locale_string_list')
133
+ get_method_introspection_data("GLib",
134
+ "KeyFile",
135
+ "get_locale_string_list")
130
136
  end
131
137
 
132
- it 'wraps the result in #post_conversion' do
133
- builder.capture_variable_name.must_equal '_v1'
134
- builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1)']
138
+ it "wraps the result in #post_conversion" do
139
+ _(builder.capture_variable_name).must_equal "_v1"
140
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Strv.wrap(_v1)"]
135
141
  end
136
142
 
137
- it 'returns the wrapped result' do
138
- builder.capture_variable_name.must_equal '_v1'
139
- builder.return_value_name.must_equal '_v2'
143
+ it "returns the wrapped result" do
144
+ _(builder.capture_variable_name).must_equal "_v1"
145
+ _(builder.return_value_name).must_equal "_v2"
140
146
  end
141
147
  end
142
148
 
143
- describe 'for :zero_terminated' do
149
+ describe "for :zero_terminated" do
144
150
  let(:method_info) do
145
- get_method_introspection_data('GLib',
146
- 'Variant',
147
- 'dup_bytestring')
148
- end
149
- before do
150
- skip unless type_info.zero_terminated?
151
+ get_method_introspection_data("GLib",
152
+ "Variant",
153
+ "dup_bytestring")
151
154
  end
152
155
 
153
- it 'wraps the result in #post_conversion' do
154
- builder.capture_variable_name.must_equal '_v1'
155
- builder.post_conversion.must_equal ['_v2 = GirFFI::ZeroTerminated.wrap(:guint8, _v1)']
156
+ it "wraps the result in #post_conversion" do
157
+ _(builder.capture_variable_name).must_equal "_v1"
158
+ _(builder.post_conversion)
159
+ .must_equal ["_v2 = GirFFI::ZeroTerminated.wrap(:guint8, _v1)"]
156
160
  end
157
161
 
158
- it 'returns the wrapped result' do
159
- builder.capture_variable_name.must_equal '_v1'
160
- builder.return_value_name.must_equal '_v2'
162
+ it "returns the wrapped result" do
163
+ _(builder.capture_variable_name).must_equal "_v1"
164
+ _(builder.return_value_name).must_equal "_v2"
161
165
  end
162
166
  end
163
167
 
164
- describe 'for :byte_array' do
168
+ describe "for :byte_array" do
165
169
  let(:method_info) do
166
- get_introspection_data('GIMarshallingTests',
167
- 'bytearray_full_return')
170
+ get_introspection_data("GIMarshallingTests",
171
+ "bytearray_full_return")
168
172
  end
169
173
 
170
- it 'wraps the result in #post_conversion' do
171
- builder.capture_variable_name.must_equal '_v1'
172
- builder.post_conversion.must_equal ['_v2 = GLib::ByteArray.wrap(_v1)']
174
+ it "wraps the result in #post_conversion" do
175
+ _(builder.capture_variable_name).must_equal "_v1"
176
+ _(builder.post_conversion).must_equal ["_v2 = GLib::ByteArray.wrap(_v1)"]
173
177
  end
174
178
 
175
- it 'returns the wrapped result' do
176
- builder.capture_variable_name.must_equal '_v1'
177
- builder.return_value_name.must_equal '_v2'
179
+ it "returns the wrapped result" do
180
+ _(builder.capture_variable_name).must_equal "_v1"
181
+ _(builder.return_value_name).must_equal "_v2"
178
182
  end
179
183
  end
180
184
 
181
- describe 'for :ptr_array' do
185
+ describe "for :ptr_array" do
182
186
  let(:method_info) do
183
- get_introspection_data('GIMarshallingTests',
184
- 'gptrarray_utf8_none_return')
187
+ get_introspection_data("GIMarshallingTests",
188
+ "gptrarray_utf8_none_return")
185
189
  end
186
190
 
187
- it 'wraps the result in #post_conversion' do
188
- builder.capture_variable_name.must_equal '_v1'
189
- builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1)']
191
+ it "wraps the result in #post_conversion" do
192
+ _(builder.capture_variable_name).must_equal "_v1"
193
+ _(builder.post_conversion).must_equal ["_v2 = GLib::PtrArray.wrap(:utf8, _v1)"]
190
194
  end
191
195
 
192
- it 'returns the wrapped result' do
193
- builder.capture_variable_name.must_equal '_v1'
194
- builder.return_value_name.must_equal '_v2'
196
+ it "returns the wrapped result" do
197
+ _(builder.capture_variable_name).must_equal "_v1"
198
+ _(builder.return_value_name).must_equal "_v2"
195
199
  end
196
200
  end
197
201
 
198
- describe 'for :glist' do
202
+ describe "for :glist" do
199
203
  let(:method_info) do
200
- get_introspection_data('GIMarshallingTests',
201
- 'glist_int_none_return')
204
+ get_introspection_data("GIMarshallingTests",
205
+ "glist_int_none_return")
202
206
  end
203
207
 
204
- it 'wraps the result in #post_conversion' do
205
- builder.capture_variable_name.must_equal '_v1'
206
- builder.post_conversion.must_equal ['_v2 = GLib::List.wrap(:gint32, _v1)']
208
+ it "wraps the result in #post_conversion" do
209
+ _(builder.capture_variable_name).must_equal "_v1"
210
+ _(builder.post_conversion).must_equal ["_v2 = GLib::List.wrap(:gint32, _v1)"]
207
211
  end
208
212
 
209
- it 'returns the wrapped result' do
210
- builder.capture_variable_name.must_equal '_v1'
211
- builder.return_value_name.must_equal '_v2'
213
+ it "returns the wrapped result" do
214
+ _(builder.capture_variable_name).must_equal "_v1"
215
+ _(builder.return_value_name).must_equal "_v2"
212
216
  end
213
217
  end
214
218
 
215
- describe 'for :gslist' do
219
+ describe "for :gslist" do
216
220
  let(:method_info) do
217
- get_introspection_data('GIMarshallingTests',
218
- 'gslist_int_none_return')
221
+ get_introspection_data("GIMarshallingTests",
222
+ "gslist_int_none_return")
219
223
  end
220
224
 
221
- it 'wraps the result in #post_conversion' do
222
- builder.capture_variable_name.must_equal '_v1'
223
- builder.post_conversion.must_equal ['_v2 = GLib::SList.wrap(:gint32, _v1)']
225
+ it "wraps the result in #post_conversion" do
226
+ _(builder.capture_variable_name).must_equal "_v1"
227
+ _(builder.post_conversion).must_equal ["_v2 = GLib::SList.wrap(:gint32, _v1)"]
224
228
  end
225
229
 
226
- it 'returns the wrapped result' do
227
- builder.capture_variable_name.must_equal '_v1'
228
- builder.return_value_name.must_equal '_v2'
230
+ it "returns the wrapped result" do
231
+ _(builder.capture_variable_name).must_equal "_v1"
232
+ _(builder.return_value_name).must_equal "_v2"
229
233
  end
230
234
  end
231
235
 
232
- describe 'for :ghash' do
236
+ describe "for :ghash" do
233
237
  let(:method_info) do
234
- get_introspection_data('GIMarshallingTests',
235
- 'ghashtable_int_none_return')
238
+ get_introspection_data("GIMarshallingTests",
239
+ "ghashtable_int_none_return")
236
240
  end
237
241
 
238
- it 'wraps the result in #post_conversion' do
239
- builder.capture_variable_name.must_equal '_v1'
240
- builder.post_conversion.must_equal ['_v2 = GLib::HashTable.wrap([:gint32, :gint32], _v1)']
242
+ it "wraps the result in #post_conversion" do
243
+ _(builder.capture_variable_name).must_equal "_v1"
244
+ _(builder.post_conversion)
245
+ .must_equal ["_v2 = GLib::HashTable.wrap([:gint32, :gint32], _v1)"]
241
246
  end
242
247
 
243
- it 'returns the wrapped result' do
244
- builder.capture_variable_name.must_equal '_v1'
245
- builder.return_value_name.must_equal '_v2'
248
+ it "returns the wrapped result" do
249
+ _(builder.capture_variable_name).must_equal "_v1"
250
+ _(builder.return_value_name).must_equal "_v2"
246
251
  end
247
252
  end
248
253
 
249
- describe 'for :array' do
254
+ describe "for :array" do
250
255
  let(:method_info) do
251
- get_introspection_data('GIMarshallingTests',
252
- 'garray_int_none_return')
256
+ get_introspection_data("GIMarshallingTests",
257
+ "garray_int_none_return")
253
258
  end
254
259
 
255
- it 'wraps the result in #post_conversion' do
256
- builder.capture_variable_name.must_equal '_v1'
257
- builder.post_conversion.must_equal ['_v2 = GLib::Array.wrap(:gint32, _v1)']
260
+ it "wraps the result in #post_conversion" do
261
+ _(builder.capture_variable_name).must_equal "_v1"
262
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Array.wrap(:gint32, _v1)"]
258
263
  end
259
264
 
260
- it 'returns the wrapped result' do
261
- builder.capture_variable_name.must_equal '_v1'
262
- builder.return_value_name.must_equal '_v2'
265
+ it "returns the wrapped result" do
266
+ _(builder.capture_variable_name).must_equal "_v1"
267
+ _(builder.return_value_name).must_equal "_v2"
263
268
  end
264
269
  end
265
270
 
266
- describe 'for :error' do
271
+ describe "for :error" do
267
272
  let(:method_info) do
268
- get_introspection_data('GIMarshallingTests',
269
- 'gerror_return')
273
+ get_introspection_data("GIMarshallingTests",
274
+ "gerror_return")
270
275
  end
271
276
 
272
- it 'wraps the result in #post_conversion' do
273
- builder.capture_variable_name.must_equal '_v1'
274
- builder.post_conversion.must_equal ['_v2 = GLib::Error.wrap(_v1)']
277
+ it "wraps the result in #post_conversion" do
278
+ _(builder.capture_variable_name).must_equal "_v1"
279
+ _(builder.post_conversion).must_equal ["_v2 = GLib::Error.wrap(_v1)"]
275
280
  end
276
281
 
277
- it 'returns the wrapped result' do
278
- builder.capture_variable_name.must_equal '_v1'
279
- builder.return_value_name.must_equal '_v2'
282
+ it "returns the wrapped result" do
283
+ _(builder.capture_variable_name).must_equal "_v1"
284
+ _(builder.return_value_name).must_equal "_v2"
280
285
  end
281
286
  end
282
287
 
283
- describe 'for :c' do
284
- describe 'with fixed size' do
288
+ describe "for :c" do
289
+ describe "with fixed size" do
285
290
  let(:method_info) do
286
- get_introspection_data('GIMarshallingTests',
287
- 'array_fixed_int_return')
291
+ get_introspection_data("GIMarshallingTests",
292
+ "array_fixed_int_return")
288
293
  end
289
294
 
290
- it 'converts the result in #post_conversion' do
291
- builder.capture_variable_name.must_equal '_v1'
292
- builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1)']
295
+ it "converts the result in #post_conversion" do
296
+ _(builder.capture_variable_name).must_equal "_v1"
297
+ _(builder.post_conversion)
298
+ .must_equal ["_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1)"]
293
299
  end
294
300
 
295
- it 'returns the wrapped result' do
296
- builder.capture_variable_name.must_equal '_v1'
297
- builder.return_value_name.must_equal '_v2'
301
+ it "returns the wrapped result" do
302
+ _(builder.capture_variable_name).must_equal "_v1"
303
+ _(builder.return_value_name).must_equal "_v2"
298
304
  end
299
305
  end
300
306
 
301
- describe 'with separate size parameter' do
307
+ describe "with separate size parameter" do
302
308
  let(:length_argument) { Object.new }
303
309
  let(:method_info) do
304
- get_method_introspection_data('GIMarshallingTests',
305
- 'Object',
306
- 'method_array_return')
310
+ get_method_introspection_data("GIMarshallingTests",
311
+ "Object",
312
+ "method_array_return")
307
313
  end
308
314
 
309
315
  before do
310
- allow(length_argument).to receive(:post_converted_name).and_return 'bar'
316
+ allow(length_argument).to receive(:post_converted_name).and_return "bar"
311
317
  builder.length_arg = length_argument
312
318
  end
313
319
 
314
- it 'converts the result in #post_conversion' do
315
- builder.capture_variable_name.must_equal '_v1'
316
- builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1)']
320
+ it "converts the result in #post_conversion" do
321
+ _(builder.capture_variable_name).must_equal "_v1"
322
+ _(builder.post_conversion)
323
+ .must_equal ["_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1)"]
317
324
  end
318
325
 
319
- it 'returns the wrapped result' do
320
- builder.capture_variable_name.must_equal '_v1'
321
- builder.return_value_name.must_equal '_v2'
326
+ it "returns the wrapped result" do
327
+ _(builder.capture_variable_name).must_equal "_v1"
328
+ _(builder.return_value_name).must_equal "_v2"
322
329
  end
323
330
  end
324
331
  end
325
332
 
326
- describe 'for :utf8' do
327
- describe 'with no transfer' do
333
+ describe "for :utf8" do
334
+ describe "with no transfer" do
328
335
  let(:method_info) do
329
- get_introspection_data('GIMarshallingTests', 'utf8_none_return')
336
+ get_introspection_data("GIMarshallingTests", "utf8_none_return")
330
337
  end
331
338
 
332
- it 'converts the result in #post_conversion' do
333
- builder.capture_variable_name.must_equal '_v1'
334
- builder.post_conversion.must_equal ['_v2 = _v1.to_utf8']
339
+ it "converts the result in #post_conversion" do
340
+ _(builder.capture_variable_name).must_equal "_v1"
341
+ _(builder.post_conversion).must_equal ["_v2 = _v1.to_utf8"]
335
342
  end
336
343
 
337
- it 'returns the converted result' do
338
- builder.capture_variable_name.must_equal '_v1'
339
- builder.return_value_name.must_equal '_v2'
344
+ it "returns the converted result" do
345
+ _(builder.capture_variable_name).must_equal "_v1"
346
+ _(builder.return_value_name).must_equal "_v2"
340
347
  end
341
348
  end
342
349
 
343
- describe 'with full transfer' do
350
+ describe "with full transfer" do
344
351
  let(:method_info) do
345
- get_introspection_data('GIMarshallingTests', 'utf8_full_return')
352
+ get_introspection_data("GIMarshallingTests", "utf8_full_return")
346
353
  end
347
354
 
348
- it 'autoreleases and converts the result in #post_conversion' do
349
- builder.capture_variable_name.must_equal '_v1'
350
- builder.post_conversion.
351
- must_equal ['_v2 = GirFFI::AllocationHelper.free_after _v1, &:to_utf8']
355
+ it "autoreleases and converts the result in #post_conversion" do
356
+ _(builder.capture_variable_name).must_equal "_v1"
357
+ _(builder.post_conversion)
358
+ .must_equal ["_v2 = GirFFI::AllocationHelper.free_after _v1, &:to_utf8"]
352
359
  end
353
360
 
354
- it 'returns the converted result' do
355
- builder.capture_variable_name.must_equal '_v1'
356
- builder.return_value_name.must_equal '_v2'
361
+ it "returns the converted result" do
362
+ _(builder.capture_variable_name).must_equal "_v1"
363
+ _(builder.return_value_name).must_equal "_v2"
357
364
  end
358
365
  end
359
366
  end
360
367
 
361
- describe 'for :void pointer' do
368
+ describe "for :void pointer" do
362
369
  let(:ownership_transfer) { :nothing }
363
370
  let(:callback_info) do
364
- get_introspection_data('GIMarshallingTests', 'CallbackIntInt')
371
+ get_introspection_data("GIMarshallingTests", "CallbackIntInt")
365
372
  end
366
373
  let(:type_info) { callback_info.args[1].argument_type }
367
374
 
368
- before do
369
- skip unless callback_info
370
- end
371
-
372
- it 'has no statements in #post_conversion' do
373
- builder.post_conversion.must_equal []
375
+ it "has no statements in #post_conversion" do
376
+ _(builder.post_conversion).must_equal []
374
377
  end
375
378
 
376
- it 'returns the result of the c function directly' do
377
- builder.capture_variable_name.must_equal '_v1'
378
- builder.return_value_name.must_equal '_v1'
379
+ it "returns the result of the c function directly" do
380
+ _(builder.capture_variable_name).must_equal "_v1"
381
+ _(builder.return_value_name).must_equal "_v1"
379
382
  end
380
383
  end
381
384
 
382
- describe 'for :void' do
385
+ describe "for :void" do
383
386
  let(:method_info) do
384
- get_method_introspection_data('Regress', 'TestObj', 'null_out')
387
+ get_method_introspection_data("Regress", "TestObj", "null_out")
385
388
  end
386
389
 
387
- it 'has no statements in #post_conversion' do
388
- builder.post_conversion.must_equal []
390
+ it "has no statements in #post_conversion" do
391
+ _(builder.post_conversion).must_equal []
389
392
  end
390
393
 
391
- it 'marks itself as irrelevant' do
392
- builder.relevant?.must_equal false
394
+ it "marks itself as irrelevant" do
395
+ _(builder.relevant?).must_equal false
393
396
  end
394
397
 
395
- it 'returns nothing' do
396
- builder.return_value_name.must_be_nil
398
+ it "returns nothing" do
399
+ _(builder.return_value_name).must_be_nil
397
400
  end
398
401
  end
399
402
 
400
- describe 'for a closure argument' do
403
+ describe "for a closure argument" do
401
404
  let(:ownership_transfer) { :nothing }
402
405
  let(:callback_info) do
403
- get_introspection_data('Regress', 'TestCallbackUserData')
406
+ get_introspection_data("Regress", "TestCallbackUserData")
404
407
  end
405
408
  let(:type_info) { callback_info.args[0].argument_type }
406
409
 
@@ -408,33 +411,34 @@ describe GirFFI::Builders::ReturnValueBuilder do
408
411
  builder.mark_as_user_data :dummy
409
412
  end
410
413
 
411
- it 'fetches the stored object in #post_conversion' do
412
- builder.capture_variable_name.must_equal '_v1'
413
- builder.post_conversion.must_equal ['_v2 = GirFFI::ArgHelper::OBJECT_STORE.fetch(_v1)']
414
+ it "fetches the stored object in #post_conversion" do
415
+ _(builder.capture_variable_name).must_equal "_v1"
416
+ _(builder.post_conversion)
417
+ .must_equal ["_v2 = GirFFI::ArgHelper::OBJECT_STORE.fetch(_v1)"]
414
418
  end
415
419
 
416
- it 'returns the stored object' do
417
- builder.capture_variable_name.must_equal '_v1'
418
- builder.return_value_name.must_equal '_v2'
420
+ it "returns the stored object" do
421
+ _(builder.capture_variable_name).must_equal "_v1"
422
+ _(builder.return_value_name).must_equal "_v2"
419
423
  end
420
424
  end
421
425
 
422
- describe 'for a skipped return value' do
426
+ describe "for a skipped return value" do
423
427
  let(:method_info) do
424
- get_method_introspection_data('Regress', 'TestObj', 'skip_return_val')
428
+ get_method_introspection_data("Regress", "TestObj", "skip_return_val")
425
429
  end
426
430
  let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, :nothing, true) }
427
431
 
428
- it 'has no statements in #post_conversion' do
429
- builder.post_conversion.must_equal []
432
+ it "has no statements in #post_conversion" do
433
+ _(builder.post_conversion).must_equal []
430
434
  end
431
435
 
432
- it 'marks itself as irrelevant' do
433
- builder.relevant?.must_equal false
436
+ it "marks itself as irrelevant" do
437
+ _(builder.relevant?).must_equal false
434
438
  end
435
439
 
436
- it 'returns nothing' do
437
- builder.return_value_name.must_be_nil
440
+ it "returns nothing" do
441
+ _(builder.return_value_name).must_be_nil
438
442
  end
439
443
  end
440
444
  end