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,16 +1,16 @@
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::InitializerBuilder do
6
- describe '#method_definition' do
6
+ describe "#method_definition" do
7
7
  let(:builder) { GirFFI::Builders::InitializerBuilder.new function_info }
8
8
  let(:code) { builder.method_definition }
9
9
 
10
- describe 'for constructors with the default name' do
11
- let(:function_info) { get_method_introspection_data 'Regress', 'TestObj', 'new' }
12
- it 'builds an initializer' do
13
- code.must_equal <<-CODE.reset_indentation
10
+ describe "for constructors with the default name" do
11
+ let(:function_info) { get_method_introspection_data "Regress", "TestObj", "new" }
12
+ it "builds an initializer" do
13
+ _(code).must_equal <<~CODE
14
14
  def initialize(obj)
15
15
  _v1 = Regress::TestObj.from(obj)
16
16
  _v2 = Regress::Lib.regress_test_obj_new _v1
@@ -20,10 +20,10 @@ describe GirFFI::Builders::InitializerBuilder do
20
20
  end
21
21
  end
22
22
 
23
- describe 'for constructors with a custom name' do
24
- let(:function_info) { get_method_introspection_data 'Regress', 'TestObj', 'new_from_file' }
25
- it 'builds a custom initializer' do
26
- code.must_equal <<-CODE.reset_indentation
23
+ describe "for constructors with a custom name" do
24
+ let(:function_info) { get_method_introspection_data "Regress", "TestObj", "new_from_file" }
25
+ it "builds a custom initializer" do
26
+ _(code).must_equal <<~CODE
27
27
  def initialize_from_file(x)
28
28
  _v1 = GirFFI::InPointer.from_utf8(x)
29
29
  _v2 = FFI::MemoryPointer.new(:pointer).write_pointer nil
@@ -35,13 +35,13 @@ describe GirFFI::Builders::InitializerBuilder do
35
35
  end
36
36
  end
37
37
 
38
- describe 'for constructors for boxed types' do
38
+ describe "for constructors for boxed types" do
39
39
  let(:function_info) do
40
- get_method_introspection_data 'GIMarshallingTests', 'BoxedStruct', 'new'
40
+ get_method_introspection_data "GIMarshallingTests", "BoxedStruct", "new"
41
41
  end
42
42
 
43
- it 'builds an initializer that sets owned to true' do
44
- code.must_equal <<-CODE.reset_indentation
43
+ it "builds an initializer that sets owned to true" do
44
+ _(code).must_equal <<~CODE
45
45
  def initialize
46
46
  _v1 = GIMarshallingTests::Lib.gi_marshalling_tests_boxed_struct_new
47
47
  store_pointer(_v1)
@@ -1,32 +1,32 @@
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::InterfaceBuilder do
6
6
  let(:interface_builder) do
7
7
  GirFFI::Builders::InterfaceBuilder.new(
8
- get_introspection_data('Regress', 'TestInterface'))
8
+ get_introspection_data("Regress", "TestInterface"))
9
9
  end
10
10
 
11
- describe '#build_class' do
11
+ describe "#build_class" do
12
12
  before do
13
- info = get_introspection_data 'GObject', 'TypePlugin'
13
+ info = get_introspection_data "GObject", "TypePlugin"
14
14
  @bldr = GirFFI::Builders::InterfaceBuilder.new info
15
15
  @iface = @bldr.build_class
16
16
  end
17
17
 
18
- it 'builds an interface as a module' do
18
+ it "builds an interface as a module" do
19
19
  assert_instance_of Module, @iface
20
20
  end
21
21
 
22
- it 'creates methods on the interface' do
22
+ it "creates methods on the interface" do
23
23
  assert_defines_instance_method @iface, :complete_interface_info
24
24
  end
25
25
  end
26
26
 
27
- describe '#interface_struct' do
28
- it 'returns the interface struct type' do
29
- interface_builder.interface_struct.must_equal Regress::TestInterfaceIface
27
+ describe "#interface_struct" do
28
+ it "returns the interface struct type" do
29
+ _(interface_builder.interface_struct).must_equal Regress::TestInterfaceIface
30
30
  end
31
31
  end
32
32
  end
@@ -1,39 +1,39 @@
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::ModuleBuilder do
6
6
  let(:gir) { GObjectIntrospection::IRepository.default }
7
7
 
