glib2 3.1.0-x64-mingw32 → 3.1.1-x64-mingw32

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -2
  3. data/ext/glib2/rbglib.c +2 -0
  4. data/ext/glib2/rbglib.h +1 -1
  5. data/ext/glib2/rbglib2conversions.h +3 -0
  6. data/ext/glib2/rbglib_datetime.c +250 -0
  7. data/ext/glib2/rbglib_timezone.c +82 -0
  8. data/ext/glib2/rbgprivate.h +2 -0
  9. data/lib/2.2/glib2.so +0 -0
  10. data/lib/2.3/glib2.so +0 -0
  11. data/lib/2.4/glib2.so +0 -0
  12. data/lib/glib2.rb +15 -7
  13. data/lib/gnome2/rake/external-package.rb +35 -5
  14. data/lib/gnome2/rake/source-download-task.rb +25 -5
  15. data/lib/mkmf-gnome2.rb +1 -6
  16. data/test/test-date-time.rb +112 -0
  17. data/test/test-time-zone.rb +31 -0
  18. data/vendor/local/bin/asn1Coding.exe +0 -0
  19. data/vendor/local/bin/asn1Decoding.exe +0 -0
  20. data/vendor/local/bin/asn1Parser.exe +0 -0
  21. data/vendor/local/bin/envsubst.exe +0 -0
  22. data/vendor/local/bin/gdbus.exe +0 -0
  23. data/vendor/local/bin/gettext.exe +0 -0
  24. data/vendor/local/bin/gio-querymodules.exe +0 -0
  25. data/vendor/local/bin/gio.exe +0 -0
  26. data/vendor/local/bin/glib-compile-resources.exe +0 -0
  27. data/vendor/local/bin/glib-compile-schemas.exe +0 -0
  28. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  29. data/vendor/local/bin/gobject-query.exe +0 -0
  30. data/vendor/local/bin/gresource.exe +0 -0
  31. data/vendor/local/bin/gsettings.exe +0 -0
  32. data/vendor/local/bin/gspawn-win64-helper-console.exe +0 -0
  33. data/vendor/local/bin/gspawn-win64-helper.exe +0 -0
  34. data/vendor/local/bin/iconv.exe +0 -0
  35. data/vendor/local/bin/idn.exe +0 -0
  36. data/vendor/local/bin/libasprintf-0.dll +0 -0
  37. data/vendor/local/bin/libcharset-1.dll +0 -0
  38. data/vendor/local/bin/libffi-6.dll +0 -0
  39. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  40. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  41. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  42. data/vendor/local/bin/libgmp-10.dll +0 -0
  43. data/vendor/local/bin/libgnutls-30.dll +0 -0
  44. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  45. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  46. data/vendor/local/bin/libhogweed-4-2.dll +0 -0
  47. data/vendor/local/bin/libiconv-2.dll +0 -0
  48. data/vendor/local/bin/libidn-11.dll +0 -0
  49. data/vendor/local/bin/libintl-8.dll +0 -0
  50. data/vendor/local/bin/libnettle-6-2.dll +0 -0
  51. data/vendor/local/bin/libp11-kit-0.dll +0 -0
  52. data/vendor/local/bin/libpcre-1.dll +0 -0
  53. data/vendor/local/bin/libpcrecpp-0.dll +0 -0
  54. data/vendor/local/bin/libpcreposix-0.dll +0 -0
  55. data/vendor/local/bin/libtasn1-6.dll +0 -0
  56. data/vendor/local/bin/nettle-hash.exe +0 -0
  57. data/vendor/local/bin/nettle-lfib-stream.exe +0 -0
  58. data/vendor/local/bin/nettle-pbkdf2.exe +0 -0
  59. data/vendor/local/bin/ngettext.exe +0 -0
  60. data/vendor/local/bin/p11-kit.exe +0 -0
  61. data/vendor/local/bin/pcre-config +1 -1
  62. data/vendor/local/bin/pcregrep.exe +0 -0
  63. data/vendor/local/bin/pcretest.exe +0 -0
  64. data/vendor/local/bin/pkcs1-conv.exe +0 -0
  65. data/vendor/local/bin/sexp-conv.exe +0 -0
  66. data/vendor/local/bin/trust.exe +0 -0
  67. data/vendor/local/include/pcre.h +2 -2
  68. data/vendor/local/lib/gio/modules/libgiognutls.dll +0 -0
  69. data/vendor/local/lib/gio/modules/libgiognutls.dll.a +0 -0
  70. data/vendor/local/lib/libasprintf.dll.a +0 -0
  71. data/vendor/local/lib/libcharset.dll.a +0 -0
  72. data/vendor/local/lib/libffi.dll.a +0 -0
  73. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  74. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  75. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  76. data/vendor/local/lib/libgmp.dll.a +0 -0
  77. data/vendor/local/lib/libgnutls.dll.a +0 -0
  78. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  79. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  80. data/vendor/local/lib/libhogweed.dll.a +0 -0
  81. data/vendor/local/lib/libiconv.dll.a +0 -0
  82. data/vendor/local/lib/libidn.dll.a +0 -0
  83. data/vendor/local/lib/libintl.dll.a +0 -0
  84. data/vendor/local/lib/libnettle.dll.a +0 -0
  85. data/vendor/local/lib/libp11-kit.dll.a +0 -0
  86. data/vendor/local/lib/libpcre.a +0 -0
  87. data/vendor/local/lib/libpcre.dll.a +0 -0
  88. data/vendor/local/lib/libpcre.la +1 -1
  89. data/vendor/local/lib/libpcrecpp.dll.a +0 -0
  90. data/vendor/local/lib/libpcreposix.a +0 -0
  91. data/vendor/local/lib/libpcreposix.dll.a +0 -0
  92. data/vendor/local/lib/libpcreposix.la +1 -1
  93. data/vendor/local/lib/libtasn1.dll.a +0 -0
  94. data/vendor/local/lib/p11-kit/p11-kit-remote.exe +0 -0
  95. data/vendor/local/lib/pkcs11/p11-kit-trust.dll +0 -0
  96. data/vendor/local/lib/pkcs11/p11-kit-trust.dll.a +0 -0
  97. data/vendor/local/lib/pkgconfig/libpcre.pc +1 -1
  98. data/vendor/local/lib/pkgconfig/libpcrecpp.pc +1 -1
  99. data/vendor/local/lib/pkgconfig/libpcreposix.pc +1 -1
  100. data/vendor/local/share/doc/pcre/AUTHORS +3 -3
  101. data/vendor/local/share/doc/pcre/ChangeLog +140 -1
  102. data/vendor/local/share/doc/pcre/LICENCE +3 -3
  103. data/vendor/local/share/doc/pcre/NEWS +15 -0
  104. data/vendor/local/share/doc/pcre/html/pcreapi.html +4 -5
  105. data/vendor/local/share/doc/pcre/html/pcrecompat.html +1 -1
  106. data/vendor/local/share/doc/pcre/html/pcrepattern.html +20 -17
  107. data/vendor/local/share/doc/pcre/pcre.txt +2024 -2020
  108. data/vendor/local/share/glib-2.0/codegen/__init__.pyc +0 -0
  109. data/vendor/local/share/glib-2.0/codegen/__init__.pyo +0 -0
  110. data/vendor/local/share/glib-2.0/codegen/codegen.pyc +0 -0
  111. data/vendor/local/share/glib-2.0/codegen/codegen.pyo +0 -0
  112. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyc +0 -0
  113. data/vendor/local/share/glib-2.0/codegen/codegen_docbook.pyo +0 -0
  114. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyc +0 -0
  115. data/vendor/local/share/glib-2.0/codegen/codegen_main.pyo +0 -0
  116. data/vendor/local/share/glib-2.0/codegen/config.pyc +0 -0
  117. data/vendor/local/share/glib-2.0/codegen/config.pyo +0 -0
  118. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyc +0 -0
  119. data/vendor/local/share/glib-2.0/codegen/dbustypes.pyo +0 -0
  120. data/vendor/local/share/glib-2.0/codegen/parser.pyc +0 -0
  121. data/vendor/local/share/glib-2.0/codegen/parser.pyo +0 -0
  122. data/vendor/local/share/glib-2.0/codegen/utils.pyc +0 -0
  123. data/vendor/local/share/glib-2.0/codegen/utils.pyo +0 -0
  124. data/vendor/local/share/license/pcre/AUTHORS +3 -3
  125. data/vendor/local/share/man/man3/pcreapi.3 +5 -6
  126. data/vendor/local/share/man/man3/pcrecompat.3 +1 -1
  127. data/vendor/local/share/man/man3/pcrepattern.3 +20 -17
  128. metadata +11 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46c63cf3bce70bc92bb1aab164d7041b13bd23d3
