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
data/tasks/test.rake CHANGED
@@ -71,7 +71,7 @@ class Listener
71
71
  result.puts " it \"handles the '#{obj_name}' signal\" do"
72
72
  when 'type', 'alias', 'return-value', 'parameters',
73
73
  'instance-parameter', 'parameter', 'doc', 'array',
74
- 'repository', 'include', 'package'
74
+ 'repository', 'include', 'package', 'source-position'
75
75
  # Not printed"
76
76
  else
77
77
  puts "Skipping #{name}: #{attrs}"
@@ -156,9 +156,10 @@ namespace :test do
156
156
  task overrides: :lib
157
157
  task integration: :lib
158
158
 
159
- desc 'Run the entire test suite as one'
159
+ desc 'Run the entire test suite as one with simplecov activated'
160
160
  define_test_task(:all) do |t|
161
161
  t.test_files = FileList['test/**/*_test.rb']
162
+ t.ruby_opts += ['-rbundler/setup -rsimplecov -w -Itest']
162
163
  end
163
164
 
164
165
  task all: :lib
@@ -1,22 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'simplecov'
4
- SimpleCov.start do
5
- track_files 'lib/**/*.rb'
6
- add_filter '/test/'
3
+ old_verbose = $VERBOSE
4
+ $VERBOSE = false
5
+ begin
6
+ require "test-prof"
7
+
8
+ TestProf::RubyProf.configure do |config|
9
+ config.min_percent = 0.5
10
+ end
11
+ rescue LoadError
12
+ warn "test-prof not available"
7
13
  end
14
+ $VERBOSE = old_verbose
8
15
 
9
- if ENV['CI']
16
+ if ENV["CI"]
10
17
  begin
11
- require 'coveralls'
18
+ require "coveralls"
12
19
  Coveralls.wear!
13
20
  rescue LoadError
14
21
  nil
15
22
  end
16
23
  end
17
24
 
18
- require 'minitest/autorun'
19
- require 'rspec/mocks/minitest_integration'
25
+ require "minitest/autorun"
26
+ require "rspec/mocks/minitest_integration"
20
27
 
21
28
  Thread.abort_on_exception = true
22
29
 
@@ -60,4 +67,4 @@ module BaseTestExtensions
60
67
  end
61
68
  end
62
69
 
63
- Minitest::Test.send :include, BaseTestExtensions
70
+ Minitest::Test.include BaseTestExtensions
@@ -1,34 +1,34 @@
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 GLib::Array do
6
- it 'knows its element type' do
6
+ it "knows its element type" do
7
7
  arr = GLib::Array.new :gint32
8
8
  assert_equal :gint32, arr.element_type
9
9
  end
10
10
 
11
- describe '#append_vals' do
11
+ describe "#append_vals" do
12
12
  before do
13
13
  @arr = GLib::Array.new :gint32
14
14
  @result = @arr.append_vals [1, 2, 3]
15
15
  end
16
16
 
17
- it 'appends values' do
17
+ it "appends values" do
18
18
  assert_equal 3, @arr.len
19
19
  end
20
20
 
21
- it 'returns self' do
21
+ it "returns self" do
22
22
  assert_equal @result, @arr
23
23
  end
24
24
  end
25
25
 
26
- describe '#each' do
26
+ describe "#each" do
27
27
  before do
28
28
  @arr = GLib::Array.new(:gint32).append_vals [1, 2, 3]
29
29
  end
30
30
 
31
- it 'iterates over the values' do
31
+ it "iterates over the values" do
32
32
  a = []
33
33
  @arr.each { |v| a << v }
34
34
 
@@ -36,8 +36,8 @@ describe GLib::Array do
36
36
  end
37
37
  end
38
38
 
39
- describe '::wrap' do
40
- it 'wraps a pointer, taking the element type as the first argument' do
39
+ describe "::wrap" do
40
+ it "wraps a pointer, taking the element type as the first argument" do
41
41
  arr = GLib::Array.new :gint32
42
42
  arr.append_vals [1, 2, 3]