8
- describe '#find_namespaced_class_info' do
9
- it 'finds the info in the GIR' do
10
- allow(gir).to receive(:require).with('Foo', nil)
8
+ describe "#find_namespaced_class_info" do
9
+ it "finds the info in the GIR" do
10
+ allow(gir).to receive(:require).with("Foo", nil)
11
11
 
12
- builder = GirFFI::Builders::ModuleBuilder.new 'Foo'
12
+ builder = GirFFI::Builders::ModuleBuilder.new "Foo"
13
13
 
14
- expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return 'gir info'
14
+ expect(gir).to receive(:find_by_name).with("Foo", "Bar").and_return "gir info"
15
15
 
16
- builder.find_namespaced_class_info(:Bar).must_equal 'gir info'
16
+ _(builder.find_namespaced_class_info(:Bar)).must_equal "gir info"
17
17
  end
18
18
 
19
- it 'checks downcased class name as an alternative' do
20
- allow(gir).to receive(:require).with('Foo', nil)
19
+ it "checks downcased class name as an alternative" do
20
+ allow(gir).to receive(:require).with("Foo", nil)
21
21
 
22
- builder = GirFFI::Builders::ModuleBuilder.new 'Foo'
22
+ builder = GirFFI::Builders::ModuleBuilder.new "Foo"
23
23
 
24
- expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return nil
25
- expect(gir).to receive(:find_by_name).with('Foo', 'bar').and_return 'gir info'
24
+ expect(gir).to receive(:find_by_name).with("Foo", "Bar").and_return nil
25
+ expect(gir).to receive(:find_by_name).with("Foo", "bar").and_return "gir info"
26
26
 
27
- builder.find_namespaced_class_info(:Bar).must_equal 'gir info'
27
+ _(builder.find_namespaced_class_info(:Bar)).must_equal "gir info"
28
28
  end
29
29
 
30
- it 'raises a clear error if the named class does not exist' do
31
- allow(gir).to receive(:require).with('Foo', nil)
30
+ it "raises a clear error if the named class does not exist" do
31
+ allow(gir).to receive(:require).with("Foo", nil)
32
32
 
33
- builder = GirFFI::Builders::ModuleBuilder.new 'Foo'
33
+ builder = GirFFI::Builders::ModuleBuilder.new "Foo"
34
34
 
35
- expect(gir).to receive(:find_by_name).with('Foo', 'Bar').and_return nil
36
- expect(gir).to receive(:find_by_name).with('Foo', 'bar').and_return nil
35
+ expect(gir).to receive(:find_by_name).with("Foo", "Bar").and_return nil
36
+ expect(gir).to receive(:find_by_name).with("Foo", "bar").and_return nil
37
37
 
38
38
  assert_raises NameError do
39
39
  builder.find_namespaced_class_info :Bar
@@ -1,76 +1,76 @@
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::ObjectBuilder do
6
6
  let(:obj_builder) do
7
7
  GirFFI::Builders::ObjectBuilder.new(
8
- get_introspection_data('Regress', 'TestObj'))
8
+ get_introspection_data("Regress", "TestObj"))
9
9
  end
10
10
  let(:sub_obj_builder) do
11
11
  GirFFI::Builders::ObjectBuilder.new(
12
- get_introspection_data('Regress', 'TestSubObj'))
12
+ get_introspection_data("Regress", "TestSubObj"))
13
13
  end
14
14
  let(:param_spec_builder) do
15
15
  GirFFI::Builders::ObjectBuilder.new(
16
- get_introspection_data('GObject', 'ParamSpec'))
16
+ get_introspection_data("GObject", "ParamSpec"))
17
17
  end
18
18
 
19
- describe '#find_signal' do
19
+ describe "#find_signal" do
20
20
  it 'finds the signal "test" for TestObj' do
21
- sig = obj_builder.find_signal 'test'
22
- sig.name.must_equal 'test'
21
+ sig = obj_builder.find_signal "test"
22
+ _(sig.name).must_equal "test"
23
23
  end
24
24
 
25
25
  it 'finds the signal "test" for TestSubObj' do
26
- sig = sub_obj_builder.find_signal 'test'
27
- sig.name.must_equal 'test'
26
+ sig = sub_obj_builder.find_signal "test"
27
+ _(sig.name).must_equal "test"
28
28
  end
29
29
 
30
30
  it 'finds the signal "changed" for Gtk::Entry' do
