gir_ffi 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +21 -0
  3. data/Gemfile +6 -4
  4. data/README.md +4 -4
  5. data/Rakefile +5 -5
  6. data/lib/ffi-glib/array.rb +14 -4
  7. data/lib/ffi-glib/byte_array.rb +7 -2
  8. data/lib/ffi-glib/container_class_methods.rb +1 -1
  9. data/lib/ffi-glib/error.rb +1 -1
  10. data/lib/ffi-glib/hash_table.rb +3 -3
  11. data/lib/ffi-glib/list.rb +1 -1
  12. data/lib/ffi-glib/list_methods.rb +1 -1
  13. data/lib/ffi-glib/main_loop.rb +3 -3
  14. data/lib/ffi-glib/ptr_array.rb +30 -8
  15. data/lib/ffi-glib/s_list.rb +1 -1
  16. data/lib/ffi-glib/variant.rb +1 -1
  17. data/lib/ffi-glib.rb +16 -16
  18. data/lib/ffi-gobject/object.rb +23 -32
  19. data/lib/ffi-gobject/param_spec.rb +1 -1
  20. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  21. data/lib/ffi-gobject/value.rb +37 -28
  22. data/lib/ffi-gobject.rb +13 -13
  23. data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
  24. data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
  25. data/lib/ffi-gobject_introspection/i_base_info.rb +27 -17
  26. data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
  27. data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
  28. data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
  29. data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
  30. data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
  32. data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
  33. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  34. data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
  35. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
  36. data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
  37. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
  38. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
  39. data/lib/ffi-gobject_introspection/lib.rb +30 -19
  40. data/lib/ffi-gobject_introspection/strv.rb +1 -1
  41. data/lib/ffi-gobject_introspection.rb +20 -20
  42. data/lib/gir_ffi/allocation_helper.rb +1 -1
  43. data/lib/gir_ffi/arg_helper.rb +4 -4
  44. data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -23
  45. data/lib/gir_ffi/boolean.rb +1 -1
  46. data/lib/gir_ffi/boxed_base.rb +1 -1
  47. data/lib/gir_ffi/builder.rb +18 -10
  48. data/lib/gir_ffi/builders/argument_builder.rb +17 -17
  49. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  50. data/lib/gir_ffi/builders/base_method_builder.rb +7 -7
  51. data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
  52. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  53. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
  54. data/lib/gir_ffi/builders/callback_argument_builder.rb +8 -8
  55. data/lib/gir_ffi/builders/callback_builder.rb +3 -3
  56. data/lib/gir_ffi/builders/callback_return_value_builder.rb +2 -2
  57. data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
  58. data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
  59. data/lib/gir_ffi/builders/constant_builder.rb +1 -1
  60. data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
  61. data/lib/gir_ffi/builders/enum_builder.rb +2 -2
  62. data/lib/gir_ffi/builders/field_builder.rb +16 -15
  63. data/lib/gir_ffi/builders/flags_builder.rb +2 -2
  64. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
  65. data/lib/gir_ffi/builders/function_builder.rb +11 -5
  66. data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
  67. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
  68. data/lib/gir_ffi/builders/interface_builder.rb +2 -2
  69. data/lib/gir_ffi/builders/mapping_method_builder.rb +9 -9
  70. data/lib/gir_ffi/builders/marshalling_method_builder.rb +7 -7
  71. data/lib/gir_ffi/builders/method_template.rb +1 -1
  72. data/lib/gir_ffi/builders/module_builder.rb +4 -6
  73. data/lib/gir_ffi/builders/object_builder.rb +6 -6
  74. data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
  75. data/lib/gir_ffi/builders/property_builder.rb +13 -12
  76. data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
  77. data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
  78. data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
  79. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
  80. data/lib/gir_ffi/builders/signal_closure_builder.rb +2 -2
  81. data/lib/gir_ffi/builders/struct_builder.rb +4 -4
  82. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  83. data/lib/gir_ffi/builders/type_builder.rb +12 -12
  84. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
  85. data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
  86. data/lib/gir_ffi/builders/union_builder.rb +4 -4
  87. data/lib/gir_ffi/builders/user_defined_builder.rb +2 -2
  88. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  89. data/lib/gir_ffi/builders/vfunc_builder.rb +6 -6
  90. data/lib/gir_ffi/builders/with_layout.rb +2 -2
  91. data/lib/gir_ffi/callback_base.rb +1 -1
  92. data/lib/gir_ffi/class_base.rb +5 -5
  93. data/lib/gir_ffi/core.rb +19 -20
  94. data/lib/gir_ffi/enum_base.rb +1 -1
  95. data/lib/gir_ffi/enum_like_base.rb +2 -2
  96. data/lib/gir_ffi/error_argument_info.rb +2 -2
  97. data/lib/gir_ffi/error_type_info.rb +1 -1
  98. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  99. data/lib/gir_ffi/ffi_ext.rb +1 -1
  100. data/lib/gir_ffi/flags_base.rb +1 -1
  101. data/lib/gir_ffi/in_pointer.rb +10 -0
  102. data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
  103. data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
  104. data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
  105. data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
  106. data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
  107. data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
  108. data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
  109. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
  110. data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
  111. data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
  112. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
  113. data/lib/gir_ffi/info_ext/i_value_info.rb +2 -2
  114. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  115. data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
  116. data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
  117. data/lib/gir_ffi/info_ext.rb +15 -15
  118. data/lib/gir_ffi/interface_base.rb +3 -3
  119. data/lib/gir_ffi/lib_c.rb +1 -1
  120. data/lib/gir_ffi/method_stubber.rb +1 -1
  121. data/lib/gir_ffi/module_base.rb +1 -1
  122. data/lib/gir_ffi/object_base.rb +3 -4
  123. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  124. data/lib/gir_ffi/receiver_type_info.rb +2 -2
  125. data/lib/gir_ffi/registered_type_base.rb +1 -1
  126. data/lib/gir_ffi/sized_array.rb +4 -2
  127. data/lib/gir_ffi/struct.rb +1 -1
  128. data/lib/gir_ffi/struct_base.rb +1 -1
  129. data/lib/gir_ffi/type_map.rb +2 -23
  130. data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
  131. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  132. data/lib/gir_ffi/union.rb +1 -1
  133. data/lib/gir_ffi/union_base.rb +1 -1
  134. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  135. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  136. data/lib/gir_ffi/version.rb +1 -1
  137. data/lib/gir_ffi-base/gobject/lib.rb +3 -2
  138. data/lib/gir_ffi-base/gobject.rb +26 -25
  139. data/lib/gir_ffi-base.rb +1 -1
  140. data/lib/gir_ffi.rb +3 -3
  141. data/tasks/test.rake +3 -2
  142. data/test/base_test_helper.rb +16 -9
  143. data/test/ffi-glib/array_test.rb +71 -56
  144. data/test/ffi-glib/byte_array_test.rb +13 -7
  145. data/test/ffi-glib/bytes_test.rb +24 -19
  146. data/test/ffi-glib/closure_test.rb +11 -11
  147. data/test/ffi-glib/destroy_notify_test.rb +6 -6
  148. data/test/ffi-glib/hash_table_test.rb +27 -27
  149. data/test/ffi-glib/list_test.rb +22 -22
  150. data/test/ffi-glib/main_loop_test.rb +12 -12
  151. data/test/ffi-glib/ptr_array_test.rb +39 -39
  152. data/test/ffi-glib/ruby_closure_test.rb +10 -10
  153. data/test/ffi-glib/s_list_test.rb +20 -20
  154. data/test/ffi-glib/strv_test.rb +19 -19
  155. data/test/ffi-glib/variant_test.rb +5 -5
  156. data/test/ffi-gobject/gobject_test.rb +48 -44
  157. data/test/ffi-gobject/object_class_test.rb +8 -8
  158. data/test/ffi-gobject/object_test.rb +49 -67
  159. data/test/ffi-gobject/param_spec_test.rb +12 -12
  160. data/test/ffi-gobject/value_test.rb +145 -125
  161. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +8 -8
  162. data/test/ffi-gobject_introspection/i_base_info_test.rb +15 -16
  163. data/test/ffi-gobject_introspection/i_constant_info_test.rb +9 -13
  164. data/test/ffi-gobject_introspection/i_enum_info_test.rb +7 -7
  165. data/test/ffi-gobject_introspection/i_function_info_test.rb +1 -1
  166. data/test/ffi-gobject_introspection/i_interface_info_test.rb +10 -10
  167. data/test/ffi-gobject_introspection/i_object_info_test.rb +23 -23
  168. data/test/ffi-gobject_introspection/i_property_info_test.rb +19 -19
  169. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +10 -10
  170. data/test/ffi-gobject_introspection/i_repository_test.rb +31 -31
  171. data/test/ffi-gobject_introspection/i_struct_info_test.rb +10 -10
  172. data/test/ffi-gobject_introspection/i_type_info_test.rb +12 -15
  173. data/test/ffi-gobject_introspection/i_union_info_test.rb +7 -7
  174. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +16 -16
  175. data/test/ffi-gobject_introspection/lib_test.rb +3 -3
  176. data/test/ffi-gobject_introspection/strv_test.rb +9 -9
  177. data/test/ffi-gobject_test.rb +44 -44
  178. data/test/gir_ffi/allocation_helper_test.rb +13 -13
  179. data/test/gir_ffi/arg_helper_test.rb +63 -64
  180. data/test/gir_ffi/boolean_test.rb +20 -20
  181. data/test/gir_ffi/boxed_base_test.rb +18 -18
  182. data/test/gir_ffi/builder_test.rb +115 -93
  183. data/test/gir_ffi/builders/argument_builder_test.rb +280 -286
  184. data/test/gir_ffi/builders/base_argument_builder_test.rb +1 -1
  185. data/test/gir_ffi/builders/callback_argument_builder_test.rb +53 -56
  186. data/test/gir_ffi/builders/callback_builder_test.rb +71 -72
  187. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +36 -40
  188. data/test/gir_ffi/builders/constant_builder_test.rb +1 -1
  189. data/test/gir_ffi/builders/constructor_builder_test.rb +10 -10
  190. data/test/gir_ffi/builders/enum_builder_test.rb +10 -10
  191. data/test/gir_ffi/builders/field_builder_test.rb +42 -42
  192. data/test/gir_ffi/builders/function_builder_test.rb +236 -224
  193. data/test/gir_ffi/builders/initializer_builder_test.rb +14 -14
  194. data/test/gir_ffi/builders/interface_builder_test.rb +9 -9
  195. data/test/gir_ffi/builders/module_builder_test.rb +18 -18
  196. data/test/gir_ffi/builders/object_builder_test.rb +38 -38
  197. data/test/gir_ffi/builders/property_builder_test.rb +91 -94
  198. data/test/gir_ffi/builders/registered_type_builder_test.rb +35 -11
  199. data/test/gir_ffi/builders/return_value_builder_test.rb +215 -222
  200. data/test/gir_ffi/builders/signal_closure_builder_test.rb +122 -113
  201. data/test/gir_ffi/builders/struct_builder_test.rb +32 -32
  202. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +8 -14
  203. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +23 -23
  204. data/test/gir_ffi/builders/union_builder_test.rb +12 -15
  205. data/test/gir_ffi/builders/user_defined_builder_test.rb +147 -147
  206. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +40 -40
  207. data/test/gir_ffi/builders/vfunc_builder_test.rb +145 -157
  208. data/test/gir_ffi/callback_base_test.rb +9 -9
  209. data/test/gir_ffi/class_base_test.rb +49 -51
  210. data/test/gir_ffi/core_test.rb +32 -32
  211. data/test/gir_ffi/enum_base_test.rb +19 -19
  212. data/test/gir_ffi/error_type_info_test.rb +23 -23
  213. data/test/gir_ffi/ffi_ext/pointer_test.rb +5 -5
  214. data/test/gir_ffi/g_type_test.rb +11 -11
  215. data/test/gir_ffi/in_pointer_test.rb +70 -50
  216. data/test/gir_ffi/info_ext/i_callable_info_test.rb +5 -5
  217. data/test/gir_ffi/info_ext/i_callback_info_test.rb +4 -4
  218. data/test/gir_ffi/info_ext/i_field_info_test.rb +6 -6
  219. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -17
  220. data/test/gir_ffi/info_ext/i_signal_info_test.rb +8 -8
  221. data/test/gir_ffi/info_ext/i_type_info_test.rb +229 -215
  222. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +4 -4
  223. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +8 -8
  224. data/test/gir_ffi/info_ext/safe_function_name_test.rb +8 -8
  225. data/test/gir_ffi/interface_base_test.rb +8 -8
  226. data/test/gir_ffi/method_stubber_test.rb +19 -19
  227. data/test/gir_ffi/object_base_test.rb +19 -19
  228. data/test/gir_ffi/object_store_test.rb +13 -13
  229. data/test/gir_ffi/receiver_argument_info_test.rb +15 -15
  230. data/test/gir_ffi/sized_array_test.rb +68 -68
  231. data/test/gir_ffi/struct_base_test.rb +8 -8
  232. data/test/gir_ffi/struct_like_base_test.rb +64 -64
  233. data/test/gir_ffi/type_map_test.rb +6 -6
  234. data/test/gir_ffi/unintrospectable_type_info_test.rb +33 -33
  235. data/test/gir_ffi/union_base_test.rb +8 -8
  236. data/test/gir_ffi/user_defined_object_info_test.rb +34 -34
  237. data/test/gir_ffi/user_defined_property_info_test.rb +16 -16
  238. data/test/gir_ffi/variable_name_generator_test.rb +8 -8
  239. data/test/gir_ffi/version_test.rb +4 -4
  240. data/test/gir_ffi/zero_terminated_test.rb +34 -34
  241. data/test/gir_ffi_test_helper.rb +3 -3
  242. data/test/integration/callback_exceptions_test.rb +17 -21
  243. data/test/integration/derived_classes_test.rb +13 -13
  244. data/test/integration/generated_everything_test.rb +224 -224
  245. data/test/integration/generated_gimarshallingtests_test.rb +1118 -1017
  246. data/test/integration/generated_gio_test.rb +36 -36
  247. data/test/integration/generated_glib_test.rb +4 -6
  248. data/test/integration/generated_gobject_test.rb +43 -35
  249. data/test/integration/generated_gst_test.rb +16 -16
  250. data/test/integration/generated_gtk_source_test.rb +22 -17
  251. data/test/integration/generated_gtop_test.rb +8 -15
  252. data/test/integration/generated_pango_ft2_test.rb +2 -2
  253. data/test/integration/generated_pango_test.rb +4 -4
  254. data/test/integration/generated_regress_test.rb +1809 -1621
  255. data/test/integration/generated_secret_test.rb +8 -11
  256. data/test/integration/generated_utility_test.rb +81 -81
  257. data/test/integration/generated_warnlib_test.rb +13 -19
  258. data/test/integration/method_lookup_test.rb +6 -6
  259. data/test/introspection_test_helper.rb +48 -7
  260. data/test/minitest/stats_plugin.rb +1 -1
  261. metadata +11 -28
  262. data/lib/ffi-glib/array_methods.rb +0 -16
  263. data/test/gir_ffi/in_out_pointer_test.rb +0 -56
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/registered_type_base'
4
- require 'gir_ffi/method_setup'
5
- require 'gir_ffi/instance_method_setup'
3
+ require "gir_ffi/registered_type_base"
4
+ require "gir_ffi/method_setup"
5
+ require "gir_ffi/instance_method_setup"
6
6
 
