gir_ffi 0.14.1 → 0.15.0

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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +21 -0
  3. data/Gemfile +6 -4
  4. data/README.md +4 -4
  5. data/Rakefile +5 -5
  6. data/lib/ffi-glib/array.rb +14 -4
  7. data/lib/ffi-glib/byte_array.rb +7 -2
  8. data/lib/ffi-glib/container_class_methods.rb +1 -1
  9. data/lib/ffi-glib/error.rb +1 -1
  10. data/lib/ffi-glib/hash_table.rb +3 -3
  11. data/lib/ffi-glib/list.rb +1 -1
  12. data/lib/ffi-glib/list_methods.rb +1 -1
  13. data/lib/ffi-glib/main_loop.rb +3 -3
  14. data/lib/ffi-glib/ptr_array.rb +30 -8
  15. data/lib/ffi-glib/s_list.rb +1 -1
  16. data/lib/ffi-glib/variant.rb +1 -1
  17. data/lib/ffi-glib.rb +16 -16
  18. data/lib/ffi-gobject/object.rb +23 -32
  19. data/lib/ffi-gobject/param_spec.rb +1 -1
  20. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  21. data/lib/ffi-gobject/value.rb +37 -28
  22. data/lib/ffi-gobject.rb +13 -13
  23. data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
  24. data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
  25. data/lib/ffi-gobject_introspection/i_base_info.rb +27 -17
  26. data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
  27. data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
  28. data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
  29. data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
  30. data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
  32. data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
  33. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  34. data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
  35. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
  36. data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
  37. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
  38. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
  39. data/lib/ffi-gobject_introspection/lib.rb +30 -19
  40. data/lib/ffi-gobject_introspection/strv.rb +1 -1
  41. data/lib/ffi-gobject_introspection.rb +20 -20
  42. data/lib/gir_ffi/allocation_helper.rb +1 -1
  43. data/lib/gir_ffi/arg_helper.rb +4 -4
  44. data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -23
  45. data/lib/gir_ffi/boolean.rb +1 -1
  46. data/lib/gir_ffi/boxed_base.rb +1 -1
  47. data/lib/gir_ffi/builder.rb +18 -10
  48. data/lib/gir_ffi/builders/argument_builder.rb +17 -17
  49. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  50. data/lib/gir_ffi/builders/base_method_builder.rb +7 -7
  51. data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
  52. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  53. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
  54. data/lib/gir_ffi/builders/callback_argument_builder.rb +8 -8
  55. data/lib/gir_ffi/builders/callback_builder.rb +3 -3
  56. data/lib/gir_ffi/builders/callback_return_value_builder.rb +2 -2
  57. data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
  58. data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
  59. data/lib/gir_ffi/builders/constant_builder.rb +1 -1
  60. data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
  61. data/lib/gir_ffi/builders/enum_builder.rb +2 -2
  62. data/lib/gir_ffi/builders/field_builder.rb +16 -15
  63. data/lib/gir_ffi/builders/flags_builder.rb +2 -2
  64. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
  65. data/lib/gir_ffi/builders/function_builder.rb +11 -5
  66. data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
  67. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
  68. data/lib/gir_ffi/builders/interface_builder.rb +2 -2
  69. data/lib/gir_ffi/builders/mapping_method_builder.rb +9 -9
  70. data/lib/gir_ffi/builders/marshalling_method_builder.rb +7 -7
  71. data/lib/gir_ffi/builders/method_template.rb +1 -1
  72. data/lib/gir_ffi/builders/module_builder.rb +4 -6
  73. data/lib/gir_ffi/builders/object_builder.rb +6 -6
  74. data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
  75. data/lib/gir_ffi/builders/property_builder.rb +13 -12
  76. data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
  77. data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
  78. data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
  79. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
  80. data/lib/gir_ffi/builders/signal_closure_builder.rb +2 -2
  81. data/lib/gir_ffi/builders/struct_builder.rb +4 -4
  82. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  83. data/lib/gir_ffi/builders/type_builder.rb +12 -12
  84. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
  85. data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
  86. data/lib/gir_ffi/builders/union_builder.rb +4 -4
  87. data/lib/gir_ffi/builders/user_defined_builder.rb +2 -2
  88. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  89. data/lib/gir_ffi/builders/vfunc_builder.rb +6 -6
  90. data/lib/gir_ffi/builders/with_layout.rb +2 -2
  91. data/lib/gir_ffi/callback_base.rb +1 -1
  92. data/lib/gir_ffi/class_base.rb +5 -5
  93. data/lib/gir_ffi/core.rb +19 -20
  94. data/lib/gir_ffi/enum_base.rb +1 -1
  95. data/lib/gir_ffi/enum_like_base.rb +2 -2
  96. data/lib/gir_ffi/error_argument_info.rb +2 -2
  97. data/lib/gir_ffi/error_type_info.rb +1 -1
  98. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  99. data/lib/gir_ffi/ffi_ext.rb +1 -1
  100. data/lib/gir_ffi/flags_base.rb +1 -1
  101. data/lib/gir_ffi/in_pointer.rb +10 -0
  102. data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
  103. data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
  104. data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
  105. data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
  106. data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
  107. data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
  108. data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
  109. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
  110. data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
  111. data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
  112. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
  113. data/lib/gir_ffi/info_ext/i_value_info.rb +2 -2
  114. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  115. data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
  116. data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
  117. data/lib/gir_ffi/info_ext.rb +15 -15
  118. data/lib/gir_ffi/interface_base.rb +3 -3
  119. data/lib/gir_ffi/lib_c.rb +1 -1
  120. data/lib/gir_ffi/method_stubber.rb +1 -1
  121. data/lib/gir_ffi/module_base.rb +1 -1
  122. data/lib/gir_ffi/object_base.rb +3 -4
  123. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  124. data/lib/gir_ffi/receiver_type_info.rb +2 -2
  125. data/lib/gir_ffi/registered_type_base.rb +1 -1
  126. data/lib/gir_ffi/sized_array.rb +4 -2
  127. data/lib/gir_ffi/struct.rb +1 -1
  128. data/lib/gir_ffi/struct_base.rb +1 -1
  129. data/lib/gir_ffi/type_map.rb +2 -23
  130. data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
  131. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  132. data/lib/gir_ffi/union.rb +1 -1
  133. data/lib/gir_ffi/union_base.rb +1 -1
  134. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  135. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  136. data/lib/gir_ffi/version.rb +1 -1
  137. data/lib/gir_ffi-base/gobject/lib.rb +3 -2
  138. data/lib/gir_ffi-base/gobject.rb +26 -25
  139. data/lib/gir_ffi-base.rb +1 -1
  140. data/lib/gir_ffi.rb +3 -3
  141. data/tasks/test.rake +3 -2
  142. data/test/base_test_helper.rb +16 -9
  143. data/test/ffi-glib/array_test.rb +71 -56
  144. data/test/ffi-glib/byte_array_test.rb +13 -7
  145. data/test/ffi-glib/bytes_test.rb +24 -19
  146. data/test/ffi-glib/closure_test.rb +11 -11
  147. data/test/ffi-glib/destroy_notify_test.rb +6 -6
  148. data/test/ffi-glib/hash_table_test.rb +27 -27
  149. data/test/ffi-glib/list_test.rb +22 -22
  150. data/test/ffi-glib/main_loop_test.rb +12 -12
  151. data/test/ffi-glib/ptr_array_test.rb +39 -39
  152. data/test/ffi-glib/ruby_closure_test.rb +10 -10
  153. data/test/ffi-glib/s_list_test.rb +20 -20
  154. data/test/ffi-glib/strv_test.rb +19 -19
  155. data/test/ffi-glib/variant_test.rb +5 -5
  156. data/test/ffi-gobject/gobject_test.rb +48 -44
  157. data/test/ffi-gobject/object_class_test.rb +8 -8
  158. data/test/ffi-gobject/object_test.rb +49 -67
  159. data/test/ffi-gobject/param_spec_test.rb +12 -12
  160. data/test/ffi-gobject/value_test.rb +145 -125
  161. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +8 -8
  162. data/test/ffi-gobject_introspection/i_base_info_test.rb +15 -16
  163. data/test/ffi-gobject_introspection/i_constant_info_test.rb +9 -13
  164. data/test/ffi-gobject_introspection/i_enum_info_test.rb +7 -7
  165. data/test/ffi-gobject_introspection/i_function_info_test.rb +1 -1
  166. data/test/ffi-gobject_introspection/i_interface_info_test.rb +10 -10
  167. data/test/ffi-gobject_introspection/i_object_info_test.rb +23 -23
  168. data/test/ffi-gobject_introspection/i_property_info_test.rb +19 -19
  169. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +10 -10
  170. data/test/ffi-gobject_introspection/i_repository_test.rb +31 -31
  171. data/test/ffi-gobject_introspection/i_struct_info_test.rb +10 -10
  172. data/test/ffi-gobject_introspection/i_type_info_test.rb +12 -15
  173. data/test/ffi-gobject_introspection/i_union_info_test.rb +7 -7
  174. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +16 -16
  175. data/test/ffi-gobject_introspection/lib_test.rb +3 -3
  176. data/test/ffi-gobject_introspection/strv_test.rb +9 -9
  177. data/test/ffi-gobject_test.rb +44 -44
  178. data/test/gir_ffi/allocation_helper_test.rb +13 -13
  179. data/test/gir_ffi/arg_helper_test.rb +63 -64
  180. data/test/gir_ffi/boolean_test.rb +20 -20
  181. data/test/gir_ffi/boxed_base_test.rb +18 -18
  182. data/test/gir_ffi/builder_test.rb +115 -93
  183. data/test/gir_ffi/builders/argument_builder_test.rb +280 -286
  184. data/test/gir_ffi/builders/base_argument_builder_test.rb +1 -1
  185. data/test/gir_ffi/builders/callback_argument_builder_test.rb +53 -56
  186. data/test/gir_ffi/builders/callback_builder_test.rb +71 -72
  187. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +36 -40
  188. data/test/gir_ffi/builders/constant_builder_test.rb +1 -1
  189. data/test/gir_ffi/builders/constructor_builder_test.rb +10 -10
  190. data/test/gir_ffi/builders/enum_builder_test.rb +10 -10
  191. data/test/gir_ffi/builders/field_builder_test.rb +42 -42
  192. data/test/gir_ffi/builders/function_builder_test.rb +236 -224
  193. data/test/gir_ffi/builders/initializer_builder_test.rb +14 -14
  194. data/test/gir_ffi/builders/interface_builder_test.rb +9 -9
  195. data/test/gir_ffi/builders/module_builder_test.rb +18 -18
  196. data/test/gir_ffi/builders/object_builder_test.rb +38 -38
  197. data/test/gir_ffi/builders/property_builder_test.rb +91 -94
  198. data/test/gir_ffi/builders/registered_type_builder_test.rb +35 -11
  199. data/test/gir_ffi/builders/return_value_builder_test.rb +215 -222
  200. data/test/gir_ffi/builders/signal_closure_builder_test.rb +122 -113
  201. data/test/gir_ffi/builders/struct_builder_test.rb +32 -32
  202. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +8 -14
  203. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +23 -23
  204. data/test/gir_ffi/builders/union_builder_test.rb +12 -15
  205. data/test/gir_ffi/builders/user_defined_builder_test.rb +147 -147
  206. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +40 -40
  207. data/test/gir_ffi/builders/vfunc_builder_test.rb +145 -157
  208. data/test/gir_ffi/callback_base_test.rb +9 -9
  209. data/test/gir_ffi/class_base_test.rb +49 -51
  210. data/test/gir_ffi/core_test.rb +32 -32
  211. data/test/gir_ffi/enum_base_test.rb +19 -19
  212. data/test/gir_ffi/error_type_info_test.rb +23 -23
  213. data/test/gir_ffi/ffi_ext/pointer_test.rb +5 -5
  214. data/test/gir_ffi/g_type_test.rb +11 -11
  215. data/test/gir_ffi/in_pointer_test.rb +70 -50
  216. data/test/gir_ffi/info_ext/i_callable_info_test.rb +5 -5
  217. data/test/gir_ffi/info_ext/i_callback_info_test.rb +4 -4
  218. data/test/gir_ffi/info_ext/i_field_info_test.rb +6 -6
  219. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -17
  220. data/test/gir_ffi/info_ext/i_signal_info_test.rb +8 -8
  221. data/test/gir_ffi/info_ext/i_type_info_test.rb +229 -215
  222. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +4 -4
  223. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +8 -8
  224. data/test/gir_ffi/info_ext/safe_function_name_test.rb +8 -8
  225. data/test/gir_ffi/interface_base_test.rb +8 -8
  226. data/test/gir_ffi/method_stubber_test.rb +19 -19
  227. data/test/gir_ffi/object_base_test.rb +19 -19
  228. data/test/gir_ffi/object_store_test.rb +13 -13
  229. data/test/gir_ffi/receiver_argument_info_test.rb +15 -15
  230. data/test/gir_ffi/sized_array_test.rb +68 -68
  231. data/test/gir_ffi/struct_base_test.rb +8 -8
  232. data/test/gir_ffi/struct_like_base_test.rb +64 -64
  233. data/test/gir_ffi/type_map_test.rb +6 -6
  234. data/test/gir_ffi/unintrospectable_type_info_test.rb +33 -33
  235. data/test/gir_ffi/union_base_test.rb +8 -8
  236. data/test/gir_ffi/user_defined_object_info_test.rb +34 -34
  237. data/test/gir_ffi/user_defined_property_info_test.rb +16 -16
  238. data/test/gir_ffi/variable_name_generator_test.rb +8 -8
  239. data/test/gir_ffi/version_test.rb +4 -4
  240. data/test/gir_ffi/zero_terminated_test.rb +34 -34
  241. data/test/gir_ffi_test_helper.rb +3 -3
  242. data/test/integration/callback_exceptions_test.rb +17 -21
  243. data/test/integration/derived_classes_test.rb +13 -13
  244. data/test/integration/generated_everything_test.rb +224 -224
  245. data/test/integration/generated_gimarshallingtests_test.rb +1118 -1017
  246. data/test/integration/generated_gio_test.rb +36 -36
  247. data/test/integration/generated_glib_test.rb +4 -6
  248. data/test/integration/generated_gobject_test.rb +43 -35
  249. data/test/integration/generated_gst_test.rb +16 -16
  250. data/test/integration/generated_gtk_source_test.rb +22 -17
  251. data/test/integration/generated_gtop_test.rb +8 -15
  252. data/test/integration/generated_pango_ft2_test.rb +2 -2
  253. data/test/integration/generated_pango_test.rb +4 -4
  254. data/test/integration/generated_regress_test.rb +1809 -1621
  255. data/test/integration/generated_secret_test.rb +8 -11
  256. data/test/integration/generated_utility_test.rb +81 -81
  257. data/test/integration/generated_warnlib_test.rb +13 -19
  258. data/test/integration/method_lookup_test.rb +6 -6
  259. data/test/introspection_test_helper.rb +48 -7
  260. data/test/minitest/stats_plugin.rb +1 -1
  261. metadata +11 -28
  262. data/lib/ffi-glib/array_methods.rb +0 -16
  263. data/test/gir_ffi/in_out_pointer_test.rb +0 -56
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  describe GirFFI::Builders::BaseArgumentBuilder do
6
6
  end
