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
@@ -17,7 +17,7 @@ module GirFFI
17
17
  end
18
18
 
19
19
  def conversion_arguments(name)
20
- @type_info.extra_conversion_arguments.map(&:inspect).push(name).join(', ')
20
+ @type_info.extra_conversion_arguments.map(&:inspect).push(name).join(", ")
21
21
  end
22
22
 
23
23
  private
@@ -25,18 +25,18 @@ module GirFFI
25
25
  def conversion_method
26
26
  case @type_info.flattened_tag
27
27
  when :utf8
28
- 'from_utf8'
28
+ "from_utf8"
29
29
  when :struct, :c
30
30
  case @ownership_transfer
31
31
  when :everything
32
- 'copy_from'
32
+ "copy_from"
33
33
  else
34
- 'from'
34
+ "from"
35
35
  end
36
36
  when :enum
37
- 'to_int'
37
+ "to_int"
38
38
  else
39
- 'from'
39
+ "from"
40
40
  end
41
41
  end
42
42
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/base_type_builder'
4
- require 'gir_ffi/builders/marshalling_method_builder'
3
+ require "gir_ffi/builders/base_type_builder"
4
+ require "gir_ffi/builders/marshalling_method_builder"
5
5
 
6
6
  module GirFFI
7
7
  module Builders
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/registered_type_builder'
4
- require 'gir_ffi/builders/struct_like'
5
- require 'gir_ffi/struct_base'
3
+ require "gir_ffi/builders/registered_type_builder"
4
+ require "gir_ffi/builders/struct_like"
5
+ require "gir_ffi/struct_base"
6
6
 
7
7
  module GirFFI
8
8
  module Builders
@@ -16,7 +16,9 @@ module GirFFI
16
16
 
17
17
  def superclass
18
18
  # HACK: Inheritance chain is not expressed in GObject's code correctly.
19
- return GObject::ObjectClass if info.full_type_name == 'GObject::InitiallyUnownedClass'
19
+ if info.full_type_name == "GObject::InitiallyUnownedClass"
20
+ return GObject::ObjectClass
21
+ end
20
22
  return parent_field_type.tag_or_class if info.gtype_struct?
21
23
  return BoxedBase if GObject.type_fundamental(info.gtype) == GObject::TYPE_BOXED
22
24
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/with_layout'
3
+ require "gir_ffi/builders/with_layout"
4
4
 
5
5
  module GirFFI
6
6
  module Builders
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/callback_builder'
4
- require 'gir_ffi/builders/constant_builder'
5
- require 'gir_ffi/builders/enum_builder'
6
- require 'gir_ffi/builders/flags_builder'
7
- require 'gir_ffi/builders/interface_builder'
8
- require 'gir_ffi/builders/object_builder'
9
- require 'gir_ffi/builders/struct_builder'
10
- require 'gir_ffi/builders/signal_closure_builder'
11
- require 'gir_ffi/builders/unintrospectable_boxed_builder'
12
- require 'gir_ffi/builders/unintrospectable_builder'
13
- require 'gir_ffi/builders/union_builder'
14
- require 'gir_ffi/builders/vfunc_builder'
3
+ require "gir_ffi/builders/callback_builder"
4
+ require "gir_ffi/builders/constant_builder"
5
+ require "gir_ffi/builders/enum_builder"
6
+ require "gir_ffi/builders/flags_builder"
7
+ require "gir_ffi/builders/interface_builder"
8
+ require "gir_ffi/builders/object_builder"
9
+ require "gir_ffi/builders/struct_builder"
10
+ require "gir_ffi/builders/signal_closure_builder"
11
+ require "gir_ffi/builders/unintrospectable_boxed_builder"
12
+ require "gir_ffi/builders/unintrospectable_builder"
13
+ require "gir_ffi/builders/union_builder"
14
+ require "gir_ffi/builders/vfunc_builder"
15
15
 
16
16
  module GirFFI
