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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1bab3fa290a2ef0cb49ee4bb2b24f29f6ef5ae0bf4bbdd83ed92bc28b9aa8e0
4
- data.tar.gz: c87ddb7f7f41a033319dafd849db129a72afb2cd6fba5e2ffc64715e1cc1e446
3
+ metadata.gz: 240502b5086fedd9c4f52a114faf67c5021f03c4fedc10dd6fbfabd064a64aca
4
+ data.tar.gz: b89d501796ee980af6d731758f144a9eba21472353bae02029548f6541787db4
5
5
  SHA512:
6
- metadata.gz: 7ff032878aa00fea1c6096f8b09509e6cbee0c492f864c1c258e4c1b1932f0052e2efda13517e2e381f367f91713ed0e56f42bcc302abe2de04103607beac8dd
7
- data.tar.gz: 4f90c766aee3e8953a8f017e94284db5be4cc0cf93991795ee2e77aa66c700995ec9f3feeb336169f02b618468675a2744f5159a790819c5248422a85baa789f
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
- [![Depfu](https://badges.depfu.com/badges/d5a8e9bffd2462a7ab4921d2f7e6fc48/overview.svg)](https://depfu.com/github/mvz/gir_ffi)
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/branch/master)
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.5, 2.6 and 2.7, and JRuby 9.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.46.0 and up.
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
- ## Hacking and contributing
92
+ ## Contributing
93
93
 
94
- Please feel free to file bugs or send pull requests!
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–2020 [Matijs van Zuijlen](http://www.matijs.net)
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
@@ -39,7 +39,7 @@ module GLib
39
39
  end
40
40
 
41
41
  def to_hash
42
- Hash[to_a]
42
+ to_a.to_h
43
43
  end
44
44
 
45
45
  # @override
@@ -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
- if GLib.check_version(2, 54, 0)
11
- setup_method! "new"
12
-
13
- # Before GLib 2.54.0, use g_object_newv, which takes an array of GParameter.
14
- def initialize_with_automatic_gtype(properties = {})
15
- gparameters = properties.map do |name, value|
16
- name = name.to_s
17
- property_param_spec(name)
18
- GObject::Parameter.new.tap do |gparam|
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
- # Starting with GLib 2.54.0, use g_object_new_with_properties, which
40
- # takes an array of names and an array of values.
41
- def initialize_with_properties(properties = {})
42
- names, gvalues = names_and_gvalues_for_properties(properties)
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
- n_properties = names.length
45
- names_arr = GirFFI::SizedArray.from(:utf8, -1, names)
46
- gvalues_arr = GirFFI::SizedArray.from(GObject::Value, -1, gvalues)
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
- ptr = GObject::Lib.g_object_new_with_properties(self.class.gtype,
49
- n_properties,
50
- names_arr,
51
- gvalues_arr)
52
- store_pointer ptr
53
- end
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
- alias old_initialze initialize
56
- alias initialize initialize_with_properties
57
- remove_method :old_initialze
36
+ alias old_initialze initialize
37
+ alias initialize initialize_with_properties
38
+ remove_method :old_initialze
58
39
 
59
- def self.new(*args, &block)
60
- obj = allocate
61
- obj.__send__ :initialize, *args, &block
62
- obj
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 do
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})"
@@ -18,7 +18,7 @@ module GObject
18
18
  end
19
19
 
20
20
  def initialize(&block)
21
- raise ArgumentError unless block_given?
21
+ block or raise ArgumentError, "Block needed"
22
22
 
23
23
  initialize_simple(self.class::Struct.size, nil)
24
24
  self.block = block
@@ -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" unless block_given?
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
- block.call(*args << data)
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, lib = Lib)
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(lib, ptr)
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(lib, ptr)
19
- proc { lib.g_base_info_unref ptr }
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_)?/, '\\1n_')
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 Class
21
+ when Module
22
22
  value_type.wrap bare_value
23
23
  else
24
24
  bare_value
@@ -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 do
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].mark_as_user_data bldr
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].mark_as_destroy_notifier bldr
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
- return base, blocks.first
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)
@@ -38,7 +38,7 @@ module GirFFI
38
38
  ["obj = allocate"]
39
39
  else
40
40
  [
41
- "raise NoMethodError unless self == #{@info.container.full_type_name}",
41
+ "raise NoMethodError unless self == #{@info.container.full_name}",
42
42
  "obj = allocate"
43
43
  ]
44
44
  end
@@ -89,7 +89,7 @@ module GirFFI
89
89
  lib.extend FFI::BitMasks
90
90
  lib.ffi_lib_flags :global, :lazy
91
91
  if shared_library_specification
92
- lib.ffi_lib(*shared_library_specification.split(/,/))
92
+ lib.ffi_lib(*shared_library_specification.split(","))
93
93
  end
94
94
  end
95
95
 
@@ -44,7 +44,7 @@ module GirFFI
44
44
  end
45
45
 
46
46
  def gtype_struct_parent
47
- full_name = info.full_type_name
47
+ full_name = info.full_name
48
48
  if full_name == "GObject::InitiallyUnownedClass"
49
49
  GObject::ObjectClass
50
50
  else
@@ -105,7 +105,7 @@ module GirFFI
105
105
  end
106
106
 
107
107
  def class_size
108
- parent_gtype.class_size + interface_gtypes.map(&:class_size).sum
108
+ parent_gtype.class_size + interface_gtypes.sum(&:class_size)
109
109
  end
110
110
 
111
111
  def setup_properties(object_class_ptr)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "gir_ffi/type_base"
4
+ require "set"
4
5
 
5
6
  module GirFFI
6
7
  # Base module for callbacks and vfuncs.
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
- " Call the relevant functions inside the class definition instead."
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
@@ -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.include? GirFFI::EnumBase
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 #full_type_name method suitable for
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 full_type_name
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.full_type_name if tag == :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].include?(flattened_tag)
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?
@@ -22,6 +22,10 @@ module GirFFI
22
22
  def has_invoker?
23
23
  invoker
24
24
  end
25
+
26
+ def full_name
27
+ "#{container.full_name}::#{safe_name}"
28
+ end
25
29
  end
26
30
  end
27
31
  end
@@ -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
@@ -22,6 +22,7 @@ module GirFFI
22
22
  array: :pointer,
23
23
  c: GirFFI::SizedArray,
24
24
  utf8: :pointer,
25
+ filename: :pointer,
25
26
  GType: gsize_type,
26
27
  gboolean: GirFFI::Boolean,
27
28
  gunichar: :uint32,
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Current GirFFI version
4
4
  module GirFFI
5
- VERSION = "0.15.5"
5
+ VERSION = "0.15.9"
6
6
  end
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.5
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: 2020-11-13 00:00:00.000000000 Z
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: 1.0.0
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: 1.0.0
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.1.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.1.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.3.0
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.3.0
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.10.1
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.10.1
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.8.0
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.8.0
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.19.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.19.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
- post_install_message:
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.5.0
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.1.2
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: []