glib2 3.4.3 → 3.4.7

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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/ext/glib2/extconf.rb +1 -5
  4. data/ext/glib2/glib-enum-types.c +1233 -0
  5. data/ext/glib2/glib-enum-types.h +154 -0
  6. data/ext/glib2/glib2.def +1 -0
  7. data/ext/glib2/rbglib-bytes.c +1 -5
  8. data/ext/glib2/rbglib-gc.c +98 -52
  9. data/ext/glib2/rbglib-variant-type.c +1 -5
  10. data/ext/glib2/rbglib-variant.c +3 -5
  11. data/ext/glib2/rbglib.c +4 -0
  12. data/ext/glib2/rbglib.h +12 -2
  13. data/ext/glib2/rbglib_bookmarkfile.c +1 -1
  14. data/ext/glib2/rbglib_datetime.c +1 -5
  15. data/ext/glib2/rbglib_error.c +21 -2
  16. data/ext/glib2/rbglib_fileutils.c +1 -17
  17. data/ext/glib2/rbglib_iochannel.c +4 -4
  18. data/ext/glib2/rbglib_keyfile.c +1 -35
  19. data/ext/glib2/rbglib_maincontext.c +6 -32
  20. data/ext/glib2/rbglib_mainloop.c +2 -17
  21. data/ext/glib2/rbglib_matchinfo.c +1 -5
  22. data/ext/glib2/rbglib_messages.c +4 -5
  23. data/ext/glib2/rbglib_pollfd.c +1 -25
  24. data/ext/glib2/rbglib_regex.c +1 -13
  25. data/ext/glib2/rbglib_source.c +1 -39
  26. data/ext/glib2/rbglib_spawn.c +5 -10
  27. data/ext/glib2/rbglib_spawnerror.c +2 -2
  28. data/ext/glib2/rbglib_threads.c +2 -15
  29. data/ext/glib2/rbglib_timezone.c +1 -5
  30. data/ext/glib2/rbglib_unichar.c +46 -5
  31. data/ext/glib2/rbglib_unicode.c +1 -18
  32. data/ext/glib2/rbglib_utils.c +1 -14
  33. data/ext/glib2/rbglib_win32.c +3 -7
  34. data/ext/glib2/rbgobj_binding.c +1 -7
  35. data/ext/glib2/rbgobj_closure.c +22 -9
  36. data/ext/glib2/rbgobj_object.c +116 -105
  37. data/ext/glib2/rbgobj_param.c +2 -8
  38. data/ext/glib2/rbgobj_paramspecs.c +6 -24
  39. data/ext/glib2/rbgobj_signal.c +104 -92
  40. data/ext/glib2/rbgobj_strv.c +2 -2
  41. data/ext/glib2/rbgobj_type.c +57 -67
  42. data/ext/glib2/rbgobj_typeinterface.c +38 -2
  43. data/ext/glib2/rbgobj_value.c +3 -7
  44. data/ext/glib2/rbgobj_valuetypes.c +14 -62
  45. data/ext/glib2/rbgobject.c +4 -6
  46. data/ext/glib2/rbgobject.h +2 -27
  47. data/ext/glib2/rbgprivate.h +6 -6
  48. data/ext/glib2/rbgutil_callback.c +23 -26
  49. data/lib/glib2.rb +32 -3
  50. data/lib/glib2/deprecated.rb +22 -1
  51. data/lib/mkmf-gnome.rb +4 -4
  52. data/test/glib-test-utils.rb +18 -3
  53. data/test/run-test.rb +49 -15
  54. data/test/test-binding.rb +1 -11
  55. data/test/test-bytes.rb +1 -5
  56. data/test/test-date-time.rb +1 -3
  57. data/test/{glib-test-init.rb → test-error.rb} +25 -3
  58. data/test/test-file-utils.rb +1 -32
  59. data/test/test-iochannel.rb +3 -5
  60. data/test/test-key-file.rb +5 -6
  61. data/test/test-match-info.rb +1 -5
  62. data/test/test-regex.rb +1 -5
  63. data/test/test-source.rb +1 -14
  64. data/test/test-spawn.rb +2 -1
  65. data/test/test-time-zone.rb +1 -5
  66. data/test/test-timeout.rb +2 -3
  67. data/test/test-unicode.rb +16 -12
  68. data/test/test-utils.rb +2 -8
  69. data/test/test-variant-type.rb +1 -3
  70. data/test/test-win32.rb +6 -6
  71. metadata +6 -5
  72. data/ext/glib2/rbgobj_valuearray.c +0 -100
data/test/test-spawn.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015-2019 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -34,6 +34,7 @@ class TestGLibSpawn < Test::Unit::TestCase
34
34
  end
35
35
 
36
36
  def test_async_clear_environment
37
+ only_not_windows
37
38
  if RbConfig.respond_to?(:ruby)
