gobject-introspection 3.1.1 → 3.1.2

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
  SHA1:
3
- metadata.gz: 5e7de825796aca9c7935a109c3e048b84432e163
4
- data.tar.gz: b22702a31833ad07b46dd190895c955b95fdcaac
3
+ metadata.gz: 35811ac9e736fa0695b78153abb1f115aca9a97a
4
+ data.tar.gz: 8eff89de97f6feebf3de2befb97d862d0ba851bc
5
5
  SHA512:
6
- metadata.gz: 78016bee5bbd67ea91f822eda8a13f888edc9393a11dca852b07a1df4dc8002a8a865473fdfed55b61583030817bcdab69d03a43acffcb75e9f6f76cf97ffbab
7
- data.tar.gz: 677113a40e5ad47a968061441b6fc066f365277286dccde7aa9c9b464ab9194d05ca83fce507fb82709f1fb5ca663ab7ed4350361dadc20fca0c2b99a0667354
6
+ metadata.gz: 730890b3b4bbe8fb74f181c5b23989e4bdd5184e8a4f692b3ca5e5c334587fa4ebc0fd1088d97bea994ef71c7db53b41ea29b42eeb67b644f471e51d6a42afac
7
+ data.tar.gz: 70513be500ce797f970dbeedff8faa17b7757a50cbafafb1eeeeb1e6287e7aeb94fd3dd035c50a5b7440c636700e69902c5d2c44030c5172865f1e9c0664f98f
data/Rakefile CHANGED
@@ -32,7 +32,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
32
32
  :name => "glib",
33
33
  :download_site => :gnome,
34
34
  :label => "GLib",
35
- :version => "2.50.2",
35
+ :version => "2.52.1",
36
36
  :compression_method => "xz",