4
- data.tar.gz: 83f9234dfbc59637b7252c5f80d499961af10d96
3
+ metadata.gz: 7cb4778a094a98385ad0f1b819107d0d4caf2462
4
+ data.tar.gz: 2573bd8b04125fb6cae85b5339f16e8cc348c6bf
5
5
  SHA512:
6
- metadata.gz: 63f5afe99552f77f8b2f66be2d537adebd99713cf3a9672911488071a85fcb6abbb78a911d6874f7fc29828ef2c11d71b3d23762bd68aea274a9f814f5da4876
7
- data.tar.gz: c80150d5e6fa012fbf71a07503e799c2faa9a00ac998ef75cd9de3b9aead5b256474b2bd5c5c6a6b4cfeb39274a9e4a7a01f6f0d26f5f8f940f53ee600d57d84
6
+ metadata.gz: eeb14acbc32382cdb77f3110309164a31751323b7c62b47d897d8091b2d8be9016eb4a200bd80d2bfc758206b8e4a34298b1bd0ca6458df196d25b0ec2562e43
7
+ data.tar.gz: a16a68b0c2231d646bca62b676f7e4a1321460ce54195c3defbf03a5c566c0fd5d15230398829a625a09d03e925caf21a5a12a12acc6a3e7eae746c72239aa84
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- ruby -*-
2
2
  #