38
39
  ruby = RbConfig.ruby
39
40
  else
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2016-2017 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2016-2021 Ruby-GNOME 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
@@ -17,10 +17,6 @@
17
17
  class TestTimeZone < Test::Unit::TestCase
18
18
  include GLibTestUtils
19
19
 
20
- setup do
21
- only_glib_version(2, 34, 0)
22
- end
23
-
24
20
  sub_test_case "new" do
25
21
  test "local" do
26
22
  local_1 = GLib::TimeZone.local
data/test/test-timeout.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -13,7 +13,7 @@
13
13
  # You should have received a copy of the GNU Lesser General Public
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
-
16
+
17
17
  class TestGLibTimeout < Test::Unit::TestCase
18
18
  include GLibTestUtils
19
19
 
@@ -33,7 +33,6 @@ class TestGLibTimeout < Test::Unit::TestCase
33
33
  end
34
34
 
35
35
  def test_timeout_add_seconds_priority
36
- only_glib_version(2, 14, 0)
37
36
  priority = GLib::PRIORITY_HIGH
38
37
  @id = GLib::Timeout.add_seconds(10, priority)
39
38
  source = GLib::MainContext.default.find_source(@id)
data/test/test-unicode.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -13,7 +13,7 @@
13
13
  # You should have received a copy of the GNU Lesser General Public
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
-
16
+
17
17
  class TestGLibUnicode < Test::Unit::TestCase
18
18
  include GLibTestUtils
19
19
 
@@ -113,7 +113,6 @@ class TestGLibUnicode < Test::Unit::TestCase
113
113
  end
114
114
 
115
115
  def test_unichar_wide_cjk?
116
- only_glib_version(2, 12, 0)
117
116
  assert(GLib::UniChar.wide_cjk?(unichar("あ")))
118
117
  assert(GLib::UniChar.wide_cjk?(0xD55C)) # HANGUL SYLLABLE HAN
119
118
  assert(!GLib::UniChar.wide_cjk?(unichar("a")))
@@ -176,17 +175,28 @@ class TestGLibUnicode < Test::Unit::TestCase
176
175
  GLib::Unicode.canonical_ordering(utf8_to_utf32(original)))
177
176
  end
178
177
 
179
- def test_unicode_canonical_decomposition
178
+ def test_unichar_compose
179
+ a_with_acute = 0x00E1
180
+ assert_equal(a_with_acute,
181
+ GLib::UniChar.compose(unichar("a"), 0x0301))
182
+
183
+ hiragana_ga = 0x304C
184
+ hiragana_ka = 0x304B
185
+ assert_equal(hiragana_ga,
186
+ GLib::UniChar.compose(hiragana_ka, 0x3099))
187
+ end
188
+
189
+ def test_unichar_decompose
180
190
  a_with_acute = 0x00E1
181
191
  expected = [unichar("a"), 0x0301].pack("U*")
182
192
  assert_equal(utf8_to_utf32(expected),
183
- GLib::Unicode.canonical_decomposition(a_with_acute))
193
+ GLib::UniChar.decompose(a_with_acute))
184
194
 
185
195
  hiragana_ga = 0x304C
186
196
  hiragana_ka = 0x304B
187
197
  expected = [hiragana_ka, 0x3099].pack("U*")
188
198
  assert_equal(utf8_to_utf32(expected),
189
- GLib::Unicode.canonical_decomposition(hiragana_ga))
199
+ GLib::UniChar.decompose(hiragana_ga))
190
200
  end
191
201
 
192
202
  def test_unichar_get_mirror_char
@@ -196,7 +206,6 @@ class TestGLibUnicode < Test::Unit::TestCase
196
206
  end
197
207
 
198
208
  def test_unichar_get_script
199
- only_glib_version(2, 14, 0)
200
209
  assert_equal(GLib::Unicode::SCRIPT_HIRAGANA,
201
210
  GLib::UniChar.get_script(unichar("あ")))
202
211
  end
@@ -261,14 +270,12 @@ class TestGLibUnicode < Test::Unit::TestCase
261
270
  end
262
271
 
263
272
  def test_utf8_collate
264
- only_glib_version(2, 16, 0)
265
273
  assert_operator(0, :>, GLib::UTF8.collate("あ", "い"))
266
274
  assert_operator(0, :<, GLib::UTF8.collate("い", "あ"))
267
275
  assert_equal(0, GLib::UTF8.collate("あ", "あ"))
268
276
  end
269
277
 
270
278
  def test_utf8_collate_key
271
- only_glib_version(2, 16, 0)
272
279
  assert_operator(0, :>,
273
280
  GLib::UTF8.collate_key("あ") <=>
274
281
  GLib::UTF8.collate_key("い"))
@@ -340,20 +347,17 @@ class TestGLibUnicode < Test::Unit::TestCase
340
347
  end