17
17
  module Builders
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/registered_type_builder'
4
- require 'gir_ffi/builders/struct_like'
3
+ require "gir_ffi/builders/registered_type_builder"
4
+ require "gir_ffi/builders/struct_like"
5
5
 
6
6
  module GirFFI
7
7
  module Builders
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/object_builder'
4
- require 'gir_ffi/unintrospectable_signal_info'
3
+ require "gir_ffi/builders/object_builder"
4
+ require "gir_ffi/unintrospectable_signal_info"
5
5
 
6
6
  module GirFFI
7
7
  module Builders
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/registered_type_builder'
4
- require 'gir_ffi/builders/struct_like'
5
- require 'gir_ffi/union_base'
6
- require 'gir_ffi/union'
3
+ require "gir_ffi/builders/registered_type_builder"
4
+ require "gir_ffi/builders/struct_like"
5
+ require "gir_ffi/union_base"
6
+ require "gir_ffi/union"
7
7
 
8
8
  module GirFFI
9
9
  module Builders
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/object_builder'
4
- require 'gir_ffi/g_type'
3
+ require "gir_ffi/builders/object_builder"
4
+ require "gir_ffi/g_type"
5
5
 
6
6
  module GirFFI
7
7
  module Builders
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/callback_argument_builder'
3
+ require "gir_ffi/builders/callback_argument_builder"
4
4
 
5
5
  module GirFFI
6
6
  module Builders
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/return_value_info'
4
- require 'gir_ffi/builders/base_type_builder'
5
- require 'gir_ffi/builders/mapping_method_builder'
6
- require 'gir_ffi/receiver_type_info'
7
- require 'gir_ffi/receiver_argument_info'
8
- require 'gir_ffi/callback_base'
3
+ require "gir_ffi/return_value_info"
4
+ require "gir_ffi/builders/base_type_builder"
5
+ require "gir_ffi/builders/mapping_method_builder"
6
+ require "gir_ffi/receiver_type_info"
7
+ require "gir_ffi/receiver_argument_info"
8
+ require "gir_ffi/callback_base"
9
9
 
10
10
  module GirFFI
11
11
  module Builders
@@ -42,8 +42,8 @@ module GirFFI
42
42
  end
43
43
 
44
44
  def argument_ffi_types
45
- @argument_ffi_types ||= info.argument_ffi_types.
46
- unshift(receiver_type_info.to_callback_ffi_type)
45
+ @argument_ffi_types ||= info.argument_ffi_types
46
+ .unshift(receiver_type_info.to_callback_ffi_type)
47
47
  end
48
48
 
49
49
  def return_ffi_type
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/builders/field_builder'
3
+ require "gir_ffi/builders/field_builder"
4
4
 
5
5
  module GirFFI
6
6
  module Builders
@@ -35,7 +35,7 @@ module GirFFI
35
35
  end
36
36
 
37
37
  def base_layout_specification
38
- fields.map(&:layout_specification).flatten(1)
38
+ fields.flat_map(&:layout_specification)
39
39
  end
40
40
 
41
41
  def klass
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/type_base'
3
+ require "gir_ffi/type_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base module for callbacks and vfuncs.
@@ -57,11 +57,9 @@ module GirFFI
57
57
  return unless prc
58
58
 
59
59
  new do |*args|
60
- begin
61
- call_with_argument_mapping(prc, *args)
62
- rescue StandardError => e
63
- GLib::MainLoop.handle_exception e
64
- end
60
+ call_with_argument_mapping(prc, *args)
61
+ rescue StandardError => e
62
+ GLib::MainLoop.handle_exception e
65
63
  end
66
64
  end
67
65
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'forwardable'
4
- require 'gir_ffi/registered_type_base'
5
- require 'gir_ffi/builders/null_class_builder'
6
- require 'gir_ffi/method_setup'
7
- require 'gir_ffi/instance_method_setup'
3
+ require "forwardable"
4
+ require "gir_ffi/registered_type_base"
5
+ require "gir_ffi/builders/null_class_builder"
6
+ require "gir_ffi/method_setup"
7
+ require "gir_ffi/instance_method_setup"
8
8
 