43
43
  arr2 = GLib::Array.wrap :gint32, arr.to_ptr
@@ -47,49 +47,64 @@ describe GLib::Array do
47
47
  it "warns the element sizes don't match" do
48
48
  arr = GLib::Array.new :gint32
49
49
  arr.append_vals [1, 2, 3]
50
- proc { GLib::Array.wrap :gint8, arr.to_ptr }.must_output nil, /sizes do not match/
50
+ _(proc { GLib::Array.wrap :gint8, arr.to_ptr }).must_output nil, /sizes do not match/
51
51
  end
52
52
 
53
- it 'handles a struct as the element type' do
53
+ it "handles a struct as the element type" do
54
54
  vals = [1, 2, 3].map { |i| GObject::EnumValue.new.tap { |ev| ev.value = i } }
55
55
  arr = GLib::Array.new GObject::EnumValue
56
56
  arr.append_vals vals
57
57
  arr2 = GLib::Array.wrap GObject::EnumValue, arr.to_ptr
58
- arr2.to_a.must_equal arr.to_a
58
+ _(arr2.to_a).must_equal arr.to_a
59
59
  end
60
60
  end
61
61
 
62
- it 'includes Enumerable' do
63
- GLib::Array.must_include Enumerable
62
+ it "includes Enumerable" do
63
+ _(GLib::Array).must_include Enumerable
64
64
  end
65
65
 
66
- it 'has a working #to_a method' do
66
+ it "has a working #to_a method" do
67
67
  arr = GLib::Array.new :gint32
68
68
  arr.append_vals [1, 2, 3]
69
69
  assert_equal [1, 2, 3], arr.to_a
70
70
  end
71
71
 
72
- describe '.from' do
73
- it 'creates a GArray from an array of :gint32' do
72
+ describe ".from" do
73
+ it "creates a GArray from an array of :gint32" do
74
74
  arr = GLib::Array.from :gint32, [3, 2, 1]
75
- arr.must_be_instance_of GLib::Array
76
- arr.to_a.must_equal [3, 2, 1]
75
+ _(arr).must_be_instance_of GLib::Array
76
+ _(arr.to_a).must_equal [3, 2, 1]
77
77
  end
78
78
 
79
- it 'creates a GArray from an array of :gboolean' do
79
+ it "creates a GArray from an array of :gboolean" do
80
80
  arr = GLib::Array.from :gboolean, [true, false, true]
81
- arr.must_be_instance_of GLib::Array
82
- arr.to_a.must_equal [true, false, true]
81
+ _(arr).must_be_instance_of GLib::Array
82
+ _(arr.to_a).must_equal [true, false, true]
83
83
  end
84
84
 
85
- it 'return its argument if given a GArray' do
85
+ it "creates a GArray from an array of :utf8 values" do
86
+ arr = GLib::Array.from :utf8, %w(hello there)
87
+ _(arr).must_be_instance_of GLib::Array
88
+ _(arr.to_a).must_equal %w(hello there)
89
+ end
90
+
91
+ it "creates a GArray from an array of struct values" do
92
+ values = [1, 2, 3].map do |val|
93
+ GObject::EnumValue.new.tap { |it| it.value = val }
94
+ end
95
+ arr = GLib::Array.from GObject::EnumValue, values
96
+ _(arr).must_be_instance_of GLib::Array
97
+ _(arr.to_a.map(&:value)).must_equal [1, 2, 3]
98
+ end
99
+
100
+ it "return its argument if given a GArray" do
86
101
  arr = GLib::Array.new :gint32
87
102
  arr.append_vals [3, 2, 1]
88
103
  arr2 = GLib::Array.from :gint32, arr
89
104
  assert arr2.equal? arr
90
105
  end
91
106
 
92
- it 'wraps its argument if given a pointer' do
107
+ it "wraps its argument if given a pointer" do
93
108
  arr = GLib::Array.new :gint32
94
109
  arr.append_vals [3, 2, 1]
95
110
  pointer = arr.to_ptr