341
348
 
342
349
  def test_unichar_combining_class
343
- only_glib_version(2, 14, 0)
344
350
  assert_equal(0, GLib::UniChar.combining_class(unichar("a")))
345
351
  assert_equal(230, GLib::UniChar.combining_class(unichar("́")))
346
352
  end
347
353
 
348
354
  def test_unichar_mark?
349
- only_glib_version(2, 14, 0)
350
355
  assert(!GLib::UniChar.mark?(unichar("a")))
351
356
  assert(!GLib::UniChar.mark?(0x200E)) # LEFT-TO-RIGHT MARK
352
357
  assert(GLib::UniChar.mark?(0x1DC3)) # COMBINING SUSPENSION MARK
353
358
  end
354
359
 
355
360
  def test_unichar_zero_width?
356
- only_glib_version(2, 14, 0)
357
361
  assert(!GLib::UniChar.zero_width?(unichar("a")))
358
362
  assert(GLib::UniChar.zero_width?(0x200B)) # ZERO WIDTH SPACE
359
363
  end
data/test/test-utils.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -13,37 +13,31 @@
13
13
  # You should have received a copy of the GNU Lesser General Public
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
-
16
+
17
17
  class TestGLibUtils < Test::Unit::TestCase
18
18
  include GLibTestUtils
19
19
 
20
20
  def test_user_cache_dir
21
- only_glib_version(2, 6, 0)
22
21
  assert_kind_of(String, GLib.user_cache_dir)
23
22
  end
24
23
 
25
24
  def test_user_data_dir
26
- only_glib_version(2, 6, 0)
27
25
  assert_kind_of(String, GLib.user_data_dir)
28
26
  end
29
27
 
30
28
  def test_user_config_dir
31
- only_glib_version(2, 6, 0)
32
29
  assert_kind_of(String, GLib.user_config_dir)
33
30
  end
34
31
 
35
32
  def test_system_data_dirs
36
- only_glib_version(2, 6, 0)
37
33
  assert_kind_of(Array, GLib.system_data_dirs)
38
34
  end
39
35
 
40
36
  def test_system_config_dirs
41
- only_glib_version(2, 6, 0)
42
37
  assert_kind_of(Array, GLib.system_config_dirs)
43
38
  end
44
39
 
45
40
  def test_get_user_special_dir
46
- only_glib_version(2, 14, 0)
47
41
  assert_nothing_raised do
48
42
  GLib.get_user_special_dir(GLib::UserDirectory::DESKTOP)
49
43
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -111,7 +111,6 @@ class TestGLibVariantType < Test::Unit::TestCase
111
111
  end
112
112
 
113
113
  test "OBJECT_PATH_ARRAY" do
114
- only_glib_version(2, 30, 0)
115
114
  assert_equal("ao", GLib::VariantType::OBJECT_PATH_ARRAY.to_s)
116
115
  end
117
116
 
@@ -124,7 +123,6 @@ class TestGLibVariantType < Test::Unit::TestCase
124
123
  end
125
124
 
126
125
  test "VARDICT" do
127
- only_glib_version(2, 30, 0)
128
126
  assert_equal("a{sv}", GLib::VariantType::VARDICT.to_s)
129
127
  end
130
128
  end
data/test/test-win32.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2015 Ruby-GNOME2 Project Team
1
+ # Copyright (C) 2015-2021 Ruby-GNOME 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
@@ -13,15 +13,15 @@
13
13
  # You should have received a copy of the GNU Lesser General Public
14
14
  # License along with this library; if not, write to the Free Software
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
-
16
+
17
17
  class TestGLibWin32 < Test::Unit::TestCase
18
18
  include GLibTestUtils
19
19
 
20
20
  def test_get_package_install_directory_of_module
21
- only_win32
22
- only_glib_version(2, 16, 0)
21
+ only_windows
23
22
 
24
- assert_equal("FIXME",
25
- GLib::Win32.get_package_installation_directory_of_module)
23
+ expected = Pathname(RbConfig.ruby).parent.parent.to_s
24
+ actual = GLib::Win32.get_package_installation_directory_of_module
25
+ assert_equal(expected, normalize_path(actual))
26
26
  end
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib2
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.3
4
+ version: 3.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Ruby-GNOME Project Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-10 00:00:00.000000000 Z
11
+ date: 2021-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pkg-config
@@ -65,6 +65,8 @@ files:
65
65
  - Rakefile
66
66
  - ext/glib2/depend
67
67
  - ext/glib2/extconf.rb
68
+ - ext/glib2/glib-enum-types.c
69
+ - ext/glib2/glib-enum-types.h
68
70
  - ext/glib2/glib2.def
69
71
  - ext/glib2/rbgcompat.h
70
72
  - ext/glib2/rbglib-bytes.c