7
7
  module GirFFI
8
8
  # Base module for modules representing GLib interfaces.
data/lib/gir_ffi/lib_c.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi'
3
+ require "ffi"
4
4
 
5
5
  module GirFFI
6
6
  # Library of libc functions.
@@ -9,7 +9,7 @@ module GirFFI
9
9
  end
10
10
 
11
11
  def method_stub
12
- <<-STUB.reset_indentation
12
+ <<~STUB
13
13
  def #{@info.method? ? '' : 'self.'}#{@info.safe_name} *args, &block
14
14
  setup_and_call "#{@info.name}", args, &block
15
15
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/method_setup'
3
+ require "gir_ffi/method_setup"
4
4
 
5
5
  module GirFFI
6
6
  # Base module for modules representing GLib namespaces.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/class_base'
3
+ require "gir_ffi/class_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base class for all generated classes of type :object.
@@ -38,7 +38,7 @@ module GirFFI
38
38
  end
39
39
 
40
40
  def self.copy_from(val)
41
- val.ref if val
41
+ val&.ref
42
42
  end
43
43
 
44
44
  #
@@ -49,8 +49,7 @@ module GirFFI
49
49
  # @return [GObjectIntrospection::IPropertyInfo] The property's info
50
50
  #
51
51
  def self.find_property(name)