@@ -97,91 +112,91 @@ describe GLib::Array do
97
112
  arr2 = GLib::Array.from :gint32, pointer
98
113
  assert_instance_of GLib::Array, arr2
99
114
  refute arr2.equal? arr
100
- arr2.to_a.must_equal arr.to_a
115
+ _(arr2.to_a).must_equal arr.to_a
101
116
  end
102
117
  end
103
118
 
104
- describe '#==' do
105
- it 'returns true when comparing to an array with the same elements' do
119
+ describe "#==" do
120
+ it "returns true when comparing to an array with the same elements" do
106
121
  arr = GLib::Array.from :gint32, [1, 2, 3]
107
122
 
108
- arr.must_be :==, [1, 2, 3]
123
+ _(arr).must_be :==, [1, 2, 3]
109
124
  end
110
125
 
111
- it 'returns false when comparing to an array with different elements' do
126
+ it "returns false when comparing to an array with different elements" do
112
127
  arr = GLib::Array.from :gint32, [1, 2, 3]
113
128
 
114
- arr.wont_be :==, [1, 2]
129
+ _(arr).wont_be :==, [1, 2]
115
130
  end
116
131
 
117
- it 'returns true when comparing to a GArray with the same elements' do
132
+ it "returns true when comparing to a GArray with the same elements" do
118
133
  arr = GLib::Array.from :gint32, [1, 2, 3]
119
134
  other = GLib::Array.from :gint32, [1, 2, 3]
120
135
 
121
- arr.must_be :==, other
136
+ _(arr).must_be :==, other
122
137
  end
123
138
 
124
- it 'returns false when comparing to a GArray with different elements' do
139
+ it "returns false when comparing to a GArray with different elements" do
125
140
  arr = GLib::Array.from :gint32, [1, 2, 3]
126
141
  other = GLib::Array.from :gint32, [1, 2]
127
142
 
128
- arr.wont_be :==, other
143
+ _(arr).wont_be :==, other
129
144
  end
130
145
  end
131
146
 
132
- describe '#index' do
133
- it 'returns the proper element for an array of :gint32' do
147
+ describe "#index" do
148
+ it "returns the proper element for an array of :gint32" do
134
149
  arr = GLib::Array.from :gint32, [1, 2, 3]
135
- arr.index(2).must_equal 3
150
+ _(arr.index(2)).must_equal 3
136
151
  end
137
152
 
138
- it 'returns the proper element for an array of :utf8' do
153
+ it "returns the proper element for an array of :utf8" do
139
154
  arr = GLib::Array.from :utf8, %w(a b c)
140
- arr.index(1).must_equal 'b'
155
+ _(arr.index(1)).must_equal "b"
141
156
  end
142
157
 
143
- it 'returns the proper element for an array of :gboolean' do
158
+ it "returns the proper element for an array of :gboolean" do
144
159
  arr = GLib::Array.from :gboolean, [true, false, true]
145
- arr.index(1).must_equal false
160
+ _(arr.index(1)).must_equal false
146
161
  end
147
162
 
148
- it 'returns the proper element for an array of struct' do
163
+ it "returns the proper element for an array of struct" do
149
164
  vals = [1, 2, 3].map { |i| GObject::EnumValue.new.tap { |ev| ev.value = i } }
150
165
  arr = GLib::Array.from GObject::EnumValue, vals
151
- arr.index(1).value.must_equal 2
166
+ _(arr.index(1).value).must_equal 2
152
167
  end
153
168
 
154
- it 'raises an error if the index is out of bounds' do
169
+ it "raises an error if the index is out of bounds" do
155
170
  arr = GLib::Array.from :gint32, [1, 2, 3]
156
- proc { arr.index(16) }.must_raise IndexError
157
- proc { arr.index(-1) }.must_raise IndexError
171
+ _(proc { arr.index(16) }).must_raise IndexError
172
+ _(proc { arr.index(-1) }).must_raise IndexError
158
173
  end
159
174
  end
160
175
 