3
- # Copyright (C) 2011-2015 Ruby-GNOME2 Project Team
3
+ # Copyright (C) 2011-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
@@ -73,7 +73,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
73
73
  :name => "pcre",
74
74
  :download_base_url => "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre",
75
75
  :label => "PCRE",
76
- :version => "8.38",
76
+ :version => "8.40",
77
77
  :windows => {
78
78
  :configure_args => [
79
79
  "--enable-unicode-properties",
@@ -1187,4 +1187,6 @@ union GDoubleIEEE754;
1187
1187
  Init_glib_variant();
1188
1188
  Init_glib_regex();
1189
1189
  Init_glib_matchinfo();
1190
+ Init_glib_date_time();
1191
+ Init_glib_time_zone();
1190
1192
  }
@@ -36,7 +36,7 @@ extern "C" {
36
36
 
37
37
  #define RBGLIB_MAJOR_VERSION 3
38
38
  #define RBGLIB_MINOR_VERSION 1
39
- #define RBGLIB_MICRO_VERSION 0
39
+ #define RBGLIB_MICRO_VERSION 1
40
40
 
41
41
  #ifndef RB_ZALLOC
42
42
  # ifdef ZALLOC
@@ -62,4 +62,7 @@
62
62
  #define RVAL2GREGEXMATCHOPTIONSFLAGS(o) (RVAL2GFLAGS(o, G_TYPE_REGEX_MATCH_FLAGS))
63
63
  #define RVAL2GREGEXCOMPILEOPTIONSFLAGS(o) (RVAL2GFLAGS(o, G_TYPE_REGEX_COMPILE_FLAGS))
64
64
  #define GMATCHINFO2RVAL(o) (BOXED2RVAL(o, G_TYPE_MATCH_INFO))
65
+ #define GDATETIME2RVAL(o) (BOXED2RVAL(o, G_TYPE_DATE_TIME))
66
+ #define GTIMEZONE2RVAL(o) (BOXED2RVAL(o, G_TYPE_TIME_ZONE))
67
+ #define RVAL2GTIMEZONE(o) ((GTimeZone*)RVAL2BOXED(o, G_TYPE_TIME_ZONE))
65
68
  #endif /* __GLIB2CONVERSIONS_H__ */
@@ -0,0 +1,250 @@
1
+ /*
2
+ * Copyright (C) 2016 Ruby-GNOME2 Project Team
3
+ *
4
+ * This library is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * This library is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with this library; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ * MA 02110-1301 USA
18
+ */
19
+
20
+ #include "rbgprivate.h"
21
+
22
+ #define RG_TARGET_NAMESPACE cDateTime
23
+ #define _SELF(s) ((GDateTime*)RVAL2BOXED(s, G_TYPE_DATE_TIME))
24
+
25
+ static gboolean
26
+ is_local_timezone(VALUE rb_timezone)
27
+ {
28
+ ID id_equal;
29
+ ID id_local;
30
+
31
+ if (NIL_P(rb_timezone)) {
32
+ return TRUE;
33
+ }
34
+
35
+ CONST_ID(id_equal, "==");
36
+ CONST_ID(id_local, "local");
37
+ return RVAL2CBOOL(rb_funcall(rb_timezone, id_equal, 1, ID2SYM(id_local)));
38
+ }
39
+
40
+ static gboolean
41
+ is_utc_timezone(VALUE rb_timezone)
42
+ {
43
+ ID id_equal;
44
+ ID id_utc;
45
+
46
+ CONST_ID(id_equal, "==");
47
+ CONST_ID(id_utc, "utc");
48
+ return RVAL2CBOOL(rb_funcall(rb_timezone, id_equal, 1, ID2SYM(id_utc)));
49
+ }
50
+
51
+ static gboolean
52
+ is_timezone(VALUE rb_timezone)
53
+ {
54
+ VALUE rb_cTimeZone;
55
+
56
+ rb_cTimeZone = rb_const_get(mGLib, rb_intern("TimeZone"));
57
+ return RVAL2CBOOL(rb_obj_is_kind_of(rb_timezone, rb_cTimeZone));
58
+ }
59
+
60
+ static VALUE
61
+ rg_s_now(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
62
+ {
63
+ GDateTime *date = NULL;
64
+ VALUE rb_timezone;
65
+
66
+ rb_scan_args(argc, argv, "01", &rb_timezone);
67
+
68
+ if (is_local_timezone(rb_timezone)) {
69
+ date = g_date_time_new_now_local();
70
+ } else if (is_utc_timezone(rb_timezone)) {
71
+ date = g_date_time_new_now_utc();
72
+ } else if (is_timezone(rb_timezone)) {
73
+ date = g_date_time_new_now(RVAL2GTIMEZONE(rb_timezone));
74
+ } else {
75
+ rb_raise(rb_eArgError,
76
+ "timezone must be nil, :local, :utc or GLib::TimeZone: "
77
+ "%+" PRIsVALUE,
78
+ rb_timezone);
79
+ }
80
+
81
+ return GDATETIME2RVAL(date);
82
+ }
83
+
84
+ static VALUE
85
+ rg_initialize(int argc, VALUE *argv, VALUE self)
86
+ {
87
+ /*
88
+ * Not implemented:
89
+ * GDateTime * g_date_time_new_from_timeval_local ()
90
+ * GDateTime * g_date_time_new_from_timeval_utc ()
91
+ * https://developer.gnome.org/glib/stable/glib-Date-and-Time-Functions.html#GTimeVal
92
+ * */
93
+ VALUE rb_options;
94
+ VALUE rb_unix;
95
+ VALUE rb_timezone;
96
+ VALUE rb_year;
97
+ VALUE rb_month;
98
+ VALUE rb_day;
99
+ VALUE rb_hour;
100
+ VALUE rb_minute;
101
+ VALUE rb_second;
102
+ GDateTime *datetime = NULL;
103
+
104
+ rb_scan_args(argc, argv, "1", &rb_options);
105
+ rbg_scan_options(rb_options,
106
+ "unix", &rb_unix,
107
+ "timezone", &rb_timezone,
108
+ "year", &rb_year,
109
+ "month", &rb_month,
110
+ "day", &rb_day,
111
+ "hour", &rb_hour,
112
+ "minute", &rb_minute,
113
+ "second", &rb_second,
114
+ NULL);
115
+
116
+ if (!NIL_P(rb_unix)) {
117
+ gint64 unix_time;
118
+
119
+ unix_time = rbglib_num_to_int64(rb_unix);
120
+ if (is_local_timezone(rb_timezone)) {
121
+ datetime = g_date_time_new_from_unix_local(unix_time);
122
+ } else if (is_utc_timezone(rb_timezone)) {
123
+ datetime = g_date_time_new_from_unix_utc(unix_time);
124
+ } else {
125
+ rb_raise(rb_eArgError,
126
+ ":timezone must be nil, :local or :utc: %+" PRIsVALUE,
127
+ rb_timezone);
128
+ }
129
+ } else if (!NIL_P(rb_year) &&
130
+ !NIL_P(rb_month) &&
131
+ !NIL_P(rb_hour) &&
132
+ !NIL_P(rb_minute) &&
133
+ !NIL_P(rb_second)) {
134
+ gint year = 0;
135
+ gint month = 0;
136
+ gint day = 0;
137
+ gint hour = 0;
138
+ gint minute = 0;
139
+ gdouble second = 0.0;
140
+
141
+ year = NUM2INT(rb_year);
142
+ month = NUM2INT(rb_month);
143
+ day = NUM2INT(rb_day);
144
+ hour = NUM2INT(rb_hour);
145
+ minute = NUM2INT(rb_minute);
146
+ second = NUM2DBL(rb_second);
147
+ if (is_local_timezone(rb_timezone)) {
148
+ datetime = g_date_time_new_local(year,
149
+ month,
150
+ day,
151
+ hour,
152
+ minute,
153
+ second);
154
+ } else if (is_utc_timezone(rb_timezone)) {
155
+ datetime = g_date_time_new_utc(year,
156
+ month,
157
+ day,
158
+ hour,
159
+ minute,
160
+ second);
161
+ } else if (is_timezone(rb_timezone)) {
162
+ GTimeZone *timezone = NULL;
163
+
164
+ timezone = RVAL2GTIMEZONE(rb_timezone);
165
+ datetime = g_date_time_new(timezone,
166
+ year,
167
+ month,
168
+ day,
169
+ hour,
170
+ minute,
171
+ second);
172
+ } else {
173
+ rb_raise(rb_eArgError,
174
+ ":timezone must be nil, :local, :utc or GLib::TimeZone: "
175
+ "%+" PRIsVALUE,
176
+ rb_timezone);
177
+ }
178
+ } else {
179
+ rb_raise(rb_eArgError,
180
+ ":unix or (:year, :month, :day, :hour, :minute and :second) "
181
+ "must be specified: %+" PRIsVALUE,
182
+ rb_options);
183
+ }
184
+
185
+ G_INITIALIZE(self, datetime);
186
+
187
+ return Qnil;
188
+ }
189
+
190
+ static VALUE
191
+ rg_year(VALUE self)
192
+ {
193
+ return INT2NUM(g_date_time_get_year(_SELF(self)));
194
+ }
195
+
196
+ static VALUE
197
+ rg_month(VALUE self)
198
+ {
199
+ return INT2NUM(g_date_time_get_month(_SELF(self)));
200
+ }
201
+
202
+ static VALUE
203
+ rg_day_of_month(VALUE self)
204
+ {
205
+ return INT2NUM(g_date_time_get_day_of_month(_SELF(self)));
206
+ }
207
+
208
+ static VALUE
209
+ rg_hour(VALUE self)
210
+ {
211
+ return INT2NUM(g_date_time_get_hour(_SELF(self)));
212
+ }
213
+
214
+ static VALUE
215
+ rg_minute(VALUE self)
216
+ {
217
+ return INT2NUM(g_date_time_get_minute(_SELF(self)));
218
+ }
219
+
220
+ static VALUE
221
+ rg_second(VALUE self)
222
+ {
223
+ return DBL2NUM(g_date_time_get_second(_SELF(self)));
224
+ }
225
+
226
+ static VALUE
227
+ rg_format(VALUE self, VALUE rb_format)
228
+ {
229
+ const gchar *format = RVAL2CSTR(rb_format);
230
+ return CSTR2RVAL(g_date_time_format(_SELF(self), format));
231
+ }
232
+
233
+ void
234
+ Init_glib_date_time(void)
235
+ {
236
+ VALUE RG_TARGET_NAMESPACE;
237
+
238
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_DATE_TIME, "DateTime", mGLib);
239
+
240
+ RG_DEF_SMETHOD(now, -1);
241
+
242
+ RG_DEF_METHOD(initialize, -1);
243
+ RG_DEF_METHOD(year, 0);
244
+ RG_DEF_METHOD(month, 0);
245
+ RG_DEF_METHOD(day_of_month, 0);
246
+ RG_DEF_METHOD(hour, 0);
247
+ RG_DEF_METHOD(minute, 0);
248
+ RG_DEF_METHOD(second, 0);
249
+ RG_DEF_METHOD(format, 1);
250
+ }
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Copyright (C) 2016 Ruby-GNOME2 Project Team
3
+ *
4
+ * This library is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Lesser General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2.1 of the License, or (at your option) any later version.
8
+ *
9
+ * This library is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Lesser General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Lesser General Public
15
+ * License along with this library; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
+ * MA 02110-1301 USA
18
+ */
19
+
20
+ #include "rbgprivate.h"
21
+
22
+ #define RG_TARGET_NAMESPACE cTimeZone
23
+ #define _SELF(s) ((GTimeZone*)RVAL2BOXED(s, G_TYPE_TIME_ZONE))
24
+
25
+ static VALUE
26
+ rg_initialize(gint argc, VALUE *argv, VALUE self)
27
+ {
28
+ VALUE rb_identifier = Qnil;
29
+ const gchar *identifier = NULL;
30
+ GTimeZone *time_zone = NULL;
31
+
32
+ rb_scan_args(argc, argv, "01", &rb_identifier);
33
+
34
+ if (!NIL_P(rb_identifier))
35
+ identifier = RVAL2CSTR(rb_identifier);
36
+
37
+ time_zone = g_time_zone_new(identifier);
38
+ G_INITIALIZE(self, time_zone);
39
+ return Qnil;
40
+ }
41
+
42
+ static VALUE
43
+ rg_s_local(G_GNUC_UNUSED VALUE self)
44
+ {
45
+ GTimeZone *time_zone = NULL;
46
+ time_zone = g_time_zone_new_local();
47
+ return GTIMEZONE2RVAL(time_zone);
48
+ }
49
+
50
+ static VALUE
51
+ rg_s_utc(G_GNUC_UNUSED VALUE self)
52
+ {
53
+ GTimeZone *time_zone = NULL;
54
+ time_zone = g_time_zone_new_utc();
55
+ return GTIMEZONE2RVAL(time_zone);
56
+ }
57
+
58
+ static VALUE
59
+ rg_abbreviation(VALUE self, VALUE rb_interval)
60
+ {
61
+ gint interval = NUM2INT(rb_interval);
62
+ return CSTR2RVAL(g_time_zone_get_abbreviation(_SELF(self), interval));
63
+ }
64
+
65
+ static VALUE
66
+ rg_offset(VALUE self, VALUE rb_interval)
67
+ {
68
+ gint interval = NUM2INT(rb_interval);
69
+ return INT2NUM(g_time_zone_get_offset(_SELF(self), interval));
70
+ }
71
+
72
+ void
73
+ Init_glib_time_zone(void)
74
+ {
75
+ VALUE RG_TARGET_NAMESPACE;
76
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_TIME_ZONE, "TimeZone", mGLib);
77
+ RG_DEF_METHOD(initialize, -1);
78
+ RG_DEF_SMETHOD(local, 0);
79
+ RG_DEF_SMETHOD(utc, 0);
80
+ RG_DEF_METHOD(abbreviation, 1);
81
+ RG_DEF_METHOD(offset, 1);
82
+ }
@@ -150,6 +150,8 @@ G_GNUC_INTERNAL void Init_glib_variant_type(void);
150
150
  G_GNUC_INTERNAL void Init_glib_variant(void);
151
151
  G_GNUC_INTERNAL void Init_glib_regex(void);
152
152
  G_GNUC_INTERNAL void Init_glib_matchinfo(void);
153
+ G_GNUC_INTERNAL void Init_glib_date_time(void);
154
+ G_GNUC_INTERNAL void Init_glib_time_zone(void);
153
155
 
154
156
  G_GNUC_INTERNAL void Init_gobject_convert(void);
155
157
  G_GNUC_INTERNAL void Init_gobject_gtype(void);
Binary file
Binary file
Binary file
@@ -187,7 +187,7 @@ module GLib
187
187
 
188
188
  module Log
189
189
  DOMAIN = "Ruby/GLib"
190
- LEVELS = {
190
+ LEVELS = {
191
191
  LEVEL_ERROR => "ERROR",
192
192
  LEVEL_CRITICAL => "CRITICAL",
193
193
  LEVEL_WARNING => "WARNING",
@@ -207,15 +207,23 @@ module GLib
207
207
  log(DOMAIN, LEVEL_CRITICAL, caller(1)[0] << ": " << str)
208
208
  end
209
209
  def warning(str)
210
- log(DOMAIN, LEVEL_WARNING, caller(1)[0] << ": " << str)
210
+ log(DOMAIN, LEVEL_WARNING, caller(1)[0] << ": " << str)
211
211
  end
212
-
212
+
213
213
  def set_log_domain(domain)
214
- level = GLib::Log::LEVEL_MASK
214
+ level =
215
+ FLAG_RECURSION |
216
+ FLAG_FATAL |
217
+ LEVEL_ERROR |
218
+ LEVEL_CRITICAL |
219
+ LEVEL_WARNING
220
+ if $VERBOSE or $DEBUG
221
+ level |=
222
+ LEVEL_MESSAGE |
223
+ LEVEL_INFO
224
+ end
215
225
  if $DEBUG
216
- level = 255
217
- elsif $VERBOSE
218
- level = 127
226
+ level |= LEVEL_DEBUG
219
227
  end
220
228
  GLib::Log.set_handler(domain, level)
221
229
  end
@@ -44,15 +44,15 @@ module GNOME2
44
44
  end
45
45
 
46
46
  def compression_method
47
- super || "gz"
47
+ resolve_value(super) || "gz"
48
48
  end
49
49
 
50
50
  def base_name
51
- super || "#{name}-#{version}"
51
+ resolve_value(super) || "#{name}-#{version}"
52
52
  end
53
53
 
54
54
  def archive_base_name
55
- super || "#{base_name}.tar.#{compression_method}"
55
+ resolve_value(super) || "#{base_name}.tar.#{compression_method}"
56
56
  end
57
57
 
58
58
  def archive_url
@@ -60,7 +60,7 @@ module GNOME2
60
60
  end
61
61
 
62
62
  def download_base_url
63
- super || download_site_base_url
63
+ resolve_value(super) || download_site_base_url
64
64
  end
65
65
 
66
66
  def patches
@@ -76,7 +76,7 @@ module GNOME2
76
76
  end
77
77
 
78
78
  def base_dir_in_package
79
- super || "."
79
+ resolve_value(super) || "."
80
80
  end
81
81
 
82
82
  def windows
@@ -109,12 +109,22 @@ module GNOME2
109
109
  latest_version_freedesktop_gstreamer
110
110
  when :webkitgtk
111
111
  latest_version_webkitgtk
112
+ when :icu
113
+ latest_version_icu
112
114
  else
113
115
  nil
114
116
  end
115
117
  end
116
118
 
117
119
  private
120
+ def resolve_value(value)
121
+ if value.respond_to?(:call)
122
+ value.call(self)
123
+ else
124
+ value
125
+ end
126
+ end
127
+
118
128
  def download_site_base_url
119
129
  case download_site
120
130
  when :gnome
@@ -131,6 +141,8 @@ module GNOME2
131
141
  base_url = "http://ftp.gnu.org/pub/gnu/#{name}"
132
142
  when :webkitgtk
133
143
  base_url = webkitgtk_base_url
144
+ when :icu
145
+ base_url = "#{icu_base_url}/#{version}"
134
146
  else
135
147
  base_url = nil
136
148
  end
@@ -153,6 +165,10 @@ module GNOME2
153
165
  "https://webkitgtk.org/releases"
154
166
  end
155
167
 
168
+ def icu_base_url
169
+ "http://download.icu-project.org/files/icu4c"
170
+ end
171
+
156
172
  def sort_versions(versions)
157
173
  versions.sort_by do |version|
158
174
  version.split(".").collect(&:to_i)
@@ -247,6 +263,20 @@ module GNOME2
247
263
  sort_versions(versions).last
248
264
  end
249
265
 
266
+ def latest_version_icu
267
+ base_url = icu_base_url
268
+ versions = []
269
+ open(base_url) do |index|
270
+ index.read.scan(/<a (.+?)>/) do |content,|
271
+ case content
272
+ when /href="(\d+(?:\.\d+)+)\/"/x
273
+ versions << $1
274
+ end
275
+ end
276
+ end
277
+ sort_versions(versions).last
278
+ end
279
+
250
280
  class WindowsConfiguration < Struct.new(:build,
251
281
  :include_paths,
252
282
  :library_paths,