@@ -1,71 +1,69 @@
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::CallbackArgumentBuilder do
6
6
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
7
7
  let(:builder) { GirFFI::Builders::CallbackArgumentBuilder.new(var_gen, arg_info) }
8
8
 
9
- describe 'for an argument with direction :out' do
10
- describe 'for :zero_terminated' do
9
+ describe "for an argument with direction :out" do
10
+ describe "for :zero_terminated" do
11
11
  let(:vfunc_info) do
12
- get_vfunc_introspection_data('GIMarshallingTests', 'Object',
13
- 'vfunc_array_out_parameter')
12
+ get_vfunc_introspection_data("GIMarshallingTests", "Object",
13
+ "vfunc_array_out_parameter")
14
14
  end
15
15
  let(:arg_info) { vfunc_info.args[0] }
16
16
 
17
- before { skip unless vfunc_info }
18
-
19
- it 'has the correct value for #pre_conversion' do
20
- builder.pre_conversion.must_equal ['_v1 = a']
17
+ it "has the correct value for #pre_conversion" do
18
+ _(builder.pre_conversion).must_equal ["_v1 = a"]
21
19
  end
22
20
 
23
- it 'has the correct value for #post_conversion' do
24
- builder.post_conversion.must_equal ['_v1.put_pointer 0, GirFFI::ZeroTerminated.from(:gfloat, _v2)']
21
+ it "has the correct value for #post_conversion" do
22
+ _(builder.post_conversion).must_equal ["_v1.put_pointer 0, GirFFI::ZeroTerminated.from(:gfloat, _v2)"]
25
23
  end