31
- builder = GirFFI::Builders::ObjectBuilder.new get_introspection_data('Gtk', 'Entry')
32
- sig = builder.find_signal 'changed'
33
- sig.name.must_equal 'changed'
31
+ builder = GirFFI::Builders::ObjectBuilder.new get_introspection_data("Gtk", "Entry")
32
+ sig = builder.find_signal "changed"
33
+ _(sig.name).must_equal "changed"
34
34
  end
35
35
 
36
36
  it "returns nil for a signal that doesn't exist" do
37
- obj_builder.find_signal('foo').must_be_nil
37
+ _(obj_builder.find_signal("foo")).must_be_nil
38
38
  end
39
39
  end
40
40
 
41
- describe '#find_property' do
42
- it 'finds a property specified on the class itself' do
43
- prop = obj_builder.find_property('int')
44
- prop.name.must_equal 'int'
41
+ describe "#find_property" do
42
+ it "finds a property specified on the class itself" do
43
+ prop = obj_builder.find_property("int")
44
+ _(prop.name).must_equal "int"
45
45
  end
46
46
 
47
- it 'finds a property specified on the parent class' do
48
- prop = sub_obj_builder.find_property('int')
49
- prop.name.must_equal 'int'
47
+ it "finds a property specified on the parent class" do
48
+ prop = sub_obj_builder.find_property("int")
49
+ _(prop.name).must_equal "int"
50
50
  end
51
51
 
52
- it 'returns nil if the property is not found' do
53
- sub_obj_builder.find_property('this-property-does-not-exist').must_be_nil
52
+ it "returns nil if the property is not found" do
53
+ _(sub_obj_builder.find_property("this-property-does-not-exist")).must_be_nil
54
54
  end
55
55
  end
56
56
 
57
- describe '#object_class_struct' do
58
- it 'returns the class struct type' do
59
- obj_builder.object_class_struct.must_equal Regress::TestObjClass
57
+ describe "#object_class_struct" do
58
+ it "returns the class struct type" do
59
+ _(obj_builder.object_class_struct).must_equal Regress::TestObjClass
60
60
  end
61
61
 
62
- it 'returns the parent struct type for classes without their own struct' do
63
- binding_info = get_introspection_data 'GObject', 'Binding'
62
+ it "returns the parent struct type for classes without their own struct" do
63
+ binding_info = get_introspection_data "GObject", "Binding"
64
64
  builder = GirFFI::Builders::ObjectBuilder.new binding_info
65
- builder.object_class_struct.must_equal GObject::ObjectClass
65
+ _(builder.object_class_struct).must_equal GObject::ObjectClass
66
66
  end
67
67
  end
68
68
 
69
- describe 'for a struct without defined fields' do
70
- let(:info) { get_introspection_data 'GObject', 'Binding' }
69
+ describe "for a struct without defined fields" do
70
+ let(:info) { get_introspection_data "GObject", "Binding" }
71
71
 
72
- it 'uses a single field of the parent struct type as the default layout' do
73
- info.n_fields.must_equal 0
72
+ it "uses a single field of the parent struct type as the default layout" do
73
+ _(info.n_fields).must_equal 0
74
74
 
75
75
  builder = GirFFI::Builders::ObjectBuilder.new info
76
76
 
@@ -79,20 +79,20 @@ describe GirFFI::Builders::ObjectBuilder do
79
79
  end
80
80
  end
81
81
 
82
- describe '#eligible_properties' do
82
+ describe "#eligible_properties" do
83
83
  let(:wi_builder) do
84
84
  GirFFI::Builders::ObjectBuilder.new(
85
- get_introspection_data('Regress', 'TestWi8021x'))
85
+ get_introspection_data("Regress", "TestWi8021x"))
86
86
  end
87
87
 
88
- it 'includes properties that do not have a matching getter method' do
88
+ it "includes properties that do not have a matching getter method" do
89
89
  result = obj_builder.eligible_properties
90
- result.map(&:name).must_include 'double'
90
+ _(result.map(&:name)).must_include "double"
91
91
  end
92
92
 
93
- it 'skips properties that have a matching getter method' do
93
+ it "skips properties that have a matching getter method" do
94
94
  result = wi_builder.eligible_properties
95
- result.map(&:name).wont_include 'testbool'
95
+ _(result.map(&:name)).wont_include "testbool"
96
96
  end
97
97
  end
98
98
  end
@@ -1,161 +1,158 @@
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::PropertyBuilder do
6
6
  let(:builder) { GirFFI::Builders::PropertyBuilder.new property_info }