37
37
  :windows => {
38
38
  :build => false,
@@ -47,7 +47,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
47
47
  :name => "gobject-introspection",
48
48
  :download_site => :gnome,
49
49
  :label => "gobject-introspection",
50
- :version => "1.50.0",
50
+ :version => "1.52.1",
51
51
  :compression_method => "xz",
52
52
  :windows => {
53
53
  :configure_args => [
@@ -57,11 +57,11 @@ end
57
57
  setup_windows(module_name, base_dir)
58
58
 
59
59
  unless required_pkg_config_package(package_id,
60
- :altlinux => "gobject-introspection-devel",
60
+ :alt_linux => "gobject-introspection-devel",
61
61
  :debian => "libgirepository1.0-dev",
62
62
  :redhat => "gobject-introspection-devel",
63
63
  :homebrew => "gobject-introspection",
64
- :arch => "gobject-introspection",
64
+ :arch_linux => "gobject-introspection",
65
65
  :macports => "gobject-introspection")
66
66
  exit(false)
67
67
  end
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2012-2016 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
4
4
  *
5
5
  * This library is free software; you can redistribute it and/or
6
6
  * modify it under the terms of the GNU Lesser General Public
@@ -37,8 +37,28 @@ interface_struct_to_ruby(gpointer object,
37
37
 
38
38
  namespace = g_base_info_get_namespace(interface_info);
39
39
  name = g_base_info_get_name(interface_info);
40
+
41
+ if (strcmp(namespace, "cairo") == 0) {
42
+ gchar *gtype_name;
43
+ GType gtype;
44
+
45
+ gtype_name = g_strdup_printf("Cairo%s", name);
46
+ gtype = g_type_from_name(gtype_name);
47
+ g_free(gtype_name);
48
+ return BOXED2RVAL(target_object, gtype);
49
+ }
50
+
40
51
  rb_module = rb_const_get(rb_cObject, rb_intern(namespace));
41
52
  rb_class = rb_const_get(rb_module, rb_intern(name));
53
+ if (rb_respond_to(rb_class, rb_intern("gtype"))) {
54
+ VALUE rb_gtype;
55
+ GType gtype;
56
+
57
+ rb_gtype = rb_funcall(rb_class, rb_intern("gtype"), 0);
58
+ gtype = NUM2ULONG(rb_funcall(rb_gtype, rb_intern("to_i"), 0));
59
+ return BOXED2RVAL(target_object, gtype);
60
+ }
61
+
42
62
  if (duplicate) {
43
63
  size_t object_size;
44
64
  object_size = g_struct_info_get_size(interface_info);
@@ -166,12 +186,20 @@ array_c_to_ruby_sized(gconstpointer *elements,
166
186
  switch (element_type_tag) {
167
187
  case GI_TYPE_TAG_VOID:
168
188
  case GI_TYPE_TAG_BOOLEAN:
169
- case GI_TYPE_TAG_INT8:
170
189
  g_base_info_unref(element_type_info);
171
190
  rb_raise(rb_eNotImpError,
172
191
  "TODO: GIArgument(array)[c][%s] -> Ruby",
173
192
  g_type_tag_to_string(element_type_tag));
174
193
  break;
194
+ case GI_TYPE_TAG_INT8:
195
+ g_base_info_unref(element_type_info);
196
+ {
197
+ const gint8 *numbers = (const gint8 *)elements;
198
+ for (i = 0; i < n_elements; i++) {
199
+ rb_ary_push(rb_array, INT2NUM(numbers[i]));
200
+ }
201
+ }
202
+ break;
175
203
  case GI_TYPE_TAG_UINT8:
176
204
  g_base_info_unref(element_type_info);
177
205
  {
@@ -198,7 +226,20 @@ array_c_to_ruby_sized(gconstpointer *elements,
198
226
  }
199
227
  break;
200
228
  case GI_TYPE_TAG_UINT32:
229
+ g_base_info_unref(element_type_info);
230
+ rb_raise(rb_eNotImpError,
231
+ "TODO: GIArgument(array)[c][%s] -> Ruby",
232
+ g_type_tag_to_string(element_type_tag));
233
+ break;
201
234
  case GI_TYPE_TAG_INT64:
235
+ g_base_info_unref(element_type_info);
236
+ {
237
+ const gint64 *numbers = (const gint64 *)elements;
238
+ for (i = 0; i < n_elements; i++) {
239
+ rb_ary_push(rb_array, LL2NUM(numbers[i]));
240
+ }
241
+ }
242
+ break;
202
243
  case GI_TYPE_TAG_UINT64:
203
244
  case GI_TYPE_TAG_FLOAT:
204
245
  case GI_TYPE_TAG_DOUBLE:
@@ -570,12 +611,6 @@ rb_gi_argument_to_ruby_interface(GIArgument *argument,
570
611
  duplicate,
571
612
  type_info,
572
613
  interface_info);
573
- } else if (gtype == G_TYPE_BYTES) {
574
- GBytes *bytes = argument->v_pointer;
575
- gconstpointer data;
576
- gsize size;
577
- data = g_bytes_get_data(bytes, &size);
578
- rb_interface = rb_enc_str_new(data, size, rb_ascii8bit_encoding());
579
614
  } else if (gtype == G_TYPE_VARIANT) {
580
615
  GVariant *variant = argument->v_pointer;
581
616
  rb_interface = rbg_variant_to_ruby(variant);
@@ -1234,7 +1269,14 @@ rb_gi_out_argument_init_array_c(GIArgument *argument,
1234
1269
  break;
1235
1270
  case GI_TYPE_TAG_FILENAME:
1236
1271
  case GI_TYPE_TAG_ARRAY:
1272
+ g_base_info_unref(element_type_info);
1273
+ rb_raise(rb_eNotImpError,
1274
+ "TODO: allocates GIArgument(array)[c][%s] for output",
1275
+ g_type_tag_to_string(element_type_tag));
1276
+ break;
1237
1277
  case GI_TYPE_TAG_INTERFACE:
1278
+ argument->v_pointer = xmalloc(sizeof(gpointer *));
1279
+ break;
1238
1280
  case GI_TYPE_TAG_GLIST:
1239
1281
  case GI_TYPE_TAG_GSLIST:
1240
1282
  case GI_TYPE_TAG_GHASH:
@@ -1791,7 +1833,14 @@ rb_gi_out_argument_fin_array_c(GIArgument *argument,
1791
1833
  break;
1792
1834
  case GI_TYPE_TAG_FILENAME:
1793
1835
  case GI_TYPE_TAG_ARRAY:
1836
+ g_base_info_unref(element_type_info);
1837
+ rb_raise(rb_eNotImpError,
1838
+ "TODO: free out GIArgument(array)[c][%s]",
1839
+ g_type_tag_to_string(element_type_tag));
1840
+ break;
1794
1841
  case GI_TYPE_TAG_INTERFACE:
1842
+ xfree(argument->v_pointer);
1843
+ break;
1795
1844
  case GI_TYPE_TAG_GLIST:
1796
1845
  case GI_TYPE_TAG_GSLIST:
1797
1846
  case GI_TYPE_TAG_GHASH:
@@ -2805,11 +2854,17 @@ rb_gi_value_argument_from_ruby(GIArgument *argument, GITypeInfo *type_info,
2805
2854
  break;
2806
2855
  case GI_TYPE_TAG_GHASH:
2807
2856
  case GI_TYPE_TAG_ERROR:
2808
- case GI_TYPE_TAG_UNICHAR:
2809
2857
  rb_raise(rb_eNotImpError,
2810
2858
  "TODO: Ruby -> GIArgument(%s)",
2811
2859
  g_type_tag_to_string(type_tag));
2812
2860
  break;
2861
+ case GI_TYPE_TAG_UNICHAR:
2862
+ if (NIL_P(rb_argument)) {
2863
+ argument->v_uint32 = 0;
2864
+ } else {
2865
+ argument->v_uint32 = NUM2UINT(rb_argument);
2866
+ }
2867
+ break;
2813
2868
  default:
2814
2869
  g_assert_not_reached();
2815
2870
  break;
@@ -2917,7 +2972,7 @@ static void
2917
2972
  rb_gi_in_argument_transfer_interface(GIArgument *argument,
2918
2973
  G_GNUC_UNUSED GITransfer transfer,
2919
2974
  GITypeInfo *type_info,
2920
- G_GNUC_UNUSED VALUE rb_argument)
2975
+ VALUE rb_argument)
2921
2976
  {
2922
2977
  GIBaseInfo *interface_info;
2923
2978
  GIInfoType interface_type;
@@ -75,6 +75,7 @@ VALUE
75
75
  rb_gi_field_info_get_field_raw(GIFieldInfo *info, gpointer memory)
76
76
  {
77
77
  GIArgument argument;
78
+ gboolean processed = FALSE;
78
79
  GITypeInfo *type_info;
79
80
  GITypeTag type_tag;
80
81
  VALUE rb_field_value;
@@ -82,17 +83,51 @@ rb_gi_field_info_get_field_raw(GIFieldInfo *info, gpointer memory)
82
83
  type_info = g_field_info_get_type(info);
83
84
  type_tag = g_type_info_get_tag(type_info);
84
85
 
85
- if (!g_field_info_get_field(info, memory, &argument)) {
86
- g_base_info_unref(type_info);
87
- rb_raise(rb_eArgError, "failed to get field value: %s[%s]",
88
- g_base_info_get_name(info),
89
- g_type_tag_to_string(type_tag));
86
+ switch (type_tag) {
87
+ case GI_TYPE_TAG_INTERFACE:
88
+ {
89
+ GIBaseInfo *interface_info;
90
+ GIInfoType interface_type;
91
+
92
+ interface_info = g_type_info_get_interface(type_info);
93
+ interface_type = g_base_info_get_type(interface_info);
94
+ switch (interface_type) {
95
+ case GI_INFO_TYPE_STRUCT:
96
+ case GI_INFO_TYPE_UNION:
97
+ case GI_INFO_TYPE_BOXED:
98
+ {
99
+ int offset;
100
+
101
+ offset = g_field_info_get_offset(info);
102
+ argument.v_pointer = G_STRUCT_MEMBER(gpointer, memory, offset);
103
+ processed = TRUE;
104
+ }
105
+ break;
106
+ default:
107
+ break;
108
+ }
109
+ g_base_info_unref(interface_info);
110
+ }
111
+ break;
112
+ case GI_TYPE_TAG_UTF8:
113
+ {
114
+ int offset;
115
+ offset = g_field_info_get_offset(info);
116
+ argument.v_string = G_STRUCT_MEMBER(gchar *, memory, offset);
117
+ processed = TRUE;
118
+ }
119
+ break;
120
+ default:
121
+ break;
90
122
  }
91
123
 
92
- if (type_tag == GI_TYPE_TAG_UTF8) {
93
- int offset;
94
- offset = g_field_info_get_offset(info);
95
- argument.v_string = G_STRUCT_MEMBER(gchar *, memory, offset);
124
+ if (!processed) {
125
+ if (!g_field_info_get_field(info, memory, &argument)) {
126
+ g_base_info_unref(type_info);
127
+ rb_raise(rb_eArgError, "failed to get field value: %s[%s]",
128
+ g_base_info_get_name(info),
129
+ g_type_tag_to_string(type_tag));
130
+ }
96
131
  }
97
132
 
98
133
  rb_field_value = GI_ARGUMENT2RVAL(&argument, FALSE, type_info,
@@ -117,11 +152,43 @@ rb_gi_field_info_set_field_raw(GIFieldInfo *info, gpointer memory,
117
152
 
118
153
  succeeded = g_field_info_set_field(info, memory, &field_value);
119
154
  if (!succeeded) {
120
- if (type_tag == GI_TYPE_TAG_UTF8) {
121
- int offset;
122
- offset = g_field_info_get_offset(info);
123
- G_STRUCT_MEMBER(gchar *, memory, offset) = field_value.v_string;
124
- succeeded = TRUE;
155
+ switch (type_tag) {
156
+ case GI_TYPE_TAG_INTERFACE:
157
+ {
158
+ GIBaseInfo *interface_info;
159
+ GIInfoType interface_type;
160
+
161
+ interface_info = g_type_info_get_interface(type_info);
162
+ interface_type = g_base_info_get_type(interface_info);
163
+ switch (interface_type) {
164
+ case GI_INFO_TYPE_STRUCT:
165
+ case GI_INFO_TYPE_UNION:
166
+ case GI_INFO_TYPE_BOXED:
167
+ {
168
+ int offset;
169
+
170
+ offset = g_field_info_get_offset(info);
171
+ G_STRUCT_MEMBER(gpointer, memory, offset) =
172
+ field_value.v_pointer;
173
+ succeeded = TRUE;
174
+ }
175
+ break;
176
+ default:
177
+ break;
178
+ }
179
+ g_base_info_unref(interface_info);
180
+ }
181
+ break;
182
+ case GI_TYPE_TAG_UTF8:
183
+ {
184
+ int offset;
185
+ offset = g_field_info_get_offset(info);
186
+ G_STRUCT_MEMBER(gchar *, memory, offset) = field_value.v_string;
187
+ succeeded = TRUE;
188
+ }
189
+ break;
190
+ default:
191
+ break;
125
192
  }
126
193
  }
127
194
  rb_gi_value_argument_free(rb_field_value, &field_value, type_info);
@@ -57,6 +57,12 @@ rg_s_define_interface(G_GNUC_UNUSED VALUE klass,
57
57
  return G_DEF_INTERFACE(gtype, RVAL2CSTR(rb_name), rb_module);
58
58
  }
59
59
 
60
+ static void
61
+ struct_free(void *pointer)
62
+ {
63
+ xfree(pointer);
64
+ }
65
+
60
66
  static VALUE
61
67
  struct_alloc(VALUE klass)
62
68
  {
@@ -66,9 +72,8 @@ struct_alloc(VALUE klass)
66
72
 
67
73
  rb_size = rb_iv_get(klass, "@size");
68
74
  size = NUM2ULONG(rb_size);
69
- instance = xmalloc(size);
70
- memset(instance, 0, size);
71
- return Data_Wrap_Struct(klass, NULL, xfree, instance);
75
+ instance = xcalloc(1, size);
76
+ return Data_Wrap_Struct(klass, NULL, struct_free, instance);
72
77
  }
73
78
 
74
79
  static VALUE
@@ -270,5 +270,9 @@ rb_gi_repository_init(VALUE rb_mGI)
270
270
  RG_DEF_METHOD(get_version, 1);
271
271
 
272
272
  G_DEF_CLASS(G_TYPE_I_REPOSITORY_LOAD_FLAGS, "RepositoryLoadFlags", rb_mGI);
273
- G_DEF_CLASS(G_TYPE_I_REPOSITORY_ERROR, "RepositoryError", rb_mGI);
273
+ G_DEF_ERROR(G_IREPOSITORY_ERROR,
274
+ "RepositoryError",
275
+ rb_mGI,
276
+ rb_eLoadError,
277
+ G_TYPE_I_REPOSITORY_ERROR);
274
278
  }
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -118,9 +118,11 @@ module GObjectIntrospection
118
118
  klass = self.class.define_struct(info.size, name, @base_module,
119
119
  :parent => options[:parent])
120
120
  else
121
+ size = info.size
122
+ size = nil if size.zero?
121
123
  klass = self.class.define_class(info.gtype, name, @base_module,
122
124
  :parent => options[:parent],
123
- :size => info.size)
125
+ :size => size)
124
126
  end
125
127
  load_fields(info, klass)
126
128
  load_methods(info, klass)
@@ -133,7 +135,7 @@ module GObjectIntrospection
133
135
  method_infos = info.methods.find_all do |method_info|
134
136
  method_info.is_a?(MethodInfo)
135
137
  end
136
- unless methods.empty?
138
+ unless method_infos.empty?
137
139
  base_class = @base_module.const_get(base_class_name)
138
140
  load_method_infos(method_infos, base_class.singleton_class)
139
141
  end
@@ -233,23 +235,33 @@ module GObjectIntrospection
233
235
  field_info.name
234
236
  end
235
237
 
236
- def load_field(info, i, field_info, klass)
238
+ def load_field(info, i, field_info, klass, options={})
237
239
  name = field_name(field_info, klass)
238
240
  flags = field_info.flags
239
241
 
240
- if flags.readable?
241
- if field_info.type.tag == TypeTag::BOOLEAN
242
- reader_method_name = "#{name}?"
243
- else
244
- reader_method_name = name
245
- end
242
+ readable = options[:readable]
243
+ readable = flags.readable? if readable.nil?
244
+ need_number_to_bool_convert = false
245
+ if name.start_with?("is_") and
246
+ field_info.type.tag == TypeTag::UINT32
247
+ need_number_to_bool_convert = true
248
+ end
249
+ if readable
250
+ reader_method_name = rubyish_field_reader_name(field_info, name)
246
251
  remove_existing_method(klass, reader_method_name)
247
252
  klass.__send__(:define_method, reader_method_name) do ||
248
- info.get_field_value(self, i)
253
+ value = info.get_field_value(self, i)
254
+ if need_number_to_bool_convert
255
+ value != 0
256
+ else
257
+ value
258
+ end
249
259
  end
250
260
  end
251
261
 
252
- if flags.writable?
262
+ writable = options[:writable]
263
+ writable = flags.writable? if writable.nil?
264
+ if writable
253
265
  klass.__send__(:define_method, "#{name}=") do |value|
254
266
  info.set_field_value(self, i, value)
255
267
  end
@@ -413,8 +425,17 @@ module GObjectIntrospection
413
425
  if options[:prefix]
414
426
  name = name.gsub(/\A#{Regexp.escape(options[:prefix])}/, "")
415
427
  end
428
+ if name == "initialize"
429
+ name += "_raw"
430
+ end
416
431
  return_type = function_info.return_type
417
432
  return_type_tag = return_type.tag
433
+ if return_type_tag == TypeTag::VOID
434
+ out_arg_tags = function_info.out_args.collect {|arg| arg.type.tag}
435
+ if out_arg_tags == [TypeTag::ARRAY, TypeTag::INT32]
436
+ return_type_tag = TypeTag::ARRAY
437
+ end
438
+ end
418
439
  case return_type_tag
419
440
  when TypeTag::BOOLEAN
420
441
  case name
@@ -443,7 +464,7 @@ module GObjectIntrospection
443
464
  else
444
465
  name
445
466
  end
446
- when TypeTag::GLIST, TypeTag::GSLIST
467
+ when TypeTag::GLIST, TypeTag::GSLIST, TypeTag::ARRAY
447
468
  case name
448
469
  when /\A(?:list|get)_/
449
470
  if function_info.n_in_args.zero?
@@ -472,6 +493,21 @@ module GObjectIntrospection
472
493
  end
473
494
  end
474
495
 
496
+ def rubyish_field_reader_name(field_info, name)
497
+ case field_info.type.tag
498
+ when TypeTag::BOOLEAN
499
+ name.gsub(/\Ais_/, "") + "?"
500
+ when TypeTag::UINT32
501
+ if /\Ais_/ =~ name
502
+ "#{$POSTMATCH}?"
503
+ else
504
+ name
505
+ end
506
+ else
507
+ name
508
+ end
509
+ end
510
+
475
511
  def rubyish_class_name(info)
476
512
  name = info.name
477
513
  case info
@@ -16,6 +16,13 @@
16
16
 
17
17
  module GObjectIntrospection
18
18
  class Repository
19
+ class << self
20
+ alias_method :default_raw, :default
21
+ def default
22
+ @@default ||= default_raw
23
+ end
24
+ end
25
+
19
26
  include Enumerable
20
27
 
21
28
  def each(*namespaces)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2012-2017 Ruby-GNOME2 Project Team
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -16,6 +16,38 @@
16
16
 
17
17
  class TestUnionInfo < Test::Unit::TestCase
18
18
  def setup
19
- # TODO: find UnionInfo
19
+ @repository = GObjectIntrospection::Repository.default
20
+ @repository.require("GLib")
21
+ @info = @repository.find("GLib", "Mutex")
22
+ end
23
+
24
+ def test_n_fields
25
+ assert_equal(2, @info.n_fields)
26
+ end
27
+
28
+ def test_get_field
29
+ assert_kind_of(GObjectIntrospection::FieldInfo,
30
+ @info.get_field(0))
31
+ end
32
+
33
+ def test_n_methods
34
+ assert_operator(@info.n_methods, :>=, 5)
35
+ end
36
+
37
+ def test_get_method
38
+ assert_kind_of(GObjectIntrospection::FunctionInfo,
39
+ @info.get_method(0))
40
+ end
41
+
42
+ def test_size
43
+ assert_operator(@info.size, :>=, 8)
44
+ end
45
+
46
+ def test_alignment
47
+ assert_operator(@info.alignment, :>=, 8)
48
+ end
49
+
50
+ def test_discriminated
51
+ assert_false(@info.discriminated?)
20
52
  end
21
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gobject-introspection
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME2 Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glib2
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.1
19
+ version: 3.1.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.1.1
26
+ version: 3.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: test-unit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -126,7 +126,7 @@ files:
126
126
  - test/test-vfunc-info.rb
127
127
  homepage: http://ruby-gnome2.sourceforge.jp/
128
128
  licenses:
129
- - LGPLv2.1+
129
+ - LGPL-2.1+
130
130
  metadata: {}
131
131
  post_install_message:
132
132
  rdoc_options: []