gir_ffi 0.15.5 → 0.15.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/gir_ffi.svg)](http://badge.fury.io/rb/gir_ffi)
|
12
|
-
[![
|
13
|
-
[![Build Status](https://travis-ci.org/mvz/gir_ffi.svg?branch=master)](https://travis-ci.org/mvz/gir_ffi)
|
12
|
+
[![Build Status](https://github.com/mvz/gir_ffi/actions/workflows/ruby.yml/badge.svg)](https://github.com/mvz/gir_ffi/actions/workflows/ruby.yml)
|
14
13
|
[![Code Climate](https://codeclimate.com/github/mvz/gir_ffi/badges/gpa.svg)](https://codeclimate.com/github/mvz/gir_ffi)
|
15
|
-
[![Documentation Status](https://inch-ci.org/github/mvz/gir_ffi.svg?branch=master)](https://inch-ci.org/github/mvz/gir_ffi
|
14
|
+
[![Documentation Status](https://inch-ci.org/github/mvz/gir_ffi.svg?branch=master)](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: []
|