9
9
  module GirFFI
10
10
  # Base class for all generated classes and structs. Contains code for dealing
@@ -18,6 +18,7 @@ module GirFFI
18
18
  GIR_FFI_BUILDER = Builders::NullClassBuilder.new
19
19
 
20
20
  attr_reader :struct
21
+
21
22
  def_delegators :@struct, :to_ptr
22
23
 
23
24
  def setup_and_call(method, arguments, &block)
@@ -1,25 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
4
- require 'ffi/bit_masks'
5
-
6
- require 'ffi-gobject_introspection'
7
-
8
- require 'gir_ffi-base'
9
-
10
- require 'gir_ffi/ffi_ext'
11
- require 'gir_ffi/class_base'
12
- require 'gir_ffi/type_map'
13
- require 'gir_ffi/info_ext'
14
- require 'gir_ffi/in_pointer'
15
- require 'gir_ffi/in_out_pointer'
16
- require 'gir_ffi/sized_array'
17
- require 'gir_ffi/zero_terminated'
18
- require 'gir_ffi/arg_helper'
19
- require 'gir_ffi/builder'
20
- require 'gir_ffi/user_defined_object_info'
21
- require 'gir_ffi/builders/user_defined_builder'
22
- require 'gir_ffi/version'
3
+ require "ffi"
4
+ require "ffi/bit_masks"
5
+
6
+ require "ffi-gobject_introspection"
7
+
8
+ require "gir_ffi-base"
9
+
10
+ require "gir_ffi/ffi_ext"
11
+ require "gir_ffi/class_base"
12
+ require "gir_ffi/type_map"
13
+ require "gir_ffi/info_ext"
14
+ require "gir_ffi/in_pointer"
15
+ require "gir_ffi/sized_array"
16
+ require "gir_ffi/zero_terminated"
17
+ require "gir_ffi/arg_helper"
18
+ require "gir_ffi/builder"
19
+ require "gir_ffi/user_defined_object_info"
20
+ require "gir_ffi/builders/user_defined_builder"
21
+ require "gir_ffi/version"
23
22
 
24
23
  module GirFFI
25
24
  # Core GirFFI interface.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/enum_like_base'
3
+ require "gir_ffi/enum_like_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base module for enums.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/registered_type_base'
4
- require 'gir_ffi/method_setup'
3
+ require "gir_ffi/registered_type_base"
4
+ require "gir_ffi/method_setup"
5
5
 
6
6
  module GirFFI
7
7
  # Base module for enums and flags.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/error_type_info'
3
+ require "gir_ffi/error_type_info"
4
4
 
5
5
  module GirFFI
6
6
  # Represents an error argument with the same interface as IArgInfo
@@ -14,7 +14,7 @@ module GirFFI
14
14
  end
15
15
 
16
16
  def name
17
- '_error'
17
+ "_error"
18
18
  end
19
19
  end
20
20
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/info_ext/i_type_info'
3
+ require "gir_ffi/info_ext/i_type_info"
4
4
 
5
5
  module GirFFI
6
6
  # Represents the type of an error argument for callbacks and functions,
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/ffi_ext/pointer'
3
+ require "gir_ffi/ffi_ext/pointer"
@@ -17,7 +17,7 @@ module GirFFI
17
17
  end
18
18
 
19
19
  def to_utf8
20
- null? ? nil : read_string.force_encoding('utf-8')
20
+ null? ? nil : read_string.force_encoding("utf-8")
21
21
  end
22
22
  end
23
23
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/enum_like_base'
3
+ require "gir_ffi/enum_like_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base module for flags.
@@ -29,6 +29,8 @@ module GirFFI
29
29
  case type