26
24
  end
27
25
 
28
- describe 'when the argument is allocated by us, the callee' do
26
+ describe "when the argument is allocated by us, the callee" do
29
27
  let(:vfunc_info) do
30
- get_vfunc_introspection_data('GIMarshallingTests', 'Object',
31
- 'method_int8_arg_and_out_callee')
28
+ get_vfunc_introspection_data("GIMarshallingTests", "Object",
29
+ "method_int8_arg_and_out_callee")
32
30
  end
33
31
 
34
32
  let(:arg_info) { vfunc_info.args[1] }
35
33
 
36
- it 'has the correct value for #pre_conversion' do
37
- builder.pre_conversion.must_equal ['_v1 = FFI::MemoryPointer.new(:int8).tap { |ptr| out.put_pointer 0, ptr }']
34
+ it "has the correct value for #pre_conversion" do
35
+ _(builder.pre_conversion).must_equal ["_v1 = FFI::MemoryPointer.new(:int8).tap { |ptr| out.put_pointer 0, ptr }"]
38
36
  end
39
37
 
40
- it 'has the correct value for #post_conversion' do
41
- builder.post_conversion.must_equal ['_v1.put_int8 0, _v2']
38
+ it "has the correct value for #post_conversion" do
39
+ _(builder.post_conversion).must_equal ["_v1.put_int8 0, _v2"]
42
40
  end