161
- describe '#reset_typespec' do
162
- describe 'when it needs to guess the type' do
163
- it 'guesses :uint8 for size 1' do
176
+ describe "#reset_typespec" do
177
+ describe "when it needs to guess the type" do
178
+ it "guesses :uint8 for size 1" do
164
179
  arr = GLib::Array.from :int8, [1, 2, 3]
165
180
  arr.reset_typespec
166
- arr.element_type.must_equal :uint8
181
+ _(arr.element_type).must_equal :uint8
167
182
  end
168
183
 
169
- it 'guesses :uint16 for size 2' do
184
+ it "guesses :uint16 for size 2" do
170
185
  arr = GLib::Array.from :int16, [1, 2, 3]
171
186
  arr.reset_typespec
172
- arr.element_type.must_equal :uint16
187
+ _(arr.element_type).must_equal :uint16
173
188
  end
174
189
 
175
- it 'guesses :uint32 for size 4' do
190
+ it "guesses :uint32 for size 4" do
176
191
  arr = GLib::Array.from :int32, [1, 2, 3]
177
192
  arr.reset_typespec
178
- arr.element_type.must_equal :uint32
193
+ _(arr.element_type).must_equal :uint32
179
194
  end
180
195
 
181
- it 'guesses :uint64 for size 8' do
196
+ it "guesses :uint64 for size 8" do
182
197
  arr = GLib::Array.from :int64, [1, 2, 3]
183
198
  arr.reset_typespec
184
- arr.element_type.must_equal :uint64
199
+ _(arr.element_type).must_equal :uint64
185
200
  end
186
201
  end
187
202
  end
@@ -1,22 +1,28 @@
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 GLib::ByteArray do
6
- it 'can succesfully be created with GLib::ByteArray.new' do
6
+ it "can succesfully be created with GLib::ByteArray.new" do
7
7
  ba = GLib::ByteArray.new
8
8
  assert_instance_of GLib::ByteArray, ba
9
9
  end
10
10
 
11
- it 'allows strings to be appended to it' do
11
+ it "allows strings to be appended to it" do
12
12
  ba = GLib::ByteArray.new
13
- ba.append 'abdc'
13
+ ba.append "abdc"
14
14
  pass
15
15
  end
16
16
 
17
- it 'has a working #to_string method' do
17
+ it "has a working #to_string method" do
18
18
  ba = GLib::ByteArray.new
19
- ba = ba.append 'abdc'
20
- assert_equal 'abdc', ba.to_string
19
+ ba = ba.append "abdc"
20
+ assert_equal "abdc", ba.to_string
21
+ end
22
+
23
+ it "can be created from a string" do
24
+ str = "cdba"
25
+ ba = GLib::ByteArray.from str
26
+ _(ba.to_string).must_equal str
21
27
  end
22
28
  end
@@ -1,56 +1,61 @@
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 GLib::Bytes do
6
- it 'can succesfully be created with GLib::Bytes.new' do
6
+ it "can succesfully be created with GLib::Bytes.new" do
7
7
  bytes = GLib::Bytes.new [1, 2, 3]
8
- bytes.must_be_instance_of GLib::Bytes
8
+ _(bytes).must_be_instance_of GLib::Bytes
9
9
  end
10
10
 
11
- it 'has a working #get_size method' do
11
+ it "has a working #get_size method" do
12
12
  bytes = GLib::Bytes.new [1, 2, 3]
13
- bytes.get_size.must_equal 3
13
+ _(bytes.get_size).must_equal 3
14
14
  end
15
15
 
16
- it 'has a working #get_data method' do
16
+ it "has #size as an alias for #get_size" do
17
17
  bytes = GLib::Bytes.new [1, 2, 3]
18
- bytes.get_data.to_a.must_equal [1, 2, 3]
18
+ _(bytes.size).must_equal 3
19
19
  end
20
20
 