30
30
  when :utf8, :filename
31
31
  from_utf8 val
32
+ when :gfloat, :gdouble, :gint64, :guint64
33
+ from_basic_type type, val
32
34
  when :gint32, :guint32, :gint8, :GType
33
35
  FFI::Pointer.new val
34
36
  when GirFFI::EnumLikeBase
@@ -51,6 +53,14 @@ module GirFFI
51
53
  class << self
52
54
  private
53
55
 
56
+ def from_basic_type(type, value)
57
+ ffi_type = TypeMap.type_specification_to_ffi_type type
58
+ FFI::MemoryPointer.new(ffi_type).tap do |block|
59
+ block.autorelease = false
60
+ block.send "put_#{ffi_type}", 0, value
61
+ end
62
+ end
63
+
54
64
  def from_simple_type_array(type, ary)
55
65
  case type
56
66
  when :utf8, :filename
@@ -1,16 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/info_ext/full_type_name'
4
- require 'gir_ffi/info_ext/i_arg_info'
5
- require 'gir_ffi/info_ext/i_callable_info'
6
- require 'gir_ffi/info_ext/i_callback_info'
7
- require 'gir_ffi/info_ext/i_field_info'
8
- require 'gir_ffi/info_ext/i_function_info'
9
- require 'gir_ffi/info_ext/i_property_info'
10
- require 'gir_ffi/info_ext/i_registered_type_info'
11
- require 'gir_ffi/info_ext/i_signal_info'
12
- require 'gir_ffi/info_ext/i_type_info'
13
- require 'gir_ffi/info_ext/i_unresolved_info'
14
- require 'gir_ffi/info_ext/i_vfunc_info'
15
- require 'gir_ffi/info_ext/safe_constant_name'
16
- require 'gir_ffi/info_ext/safe_function_name'
3
+ require "gir_ffi/info_ext/full_type_name"
4
+ require "gir_ffi/info_ext/i_arg_info"
5
+ require "gir_ffi/info_ext/i_callable_info"
6
+ require "gir_ffi/info_ext/i_callback_info"
7
+ require "gir_ffi/info_ext/i_field_info"
8
+ require "gir_ffi/info_ext/i_function_info"
9
+ require "gir_ffi/info_ext/i_property_info"
10
+ require "gir_ffi/info_ext/i_registered_type_info"
11
+ require "gir_ffi/info_ext/i_signal_info"
12
+ require "gir_ffi/info_ext/i_type_info"
13
+ require "gir_ffi/info_ext/i_unresolved_info"
14
+ require "gir_ffi/info_ext/i_value_info"
15
+ require "gir_ffi/info_ext/i_vfunc_info"
16
+ require "gir_ffi/info_ext/safe_constant_name"
17
+ require "gir_ffi/info_ext/safe_function_name"
@@ -13,6 +13,6 @@ module GirFFI
13
13
  end
14
14
  end
15
15
 
16
- GObjectIntrospection::ICallbackInfo.send :include, GirFFI::InfoExt::FullTypeName
17
- GObjectIntrospection::IConstantInfo.send :include, GirFFI::InfoExt::FullTypeName
18
- GObjectIntrospection::IRegisteredTypeInfo.send :include, GirFFI::InfoExt::FullTypeName
16
+ GObjectIntrospection::ICallbackInfo.include GirFFI::InfoExt::FullTypeName
17
+ GObjectIntrospection::IConstantInfo.include GirFFI::InfoExt::FullTypeName
18
+ GObjectIntrospection::IRegisteredTypeInfo.include GirFFI::InfoExt::FullTypeName
@@ -19,4 +19,4 @@ module GirFFI
19
19
  end
20
20
  end
21
21
 
22
- GObjectIntrospection::IArgInfo.send :include, GirFFI::InfoExt::IArgInfo
22
+ GObjectIntrospection::IArgInfo.include GirFFI::InfoExt::IArgInfo