52
- gir_ffi_builder.find_property name or
53
- raise GirFFI::PropertyNotFoundError.new(name, self)
52
+ gir_ffi_builder.find_property name
54
53
  end
55
54
 
56
55
  #
@@ -21,7 +21,7 @@ module GirFFI
21
21
  end
22
22
 
23
23
  def name
24
- '_instance'
24
+ "_instance"
25
25
  end
26
26
  end
27
27
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GirFFI
4
- # Represents the type of the receiver of a signal or vfunc, conforming, as
5
- # needed, to the interface of GObjectIntrospection::ITypeInfo
4
+ # Represents the type of the receiver of a signal, vfunc, or method,
5
+ # conforming, as needed, to the interface of GObjectIntrospection::ITypeInfo
6
6
  class ReceiverTypeInfo
7
7
  include InfoExt::ITypeInfo
8
8
 
@@ -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 generated registered GLib types (these are types that have a
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "gir_ffi/array_element_convertor"
4
+
3
5
  module GirFFI
4
6
  # Class representing an array with a determined size
5
7
  class SizedArray
@@ -17,8 +19,8 @@ module GirFFI
17
19
  end
18
20
 
19
21
  def index(idx)
20
- ptr = InOutPointer.new element_type, @pointer + idx * element_size
21
- ptr.to_ruby_value
22
+ convertor = ArrayElementConvertor.new element_type, @pointer + idx * element_size
23
+ convertor.to_ruby_value
22
24
  end
23
25
 
24
26
  def each
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/ownable'
3
+ require "gir_ffi/ownable"
4
4
 
5
5
  module GirFFI
6
6
  # Struct that can be owned.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/struct_like_base'
3
+ require "gir_ffi/struct_like_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base class for generated classes representing GLib structs.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/boolean'
4
- require 'gir_ffi/sized_array'
3
+ require "gir_ffi/boolean"
4
+ require "gir_ffi/sized_array"
5
5
 
6
6
  module GirFFI
7
7
  # Maps GObject type tags and type specification to types FFI can handle.
@@ -58,26 +58,5 @@ module GirFFI
58
58
  map_basic_type(type)
59
59
  end
60
60
  end
61
-
62
- FLATTENED_TAG_TO_GTYPE_MAP = {
63
- [:array, true] => GObject::TYPE_ARRAY,
64
- [:c, true] => GObject::TYPE_POINTER,
65
- [:gboolean, false] => GObject::TYPE_BOOLEAN,
66
- [:ghash, true] => GObject::TYPE_HASH_TABLE,
67
- [:glist, true] => GObject::TYPE_POINTER,
68
- [:gint32, false] => GObject::TYPE_INT,
69
- [:gint64, false] => GObject::TYPE_INT64,
70
- [:guint64, false] => GObject::TYPE_UINT64,
71
- [:strv, true] => GObject::TYPE_STRV,
72
- [:utf8, true] => GObject::TYPE_STRING,
73
- [:void, true] => GObject::TYPE_POINTER,
74
- [:void, false] => GObject::TYPE_NONE
75
- }.freeze
76
-
77
- def self.type_info_to_gtype(type_info)
78
- return type_info.interface.gtype if type_info.tag == :interface
79
-
80
- FLATTENED_TAG_TO_GTYPE_MAP.fetch [type_info.flattened_tag, type_info.pointer?]
81
- end
82
61
  end
83
62
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/info_ext/full_type_name'
3
+ require "gir_ffi/info_ext/full_type_name"
4
4
 
5
5
  module GirFFI
6
6
  # Represents a boxed type not found in the GIR, conforming, as needed, to the
@@ -20,7 +20,7 @@ module GirFFI
20
20
  GObject.type_name g_type
21
21
  end
22
22
 
23
- DEFAULT_BOXED_NAMESPACE = 'GLib'.freeze
23
+ DEFAULT_BOXED_NAMESPACE = "GLib"
24
24
 
25
25
  def namespace
26
26
  DEFAULT_BOXED_NAMESPACE
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/info_ext/full_type_name'
3
+ require "gir_ffi/info_ext/full_type_name"
4
4
 
5
5
  module GirFFI
6
6
  # Represents a type not found in the GIR, conforming, as needed, to the
data/lib/gir_ffi/union.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/ownable'
3
+ require "gir_ffi/ownable"
4
4
 
5
5
  module GirFFI
6
6
  # Union that can be owned.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/boxed_base'
3
+ require "gir_ffi/boxed_base"
4
4
 
5
5
  module GirFFI
6
6
  # Base class for generated classes representing GLib unions.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/user_defined_property_info'
4
- require 'gir_ffi/vfunc_implementation'
3
+ require "gir_ffi/user_defined_property_info"
4
+ require "gir_ffi/vfunc_implementation"
5
5
 
6
6
  module GirFFI
7
7
  # Represents a user defined type, conforming, as needed, to the interface of
@@ -37,6 +37,10 @@ module GirFFI
37
37
  nil
38
38
  end
39
39
 
40
+ def find_property(_property)
41
+ nil
42
+ end
43
+
40
44
  def parent_gtype
41
45
  @parent_gtype ||= GType.new(@klass.superclass.gtype)
42
46
  end
@@ -15,21 +15,21 @@ module GirFFI
15
15
  # TODO: Unify with InfoExt::ITypeInfo.flattened_tag_to_gtype_map
16
16
  G_TYPE_TAG_MAP = {
17
17
  GObject::TYPE_BOOLEAN => :gboolean,
18
- GObject::TYPE_CHAR => :gint8,
19
- GObject::TYPE_UCHAR => :guint8,
20
- GObject::TYPE_FLOAT => :gfloat,
21
- GObject::TYPE_DOUBLE => :gdouble,
22
- GObject::TYPE_INT => :gint,
23
- GObject::TYPE_UINT => :guint,
24
- GObject::TYPE_LONG => :glong,
25
- GObject::TYPE_ULONG => :gulong,
26
- GObject::TYPE_INT64 => :gint64,
27
- GObject::TYPE_UINT64 => :guint64,
28
- GObject::TYPE_ENUM => :interface,
29
- GObject::TYPE_FLAGS => :interface,
30
- GObject::TYPE_STRING => :utf8,
31
- GObject::TYPE_BOXED => :interface,
32
- GObject::TYPE_OBJECT => :interface
18
+ GObject::TYPE_CHAR => :gint8,
19
+ GObject::TYPE_UCHAR => :guint8,
20
+ GObject::TYPE_FLOAT => :gfloat,
21
+ GObject::TYPE_DOUBLE => :gdouble,
22
+ GObject::TYPE_INT => :gint,
23
+ GObject::TYPE_UINT => :guint,
24
+ GObject::TYPE_LONG => :glong,
25
+ GObject::TYPE_ULONG => :gulong,
26
+ GObject::TYPE_INT64 => :gint64,
27
+ GObject::TYPE_UINT64 => :guint64,
28
+ GObject::TYPE_ENUM => :interface,
29
+ GObject::TYPE_FLAGS => :interface,
30
+ GObject::TYPE_STRING => :utf8,
31
+ GObject::TYPE_BOXED => :interface,
32
+ GObject::TYPE_OBJECT => :interface
33
33
  }.freeze
34
34
 
35
35
  def tag
@@ -39,21 +39,21 @@ module GirFFI
39
39
  # TODO: Unify with InfoExt::ITypeInfo.flattened_tag_to_gtype_map
40
40
  G_TYPE_POINTER_MAP = {
41
41
  GObject::TYPE_BOOLEAN => false,
42
- GObject::TYPE_CHAR => false,
43
- GObject::TYPE_UCHAR => false,
44
- GObject::TYPE_FLOAT => false,
45
- GObject::TYPE_DOUBLE => false,
46
- GObject::TYPE_INT => false,
47
- GObject::TYPE_UINT => false,
48
- GObject::TYPE_LONG => false,
49
- GObject::TYPE_ULONG => false,
50
- GObject::TYPE_INT64 => false,
51
- GObject::TYPE_UINT64 => false,
52
- GObject::TYPE_ENUM => false,
53
- GObject::TYPE_FLAGS => false,
54
- GObject::TYPE_STRING => true,
55
- GObject::TYPE_BOXED => true,
56
- GObject::TYPE_OBJECT => true
42
+ GObject::TYPE_CHAR => false,
43
+ GObject::TYPE_UCHAR => false,
44
+ GObject::TYPE_FLOAT => false,
45
+ GObject::TYPE_DOUBLE => false,
46
+ GObject::TYPE_INT => false,
47
+ GObject::TYPE_UINT => false,
48
+ GObject::TYPE_LONG => false,
49
+ GObject::TYPE_ULONG => false,
50
+ GObject::TYPE_INT64 => false,
51
+ GObject::TYPE_UINT64 => false,
52
+ GObject::TYPE_ENUM => false,
53
+ GObject::TYPE_FLAGS => false,
54
+ GObject::TYPE_STRING => true,
55
+ GObject::TYPE_BOXED => true,
56
+ GObject::TYPE_OBJECT => true
57
57
  }.freeze
58
58
 
59
59
  def pointer?
@@ -61,9 +61,9 @@ module GirFFI
61
61
  end
62
62
 
63
63
  G_TYPE_INTERFACE_TAG_MAP = {
64
- GObject::TYPE_ENUM => :enum,
65
- GObject::TYPE_FLAGS => :flags,
66
- GObject::TYPE_BOXED => :struct,
64
+ GObject::TYPE_ENUM => :enum,
65
+ GObject::TYPE_FLAGS => :flags,
66
+ GObject::TYPE_BOXED => :struct,
67
67
  GObject::TYPE_OBJECT => :object
68
68
  }.freeze
69
69
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Current GirFFI version
4
4
  module GirFFI
5
- VERSION = '0.14.1'.freeze
5
+ VERSION = "0.15.0"
6
6
  end
@@ -1,17 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ffi/bit_masks'
3
+ require "ffi/bit_masks"
4
4
 
5
5
  module GObject
6
6
  # Module for attaching functions from the gobject library
7
7
  module Lib
8
8
  extend FFI::Library
9
9
  extend FFI::BitMasks
10
- ffi_lib 'gobject-2.0'
10
+ ffi_lib "gobject-2.0"
11
11
  attach_function :g_type_from_name, [:string], :size_t
12
12
  attach_function :g_type_fundamental, [:size_t], :size_t
13
13
  attach_function :g_array_get_type, [], :size_t
14
14
  attach_function :g_byte_array_get_type, [], :size_t
15
+ attach_function :g_error_get_type, [], :size_t
15
16
  attach_function :g_hash_table_get_type, [], :size_t
16
17
  attach_function :g_strv_get_type, [], :size_t
17
18
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Ensure GObject is defined by GirFFI itself
4
- raise 'The module GObject was already defined elsewhere' if Kernel.const_defined? :GObject
4
+ raise "The module GObject was already defined elsewhere" if Kernel.const_defined? :GObject
5
5
 
6
- require 'gir_ffi-base/gobject/lib'
6
+ require "gir_ffi-base/gobject/lib"
7
7
 
8
8
  # The part of the GObject namespace that is needed by GirFFI.
9
9
  #
@@ -17,32 +17,33 @@ module GObject
17
17
  Lib.g_type_fundamental gtype
18
18
  end
19
19
 
20
- TYPE_INVALID = type_from_name('invalid')
21
- TYPE_NONE = type_from_name('void')
22
- TYPE_INTERFACE = type_from_name('GInterface')
23
- TYPE_CHAR = type_from_name('gchar')
24
- TYPE_UCHAR = type_from_name('guchar')
25
- TYPE_BOOLEAN = type_from_name('gboolean')
26
- TYPE_INT = type_from_name('gint')
27
- TYPE_UINT = type_from_name('guint')
28
- TYPE_LONG = type_from_name('glong')
29
- TYPE_ULONG = type_from_name('gulong')
30
- TYPE_INT64 = type_from_name('gint64')
31
- TYPE_UINT64 = type_from_name('guint64')
32
- TYPE_ENUM = type_from_name('GEnum')
33
- TYPE_FLAGS = type_from_name('GFlags')
34
- TYPE_FLOAT = type_from_name('gfloat')
35
- TYPE_DOUBLE = type_from_name('gdouble')
36
- TYPE_STRING = type_from_name('gchararray')
37
- TYPE_POINTER = type_from_name('gpointer')
38
- TYPE_BOXED = type_from_name('GBoxed')
39
- TYPE_PARAM = type_from_name('GParam')
40
- TYPE_OBJECT = type_from_name('GObject')
41
- TYPE_GTYPE = type_from_name('GType')
42
- TYPE_VARIANT = type_from_name('GVariant')
20
+ TYPE_INVALID = type_from_name("invalid")
21
+ TYPE_NONE = type_from_name("void")
22
+ TYPE_INTERFACE = type_from_name("GInterface")
23
+ TYPE_CHAR = type_from_name("gchar")
24
+ TYPE_UCHAR = type_from_name("guchar")
25
+ TYPE_BOOLEAN = type_from_name("gboolean")
26
+ TYPE_INT = type_from_name("gint")
27
+ TYPE_UINT = type_from_name("guint")
28
+ TYPE_LONG = type_from_name("glong")
29
+ TYPE_ULONG = type_from_name("gulong")
30
+ TYPE_INT64 = type_from_name("gint64")
31
+ TYPE_UINT64 = type_from_name("guint64")
32
+ TYPE_ENUM = type_from_name("GEnum")
33
+ TYPE_FLAGS = type_from_name("GFlags")
34
+ TYPE_FLOAT = type_from_name("gfloat")
35
+ TYPE_DOUBLE = type_from_name("gdouble")
36
+ TYPE_STRING = type_from_name("gchararray")
37
+ TYPE_POINTER = type_from_name("gpointer")
38
+ TYPE_BOXED = type_from_name("GBoxed")
39
+ TYPE_PARAM = type_from_name("GParam")
40
+ TYPE_OBJECT = type_from_name("GObject")
41
+ TYPE_GTYPE = type_from_name("GType")
42
+ TYPE_VARIANT = type_from_name("GVariant")
43
43
 
44
44
  TYPE_ARRAY = Lib.g_array_get_type
45
45
  TYPE_BYTE_ARRAY = Lib.g_byte_array_get_type
46
+ TYPE_ERROR = Lib.g_error_get_type
46
47
  TYPE_HASH_TABLE = Lib.g_hash_table_get_type
47
48
  TYPE_STRV = Lib.g_strv_get_type
48
49
  end
data/lib/gir_ffi-base.rb CHANGED
@@ -5,4 +5,4 @@
5
5
  # that can only be created fully once GirFFI is fully loaded.
6
6
 
7
7
  # Some base GObject functions and constants are needed by GirFFI.
8
- require 'gir_ffi-base/gobject'
8
+ require "gir_ffi-base/gobject"
data/lib/gir_ffi.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi/core'
3
+ require "gir_ffi/core"
4
4
 
5
- require 'ffi-glib'
6
- require 'ffi-gobject'
5
+ require "ffi-glib"
6
+ require "ffi-gobject"