21
- it 'has a working #each method' do
21
+ it "has a working #get_data method" do
22
+ bytes = GLib::Bytes.new [1, 2, 3]
23
+ _(bytes.get_data.to_a).must_equal [1, 2, 3]
24
+ end
25
+
26
+ it "has a working #each method" do
22
27
  a = []
23
28
  bytes = GLib::Bytes.new [1, 2, 3]
24
29
  bytes.each do |v|
25
30
  a.unshift v
26
31
  end
27
- a.must_equal [3, 2, 1]
32
+ _(a).must_equal [3, 2, 1]
28
33
  end
29
34
 
30
- it 'has a working #to_a method' do
35
+ it "has a working #to_a method" do
31
36
  bytes = GLib::Bytes.new [1, 2, 3]
32
- bytes.to_a.must_equal [1, 2, 3]
37
+ _(bytes.to_a).must_equal [1, 2, 3]
33
38
  end
34
39
 
35
- describe '.from' do
36
- it 'creates a GLib::Bytes object form an array of small integers' do
40
+ describe ".from" do
41
+ it "creates a GLib::Bytes object form an array of small integers" do
37
42
  bytes = GLib::Bytes.from [1, 2, 3]
38
- bytes.must_be_instance_of GLib::Bytes
39
- bytes.to_a.must_equal [1, 2, 3]
43
+ _(bytes).must_be_instance_of GLib::Bytes
44
+ _(bytes.to_a).must_equal [1, 2, 3]
40
45
  end
41
46
 
42
- it 'returns its argument if given a GLib::Bytes object' do
47
+ it "returns its argument if given a GLib::Bytes object" do
43
48
  bytes = GLib::Bytes.new [1, 2, 3]
44
49
  result = GLib::Bytes.from bytes
45
50
  assert result.equal?(bytes)
46
51
  end
47
52
 
48
- it 'wraps its argument if given a pointer' do
53
+ it "wraps its argument if given a pointer" do
49
54
  bytes = GLib::Bytes.new [1, 2, 3]
50
55
  ptr = bytes.to_ptr
51
56
  result = GLib::Bytes.from ptr
52
- result.to_a.must_equal [1, 2, 3]
53
- result.to_ptr.must_equal ptr
57
+ _(result.to_a).must_equal [1, 2, 3]
58
+ _(result.to_ptr).must_equal ptr
54
59
  end
55
60
  end
56
61
  end
@@ -1,38 +1,38 @@
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 GObject::Closure do
6
- describe '.new' do
7
- it 'updates the ref_count of the created object' do
6
+ describe ".new" do
7
+ it "updates the ref_count of the created object" do
8
8
  # Tested on a subclass ...
9
9
  c = GObject::RubyClosure.new {}
10
- c.ref_count.must_equal 1
10
+ _(c.ref_count).must_equal 1
11
11
  end
12
12
  end
13
13
 
14
- describe '#invoke' do
15
- it 'invokes the closure' do
14
+ describe "#invoke" do
15
+ it "invokes the closure" do
16
16
  a = 0
17
17
  c = GObject::RubyClosure.new { a = 2 }
18
18
  c2 = GObject::Closure.wrap(c.to_ptr)
19
19
  c2.invoke nil, []
20
- a.must_equal 2
20
+ _(a).must_equal 2
21
21
  end
22
22
 
23
- it 'returns the closure result' do
23
+ it "returns the closure result" do
24
24
  c = GObject::RubyClosure.new { 3 }
25
25
  c2 = GObject::Closure.wrap(c.to_ptr)
26
26
  result = c2.invoke GObject::Value.for_gtype(GObject::TYPE_INT), []
27
- result.must_equal 3
27
+ _(result).must_equal 3
28
28
  end
29
29
 
30
- it 'passes arguments' do
30
+ it "passes arguments" do
31
31
  a = 0
32
32
  c = GObject::RubyClosure.new { |val| a = val }
33
33
  c2 = GObject::Closure.wrap(c.to_ptr)
34
34
  c2.invoke nil, [5]
35
- a.must_equal 5
35
+ _(a).must_equal 5
36
36
  end
37
37
  end
38
38
  end