glib2 2.1.0 → 2.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a9129c4c11243fef3c35c784c9db0608c2580c5
4
- data.tar.gz: 5cefaa68dc53b140cd2a6edac7459024323faf7c
3
+ metadata.gz: 3eb848d80c98299853e48020a8dd40d75621e5c8
4
+ data.tar.gz: e3adcc8d05626b832fbdadd7ab792f4d8bdd8cd3
5
5
  SHA512:
6
- metadata.gz: 213cdab4ecded207438fecfe9e4f007cbabb3058719fba7fbedcb1872ffe65664667a1b5e00cb105ce1516aab9f4ed20ee7f4bcbcef0e598a6421b2fe6838488
7
- data.tar.gz: 964f820d9104d08128c80bf6d1f3f9bbace42142e90e9ced6e26d3d57bb84dccf3c6817c0cea1f18659d348a3dc051109f504b060cf49ed4a31252a495c22ab7
6
+ metadata.gz: acf367073537e5e0d7428196406187e463ef5e8f055d3313c6ecba10ed7e9995151368f5dc285b380c200df0034ea342f2a8220b881d86d194d413a5e8e9e6cc
7
+ data.tar.gz: 54aebddcd2bdf934eabb00a771fd691a8f0384ff275754b38aa95c69dfeea5074688315f02c7148abc098d2de20f032f69853243d252e2adde57c2bf01b51176
data/Rakefile CHANGED
@@ -72,7 +72,7 @@ package = GNOME2Package.new do |_package|
72
72
  :name => "gnutls",
73
73
  :download_base_url => "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2",
74
74
  :label => "GnuTLS",
75
- :version => "3.2.7",
75
+ :version => "3.2.12",
76
76
  :compression_method => "xz",
77
77
  :windows => {
78
78
  :configure_args => [
@@ -816,7 +816,7 @@ rbg_gints2rval_free(gint *gints, long n)
816
816
  rbg_gints2rval_free_ensure, (VALUE)&args);
817
817
  }
818
818
 
819
- static const char *
819
+ const gchar *
820
820
  rbg_inspect (VALUE object)
