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,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,12 @@ 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) do
25
+ get_method_introspection_data "Regress", "TestObj", "new_from_file"
26
+ end
27
+ it "builds a custom initializer" do
28
+ _(code).must_equal <<~CODE
27
29
  def initialize_from_file(x)
28
30
  _v1 = GirFFI::InPointer.from_utf8(x)
29
31
  _v2 = FFI::MemoryPointer.new(:pointer).write_pointer nil
@@ -35,13 +37,13 @@ describe GirFFI::Builders::InitializerBuilder do
35
37
  end
36
38
  end
37
39
 
38
- describe 'for constructors for boxed types' do
40
+ describe "for constructors for boxed types" do
39
41
  let(:function_info) do
40
- get_method_introspection_data 'GIMarshallingTests', 'BoxedStruct', 'new'
42
+ get_method_introspection_data "GIMarshallingTests", "BoxedStruct", "new"
41
43
  end
42
44
 
43
- it 'builds an initializer that sets owned to true' do
44
- code.must_equal <<-CODE.reset_indentation
45
+ it "builds an initializer that sets owned to true" do
46
+ _(code).must_equal <<~CODE
45
47
  def initialize
46
48
  _v1 = GIMarshallingTests::Lib.gi_marshalling_tests_boxed_struct_new
47
49
  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
20
- it 'finds the signal "test" for TestObj' do
21
- sig = obj_builder.find_signal 'test'
22
- sig.name.must_equal 'test'
19
+ describe "#find_signal" do
20
+ it 'finds a signal defined on the class itself' do
21
+ sig = obj_builder.find_signal "test"
22
+ _(sig.name).must_equal "test"
23
23
  end
24
24
 
25
- it 'finds the signal "test" for TestSubObj' do
26
- sig = sub_obj_builder.find_signal 'test'
27
- sig.name.must_equal 'test'
25
+ it 'finds a signal defined on a superclass' do
26
+ sig = sub_obj_builder.find_signal "test"
27
+ _(sig.name).must_equal "test"
28
28
  end
29
29
 
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'
30
+ it 'finds signals defined on interfaces' do
31
+ skip_below "1.57.2"
32
+ sig = sub_obj_builder.find_signal "interface-signal"
33
+ _(sig.name).must_equal "interface-signal"
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,161 @@
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) do
36
+ get_property_introspection_data("Regress", "TestObj", "hash-table")
37
+ end
38
+ it "generates the correct getter definition" do
39
+ expected = <<~CODE
40
+ def hash_table
41
+ _v1 = get_property('hash-table')
42
+ _v2 = GLib::HashTable.wrap([:utf8, :gint8], _v1)
43
+ _v2
44
+ end
43
45
  CODE
44
46
 
45
- builder.getter_def.must_equal expected
47
+ _(builder.getter_def).must_equal expected
46
48
  end
47
49
 
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
50
+ it "generates the correct setter definition" do
51
+ expected = <<~CODE
52
+ def hash_table= value
53
+ _v1 = GLib::HashTable.from([:utf8, :gint8], value)
54
+ set_property("hash-table", _v1)
55
+ end
54
56
  CODE
55
57
 
56
- builder.setter_def.must_equal expected
58
+ _(builder.setter_def).must_equal expected
57
59
  end
58
60
  end
59
61
 
60
- describe 'for a property of type :strv' do
62
+ describe "for a property of type :strv" do
61
63
  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
64
+ get_property_introspection_data("GIMarshallingTests",
65
+ "PropertiesObject",
66
+ "some-strv")
68
67
  end
69
68
 
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
69
+ it "generates the correct getter definition" do
70
+ expected = <<~CODE
71
+ def some_strv
72
+ _v1 = get_property('some-strv')
73
+ _v1
74
+ end
76
75
  CODE
77
76
 
78
- builder.getter_def.must_equal expected
77
+ _(builder.getter_def).must_equal expected
79
78
  end
80
79
 
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
80
+ it "generates the correct setter definition" do
81
+ expected = <<~CODE
82
+ def some_strv= value
83
+ _v1 = GLib::Strv.from(value)
84
+ set_property("some-strv", _v1)
85
+ end
87
86
  CODE
88
87
 
89
- builder.setter_def.must_equal expected
88
+ _(builder.setter_def).must_equal expected
90
89
  end
91
90
  end
92
91
 
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
92
+ describe "for a property of type :utf8" do
93
+ let(:property_info) { get_property_introspection_data("Regress", "TestObj", "string") }
94
+ it "generates the correct getter definition" do
95
+ expected = <<~CODE
96
+ def string
97
+ _v1 = get_property('string')
98
+ _v1
99
+ end
101
100
  CODE
102
101
 
103
- builder.getter_def.must_equal expected
102
+ _(builder.getter_def).must_equal expected
104
103
  end
105
104
 
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
105
+ it "generates the correct setter definition" do
106
+ expected = <<~CODE
107
+ def string= value
108
+ _v1 = value
109
+ set_property("string", _v1)
110
+ end
112
111
  CODE
113
112
 
114
- builder.setter_def.must_equal expected
113
+ _(builder.setter_def).must_equal expected
115
114
  end
116
115
  end
117
116
 
118
- describe 'for a property of a callback type' do
117
+ describe "for a property of a callback type" do
119
118
  let(:property_info) do
120
- get_property_introspection_data('Regress', 'AnnotationObject', 'function-property')
119
+ get_property_introspection_data("Regress", "AnnotationObject", "function-property")
121
120
  end
122
121
 
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
122
+ it "generates the correct getter definition" do
123
+ expected = <<~CODE
124
+ def function_property
125
+ _v1 = get_property('function-property')
126
+ _v2 = Regress::AnnotationCallback.wrap(_v1)
127
+ _v2
128
+ end
130
129
  CODE
131
130
 
132
- builder.getter_def.must_equal expected
131
+ _(builder.getter_def).must_equal expected
133
132
  end
134
133
 
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
134
+ it "generates the correct setter definition" do
135
+ expected = <<~CODE
136
+ def function_property= value
137
+ _v1 = Regress::AnnotationCallback.from(value)
138
+ set_property("function-property", _v1)
139
+ end
141
140
  CODE
142
141
 
143
- builder.setter_def.must_equal expected
142
+ _(builder.setter_def).must_equal expected
144
143
  end
145
144
  end
146
145
 
147
- describe '#container_defines_getter_method?' do
146
+ describe "#container_defines_getter_method?" do
148
147
  let(:property_info) { Object.new.tap { |o| o.extend GirFFI::InfoExt::IPropertyInfo } }
149
148
  let(:container_info) { Object.new }
150
149
 
151
150
  before do
152
151
  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
152
+ allow(property_info).to receive(:name).and_return "foo-bar"
153
+ allow(container_info)
154
+ .to receive(:find_instance_method).with("foo_bar").and_return true
155
155
  end
156
156
 
157
- it 'finds methods with underscores for properties with dashes' do
158
- builder.container_defines_getter_method?.must_equal true
157
+ it "finds methods with underscores for properties with dashes" do
158
+ _(builder.container_defines_getter_method?).must_equal true
159
159
  end
160
160
  end
161
161
  end