gir_ffi 0.15.7 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +44 -18
- data/README.md +8 -23
- data/lib/ffi-glib/bytes.rb +0 -12
- data/lib/ffi-glib/hash_table.rb +1 -1
- data/lib/ffi-glib/main_loop.rb +1 -1
- data/lib/ffi-glib/ptr_array.rb +24 -15
- data/lib/ffi-glib/variant.rb +4 -6
- data/lib/ffi-gobject/object.rb +30 -60
- data/lib/ffi-gobject/object_class.rb +2 -10
- data/lib/ffi-gobject/value.rb +26 -26
- data/lib/ffi-gobject.rb +4 -18
- data/lib/ffi-gobject_introspection/i_base_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_constant_info.rb +10 -10
- data/lib/ffi-gobject_introspection/lib.rb +11 -11
- data/lib/ffi-gobject_introspection.rb +19 -19
- data/lib/gir_ffi/builder.rb +1 -1
- data/lib/gir_ffi/builders/argument_builder_collection.rb +24 -8
- data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
- data/lib/gir_ffi/builders/base_method_builder.rb +23 -23
- data/lib/gir_ffi/builders/constructor_builder.rb +1 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
- data/lib/gir_ffi/builders/module_builder.rb +1 -1
- data/lib/gir_ffi/builders/object_builder.rb +10 -12
- data/lib/gir_ffi/builders/struct_builder.rb +1 -1
- data/lib/gir_ffi/builders/type_builder.rb +9 -9
- data/lib/gir_ffi/builders/user_defined_builder.rb +24 -26
- data/lib/gir_ffi/class_base.rb +1 -3
- data/lib/gir_ffi/core.rb +0 -5
- data/lib/gir_ffi/in_pointer.rb +6 -6
- data/lib/gir_ffi/info_ext/full_type_name.rb +3 -2
- data/lib/gir_ffi/info_ext/i_function_info.rb +10 -0
- data/lib/gir_ffi/info_ext/i_signal_info.rb +8 -6
- data/lib/gir_ffi/info_ext/i_type_info.rb +21 -26
- data/lib/gir_ffi/info_ext/i_vfunc_info.rb +4 -0
- data/lib/gir_ffi/instance_method_setup.rb +3 -1
- data/lib/gir_ffi/object_base.rb +5 -5
- data/lib/gir_ffi/struct_like_base.rb +0 -1
- data/lib/gir_ffi/type_map.rb +30 -30
- data/lib/gir_ffi/unintrospectable_type_info.rb +2 -2
- data/lib/gir_ffi/user_defined_object_info.rb +0 -3
- data/lib/gir_ffi/user_defined_property_info.rb +33 -33
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/zero_terminated.rb +1 -1
- data/lib/gir_ffi-base/gobject.rb +1 -1
- metadata +33 -12
@@ -1,7 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module GirFFI
|
4
|
-
# Methods for setting up instance methods
|
4
|
+
# Methods for setting up instance methods.
|
5
|
+
#
|
6
|
+
# Depends on .gir_ffi_builder being defined in the extending class.
|
5
7
|
module InstanceMethodSetup
|
6
8
|
def setup_instance_method(name)
|
7
9
|
gir_ffi_builder.setup_instance_method name
|
data/lib/gir_ffi/object_base.rb
CHANGED
@@ -7,8 +7,8 @@ module GirFFI
|
|
7
7
|
class ObjectBase < ClassBase
|
8
8
|
extend FFI::DataConverter
|
9
9
|
|
10
|
-
def
|
11
|
-
self.class.
|
10
|
+
def class_struct
|
11
|
+
self.class.class_struct
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.native_type
|
@@ -64,11 +64,11 @@ module GirFFI
|
|
64
64
|
raise GirFFI::SignalNotFoundError.new(name, self)
|
65
65
|
end
|
66
66
|
|
67
|
-
def self.
|
68
|
-
@
|
67
|
+
def self.class_struct
|
68
|
+
@class_struct ||=
|
69
69
|
begin
|
70
70
|
ptr = GObject::Lib.g_type_class_ref(gtype)
|
71
|
-
gir_ffi_builder.
|
71
|
+
gir_ffi_builder.class_struct_class.wrap ptr
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
data/lib/gir_ffi/type_map.rb
CHANGED
@@ -10,38 +10,38 @@ module GirFFI
|
|
10
10
|
gsize_type = "uint#{sz}".to_sym
|
11
11
|
|
12
12
|
TAG_TYPE_MAP = {
|
13
|
-
enum:
|
14
|
-
flags:
|
15
|
-
ghash:
|
16
|
-
glist:
|
17
|
-
gslist:
|
18
|
-
strv:
|
13
|
+
enum: :int32,
|
14
|
+
flags: :int32,
|
15
|
+
ghash: :pointer,
|
16
|
+
glist: :pointer,
|
17
|
+
gslist: :pointer,
|
18
|
+
strv: :pointer,
|
19
19
|
interface: :pointer,
|
20
|
-
error:
|
20
|
+
error: :pointer,
|
21
21
|
ptr_array: :pointer,
|
22
|
-
array:
|
23
|
-
c:
|
24
|
-
utf8:
|
25
|
-
filename:
|
26
|
-
GType:
|
27
|
-
gboolean:
|
28
|
-
gunichar:
|
29
|
-
gint8:
|
30
|
-
guint8:
|
31
|
-
gint16:
|
32
|
-
guint16:
|
33
|
-
gint:
|
34
|
-
guint:
|
35
|
-
gint32:
|
36
|
-
guint32:
|
37
|
-
gint64:
|
38
|
-
guint64:
|
39
|
-
glong:
|
40
|
-
gulong:
|
41
|
-
gsize:
|
42
|
-
gfloat:
|
43
|
-
gdouble:
|
44
|
-
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)
|
@@ -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
|
19
|
-
GObject::TYPE_UCHAR
|
20
|
-
GObject::TYPE_FLOAT
|
21
|
-
GObject::TYPE_DOUBLE
|
22
|
-
GObject::TYPE_INT
|
23
|
-
GObject::TYPE_UINT
|
24
|
-
GObject::TYPE_LONG
|
25
|
-
GObject::TYPE_ULONG
|
26
|
-
GObject::TYPE_INT64
|
27
|
-
GObject::TYPE_UINT64
|
28
|
-
GObject::TYPE_ENUM
|
29
|
-
GObject::TYPE_FLAGS
|
30
|
-
GObject::TYPE_STRING
|
31
|
-
GObject::TYPE_BOXED
|
32
|
-
GObject::TYPE_OBJECT
|
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
|
43
|
-
GObject::TYPE_UCHAR
|
44
|
-
GObject::TYPE_FLOAT
|
45
|
-
GObject::TYPE_DOUBLE
|
46
|
-
GObject::TYPE_INT
|
47
|
-
GObject::TYPE_UINT
|
48
|
-
GObject::TYPE_LONG
|
49
|
-
GObject::TYPE_ULONG
|
50
|
-
GObject::TYPE_INT64
|
51
|
-
GObject::TYPE_UINT64
|
52
|
-
GObject::TYPE_ENUM
|
53
|
-
GObject::TYPE_FLAGS
|
54
|
-
GObject::TYPE_STRING
|
55
|
-
GObject::TYPE_BOXED
|
56
|
-
GObject::TYPE_OBJECT
|
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
|
65
|
-
GObject::TYPE_FLAGS
|
66
|
-
GObject::TYPE_BOXED
|
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
|
|
data/lib/gir_ffi/version.rb
CHANGED
@@ -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
|
data/lib/gir_ffi-base/gobject.rb
CHANGED
@@ -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
|
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.
|
4
|
+
version: 0.16.0
|
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:
|
11
|
+
date: 2022-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,26 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '5.12'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest-focus
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 1.3.1
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '1.3'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.3.1
|
69
89
|
- !ruby/object:Gem::Dependency
|
70
90
|
name: rake
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,28 +148,28 @@ dependencies:
|
|
128
148
|
requirements:
|
129
149
|
- - "~>"
|
130
150
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
151
|
+
version: '1.25'
|
132
152
|
type: :development
|
133
153
|
prerelease: false
|
134
154
|
version_requirements: !ruby/object:Gem::Requirement
|
135
155
|
requirements:
|
136
156
|
- - "~>"
|
137
157
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
158
|
+
version: '1.25'
|
139
159
|
- !ruby/object:Gem::Dependency
|
140
160
|
name: rubocop-minitest
|
141
161
|
requirement: !ruby/object:Gem::Requirement
|
142
162
|
requirements:
|
143
163
|
- - "~>"
|
144
164
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
165
|
+
version: 0.19.0
|
146
166
|
type: :development
|
147
167
|
prerelease: false
|
148
168
|
version_requirements: !ruby/object:Gem::Requirement
|
149
169
|
requirements:
|
150
170
|
- - "~>"
|
151
171
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
172
|
+
version: 0.19.0
|
153
173
|
- !ruby/object:Gem::Dependency
|
154
174
|
name: rubocop-packaging
|
155
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +190,14 @@ dependencies:
|
|
170
190
|
requirements:
|
171
191
|
- - "~>"
|
172
192
|
- !ruby/object:Gem::Version
|
173
|
-
version: 1.
|
193
|
+
version: '1.13'
|
174
194
|
type: :development
|
175
195
|
prerelease: false
|
176
196
|
version_requirements: !ruby/object:Gem::Requirement
|
177
197
|
requirements:
|
178
198
|
- - "~>"
|
179
199
|
- !ruby/object:Gem::Version
|
180
|
-
version: 1.
|
200
|
+
version: '1.13'
|
181
201
|
- !ruby/object:Gem::Dependency
|
182
202
|
name: simplecov
|
183
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -396,6 +416,7 @@ metadata:
|
|
396
416
|
homepage_uri: http://www.github.com/mvz/ruby-gir-ffi
|
397
417
|
source_code_uri: https://github.com/mvz/gir_ffi
|
398
418
|
changelog_uri: https://github.com/mvz/gir_ffi/blob/master/Changelog.md
|
419
|
+
rubygems_mfa_required: 'true'
|
399
420
|
post_install_message:
|
400
421
|
rdoc_options:
|
401
422
|
- "--main"
|
@@ -406,14 +427,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
406
427
|
requirements:
|
407
428
|
- - ">="
|
408
429
|
- !ruby/object:Gem::Version
|
409
|
-
version: 2.
|
430
|
+
version: 2.7.0
|
410
431
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
432
|
requirements:
|
412
433
|
- - ">="
|
413
434
|
- !ruby/object:Gem::Version
|
414
435
|
version: '0'
|
415
436
|
requirements: []
|
416
|
-
rubygems_version: 3.
|
437
|
+
rubygems_version: 3.3.7
|
417
438
|
signing_key:
|
418
439
|
specification_version: 4
|
419
440
|
summary: FFI-based GObject binding using the GObject Introspection Repository
|