7
7
 
8
- describe 'for a property of type :glist' do
9
- let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'list') }
10
- it 'generates the correct getter definition' do
11
- expected = <<-CODE.reset_indentation
12
- def list
13
- _v1 = get_property('list')
14
- _v2 = GLib::List.wrap(:utf8, _v1)
15
- _v2
16
- end
8
+ describe "for a property of type :glist" do
9
+ let(:property_info) { get_property_introspection_data("Regress", "TestObj", "list") }
10
+ it "generates the correct getter definition" do
11
+ expected = <<~CODE
12
+ def list
13
+ _v1 = get_property('list')
14
+ _v2 = GLib::List.wrap(:utf8, _v1)
15
+ _v2
16
+ end
17
17
  CODE
18
18
 
19
- builder.getter_def.must_equal expected
19
+ _(builder.getter_def).must_equal expected
20
20
  end
21
21
 
22
- it 'generates the correct setter definition' do
23
- expected = <<-CODE.reset_indentation
24
- def list= value
25
- _v1 = GLib::List.from(:utf8, value)
26
- set_property("list", _v1)
27
- end
22
+ it "generates the correct setter definition" do
23
+ expected = <<~CODE
24
+ def list= value
25
+ _v1 = GLib::List.from(:utf8, value)
26
+ set_property("list", _v1)
27
+ end
28
28
  CODE
29
29
 
30
- builder.setter_def.must_equal expected
30
+ _(builder.setter_def).must_equal expected
31
31
  end
32
32
  end
33
33
 
34
- describe 'for a property of type :ghash' do
35
- let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'hash-table') }
36
- it 'generates the correct getter definition' do
37
- expected = <<-CODE.reset_indentation
38
- def hash_table
39
- _v1 = get_property('hash-table')
40
- _v2 = GLib::HashTable.wrap([:utf8, :gint8], _v1)
41
- _v2
42
- end
34
+ describe "for a property of type :ghash" do
35
+ let(:property_info) { get_property_introspection_data("Regress", "TestObj", "hash-table") }
36
+ it "generates the correct getter definition" do
37
+ expected = <<~CODE
38
+ def hash_table
39
+ _v1 = get_property('hash-table')
40
+ _v2 = GLib::HashTable.wrap([:utf8, :gint8], _v1)
41
+ _v2
42
+ end
43
43
  CODE
44
44
 
45
- builder.getter_def.must_equal expected
45
+ _(builder.getter_def).must_equal expected
46
46
  end
47
47
 
48
- it 'generates the correct setter definition' do
49
- expected = <<-CODE.reset_indentation
50
- def hash_table= value
51
- _v1 = GLib::HashTable.from([:utf8, :gint8], value)
52
- set_property("hash-table", _v1)
53
- end
48
+ it "generates the correct setter definition" do
49
+ expected = <<~CODE
50
+ def hash_table= value
51
+ _v1 = GLib::HashTable.from([:utf8, :gint8], value)
52
+ set_property("hash-table", _v1)
53
+ end
54
54
  CODE
55
55
 
56
- builder.setter_def.must_equal expected
56
+ _(builder.setter_def).must_equal expected
57
57
  end
58
58
  end
59
59
 
60
- describe 'for a property of type :strv' do
60
+ describe "for a property of type :strv" do
61
61
  let(:property_info) do
62
- get_property_introspection_data('GIMarshallingTests',
63
- 'PropertiesObject',
64
- 'some-strv')
65
- end
66
- before do
67
- skip unless property_info
62
+ get_property_introspection_data("GIMarshallingTests",
63
+ "PropertiesObject",
64
+ "some-strv")
68
65
  end
69
66
 
70
- it 'generates the correct getter definition' do
71
- expected = <<-CODE.reset_indentation
72
- def some_strv
73
- _v1 = get_property('some-strv')
74
- _v1
75
- end
67
+ it "generates the correct getter definition" do
68
+ expected = <<~CODE
69
+ def some_strv
70
+ _v1 = get_property('some-strv')
71
+ _v1
72
+ end
76
73
  CODE
77
74
 
78
- builder.getter_def.must_equal expected
75
+ _(builder.getter_def).must_equal expected
79
76
  end
80
77
 