43
41
  end
44
42
  end
45
43
 
46
- describe 'for an argument with direction :error' do
44
+ describe "for an argument with direction :error" do
47
45
  let(:arg_info) { GirFFI::ErrorArgumentInfo.new }
48
46
 
49
- it 'sets up a rescueing block in #pre_conversion' do
50
- builder.pre_conversion.must_equal [
51
- '_v1 = _error',
52
- 'begin'
47
+ it "sets up a rescueing block in #pre_conversion" do
48
+ _(builder.pre_conversion).must_equal [
49
+ "_v1 = _error",
50
+ "begin"
53
51
  ]
54
52
  end
55
53
 
56
- it 'converts any exceptions to GLib::Error in #post_conversion' do
57
- builder.post_conversion.must_equal [
58
- 'rescue => _v1',
59
- '_v2.put_pointer 0, GLib::Error.from(_v1)',
60
- 'end'
54
+ it "converts any exceptions to GLib::Error in #post_conversion" do
55
+ _(builder.post_conversion).must_equal [
56
+ "rescue => _v1",
57
+ "_v2.put_pointer 0, GLib::Error.from(_v1)",
58
+ "end"
61
59
  ]
62
60
  end
63
61
  end
64
62
 
65
- describe 'for an argument with direction :inout' do
63
+ describe "for an argument with direction :inout" do
66
64
  let(:callback_info) do
67
- get_introspection_data('Regress',
68
- 'TestCallbackArrayInOut')
65
+ get_introspection_data("Regress",
66
+ "TestCallbackArrayInOut")
69
67
  end
70
68
  let(:array_arg_info) { callback_info.args[0] }
71
69
  let(:array_arg_builder) do
@@ -77,52 +75,51 @@ describe GirFFI::Builders::CallbackArgumentBuilder do
77
75
  end
78
76
 
79
77
  before do
80
- skip unless callback_info
81
78
  length_arg_builder.array_arg = array_arg_builder
82
79
  array_arg_builder.length_arg = length_arg_builder
83
80
  end
84
81
 
85
- describe 'for arrays with a length argument' do
86
- it 'provides a call argument name' do
87
- array_arg_builder.call_argument_name.must_equal '_v1'
82
+ describe "for arrays with a length argument" do
83
+ it "provides a call argument name" do
84
+ _(array_arg_builder.call_argument_name).must_equal "_v1"
88
85
  end
89
86
 
90
- it 'provides a capture variable name' do
91
- array_arg_builder.capture_variable_name.must_equal '_v1'
87
+ it "provides a capture variable name" do
88
+ _(array_arg_builder.capture_variable_name).must_equal "_v1"
92
89
  end
93
90
 
94
- it 'has the correct value for #pre_conversion' do
95
- array_arg_builder.pre_conversion.
96
- must_equal ['_v1 = ints',
97
- '_v2 = GirFFI::SizedArray.wrap(:gint32, _v3, _v1.get_pointer(0))']
91
+ it "has the correct value for #pre_conversion" do
92
+ _(array_arg_builder.pre_conversion).
93
+ must_equal ["_v1 = ints",
94
+ "_v2 = GirFFI::SizedArray.wrap(:gint32, _v3, _v1.get_pointer(0))"]
98
95
  end
99
96
 
100
- it 'has the correct value for #post_conversion' do
97
+ it "has the correct value for #post_conversion" do
101
98
  array_arg_builder.pre_conversion
102
- array_arg_builder.post_conversion.
103
- must_equal ['_v1.put_pointer 0, GirFFI::SizedArray.from(:gint32, -1, _v4)']
99
+ _(array_arg_builder.post_conversion).
100
+ must_equal ["_v1.put_pointer 0, GirFFI::SizedArray.from(:gint32, -1, _v4)"]
104
101
  end
105
102
  end
106
103
 
107
- describe 'for an array length argument' do
108
- it 'does not provide a call argument name' do
109
- length_arg_builder.call_argument_name.must_be_nil
104
+ describe "for an array length argument" do
105
+ it "does not provide a call argument name" do
106
+ _(length_arg_builder.call_argument_name).must_be_nil
110
107
  end
111
108
 
112
- it 'does not provide a capture variable name' do
113
- length_arg_builder.capture_variable_name.must_be_nil
109
+ it "does not provide a capture variable name" do
110
+ _(length_arg_builder.capture_variable_name).must_be_nil
114
111
  end
115
112
 
116
- it 'has the correct value for #pre_conversion' do
117
- length_arg_builder.pre_conversion.
118
- must_equal ['_v1 = length',
119
- '_v2 = _v1.get_int32(0)']
113
+ it "has the correct value for #pre_conversion" do
114
+ _(length_arg_builder.pre_conversion).
115
+ must_equal ["_v1 = length",
116
+ "_v2 = _v1.get_int32(0)"]
120
117
  end
121
118
 
122
- it 'has the correct value for #post_conversion' do
119
+ it "has the correct value for #post_conversion" do
123
120
  length_arg_builder.pre_conversion
124
- length_arg_builder.post_conversion.
125
- must_equal ['_v1.put_int32 0, _v3.length']
121
+ _(length_arg_builder.post_conversion).
122
+ must_equal ["_v1.put_int32 0, _v3.length"]
126
123
  end
127
124
  end
128
125
  end
@@ -1,117 +1,116 @@
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::CallbackBuilder do
6
6
  let(:builder) { GirFFI::Builders::CallbackBuilder.new callback_info }
7
7
 
8
- describe '#mapping_method_definition' do
9
- describe 'for a callback with arguments and return value' do
10
- let(:callback_info) { get_introspection_data 'Regress', 'TestCallbackFull' }
11
- it 'returns a valid mapping method' do
12
- expected = <<-CODE.reset_indentation
13
- def self.call_with_argument_mapping(_proc, foo, bar, path)
14
- _v1 = foo
15
- _v2 = bar
16
- _v3 = path.to_utf8
17
- _v4 = _proc.call(_v1, _v2, _v3)
18
- return _v4
19
- end
8
+ describe "#mapping_method_definition" do
9
+ describe "for a callback with arguments and return value" do
10
+ let(:callback_info) { get_introspection_data "Regress", "TestCallbackFull" }
11
+ it "returns a valid mapping method" do
12
+ expected = <<~CODE
13
+ def self.call_with_argument_mapping(_proc, foo, bar, path)
14
+ _v1 = foo
15
+ _v2 = bar
16
+ _v3 = path.to_utf8
17
+ _v4 = _proc.call(_v1, _v2, _v3)
18
+ return _v4
19
+ end
20
20
  CODE
21
21
 
22
- builder.mapping_method_definition.must_equal expected
22
+ _(builder.mapping_method_definition).must_equal expected
23
23
  end
24
24
  end
25
25
 
26
- describe 'for a callback with no arguments or return value' do
27
- let(:callback_info) { get_introspection_data 'Regress', 'TestSimpleCallback' }
28
- it 'returns a valid mapping method' do
29
- expected = <<-CODE.reset_indentation
30
- def self.call_with_argument_mapping(_proc)
31
- _proc.call()
32
- end
26
+ describe "for a callback with no arguments or return value" do
27
+ let(:callback_info) { get_introspection_data "Regress", "TestSimpleCallback" }
28
+ it "returns a valid mapping method" do
29
+ expected = <<~CODE
30
+ def self.call_with_argument_mapping(_proc)
31
+ _proc.call()
32
+ end
33
33
  CODE
34
34
 
35
- builder.mapping_method_definition.must_equal expected
35
+ _(builder.mapping_method_definition).must_equal expected
36
36
  end
37
37
  end
38
38
 
39
- describe 'for a callback with a closure argument' do
40
- let(:callback_info) { get_introspection_data 'Regress', 'TestCallbackUserData' }
41
- it 'returns a valid mapping method' do
42
- expected = <<-CODE.reset_indentation
43
- def self.call_with_argument_mapping(_proc, user_data)
44
- _v1 = GirFFI::ArgHelper::OBJECT_STORE.fetch(user_data)
45
- _v2 = _proc.call(_v1)
46
- return _v2
47
- end
39
+ describe "for a callback with a closure argument" do
40
+ let(:callback_info) { get_introspection_data "Regress", "TestCallbackUserData" }
41
+ it "returns a valid mapping method" do
42
+ expected = <<~CODE
43
+ def self.call_with_argument_mapping(_proc, user_data)
44
+ _v1 = GirFFI::ArgHelper::OBJECT_STORE.fetch(user_data)
45
+ _v2 = _proc.call(_v1)
46
+ return _v2
47
+ end
48
48
  CODE
49
49
 
50
- builder.mapping_method_definition.must_equal expected
50
+ _(builder.mapping_method_definition).must_equal expected
51
51
  end
52
52
  end
53
53
 
54
- describe 'for a callback with one out argument' do
54
+ describe "for a callback with one out argument" do
55
55
  let(:callback_info) do
56
- get_introspection_data('GIMarshallingTests',
57
- 'CallbackOneOutParameter')
56
+ get_introspection_data("GIMarshallingTests",
57
+ "CallbackOneOutParameter")
58
58
  end
59
- it 'returns a valid mapping method' do
60
- expected = <<-CODE.reset_indentation
61
- def self.call_with_argument_mapping(_proc, a)
62
- _v1 = a
63
- _v2 = _proc.call()
64
- _v1.put_float 0, _v2
65
- end
59
+ it "returns a valid mapping method" do
60
+ expected = <<~CODE
61
+ def self.call_with_argument_mapping(_proc, a)
62
+ _v1 = a
63
+ _v2 = _proc.call()
64
+ _v1.put_float 0, _v2
65
+ end
66
66
  CODE
67
67
 
68
- builder.mapping_method_definition.must_equal expected
68
+ _(builder.mapping_method_definition).must_equal expected
69
69
  end
70
70
  end
71
71
 
72
- describe 'for a callback with an inout array argument' do
72
+ describe "for a callback with an inout array argument" do
73
73
  let(:callback_info) do
74
- get_introspection_data('Regress',
75
- 'TestCallbackArrayInOut')
74
+ get_introspection_data("Regress",
75
+ "TestCallbackArrayInOut")
76
76
  end
77
- it 'returns a valid mapping method' do
78
- skip unless callback_info
79
- expected = <<-CODE.reset_indentation
80
- def self.call_with_argument_mapping(_proc, ints, length)
81
- _v1 = length
82
- _v2 = _v1.get_int32(0)
83
- _v3 = ints
84
- _v4 = GirFFI::SizedArray.wrap(:gint32, _v2, _v3.get_pointer(0))
85
- _v5 = _proc.call(_v4)
86
- _v1.put_int32 0, _v5.length
87
- _v3.put_pointer 0, GirFFI::SizedArray.from(:gint32, -1, _v5)
88
- end
77
+ it "returns a valid mapping method" do
78
+ expected = <<~CODE
79
+ def self.call_with_argument_mapping(_proc, ints, length)
80
+ _v1 = length
81
+ _v2 = _v1.get_int32(0)
82
+ _v3 = ints
83
+ _v4 = GirFFI::SizedArray.wrap(:gint32, _v2, _v3.get_pointer(0))
84
+ _v5 = _proc.call(_v4)
85
+ _v1.put_int32 0, _v5.length
86
+ _v3.put_pointer 0, GirFFI::SizedArray.from(:gint32, -1, _v5)
87
+ end
89
88
  CODE
90
89
 
91
- builder.mapping_method_definition.must_equal expected
90
+ _(builder.mapping_method_definition).must_equal expected
92
91
  end
93
92
  end
94
93
 
95
- describe 'for a callback with a value in argument' do
94
+ describe "for a callback with a value in argument" do
96
95
  let(:field_info) do
97
- get_field_introspection_data('GObject',
98
- 'ObjectClass', 'get_property')
96
+ get_field_introspection_data("GObject",
97
+ "ObjectClass", "get_property")
99
98
  end
100
99
  let(:callback_info) do
101
100
  field_info.field_type.interface
102
101
  end
103
- it 'returns a valid mapping method' do
104
- expected = <<-CODE.reset_indentation
105
- def self.call_with_argument_mapping(_proc, object, property_id, value, pspec)
106
- _v1 = GObject::Object.wrap(object)
107
- _v2 = property_id
108
- _v3 = GObject::Value.wrap(value)
109
- _v4 = GObject::ParamSpec.wrap(pspec)
110
- _proc.call(_v1, _v2, _v3, _v4)
111
- end
102
+ it "returns a valid mapping method" do
103
+ expected = <<~CODE
104
+ def self.call_with_argument_mapping(_proc, object, property_id, value, pspec)
105
+ _v1 = GObject::Object.wrap(object)
106
+ _v2 = property_id
107
+ _v3 = GObject::Value.wrap(value)
108
+ _v4 = GObject::ParamSpec.wrap(pspec)
109
+ _proc.call(_v1, _v2, _v3, _v4)
110
+ end
112
111
  CODE
113
112
 
114
- builder.mapping_method_definition.must_equal expected
113
+ _(builder.mapping_method_definition).must_equal expected
115
114
  end
116
115
  end
117
116
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  describe GirFFI::Builders::CallbackReturnValueBuilder do
6
6
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
@@ -12,74 +12,70 @@ describe GirFFI::Builders::CallbackReturnValueBuilder do
12
12
  return_value_info)
13
13
  end
14
14
 
15
- before do
16
- skip unless callback_info
17
- end
18
-
19
- describe 'for :gint32' do
20
- let(:callback_info) { get_introspection_data('GIMarshallingTests', 'CallbackIntInt') }
15
+ describe "for :gint32" do
16
+ let(:callback_info) { get_introspection_data("GIMarshallingTests", "CallbackIntInt") }
21
17
 
22
- it 'has no statements in #post_conversion' do
23
- builder.post_conversion.must_equal []
18
+ it "has no statements in #post_conversion" do
19
+ _(builder.post_conversion).must_equal []
24
20
  end
25
21
 
26
- it 'returns the result of the callback directly' do
27
- builder.capture_variable_name.must_equal '_v1'
28
- builder.return_value_name.must_equal '_v1'
22
+ it "returns the result of the callback directly" do
23
+ _(builder.capture_variable_name).must_equal "_v1"
24
+ _(builder.return_value_name).must_equal "_v1"
29
25
  end
30
26
  end
31
27
 
32
- describe 'for :void' do
28
+ describe "for :void" do
33
29
  let(:callback_info) do
34
- get_introspection_data('GIMarshallingTests',
35
- 'CallbackMultipleOutParameters')
30
+ get_introspection_data("GIMarshallingTests",
31
+ "CallbackMultipleOutParameters")
36
32
  end
37
33
 
38
- it 'has no statements in #post_conversion' do
39
- builder.post_conversion.must_equal []
34
+ it "has no statements in #post_conversion" do
35
+ _(builder.post_conversion).must_equal []
40
36
  end
41
37
 
42
- it 'returns nothing' do
43
- builder.capture_variable_name.must_be_nil
44
- builder.return_value_name.must_be_nil
38
+ it "returns nothing" do
39
+ _(builder.capture_variable_name).must_be_nil
40
+ _(builder.return_value_name).must_be_nil
45
41
  end
46
42
  end
47
43
 
48
- describe 'for :enum' do
44
+ describe "for :enum" do
49
45
  let(:callback_info) do
50
- get_vfunc_introspection_data('GIMarshallingTests',
51
- 'Object',
52
- 'vfunc_return_enum')
46
+ get_vfunc_introspection_data("GIMarshallingTests",
47
+ "Object",
48
+ "vfunc_return_enum")
53
49
  end
54
50
 
55
- it 'converts the result' do
51
+ it "converts the result" do
56
52
  # Ensure variable names are generated in order
57
- builder.capture_variable_name.must_equal '_v1'
58
- builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Enum.to_int(_v1)']
53
+ _(builder.capture_variable_name).must_equal "_v1"
54
+ _(builder.post_conversion).must_equal ["_v2 = GIMarshallingTests::Enum.to_int(_v1)"]
59
55
  end
60
56
 
61
- it 'returns the result of the conversion' do
62
- builder.capture_variable_name.must_equal '_v1'
63
- builder.return_value_name.must_equal '_v2'
57
+ it "returns the result of the conversion" do
58
+ _(builder.capture_variable_name).must_equal "_v1"
59
+ _(builder.return_value_name).must_equal "_v2"
64
60
  end
65
61
  end
66
62
 
67
- describe 'for :object with full transfer' do
63
+ describe "for :object with full transfer" do
68
64
  let(:callback_info) do
69
- get_vfunc_introspection_data('GIMarshallingTests',
70
- 'Object',
71
- 'vfunc_return_object_transfer_full')
65
+ get_vfunc_introspection_data("GIMarshallingTests",
66
+ "Object",
67
+ "vfunc_return_object_transfer_full")
72
68
  end
73
69
 
74
- it 'increases the refcount of the result and converts it to a pointer' do
70
+ it "increases the refcount of the result and converts it to a pointer" do
75
71
  # Ensure variable names are generated in order
76
- builder.capture_variable_name.must_equal '_v1'
77
- builder.post_conversion.must_equal ['_v1.ref', '_v2 = GObject::Object.from(_v1).to_ptr']
72
+ _(builder.capture_variable_name).must_equal "_v1"
73
+ _(builder.post_conversion).must_equal ["_v1.ref", "_v2 = GObject::Object.from(_v1).to_ptr"]
78
74
  end
79
75
 
80
- it 'returns the result of the conversion' do
81
- builder.capture_variable_name.must_equal '_v1'
82
- builder.return_value_name.must_equal '_v2'
76
+ it "returns the result of the conversion" do
77
+ _(builder.capture_variable_name).must_equal "_v1"
78
+ _(builder.return_value_name).must_equal "_v2"
83
79
  end
84
80
  end
85
81
  end