821
821
  {
822
822
  VALUE inspected;
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2011-2014 Ruby-GNOME2 Project Team
4
4
  * Copyright (C) 2002-2005 Ruby-GNOME2 Project
5
5
  * Copyright (C) 2002,2003 Masahiro Sakai
6
6
  *
@@ -20,7 +20,8 @@
20
20
  * MA 02110-1301 USA
21
21
  */
22
22
 
23
- #include <glib.h>
23
+ #include <glib-object.h>
24
+
24
25
  #include "ruby.h"
25
26
 
26
27
  #include "rbglibdeprecated.h"
@@ -34,7 +35,7 @@ extern "C" {
34
35
  #endif /* __cplusplus */
35
36
 
36
37
  #define RBGLIB_MAJOR_VERSION 2
37
- #define RBGLIB_MINOR_VERSION 1
38
+ #define RBGLIB_MINOR_VERSION 2
38
39
  #define RBGLIB_MICRO_VERSION 0
39
40
 
40
41
  #ifndef RSTRING_PTR
@@ -123,7 +124,7 @@ extern "C" {
123
124
  #define G_DEF_ERROR(domain, name, module, parent, gtype) \
124
125
  rbgerr_define_gerror(domain, name, module, parent, gtype)
125
126
  #define G_DEF_ERROR2(domain, name, module, parent) \
126
- rbgerr_define_gerror(domain, name, module, parent, Qnil)
127
+ rbgerr_define_gerror(domain, name, module, parent, G_TYPE_INVALID)
127
128
 
128
129
  #if defined(G_PLATFORM_WIN32) && !defined(RUBY_GLIB2_STATIC_COMPILATION)
129
130
  # ifdef RUBY_GLIB2_COMPILATION
@@ -187,7 +188,7 @@ extern void rbg_scan_options(VALUE options, ...);
187
188
 
188
189
  /* rbgerror.h */
189
190
  extern VALUE rbgerr_gerror2exception(GError *error);
190
- extern VALUE rbgerr_define_gerror(GQuark domain, const gchar* name, VALUE module, VALUE parent, VALUE gtype);
191
+ extern VALUE rbgerr_define_gerror(GQuark domain, const gchar* name, VALUE module, VALUE parent, GType gtype);
191
192
 
192
193
  extern VALUE rbglib_int64_to_num(guint64 val);
193
194
  extern VALUE rbglib_uint64_to_num(guint64 val);
@@ -24,8 +24,10 @@
24
24
 
25
25
  static ID id_code;
26
26
  static ID id_domain;
27
+ static ID id_code_classes;
27
28
  static VALUE gerror_table;
28
29
  static VALUE generic_error;
30
+ static VALUE error_info;
29
31
 
30
32
  VALUE
31
33
  rbgerr_gerror2exception(GError *error)
@@ -40,6 +42,16 @@ rbgerr_gerror2exception(GError *error)
40
42
  exception_klass = rb_hash_aref(gerror_table, UINT2NUM(error->domain));
41
43
  if (NIL_P(exception_klass)) {
42
44
  exception_klass = generic_error;
45
+ } else {
46
+ VALUE code_class = Qnil;
47
+ VALUE code_classes;
48
+ code_classes = rb_ivar_get(exception_klass, id_code_classes);
49
+ if (!NIL_P(code_classes)) {
50
+ code_class = rb_hash_aref(code_classes, INT2NUM(error->code));
51
+ }
52
+ if (!NIL_P(code_class)) {
53
+ exception_klass = code_class;
54
+ }
43
55
  }
44
56
  exc = rb_exc_new_str(exception_klass, CSTR2RVAL(error->message));
45
57
  rb_ivar_set(exc, id_domain, CSTR2RVAL(g_quark_to_string(error->domain)));
@@ -48,38 +60,90 @@ rbgerr_gerror2exception(GError *error)
48
60
  return exc;
49
61
  }
50
62
 
63
+ static gchar *
64
+ nick_to_constant_name(const gchar *nick)
65
+ {
66
+ GString *constant_name;
67
+ const gchar *current;
68
+
69
+ constant_name = g_string_new(NULL);
70
+
71
+ for (current = nick; *current; current++) {
72
+ if (*current == '-') {
73
+ g_string_append_c(constant_name, '_');
74
+ } else {
75
+ g_string_append_c(constant_name, g_ascii_toupper(*current));
76
+ }
77
+ }
78
+
79
+ return g_string_free(constant_name, FALSE);
80
+ }
81
+
82
+ static gchar *
83
+ nick_to_class_name(const gchar *nick)
84
+ {
85
+ GString *class_name;
86
+ const gchar *current;
87
+ gboolean to_upper = TRUE;
88
+
89
+ class_name = g_string_new(NULL);
90
+
91
+ for (current = nick; *current; current++) {
92
+ if (to_upper) {
93
+ g_string_append_c(class_name, g_ascii_toupper(*current));
94
+ to_upper = FALSE;
95
+ } else if (*current == '-') {
96
+ to_upper = TRUE;
97
+ } else {
98
+ g_string_append_c(class_name, *current);
99
+ }
100
+ }
101
+
102
+ return g_string_free(class_name, FALSE);
103
+ }
104
+
51
105
  VALUE
52
- rbgerr_define_gerror(GQuark domain, const gchar *name, VALUE module, VALUE parent, VALUE gtype)
106
+ rbgerr_define_gerror(GQuark domain, const gchar *name, VALUE module, VALUE parent, GType gtype)
53
107
  {
54
- VALUE klass = rb_define_class_under(module, name, parent);
55
- rb_funcall(klass, rbgutil_id_module_eval, 1, CSTR2RVAL("def code; @code; end\n"));
56
- rb_funcall(klass, rbgutil_id_module_eval, 1, CSTR2RVAL("def domain; @domain; end\n"));
108
+ VALUE error_class;
109
+ VALUE code_classes;
57
110
 
58
- rb_hash_aset(gerror_table, UINT2NUM(domain), klass);
111
+ error_class = rb_define_class_under(module, name, parent);
112
+ rb_include_module(error_class, error_info);
59
113
 
60
- if (! NIL_P(gtype)){
114
+ rb_hash_aset(gerror_table, UINT2NUM(domain), error_class);
115
+
116
+ code_classes = rb_hash_new();
117
+ rb_ivar_set(error_class, id_code_classes, code_classes);
118
+
119
+ if (gtype != G_TYPE_INVALID) {
61
120
  GEnumClass* gclass = g_type_class_ref(gtype);
62
121
  guint i;
63
122
 
64
123
  for (i = 0; i < gclass->n_values; i++) {
124
+ VALUE code_class;
65
125
  GEnumValue* entry = &(gclass->values[i]);
66
- gchar* nick = g_strdup(entry->value_nick);
67
- gchar* p;
68
-
69
- for (p = nick; *p; p++) {
70
- if (*p == '-')
71
- *p = '_';
72
- else
73
- *p = g_ascii_toupper(*p);
74
- }
75
- rbgobj_define_const(klass, nick, INT2NUM(i));
76
- g_free(nick);
126
+ gchar *code_constant_name;
127
+ gchar *code_class_name;
128
+
129
+ code_constant_name = nick_to_constant_name(entry->value_nick);
130
+ rbgobj_define_const(error_class,
131
+ code_constant_name,
132
+ INT2NUM(entry->value));
133
+ g_free(code_constant_name);
134
+
135
+ code_class_name = nick_to_class_name(entry->value_nick);
136
+ code_class = rb_define_class_under(error_class,
137
+ code_class_name,
138
+ error_class);
139
+ g_free(code_class_name);
140
+ rb_hash_aset(code_classes, INT2NUM(entry->value), code_class);
77
141
  }
78
-
79
- g_type_class_unref(gclass);
142
+
143
+ g_type_class_unref(gclass);
80
144
  }
81
145
 
82
- return klass;
146
+ return error_class;
83
147
  }
84
148
 
85
149
  void
@@ -87,10 +151,14 @@ Init_glib_error(void)
87
151
  {
88
152
  id_code = rb_intern("@code");
89
153
  id_domain = rb_intern("@domain");
154
+ id_code_classes = rb_intern("@code_classes");
90
155
  gerror_table = rb_hash_new();
91
156
  rb_global_variable(&gerror_table);
92
157
 
158
+ error_info = rb_define_module_under(mGLib, "ErrorInfo");
159
+ rb_define_attr(error_info, "code", TRUE, FALSE);
160
+ rb_define_attr(error_info, "domain", TRUE, FALSE);
161
+
93
162
  generic_error = rb_define_class_under(mGLib, "Error", rb_eRuntimeError);
94
- rb_funcall(generic_error, rbgutil_id_module_eval, 1, CSTR2RVAL("def code; @code; end\n"));
95
- rb_funcall(generic_error, rbgutil_id_module_eval, 1, CSTR2RVAL("def domain; @domain; end\n"));
163
+ rb_include_module(generic_error, error_info);
96
164
  }
@@ -266,22 +266,27 @@ const RGObjClassInfo *
266
266
  rbgobj_lookup_class_by_gtype_full(GType gtype, VALUE parent,
267
267
  gboolean create_class)
268
268
  {
269
+ const RGObjClassInfo *info;
269
270
  RGObjClassByGtypeData data;
270
271
 
272
+ info = rbgobj_lookup_class_by_gtype_without_lock(gtype, parent, FALSE);
273
+ if (info) {
274
+ return info;
275
+ }
276
+
277
+ if (!create_class) {
278
+ return NULL;
279
+ }
280
+
271
281
  data.gtype = gtype;
272
282
  data.parent = parent;
273
283
  data.create_class = create_class;
274
284
 
275
- if (create_class) {
276
- rb_funcall(lookup_class_mutex, id_lock, 0);
277
- return (RGObjClassInfo *)rb_ensure(rbgobj_lookup_class_by_gtype_body,
278
- (VALUE)&data,
279
- rbgobj_lookup_class_by_gtype_ensure,
280
- (VALUE)&data);
281
- } else {
282
- return rbgobj_lookup_class_by_gtype_without_lock(gtype, parent,
283
- create_class);
284
- }
285
+ rb_funcall(lookup_class_mutex, id_lock, 0);
286
+ return (RGObjClassInfo *)rb_ensure(rbgobj_lookup_class_by_gtype_body,
287
+ (VALUE)&data,
288
+ rbgobj_lookup_class_by_gtype_ensure,
289
+ (VALUE)&data);
285
290
  }
286
291
 
287
292
  VALUE
@@ -66,11 +66,17 @@ extern "C" {
66
66
  #define RG_REG_SYMBOL_GETTER(name) \
67
67
  rbgobj_register_property_getter(CLASS2GTYPE(RG_TARGET_NAMESPACE), name, rbgutil_sym_g2r_func)
68
68
 
69
+ #define RG_REPLACE_SET_PROPERTY(name, args) \
70
+ G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, #name, rg_set_ ## name, args)
71
+ #define RG_REPLACE_GET_PROPERTY(name, args) \
72
+ G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, #name, rg_get_ ## name, args)
73
+ #define RG_REPLACE_ACTION(name, args) \
74
+ G_REPLACE_ACTION(RG_TARGET_NAMESPACE, #name, rg_ ## name, args)
75
+
69
76
  #define G_REPLACE_SET_PROPERTY(klass, name, function, args) \
70
77
  rb_undef_method(klass, "set_" name); \
71
- rb_define_method(klass, "set_" name, function, args); \
72
78
  rb_undef_method(klass, name "="); \
73
- G_DEF_SETTER(klass, name)
79
+ rbg_define_method(klass, "set_" name, function, args)
74
80
 
75
81
  #define G_REPLACE_GET_PROPERTY(klass, name, function, args) \
76
82
  rb_undef_method(klass, name); \
@@ -98,6 +104,8 @@ extern void rbgutil_stop_callback_dispatch_thread(void);
98
104
  extern VALUE rbgutil_string_set_utf8_encoding(VALUE string);
99
105
  extern gboolean rbgutil_key_equal(VALUE rb_string, const char *key);
100
106
 
107
+ extern const gchar *rbg_inspect(VALUE object);
108
+
101
109
  /*< protected >*/
102
110
  RUBY_GLIB2_VAR ID rbgutil_id_module_eval;
103
111
  extern void rbgutil_glibid_r2g_func(VALUE from, GValue* to);
@@ -9,20 +9,20 @@ class TestGLibKeyFile < Test::Unit::TestCase
9
9
  only_glib_version(2, 14, 0)
10
10
 
11
11
  key_file = GLib::KeyFile.new
12
- assert_raise(GLib::KeyFileError) do
12
+ assert_raise(GLib::KeyFileError::NotFound) do
13
13
  key_file.load_from_dirs("non-existent")
14
14
  end
15
15
 
16
16
  temp = Tempfile.new("key-file")
17
17
  base_name = File.basename(temp.path)
18
18
  search_dirs = [File.dirname(temp.path)]
19
- assert_raise(GLib::KeyFileError) do
19
+ assert_raise(GLib::KeyFileError::NotFound) do
20
20
  key_file.load_from_dirs("non-existent", search_dirs)
21
21
  end
22
22
  if GLib.check_version?(2, 31, 2)
23
23
  assert_equal(temp.path, key_file.load_from_dirs(base_name, search_dirs))
24
24
  else
25
- assert_raise(GLib::KeyFileError) do
25
+ assert_raise(GLib::KeyFileError::NotFound) do
26
26
  key_file.load_from_dirs(base_name, search_dirs)
27
27
  end
28
28
  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: 2.1.0
4
+ version: 2.2.0
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: 2013-12-29 00:00:00.000000000 Z
11
+ date: 2014-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pkg-config