81
- it 'generates the correct setter definition' do
82
- expected = <<-CODE.reset_indentation
83
- def some_strv= value
84
- _v1 = GLib::Strv.from(value)
85
- set_property("some-strv", _v1)
86
- end
78
+ it "generates the correct setter definition" do
79
+ expected = <<~CODE
80
+ def some_strv= value
81
+ _v1 = GLib::Strv.from(value)
82
+ set_property("some-strv", _v1)
83
+ end
87
84
  CODE
88
85
 
89
- builder.setter_def.must_equal expected
86
+ _(builder.setter_def).must_equal expected
90
87
  end
91
88
  end
92
89
 
93
- describe 'for a property of type :utf8' do
94
- let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'string') }
95
- it 'generates the correct getter definition' do
96
- expected = <<-CODE.reset_indentation
97
- def string
98
- _v1 = get_property('string')
99
- _v1
100
- end
90
+ describe "for a property of type :utf8" do
91
+ let(:property_info) { get_property_introspection_data("Regress", "TestObj", "string") }
92
+ it "generates the correct getter definition" do
93
+ expected = <<~CODE
94
+ def string
95
+ _v1 = get_property('string')
96
+ _v1
97
+ end
101
98
  CODE
102
99
 
103
- builder.getter_def.must_equal expected
100
+ _(builder.getter_def).must_equal expected
104
101
  end
105
102
 
106
- it 'generates the correct setter definition' do
107
- expected = <<-CODE.reset_indentation
108
- def string= value
109
- _v1 = value
110
- set_property("string", _v1)
111
- end
103
+ it "generates the correct setter definition" do
104
+ expected = <<~CODE
105
+ def string= value
106
+ _v1 = value
107
+ set_property("string", _v1)
108
+ end
112
109
  CODE
113
110
 
114
- builder.setter_def.must_equal expected
111
+ _(builder.setter_def).must_equal expected
115
112
  end
116
113
  end
117
114
 
118
- describe 'for a property of a callback type' do
115
+ describe "for a property of a callback type" do
119
116
  let(:property_info) do
120
- get_property_introspection_data('Regress', 'AnnotationObject', 'function-property')
117
+ get_property_introspection_data("Regress", "AnnotationObject", "function-property")
121
118
  end
122
119
 
123
- it 'generates the correct getter definition' do
124
- expected = <<-CODE.reset_indentation
125
- def function_property
126
- _v1 = get_property('function-property')
127
- _v2 = Regress::AnnotationCallback.wrap(_v1)
128
- _v2
129
- end
120
+ it "generates the correct getter definition" do
121
+ expected = <<~CODE
122
+ def function_property
123
+ _v1 = get_property('function-property')
124
+ _v2 = Regress::AnnotationCallback.wrap(_v1)
125
+ _v2
126
+ end
130
127
  CODE
131
128
 
132
- builder.getter_def.must_equal expected
129
+ _(builder.getter_def).must_equal expected
133
130
  end
134
131
 
135
- it 'generates the correct setter definition' do
136
- expected = <<-CODE.reset_indentation
137
- def function_property= value
138
- _v1 = Regress::AnnotationCallback.from(value)
139
- set_property("function-property", _v1)
140
- end
132
+ it "generates the correct setter definition" do
133
+ expected = <<~CODE
134
+ def function_property= value
135
+ _v1 = Regress::AnnotationCallback.from(value)
136
+ set_property("function-property", _v1)
137
+ end
141
138
  CODE
142
139
 
143
- builder.setter_def.must_equal expected
140
+ _(builder.setter_def).must_equal expected
144
141
  end
145
142
  end
146
143
 
147
- describe '#container_defines_getter_method?' do
144
+ describe "#container_defines_getter_method?" do
148
145
  let(:property_info) { Object.new.tap { |o| o.extend GirFFI::InfoExt::IPropertyInfo } }
149
146
  let(:container_info) { Object.new }
150
147
 
151
148
  before do
152
149
  allow(property_info).to receive(:container).and_return container_info
153
- allow(property_info).to receive(:name).and_return 'foo-bar'
154
- allow(container_info).to receive(:find_instance_method).with('foo_bar').and_return true
150
+ allow(property_info).to receive(:name).and_return "foo-bar"
151
+ allow(container_info).to receive(:find_instance_method).with("foo_bar").and_return true
155
152
  end
156
153
 
157
- it 'finds methods with underscores for properties with dashes' do
158
- builder.container_defines_getter_method?.must_equal true
154
+ it "finds methods with underscores for properties with dashes" do
155
+ _(builder.container_defines_getter_method?).must_equal true
159
156
  end
160
157
  end
161
158
  end