gir_ffi 0.15.9 → 0.16.1

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +42 -18
  3. data/README.md +20 -14
  4. data/lib/ffi-glib/array.rb +1 -1
  5. data/lib/ffi-glib/bytes.rb +0 -12
  6. data/lib/ffi-glib/main_loop.rb +3 -3
  7. data/lib/ffi-glib/ptr_array.rb +24 -15
  8. data/lib/ffi-glib/variant.rb +6 -8
  9. data/lib/ffi-gobject/object.rb +5 -15
  10. data/lib/ffi-gobject/object_class.rb +2 -10
  11. data/lib/ffi-gobject/value.rb +27 -27
  12. data/lib/ffi-gobject.rb +3 -17
  13. data/lib/ffi-gobject_introspection/i_constant_info.rb +10 -10
  14. data/lib/ffi-gobject_introspection/i_registered_type_info.rb +1 -1
  15. data/lib/ffi-gobject_introspection/lib.rb +11 -11
  16. data/lib/ffi-gobject_introspection.rb +19 -19
  17. data/lib/gir_ffi/builder.rb +1 -1
  18. data/lib/gir_ffi/builders/argument_builder_collection.rb +5 -5
  19. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  20. data/lib/gir_ffi/builders/base_method_builder.rb +23 -23
  21. data/lib/gir_ffi/builders/constructor_builder.rb +1 -1
  22. data/lib/gir_ffi/builders/function_builder.rb +1 -1
  23. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  24. data/lib/gir_ffi/builders/marshalling_method_builder.rb +3 -3
  25. data/lib/gir_ffi/builders/method_template.rb +2 -2
  26. data/lib/gir_ffi/builders/object_builder.rb +10 -12
  27. data/lib/gir_ffi/builders/pointer_value_convertor.rb +1 -1
  28. data/lib/gir_ffi/builders/type_builder.rb +9 -9
  29. data/lib/gir_ffi/builders/user_defined_builder.rb +24 -26
  30. data/lib/gir_ffi/class_base.rb +1 -3
  31. data/lib/gir_ffi/core.rb +0 -5
  32. data/lib/gir_ffi/ffi_ext/pointer.rb +22 -12
  33. data/lib/gir_ffi/in_pointer.rb +6 -6
  34. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +1 -1
  35. data/lib/gir_ffi/info_ext/i_signal_info.rb +8 -6
  36. data/lib/gir_ffi/info_ext/i_type_info.rb +18 -24
  37. data/lib/gir_ffi/instance_method_setup.rb +3 -1
  38. data/lib/gir_ffi/method_stubber.rb +1 -1
  39. data/lib/gir_ffi/object_base.rb +5 -5
  40. data/lib/gir_ffi/struct_like_base.rb +0 -1
  41. data/lib/gir_ffi/type_map.rb +30 -30
  42. data/lib/gir_ffi/unintrospectable_type_info.rb +2 -2
  43. data/lib/gir_ffi/user_defined_object_info.rb +0 -3
  44. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  45. data/lib/gir_ffi/version.rb +1 -1
  46. data/lib/gir_ffi/zero_terminated.rb +1 -1
  47. data/lib/gir_ffi-base/gobject.rb +1 -1
  48. metadata +30 -18
@@ -10,38 +10,38 @@ module GirFFI
10
10
  gsize_type = "uint#{sz}".to_sym
11
11
 