@@ -128,7 +130,6 @@ files:
128
130
  - ext/glib2/rbgobj_typemodule.c
129
131
  - ext/glib2/rbgobj_typeplugin.c
130
132
  - ext/glib2/rbgobj_value.c
131
- - ext/glib2/rbgobj_valuearray.c
132
133
  - ext/glib2/rbgobj_valuetypes.c
133
134
  - ext/glib2/rbgobject.c
134
135
  - ext/glib2/rbgobject.h
@@ -170,13 +171,13 @@ files:
170
171
  - sample/type-register.rb
171
172
  - sample/type-register2.rb
172
173
  - sample/utils.rb
173
- - test/glib-test-init.rb
174
174
  - test/glib-test-utils.rb
175
175
  - test/run-test.rb
176
176
  - test/test-binding.rb
177
177
  - test/test-bytes.rb
178
178
  - test/test-date-time.rb
179
179
  - test/test-enum.rb
180
+ - test/test-error.rb
180
181
  - test/test-file-utils.rb
181
182
  - test/test-flags.rb
182
183
  - test/test-glib2.rb
@@ -221,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
222
  - !ruby/object:Gem::Version
222
223
  version: '0'
223
224
  requirements: []
224
- rubygems_version: 3.2.0.pre1
225
+ rubygems_version: 3.3.0.dev
225
226
  signing_key:
226
227
  specification_version: 4
227
228
  summary: Ruby/GLib2 is a Ruby binding of GLib-2.x.
@@ -1,100 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011-2019 Ruby-GNOME Project Team
4
- * Copyright (C) 2006 Sjoerd Simons
5
- *
6
- * This library is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU Lesser General Public
8
- * License as published by the Free Software Foundation; either
9
- * version 2.1 of the License, or (at your option) any later version.
10
- *
11
- * This library is distributed in the hope that it will be useful,
12
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- * Lesser General Public License for more details.
15
- *
16
- * You should have received a copy of the GNU Lesser General Public
17
- * License along with this library; if not, write to the Free Software
18
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
- * MA 02110-1301 USA
20
- */
21
-
22
- #include "rbgprivate.h"
23
-
24
- static VALUE
25
- value_array_to_ruby(const GValue *from)
26
- {
27
- VALUE ary;
28
- guint i;
29
-
30
- GValueArray *array = (GValueArray *)g_value_get_boxed(from);
31
- if (array == NULL)
32
- return Qnil;
33
-
34
- ary = rb_ary_new();
35
- for (i = 0; i < array->n_values; i++)
36
- rb_ary_push(ary, GVAL2RVAL(g_value_array_get_nth(array, i)));
37
-
38
- return ary;
39
- }
40
-
41
- struct value_array_from_ruby_args {
42
- VALUE ary;
43
- long n;
44
- GValueArray *result;
45
- };
46
-
47
- static VALUE
48
- value_array_from_ruby_body(VALUE value)
49
- {
50
- long i;
51
- struct value_array_from_ruby_args *args = (struct value_array_from_ruby_args *)value;
52
-
53
- for (i = 0; i < args->n; i++) {
54
- GValue v = G_VALUE_INIT;
55
-
56
- g_value_init(&v, RVAL2GTYPE(RARRAY_PTR(args->ary)[i]));
57
- rbgobj_rvalue_to_gvalue(RARRAY_PTR(args->ary)[i], &v);
58
-
59
- g_value_array_append(args->result, &v);
60
- }
61
-
62
- return Qnil;
63
- }
64
-
65
- static G_GNUC_NORETURN VALUE
66
- value_array_from_ruby_rescue(VALUE value, VALUE error)
67
- {
68
- g_value_array_free(((struct value_array_from_ruby_args *)value)->result);
69
-
70
- rb_exc_raise(error);
71
- }
72
-
73
- static void
74
- value_array_from_ruby(const VALUE from, GValue *to)
75
- {
76
- struct value_array_from_ruby_args args;
77
-
78
- if (NIL_P(from)) {
79
- g_value_set_boxed(to, NULL);
80
-
81
- return;
82
- }
83
-
84
- args.ary = rb_ary_to_ary(from);
85
- args.n = RARRAY_LEN(args.ary);
86
- args.result = g_value_array_new((guint)args.n);
87
-
88
- rb_rescue(value_array_from_ruby_body, (VALUE)&args,
89
- value_array_from_ruby_rescue, (VALUE)&args);
90
-
91
- g_value_set_boxed(to, args.result);
92
- }
93
-
94
- void
95
- Init_gobject_value_array(void)
96
- {
97
- /* ValueArray is treated as Array */
98
- rbgobj_register_g2r_func(G_TYPE_VALUE_ARRAY, value_array_to_ruby);
99
- rbgobj_register_r2g_func(G_TYPE_VALUE_ARRAY, value_array_from_ruby);
100
- }