gir_ffi 0.15.5 → 0.15.9
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.
- checksums.yaml +4 -4
- data/Changelog.md +25 -1
- data/README.md +8 -23
- data/lib/ffi-glib/hash_table.rb +1 -1
- data/lib/ffi-gobject/object.rb +36 -50
- data/lib/ffi-gobject/ruby_closure.rb +1 -1
- data/lib/ffi-gobject/value.rb +0 -10
- data/lib/ffi-gobject.rb +2 -2
- data/lib/ffi-gobject_introspection/i_base_info.rb +13 -6
- data/lib/gir_ffi/array_element_convertor.rb +2 -2
- data/lib/gir_ffi/boxed_base.rb +12 -6
- data/lib/gir_ffi/builders/argument_builder_collection.rb +19 -3
- data/lib/gir_ffi/builders/constructor_builder.rb +1 -1
- data/lib/gir_ffi/builders/module_builder.rb +1 -1
- data/lib/gir_ffi/builders/struct_builder.rb +1 -1
- data/lib/gir_ffi/builders/user_defined_builder.rb +1 -1
- data/lib/gir_ffi/callback_base.rb +1 -0
- data/lib/gir_ffi/core.rb +1 -1
- data/lib/gir_ffi/in_pointer.rb +3 -2
- 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_type_info.rb +3 -2
- data/lib/gir_ffi/info_ext/i_vfunc_info.rb +4 -0
- data/lib/gir_ffi/interface_base.rb +5 -0
- data/lib/gir_ffi/type_map.rb +1 -0
- data/lib/gir_ffi/version.rb +1 -1
- metadata +34 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 240502b5086fedd9c4f52a114faf67c5021f03c4fedc10dd6fbfabd064a64aca
|
4
|
+
data.tar.gz: b89d501796ee980af6d731758f144a9eba21472353bae02029548f6541787db4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6f7df11953d3b1a88c3fa515207d3f15883e79de7114fb6ad55bf1545e1e023a6b1b7b83199fd3ef0a45ab762d240a9b59eec8c4aac660b1d8d83363de51c0a
|
7
|
+
data.tar.gz: 18ca30c7f7f54daeff80c3045d24e1231d0a927e68f0ae8877a548b95cdc8602298b602925e3ad20e6b26049b62a7541b85d7f2d56b328594d22ca39b960146c
|
data/Changelog.md
CHANGED
@@ -1,8 +1,32 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.15.9 / 2021-12-05
|
4
|
+
|
5
|
+
* Skip setting destroy notifier state if types don't make sense
|
6
|
+
* Handle functions with multiple user-supplied callback arguments
|
7
|
+
|
8
|
+
## 0.15.8 / 2021-11-20
|
9
|
+
|
10
|
+
* Drop support for Ruby 2.5
|
11
|
+
* Bump minimum supported version of gobject-introspection to 1.56.0
|
12
|
+
* Bump minimum supported version of glib to 2.56.0
|
13
|
+
* Handle functions that have swapped closure annotation
|
14
|
+
* Handle GPtrArray arguments in signal handlers
|
15
|
+
|
16
|
+
## 0.15.7 / 2021-01-15
|
17
|
+
|
18
|
+
* Handle sized arrays with interface element types
|
19
|
+
|
20
|
+
## 0.15.6 / 2021-01-10
|
21
|
+
|
22
|
+
* Officially support Ruby 3.0
|
23
|
+
* Rely on `GObject.boxed_free` to free GValue objects
|
24
|
+
* Require 'set' in `callback_base.rb`, which needs it (thanks, Jordan Webb!)
|
25
|
+
* Make SizedArray handle `:filename` elements
|
26
|
+
|
3
27
|
## 0.15.5 / 2020-11-13
|
4
28
|
|
5
|
-
* Make building and finding metaclasses via Builder.build_class work again
|
29
|
+
* Make building and finding metaclasses via `Builder.build_class` work again
|
6
30
|
|
7
31
|
## 0.15.4 / 2020-11-01
|
8
32
|
|
data/README.md
CHANGED
@@ -9,10 +9,9 @@ Ruby bindings for GNOME using the GObject Introspection Repository.
|
|
9
9
|
## Status
|
10
10
|
|
11
11
|
[](http://badge.fury.io/rb/gir_ffi)
|
12
|
-
[](https://travis-ci.org/mvz/gir_ffi)
|
12
|
+
[](https://github.com/mvz/gir_ffi/actions/workflows/ruby.yml)
|
14
13
|
[](https://codeclimate.com/github/mvz/gir_ffi)
|
15
|
-
[](https://inch-ci.org/github/mvz/gir_ffi
|
14
|
+
[](https://inch-ci.org/github/mvz/gir_ffi)
|
16
15
|
|
17
16
|
## Features
|
18
17
|
|
@@ -52,7 +51,7 @@ examples can be found in `gir_ffi-gtk` and `gir_ffi-gst`.
|
|
52
51
|
|
53
52
|
## Requirements
|
54
53
|
|
55
|
-
GirFFI is supported on CRuby 2.
|
54
|
+
GirFFI is supported on CRuby 2.6, 2.7 and 3.0, and JRuby 9.3.
|
56
55
|
|
57
56
|
You will also need gobject-introspection installed with some
|
58
57
|
introspection data.
|
@@ -62,7 +61,8 @@ available under the name ending in plain `.so`. If GirFFI complains that it
|
|
62
61
|
cannot find the library, try installing development packages for those
|
63
62
|
libraries.
|
64
63
|
|
65
|
-
GirFFI should work with gobject-introspection 1.
|
64
|
+
GirFFI should work with gobject-introspection 1.56.0 and up, and glib 2.56.0
|
65
|
+
and up.
|
66
66
|
|
67
67
|
On Debian and Ubuntu, installing `libgirepository-1.0-1` and `gir1.2-glib-2.0`
|
68
68
|
should be enough to use GirFFI in your application.
|
@@ -89,24 +89,9 @@ already exist:
|
|
89
89
|
* `gir_ffi-tracker`: overrides for Tracker
|
90
90
|
* `gir_ffi-gst`: overrides for GStreamer
|
91
91
|
|
92
|
-
##
|
92
|
+
## Contributing
|
93
93
|
|
94
|
-
Please
|
95
|
-
|
96
|
-
If you just want to help out but don't know where to start, have a look at
|
97
|
-
TODO.md, and check the notes in the code (e.g., using `dnote`).
|
98
|
-
|
99
|
-
If you want to send pull requests or patches, try to follow the instructions
|
100
|
-
below. **If you get stuck, please make a pull request anyway and I'll try to
|
101
|
-
help out.**
|
102
|
-
|
103
|
-
* Make sure `rake test` runs without reporting any failures.
|
104
|
-
* Add tests for your feature. Otherwise, I can't see if it works or if I
|
105
|
-
break it later.
|
106
|
-
* Make sure latest master merges cleanly with your branch. Things might
|
107
|
-
have moved around since you forked.
|
108
|
-
* Try not to include changes that are irrelevant to your feature in the
|
109
|
-
same commit.
|
94
|
+
Please see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.
|
110
95
|
|
111
96
|
## Contributors
|
112
97
|
|
@@ -119,7 +104,7 @@ The following people have contributed to GirFFI over the years:
|
|
119
104
|
|
120
105
|
## License
|
121
106
|
|
122
|
-
Copyright © 2009–
|
107
|
+
Copyright © 2009–2021 [Matijs van Zuijlen](http://www.matijs.net)
|
123
108
|
|
124
109
|
GirFFI is free software, distributed under the terms of the GNU Lesser
|
125
110
|
General Public License, version 2.1 or later. See the file COPYING.LIB for
|
data/lib/ffi-glib/hash_table.rb
CHANGED
data/lib/ffi-gobject/object.rb
CHANGED
@@ -7,60 +7,40 @@ GObject.load_class :Object
|
|
7
7
|
module GObject
|
8
8
|
# Overrides for GObject, GObject's generic base class.
|
9
9
|
class Object
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
gparam.name = name
|
20
|
-
gparam.value = value
|
21
|
-
end
|
22
|
-
end
|
23
|
-
initialize_without_automatic_gtype(self.class.gtype, gparameters)
|
24
|
-
end
|
25
|
-
|
26
|
-
alias initialize_without_automatic_gtype initialize
|
27
|
-
alias initialize initialize_with_automatic_gtype
|
28
|
-
else
|
29
|
-
GObject::Lib.attach_function(:g_object_new_with_properties,
|
30
|
-
[:size_t, :uint32, :pointer, :pointer],
|
31
|
-
:pointer)
|
32
|
-
|
33
|
-
def self.new_with_properties(*args, &block)
|
34
|
-
obj = allocate
|
35
|
-
obj.__send__ :initialize_with_properties, *args, &block
|
36
|
-
obj
|
37
|
-
end
|
10
|
+
GObject::Lib.attach_function(:g_object_new_with_properties,
|
11
|
+
[:size_t, :uint32, :pointer, :pointer],
|
12
|
+
:pointer)
|
13
|
+
|
14
|
+
def self.new_with_properties(*args, &block)
|
15
|
+
obj = allocate
|
16
|
+
obj.__send__ :initialize_with_properties, *args, &block
|
17
|
+
obj
|
18
|
+
end
|
38
19
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
20
|
+
# Starting with GLib 2.54.0, use g_object_new_with_properties, which
|
21
|
+
# takes an array of names and an array of values.
|
22
|
+
def initialize_with_properties(properties = {})
|
23
|
+
names, gvalues = names_and_gvalues_for_properties(properties)
|
43
24
|
|
44
|
-
|
45
|
-
|
46
|
-
|
25
|
+
n_properties = names.length
|
26
|
+
names_arr = GirFFI::SizedArray.from(:utf8, -1, names)
|
27
|
+
gvalues_arr = GirFFI::SizedArray.from(GObject::Value, -1, gvalues)
|
47
28
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
29
|
+
ptr = GObject::Lib.g_object_new_with_properties(self.class.gtype,
|
30
|
+
n_properties,
|
31
|
+
names_arr,
|
32
|
+
gvalues_arr)
|
33
|
+
store_pointer ptr
|
34
|
+
end
|
54
35
|
|
55
|
-
|
56
|
-
|
57
|
-
|
36
|
+
alias old_initialze initialize
|
37
|
+
alias initialize initialize_with_properties
|
38
|
+
remove_method :old_initialze
|
58
39
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
end
|
40
|
+
def self.new(*args, &block)
|
41
|
+
obj = allocate
|
42
|
+
obj.__send__ :initialize, *args, &block
|
43
|
+
obj
|
64
44
|
end
|
65
45
|
|
66
46
|
alias base_initialize initialize
|
@@ -75,7 +55,13 @@ module GObject
|
|
75
55
|
end
|
76
56
|
|
77
57
|
def self.make_finalizer(ptr)
|
78
|
-
proc
|
58
|
+
proc { finalize ptr }
|
59
|
+
end
|
60
|
+
|
61
|
+
class << self
|
62
|
+
protected
|
63
|
+
|
64
|
+
def finalize(ptr)
|
79
65
|
rc = GObject::Object::Struct.new(ptr)[:ref_count]
|
80
66
|
if rc == 0
|
81
67
|
warn "not unreffing #{name}:#{ptr} (#{rc})"
|
data/lib/ffi-gobject/value.rb
CHANGED
@@ -7,16 +7,6 @@ module GObject
|
|
7
7
|
class Value
|
8
8
|
setup_instance_method! :init
|
9
9
|
|
10
|
-
def self.make_finalizer(struct)
|
11
|
-
proc do
|
12
|
-
if struct.owned?
|
13
|
-
ptr = struct.to_ptr
|
14
|
-
Lib.g_value_unset ptr unless struct[:g_type] == TYPE_INVALID
|
15
|
-
GObject.boxed_free gtype, ptr
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
10
|
METHOD_MAP = {
|
21
11
|
TYPE_INVALID => [:get_none, :set_none],
|
22
12
|
# TYPE_NONE is skipped
|
data/lib/ffi-gobject.rb
CHANGED
@@ -63,13 +63,13 @@ module GObject
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def self.signal_connect(object, detailed_signal, data = nil, after = false, &block)
|
66
|
-
raise ArgumentError, "Block needed"
|
66
|
+
block or raise ArgumentError, "Block needed"
|
67
67
|
|
68
68
|
signal_name, = detailed_signal.split("::")
|
69
69
|
sig_info = object.class.find_signal signal_name
|
70
70
|
|
71
71
|
closure = sig_info.wrap_in_closure do |*args|
|
72
|
-
|
72
|
+
yield(*args << data)
|
73
73
|
end
|
74
74
|
|
75
75
|
signal_connect_closure object, detailed_signal, closure, after
|
@@ -4,19 +4,26 @@ module GObjectIntrospection
|
|
4
4
|
# Wraps GIBaseInfo struct, the base \type for all info types.
|
5
5
|
# Decendant types will be implemented as needed.
|
6
6
|
class IBaseInfo
|
7
|
-
def initialize(ptr
|
7
|
+
def initialize(ptr)
|
8
8
|
raise ArgumentError, "ptr must not be null" if ptr.null?
|
9
9
|
|
10
|
-
ObjectSpace.define_finalizer self, self.class.make_finalizer(
|
10
|
+
ObjectSpace.define_finalizer self, self.class.make_finalizer(ptr)
|
11
11
|
|
12
12
|
@pointer = ptr
|
13
|
-
@lib = lib
|
14
13
|
end
|
15
14
|
|
16
15
|
attr_reader :pointer
|
17
16
|
|
18
|
-
def self.make_finalizer(
|
19
|
-
proc {
|
17
|
+
def self.make_finalizer(ptr)
|
18
|
+
proc { finalize ptr }
|
19
|
+
end
|
20
|
+
|
21
|
+
class << self
|
22
|
+
protected
|
23
|
+
|
24
|
+
def finalize(ptr)
|
25
|
+
Lib.g_base_info_unref ptr
|
26
|
+
end
|
20
27
|
end
|
21
28
|
|
22
29
|
def to_ptr
|
@@ -42,7 +49,7 @@ module GObjectIntrospection
|
|
42
49
|
method = method.to_s
|
43
50
|
cache_ivar = "@#{method}_cache"
|
44
51
|
single ||= method[0..-2]
|
45
|
-
count = method.sub(/^(get_)?/,
|
52
|
+
count = method.sub(/^(get_)?/, "\\1n_")
|
46
53
|
class_eval <<-CODE, __FILE__, __LINE__ + 1
|
47
54
|
def #{method} # def fields
|
48
55
|
#{cache_ivar} ||= # @fields_cache ||=
|
@@ -14,11 +14,11 @@ module GirFFI
|
|
14
14
|
def to_ruby_value
|
15
15
|
bare_value = to_value
|
16
16
|
case value_type
|
17
|
-
when :utf8
|
17
|
+
when :utf8, :filename
|
18
18
|
bare_value.to_utf8
|
19
19
|
when Array
|
20
20
|
value_type[1].wrap bare_value
|
21
|
-
when
|
21
|
+
when Module
|
22
22
|
value_type.wrap bare_value
|
23
23
|
else
|
24
24
|
bare_value
|
data/lib/gir_ffi/boxed_base.rb
CHANGED
@@ -6,12 +6,7 @@ module GirFFI
|
|
6
6
|
# Base class for generated classes representing boxed types.
|
7
7
|
class BoxedBase < StructLikeBase
|
8
8
|
def self.make_finalizer(struct)
|
9
|
-
proc
|
10
|
-
if struct.owned?
|
11
|
-
struct.owned = nil
|
12
|
-
GObject.boxed_free gtype, struct.to_ptr
|
13
|
-
end
|
14
|
-
end
|
9
|
+
proc { finalize(struct) }
|
15
10
|
end
|
16
11
|
|
17
12
|
def self.copy(val)
|
@@ -19,6 +14,17 @@ module GirFFI
|
|
19
14
|
wrap(ptr)
|
20
15
|
end
|
21
16
|
|
17
|
+
class << self
|
18
|
+
protected
|
19
|
+
|
20
|
+
def finalize(struct)
|
21
|
+
struct.owned? or return
|
22
|
+
|
23
|
+
struct.owned = nil
|
24
|
+
GObject.boxed_free gtype, struct.to_ptr
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
22
28
|
private
|
23
29
|
|
24
30
|
def store_pointer(*)
|
@@ -75,7 +75,11 @@ module GirFFI
|
|
75
75
|
def set_up_user_data_relations
|
76
76
|
@base_argument_builders.each do |bldr|
|
77
77
|
if (idx = bldr.closure_idx) >= 0
|
78
|
-
@base_argument_builders[idx]
|
78
|
+
target_bldr = @base_argument_builders[idx]
|
79
|
+
unless target_bldr.specialized_type_tag == :void
|
80
|
+
target_bldr, bldr = bldr, target_bldr
|
81
|
+
end
|
82
|
+
target_bldr.mark_as_user_data bldr
|
79
83
|
end
|
80
84
|
end
|
81
85
|
end
|
@@ -83,7 +87,14 @@ module GirFFI
|
|
83
87
|
def set_up_destroy_notifier_relations
|
84
88
|
@base_argument_builders.each do |bldr|
|
85
89
|
if (idx = bldr.destroy_idx) >= 0
|
86
|
-
@base_argument_builders[idx]
|
90
|
+
target = @base_argument_builders[idx]
|
91
|
+
if target.specialized_type_tag == :callback &&
|
92
|
+
bldr.specialized_type_tag == :callback
|
93
|
+
target.mark_as_destroy_notifier bldr
|
94
|
+
else
|
95
|
+
warn "Not marking #{target.name} (#{target.specialized_type_tag})" \
|
96
|
+
" as destroy notifier for #{bldr.name} (#{bldr.specialized_type_tag})"
|
97
|
+
end
|
87
98
|
end
|
88
99
|
end
|
89
100
|
end
|
@@ -128,7 +139,12 @@ module GirFFI
|
|
128
139
|
def split_off_block_argument
|
129
140
|
builders_with_name = argument_builders.select(&:method_argument_name)
|
130
141
|
blocks, base = builders_with_name.partition(&:block_argument?)
|
131
|
-
|
142
|
+
case blocks.count
|
143
|
+
when 1
|
144
|
+
return base, blocks.first
|
145
|
+
else
|
146
|
+
return builders_with_name, nil
|
147
|
+
end
|
132
148
|
end
|
133
149
|
|
134
150
|
def base_argument_names(arguments)
|
data/lib/gir_ffi/core.rb
CHANGED
@@ -42,7 +42,7 @@ module GirFFI
|
|
42
42
|
|
43
43
|
if block_given?
|
44
44
|
warn "Using define_type with a block is deprecated." \
|
45
|
-
|
45
|
+
" Call the relevant functions inside the class definition instead."
|
46
46
|
yield info
|
47
47
|
end
|
48
48
|
Builders::UserDefinedBuilder.new(info).build_class
|
data/lib/gir_ffi/in_pointer.rb
CHANGED
@@ -77,9 +77,10 @@ module GirFFI
|
|
77
77
|
def from_module_type_array(type, ary)
|
78
78
|
if type == GObject::Value
|
79
79
|
from_gvalue_array type, ary
|
80
|
-
elsif type < GirFFI::ClassBase
|
80
|
+
elsif type < GirFFI::ClassBase ||
|
81
|
+
type.singleton_class < GirFFI::InterfaceBase
|
81
82
|
from_struct_array type, ary
|
82
|
-
elsif type.singleton_class
|
83
|
+
elsif type.singleton_class < GirFFI::EnumBase
|
83
84
|
from_enum_array type, ary
|
84
85
|
else
|
85
86
|
raise NotImplementedError, type
|
@@ -2,11 +2,12 @@
|
|
2
2
|
|
3
3
|
module GirFFI
|
4
4
|
module InfoExt
|
5
|
-
# Extension module provinding a #
|
5
|
+
# Extension module provinding a #full_name method suitable for
|
6
6
|
# callbacks, constants and registered types. Signals and vfuncs need a
|
7
7
|
# different implementation.
|
8
|
+
#
|
8
9
|
module FullTypeName
|
9
|
-
def
|
10
|
+
def full_name
|
10
11
|
"#{safe_namespace}::#{safe_name}"
|
11
12
|
end
|
12
13
|
end
|
@@ -14,6 +14,16 @@ module GirFFI
|
|
14
14
|
def return_ffi_type
|
15
15
|
return_type.to_ffi_type
|
16
16
|
end
|
17
|
+
|
18
|
+
def full_name
|
19
|
+
if method?
|
20
|
+
"#{container.full_name}##{safe_name}"
|
21
|
+
elsif container
|
22
|
+
"#{container.full_name}.#{safe_name}"
|
23
|
+
else
|
24
|
+
"#{safe_namespace}.#{safe_name}"
|
25
|
+
end
|
26
|
+
end
|
17
27
|
end
|
18
28
|
end
|
19
29
|
end
|
@@ -106,7 +106,7 @@ module GirFFI
|
|
106
106
|
end
|
107
107
|
|
108
108
|
def interface_class_name
|
109
|
-
interface.
|
109
|
+
interface.full_name if tag == :interface
|
110
110
|
end
|
111
111
|
|
112
112
|
def to_ffi_type
|
@@ -166,7 +166,8 @@ module GirFFI
|
|
166
166
|
end
|
167
167
|
|
168
168
|
def needs_c_to_ruby_conversion_for_closures?
|
169
|
-
[:array, :c, :error, :ghash, :glist, :struct, :strv]
|
169
|
+
[:array, :c, :error, :ghash, :glist, :ptr_array, :struct, :strv]
|
170
|
+
.include?(flattened_tag)
|
170
171
|
end
|
171
172
|
|
172
173
|
def needs_ruby_to_c_conversion_for_closures?
|
@@ -18,6 +18,11 @@ module GirFFI
|
|
18
18
|
send method_name, *arguments, &block
|
19
19
|
end
|
20
20
|
|
21
|
+
# TODO: Unify with implementation in ObjectBase
|
22
|
+
def copy_value_to_pointer(value, pointer, offset = 0)
|
23
|
+
pointer.put_pointer offset, value.to_ptr
|
24
|
+
end
|
25
|
+
|
21
26
|
def wrap(ptr)
|
22
27
|
ptr.to_object
|
23
28
|
end
|
data/lib/gir_ffi/type_map.rb
CHANGED
data/lib/gir_ffi/version.rb
CHANGED
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.
|
4
|
+
version: 0.15.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-05 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.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.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ 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.1
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.3.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rake
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +100,14 @@ dependencies:
|
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
103
|
+
version: 0.2.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
110
|
+
version: 0.2.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rexml
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,28 +142,28 @@ dependencies:
|
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
145
|
+
version: 1.23.0
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
152
|
+
version: 1.23.0
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rubocop-minitest
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
159
|
+
version: 0.17.0
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
166
|
+
version: 0.17.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: rubocop-packaging
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,28 +184,28 @@ dependencies:
|
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: 1.
|
187
|
+
version: 1.12.0
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: 1.
|
194
|
+
version: 1.12.0
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: simplecov
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
199
|
- - "~>"
|
186
200
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
201
|
+
version: 0.21.0
|
188
202
|
type: :development
|
189
203
|
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
206
|
- - "~>"
|
193
207
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
208
|
+
version: 0.21.0
|
195
209
|
description: |
|
196
210
|
GirFFI creates bindings for GObject-based libraries at runtime based on introspection
|
197
211
|
data provided by the GObject Introspection Repository (GIR) system. Bindings are created
|
@@ -396,7 +410,8 @@ metadata:
|
|
396
410
|
homepage_uri: http://www.github.com/mvz/ruby-gir-ffi
|
397
411
|
source_code_uri: https://github.com/mvz/gir_ffi
|
398
412
|
changelog_uri: https://github.com/mvz/gir_ffi/blob/master/Changelog.md
|
399
|
-
|
413
|
+
rubygems_mfa_required: 'true'
|
414
|
+
post_install_message:
|
400
415
|
rdoc_options:
|
401
416
|
- "--main"
|
402
417
|
- README.md
|
@@ -406,15 +421,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
406
421
|
requirements:
|
407
422
|
- - ">="
|
408
423
|
- !ruby/object:Gem::Version
|
409
|
-
version: 2.
|
424
|
+
version: 2.6.0
|
410
425
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
426
|
requirements:
|
412
427
|
- - ">="
|
413
428
|
- !ruby/object:Gem::Version
|
414
429
|
version: '0'
|
415
430
|
requirements: []
|
416
|
-
rubygems_version: 3.
|
417
|
-
signing_key:
|
431
|
+
rubygems_version: 3.2.32
|
432
|
+
signing_key:
|
418
433
|
specification_version: 4
|
419
434
|
summary: FFI-based GObject binding using the GObject Introspection Repository
|
420
435
|
test_files: []
|