12
12
  TAG_TYPE_MAP = {
13
- enum: :int32,
14
- flags: :int32,
15
- ghash: :pointer,
16
- glist: :pointer,
17
- gslist: :pointer,
18
- strv: :pointer,
13
+ enum: :int32,
14
+ flags: :int32,
15
+ ghash: :pointer,
16
+ glist: :pointer,
17
+ gslist: :pointer,
18
+ strv: :pointer,
19
19
  interface: :pointer,
20
- error: :pointer,
20
+ error: :pointer,
21
21
  ptr_array: :pointer,
22
- array: :pointer,
23
- c: GirFFI::SizedArray,
24
- utf8: :pointer,
25
- filename: :pointer,
26
- GType: gsize_type,
27
- gboolean: GirFFI::Boolean,
28
- gunichar: :uint32,
29
- gint8: :int8,
30
- guint8: :uint8,
31
- gint16: :int16,
32
- guint16: :uint16,
33
- gint: :int,
34
- guint: :uint,
35
- gint32: :int32,
36
- guint32: :uint32,
37
- gint64: :int64,
38
- guint64: :uint64,
39
- glong: :long,
40
- gulong: :ulong,
41
- gsize: gsize_type,
42
- gfloat: :float,
43
- gdouble: :double,
44
- void: :void
22
+ array: :pointer,
23
+ c: GirFFI::SizedArray,
24
+ utf8: :pointer,
25
+ filename: :pointer,
26
+ GType: gsize_type,
27
+ gboolean: GirFFI::Boolean,
28
+ gunichar: :uint32,
29
+ gint8: :int8,
30
+ guint8: :uint8,
31
+ gint16: :int16,
32
+ guint16: :uint16,
33
+ gint: :int,
34
+ guint: :uint,
35
+ gint32: :int32,
36
+ guint32: :uint32,
37
+ gint64: :int64,
38
+ guint64: :uint64,
39
+ glong: :long,
40
+ gulong: :ulong,
41
+ gsize: gsize_type,
42
+ gfloat: :float,
43
+ gdouble: :double,
44
+ void: :void
45
45
  }.freeze
46
46
 
47
47
  def self.map_basic_type(type)
@@ -37,9 +37,9 @@ module GirFFI
37
37
  end
38
38
 
39
39
  def interfaces
40
- @gobject.type_interfaces(@g_type).map do |gtype|
40
+ @gobject.type_interfaces(@g_type).filter_map do |gtype|
41
41
  @gir.find_by_gtype gtype
42
- end.compact
42
+ end
43
43
  end
44
44
 
45
45
  def fields
@@ -13,9 +13,6 @@ module GirFFI
13
13
  @klass = klass
14
14
  @properties = []
15
15
  @vfunc_implementations = []
16
-
17
- # FIXME: Limit access to only install_property and install_vfunc_implementation.
18
- yield self if block_given?
19
16
  end
20
17
 
21
18
  def described_class
@@ -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.15.9"
5
+ VERSION = "0.16.1"
6
6
  end
@@ -85,7 +85,7 @@ module GirFFI
85
85
  :pointer
86
86
  elsif ffi_type.is_a? Symbol
87
87
  :numeric
88
- elsif ffi_type < GirFFI::ClassBase
88
+ elsif ffi_type < GirFFI::ClassBase # rubocop:disable Lint/DuplicateBranch
89
89
  :pointer
90
90
  elsif ffi_type.singleton_class.include? GirFFI::EnumBase
91
91
  :enum
@@ -7,7 +7,7 @@ require "gir_ffi-base/gobject/lib"
7
7
 
8
8
  # The part of the GObject namespace that is needed by GirFFI.
9
9
  #
10
- # :reek:TooManyConstants: because it needs to hold the type constants.
10
+ # :reek:TooManyConstants because it needs to hold the type constants.
11
11
  module GObject
12
12
  def self.type_from_name(name)
13
13
  Lib.g_type_from_name name
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gir_ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.9
4
+ version: 0.16.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-05 00:00:00.000000000 Z
11
+ date: 2023-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: '1.16'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.16.3
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '1.8'
29
+ version: '1.16'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.16.3
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: ffi-bit_masks
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +50,14 @@ dependencies:
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 2.0.0
53
+ version: '2.0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 2.0.0
60
+ version: '2.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: minitest
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -71,6 +77,9 @@ dependencies:
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.3'
82
+ - - ">="
74
83
  - !ruby/object:Gem::Version
75
84
  version: 1.3.1
76
85
  type: :development
@@ -78,6 +87,9 @@ dependencies:
78
87
  version_requirements: !ruby/object:Gem::Requirement
79
88
  requirements:
80
89
  - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.3'
92
+ - - ">="
81
93
  - !ruby/object:Gem::Version
82
94
  version: 1.3.1
83
95
  - !ruby/object:Gem::Dependency
@@ -142,70 +154,70 @@ dependencies:
142
154
  requirements:
143
155
  - - "~>"
144
156
  - !ruby/object:Gem::Version
145
- version: 1.23.0
157
+ version: '1.56'
146
158
  type: :development
147
159
  prerelease: false
148
160
  version_requirements: !ruby/object:Gem::Requirement
149
161
  requirements:
150
162
  - - "~>"
151
163
  - !ruby/object:Gem::Version
152
- version: 1.23.0
164
+ version: '1.56'
153
165
  - !ruby/object:Gem::Dependency
154
166
  name: rubocop-minitest
155
167
  requirement: !ruby/object:Gem::Requirement
156
168
  requirements:
157
169
  - - "~>"
158
170
  - !ruby/object:Gem::Version
159
- version: 0.17.0
171
+ version: 0.32.2
160
172
  type: :development
161
173
  prerelease: false
162
174
  version_requirements: !ruby/object:Gem::Requirement
163
175
  requirements:
164
176
  - - "~>"
165
177
  - !ruby/object:Gem::Version
166
- version: 0.17.0
178
+ version: 0.32.2
167
179
  - !ruby/object:Gem::Dependency
168
180
  name: rubocop-packaging
169
181
  requirement: !ruby/object:Gem::Requirement
170
182
  requirements:
171
183
  - - "~>"
172
184
  - !ruby/object:Gem::Version
173
- version: 0.5.0
185
+ version: 0.5.2
174
186
  type: :development
175
187
  prerelease: false
176
188
  version_requirements: !ruby/object:Gem::Requirement
177
189
  requirements:
178
190
  - - "~>"
179
191
  - !ruby/object:Gem::Version
180
- version: 0.5.0
192
+ version: 0.5.2
181
193
  - !ruby/object:Gem::Dependency
182
194
  name: rubocop-performance
183
195
  requirement: !ruby/object:Gem::Requirement
184
196
  requirements:
185
197
  - - "~>"
186
198
  - !ruby/object:Gem::Version
187
- version: 1.12.0
199
+ version: '1.19'
188
200
  type: :development
189
201
  prerelease: false
190
202
  version_requirements: !ruby/object:Gem::Requirement
191
203
  requirements:
192
204
  - - "~>"
193
205
  - !ruby/object:Gem::Version
194
- version: 1.12.0
206
+ version: '1.19'
195
207
  - !ruby/object:Gem::Dependency
196
208
  name: simplecov
197
209
  requirement: !ruby/object:Gem::Requirement
198
210
  requirements:
199
211
  - - "~>"
200
212
  - !ruby/object:Gem::Version
201
- version: 0.21.0
213
+ version: 0.22.0
202
214
  type: :development
203
215
  prerelease: false
204
216
  version_requirements: !ruby/object:Gem::Requirement
205
217
  requirements:
206
218
  - - "~>"
207
219
  - !ruby/object:Gem::Version
208
- version: 0.21.0
220
+ version: 0.22.0
209
221
  description: |
210
222
  GirFFI creates bindings for GObject-based libraries at runtime based on introspection
211
223
  data provided by the GObject Introspection Repository (GIR) system. Bindings are created
@@ -421,14 +433,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
421
433
  requirements:
422
434
  - - ">="
423
435
  - !ruby/object:Gem::Version
424
- version: 2.6.0
436
+ version: 2.7.0
425
437
  required_rubygems_version: !ruby/object:Gem::Requirement
426
438
  requirements:
427
439
  - - ">="
428
440
  - !ruby/object:Gem::Version
429
441
  version: '0'
430
442
  requirements: []
431
- rubygems_version: 3.2.32
443
+ rubygems_version: 3.4.20
432
444
  signing_key:
433
445
  specification_version: 4
434
446
  summary: FFI-based GObject binding using the GObject Introspection Repository