gobject-introspection 2.2.3 → 2.2.4

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: c9bac27e79bf9b4cdb72751896fc87aec516ed9c
4
- data.tar.gz: 4e247555a3ddb2d92b90fb75778ae1d763a786f2
3
+ metadata.gz: 11d7f6dc5c2100d0c72504f4415d605ba830a44c
4
+ data.tar.gz: 9f7a3bfcb911357b0e12576a19289a662f486da8
5
5
  SHA512:
6
- metadata.gz: ca86c2f5a685d3d19d4a7f7b44aa3d90322fe3d6559216bc51c9fe54494af9b6d181761864880f1bc437d09c832e7c6de9985d9b5fd00a40023ae68eae9bae98
7
- data.tar.gz: 6ed7681d39db3e4829d385a5023ce11933438697e0ae95c43791362085a6e14bc39effc432177b6137ad029e46c08623c6238ad22185753f37bac0db1cdcde5b
6
+ metadata.gz: 5e70a31652d2ed7464ff9f191a86c9ce4d1684c126e27caa3d7224945abb8b40e05724435d16876bd6db23d64f678f0e832cedb3774ec153176bdc956f84329d
7
+ data.tar.gz: 298954049c15b665783d98160fff432f3913c0c7de068d8b44aed863fa49c7a00f6659eed0e2d5273ac96a0f32681c4325749ada9d23ada4577e03bcae739d5f
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.42.0",
35
+ :version => "2.42.1",
36
36
  :compression_method => "xz",
37
37
  :windows => {
38
38
  :build => false,
@@ -74,16 +74,20 @@ package_task.define
74
74
 
75
75
  namespace :native do
76
76
  namespace :"gobject-introspection" do
77
- desc "Make g-ir-scanner workable for Windows on non Windows"
78
- task :cross do
79
- g_ir_scanner_dir = package_task.native.absolute_binary_dir
80
- g_ir_scanner_dir += "lib/gobject-introspection/giscanner"
77
+ g_ir_scanner_dir = package_task.native.absolute_binary_dir
78
+ g_ir_scanner_dir += "lib/gobject-introspection/giscanner"
79
+ patched_path = g_ir_scanner_dir + "patched"
80
+ file patched_path.to_s do
81
81
  Dir.chdir(g_ir_scanner_dir.to_s) do
82
82
  patch = "#{package_task.package.patches_dir}/cross-g-ir-scanner.diff"
83
83
  sh("patch -p2 < #{patch}")
84
84
  rm_f(Dir.glob("*.{pyc,pyo}"))
85
85
  end
86
+ touch(patched_path)
86
87
  end
88
+
89
+ desc "Make g-ir-scanner workable for Windows on non Windows"
90
+ task :cross => patched_path
87
91
  end
88
92
 
89
93
  namespace :builder do
@@ -91,12 +95,12 @@ namespace :native do
91
95
  end
92
96
  end
93
97
 
94
- namespace :win32 do
98
+ namespace :windows do
95
99
  namespace :"gobject-introspection" do
96
- desc "Use native tools"
97
- task :cross do
98
- pkg_config_dir = package_task.windows.absolute_binary_dir + "lib/pkgconfig"
99
- pc_path = pkg_config_dir + "gobject-introspection-1.0.pc"
100
+ pkg_config_dir = package_task.windows.absolute_binary_dir + "lib/pkgconfig"
101
+ pc_path = pkg_config_dir + "gobject-introspection-1.0.pc"
102
+ patched_path = pkg_config_dir + "patched"
103
+ file patched_path.to_s do
100
104
  original_pc = pc_path.read
101
105
  new_pc = ""
102
106
  new_pc << "native_prefix=#{package_task.native.absolute_binary_dir}\n"
@@ -112,10 +116,14 @@ namespace :win32 do
112
116
  pc_path.open("w") do |pc_file|
113
117
  pc_file.write(new_pc)
114
118
  end
119
+ touch(patched_path)
115
120
  end
121
+
122
+ desc "Use native tools"
123
+ task :cross => patched_path.to_s
116
124
  end
117
125
 
118
126
  namespace :builder do
119
- task :after => "win32:gobject-introspection:cross"
127
+ task :after => "windows:gobject-introspection:cross"
120
128
  end
121
129
  end
@@ -54,7 +54,7 @@ end
54
54
  :target_build_dir => build_dir)
55
55
  end
56
56
 
57
- setup_win32(module_name, base_dir)
57
+ setup_windows(module_name, base_dir)
58
58
 
59
59
  unless required_pkg_config_package(package_id,
60
60
  :debian => "libgirepository1.0-dev",
@@ -0,0 +1,230 @@
1
+
2
+ /* Generated by glib-mkenums.rb ($Id$) */
3
+
4
+ #include "gobject-introspection-enum-types.h"
5
+ #include <girepository.h>
6
+
7
+
8
+
9
+ /* enumerations from "/usr/include/gobject-introspection-1.0/girepository.h" */
10
+ GType
11
+ g_i_repository_load_flags_get_type (void)
12
+ {
13
+ static GType etype = 0;
14
+ if (etype == 0) {
15
+ static const GFlagsValue values[] = {
16
+ { G_IREPOSITORY_LOAD_FLAG_LAZY, "G_IREPOSITORY_LOAD_FLAG_LAZY", "g-irepository-load-flag-lazy" },
17
+ { 0, NULL, NULL }
18
+ };
19
+ etype = g_flags_register_static ("GIRepositoryLoadFlags", values);
20
+ }
21
+ return etype;
22
+ }
23
+
24
+ GType
25
+ g_i_repository_error_get_type (void)
26
+ {
27
+ static GType etype = 0;
28
+ if (etype == 0) {
29
+ static const GEnumValue values[] = {
30
+ { G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND, "G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND", "typelib-not-found" },
31
+ { G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH, "G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH", "namespace-mismatch" },
32
+ { G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT, "G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT", "namespace-version-conflict" },
33
+ { G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND, "G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND", "library-not-found" },
34
+ { 0, NULL, NULL }
35
+ };
36
+ etype = g_enum_register_static ("GIRepositoryError", values);
37
+ }
38
+ return etype;
39
+ }
40
+
41
+
42
+ /* enumerations from "/usr/include/gobject-introspection-1.0/gitypes.h" */
43
+ GType
44
+ g_i_info_type_get_type (void)
45
+ {
46
+ static GType etype = 0;
47
+ if (etype == 0) {
48
+ static const GEnumValue values[] = {
49
+ { GI_INFO_TYPE_INVALID, "GI_INFO_TYPE_INVALID", "invalid" },
50
+ { GI_INFO_TYPE_FUNCTION, "GI_INFO_TYPE_FUNCTION", "function" },
51
+ { GI_INFO_TYPE_CALLBACK, "GI_INFO_TYPE_CALLBACK", "callback" },
52
+ { GI_INFO_TYPE_STRUCT, "GI_INFO_TYPE_STRUCT", "struct" },
53
+ { GI_INFO_TYPE_BOXED, "GI_INFO_TYPE_BOXED", "boxed" },
54
+ { GI_INFO_TYPE_ENUM, "GI_INFO_TYPE_ENUM", "enum" },
55
+ { GI_INFO_TYPE_FLAGS, "GI_INFO_TYPE_FLAGS", "flags" },
56
+ { GI_INFO_TYPE_OBJECT, "GI_INFO_TYPE_OBJECT", "object" },
57
+ { GI_INFO_TYPE_INTERFACE, "GI_INFO_TYPE_INTERFACE", "interface" },
58
+ { GI_INFO_TYPE_CONSTANT, "GI_INFO_TYPE_CONSTANT", "constant" },
59
+ { GI_INFO_TYPE_INVALID_0, "GI_INFO_TYPE_INVALID_0", "invalid-0" },
60
+ { GI_INFO_TYPE_UNION, "GI_INFO_TYPE_UNION", "union" },
61
+ { GI_INFO_TYPE_VALUE, "GI_INFO_TYPE_VALUE", "value" },
62
+ { GI_INFO_TYPE_SIGNAL, "GI_INFO_TYPE_SIGNAL", "signal" },
63
+ { GI_INFO_TYPE_VFUNC, "GI_INFO_TYPE_VFUNC", "vfunc" },
64
+ { GI_INFO_TYPE_PROPERTY, "GI_INFO_TYPE_PROPERTY", "property" },
65
+ { GI_INFO_TYPE_FIELD, "GI_INFO_TYPE_FIELD", "field" },
66
+ { GI_INFO_TYPE_ARG, "GI_INFO_TYPE_ARG", "arg" },
67
+ { GI_INFO_TYPE_TYPE, "GI_INFO_TYPE_TYPE", "type" },
68
+ { GI_INFO_TYPE_UNRESOLVED, "GI_INFO_TYPE_UNRESOLVED", "unresolved" },
69
+ { 0, NULL, NULL }
70
+ };
71
+ etype = g_enum_register_static ("GIInfoType", values);
72
+ }
73
+ return etype;
74
+ }
75
+
76
+ GType
77
+ g_i_transfer_get_type (void)
78
+ {
79
+ static GType etype = 0;
80
+ if (etype == 0) {
81
+ static const GEnumValue values[] = {
82
+ { GI_TRANSFER_NOTHING, "GI_TRANSFER_NOTHING", "nothing" },
83
+ { GI_TRANSFER_CONTAINER, "GI_TRANSFER_CONTAINER", "container" },
84
+ { GI_TRANSFER_EVERYTHING, "GI_TRANSFER_EVERYTHING", "everything" },
85
+ { 0, NULL, NULL }
86
+ };
87
+ etype = g_enum_register_static ("GITransfer", values);
88
+ }
89
+ return etype;
90
+ }
91
+
92
+ GType
93
+ g_i_direction_get_type (void)
94
+ {
95
+ static GType etype = 0;
96
+ if (etype == 0) {
97
+ static const GEnumValue values[] = {
98
+ { GI_DIRECTION_IN, "GI_DIRECTION_IN", "in" },
99
+ { GI_DIRECTION_OUT, "GI_DIRECTION_OUT", "out" },
100
+ { GI_DIRECTION_INOUT, "GI_DIRECTION_INOUT", "inout" },
101
+ { 0, NULL, NULL }
102
+ };
103
+ etype = g_enum_register_static ("GIDirection", values);
104
+ }
105
+ return etype;
106
+ }
107
+
108
+ GType
109
+ g_i_scope_type_get_type (void)
110
+ {
111
+ static GType etype = 0;
112
+ if (etype == 0) {
113
+ static const GEnumValue values[] = {
114
+ { GI_SCOPE_TYPE_INVALID, "GI_SCOPE_TYPE_INVALID", "invalid" },
115
+ { GI_SCOPE_TYPE_CALL, "GI_SCOPE_TYPE_CALL", "call" },
116
+ { GI_SCOPE_TYPE_ASYNC, "GI_SCOPE_TYPE_ASYNC", "async" },
117
+ { GI_SCOPE_TYPE_NOTIFIED, "GI_SCOPE_TYPE_NOTIFIED", "notified" },
118
+ { 0, NULL, NULL }
119
+ };
120
+ etype = g_enum_register_static ("GIScopeType", values);
121
+ }
122
+ return etype;
123
+ }
124
+
125
+ GType
126
+ g_i_type_tag_get_type (void)
127
+ {
128
+ static GType etype = 0;
129
+ if (etype == 0) {
130
+ static const GEnumValue values[] = {
131
+ { GI_TYPE_TAG_VOID, "GI_TYPE_TAG_VOID", "void" },
132
+ { GI_TYPE_TAG_BOOLEAN, "GI_TYPE_TAG_BOOLEAN", "boolean" },
133
+ { GI_TYPE_TAG_INT8, "GI_TYPE_TAG_INT8", "int8" },
134
+ { GI_TYPE_TAG_UINT8, "GI_TYPE_TAG_UINT8", "uint8" },
135
+ { GI_TYPE_TAG_INT16, "GI_TYPE_TAG_INT16", "int16" },
136
+ { GI_TYPE_TAG_UINT16, "GI_TYPE_TAG_UINT16", "uint16" },
137
+ { GI_TYPE_TAG_INT32, "GI_TYPE_TAG_INT32", "int32" },
138
+ { GI_TYPE_TAG_UINT32, "GI_TYPE_TAG_UINT32", "uint32" },
139
+ { GI_TYPE_TAG_INT64, "GI_TYPE_TAG_INT64", "int64" },
140
+ { GI_TYPE_TAG_UINT64, "GI_TYPE_TAG_UINT64", "uint64" },
141
+ { GI_TYPE_TAG_FLOAT, "GI_TYPE_TAG_FLOAT", "float" },
142
+ { GI_TYPE_TAG_DOUBLE, "GI_TYPE_TAG_DOUBLE", "double" },
143
+ { GI_TYPE_TAG_GTYPE, "GI_TYPE_TAG_GTYPE", "gtype" },
144
+ { GI_TYPE_TAG_UTF8, "GI_TYPE_TAG_UTF8", "utf8" },
145
+ { GI_TYPE_TAG_FILENAME, "GI_TYPE_TAG_FILENAME", "filename" },
146
+ { GI_TYPE_TAG_ARRAY, "GI_TYPE_TAG_ARRAY", "array" },
147
+ { GI_TYPE_TAG_INTERFACE, "GI_TYPE_TAG_INTERFACE", "interface" },
148
+ { GI_TYPE_TAG_GLIST, "GI_TYPE_TAG_GLIST", "glist" },
149
+ { GI_TYPE_TAG_GSLIST, "GI_TYPE_TAG_GSLIST", "gslist" },
150
+ { GI_TYPE_TAG_GHASH, "GI_TYPE_TAG_GHASH", "ghash" },
151
+ { GI_TYPE_TAG_ERROR, "GI_TYPE_TAG_ERROR", "error" },
152
+ { GI_TYPE_TAG_UNICHAR, "GI_TYPE_TAG_UNICHAR", "unichar" },
153
+ { 0, NULL, NULL }
154
+ };
155
+ etype = g_enum_register_static ("GITypeTag", values);
156
+ }
157
+ return etype;
158
+ }
159
+
160
+ GType
161
+ g_i_array_type_get_type (void)
162
+ {
163
+ static GType etype = 0;
164
+ if (etype == 0) {
165
+ static const GEnumValue values[] = {
166
+ { GI_ARRAY_TYPE_C, "GI_ARRAY_TYPE_C", "c" },
167
+ { GI_ARRAY_TYPE_ARRAY, "GI_ARRAY_TYPE_ARRAY", "array" },
168
+ { GI_ARRAY_TYPE_PTR_ARRAY, "GI_ARRAY_TYPE_PTR_ARRAY", "ptr-array" },
169
+ { GI_ARRAY_TYPE_BYTE_ARRAY, "GI_ARRAY_TYPE_BYTE_ARRAY", "byte-array" },
170
+ { 0, NULL, NULL }
171
+ };
172
+ etype = g_enum_register_static ("GIArrayType", values);
173
+ }
174
+ return etype;
175
+ }
176
+
177
+ GType
178
+ g_i_field_info_flags_get_type (void)
179
+ {
180
+ static GType etype = 0;
181
+ if (etype == 0) {
182
+ static const GFlagsValue values[] = {
183
+ { GI_FIELD_IS_READABLE, "GI_FIELD_IS_READABLE", "readable" },
184
+ { GI_FIELD_IS_WRITABLE, "GI_FIELD_IS_WRITABLE", "writable" },
185
+ { 0, NULL, NULL }
186
+ };
187
+ etype = g_flags_register_static ("GIFieldInfoFlags", values);
188
+ }
189
+ return etype;
190
+ }
191
+
192
+ GType
193
+ g_iv_func_info_flags_get_type (void)
194
+ {
195
+ static GType etype = 0;
196
+ if (etype == 0) {
197
+ static const GFlagsValue values[] = {
198
+ { GI_VFUNC_MUST_CHAIN_UP, "GI_VFUNC_MUST_CHAIN_UP", "must-chain-up" },
199
+ { GI_VFUNC_MUST_OVERRIDE, "GI_VFUNC_MUST_OVERRIDE", "must-override" },
200
+ { GI_VFUNC_MUST_NOT_OVERRIDE, "GI_VFUNC_MUST_NOT_OVERRIDE", "must-not-override" },
201
+ { GI_VFUNC_THROWS, "GI_VFUNC_THROWS", "throws" },
202
+ { 0, NULL, NULL }
203
+ };
204
+ etype = g_flags_register_static ("GIVFuncInfoFlags", values);
205
+ }
206
+ return etype;
207
+ }
208
+
209
+ GType
210
+ g_i_function_info_flags_get_type (void)
211
+ {
212
+ static GType etype = 0;
213
+ if (etype == 0) {
214
+ static const GFlagsValue values[] = {
215
+ { GI_FUNCTION_IS_METHOD, "GI_FUNCTION_IS_METHOD", "is-method" },
216
+ { GI_FUNCTION_IS_CONSTRUCTOR, "GI_FUNCTION_IS_CONSTRUCTOR", "is-constructor" },
217
+ { GI_FUNCTION_IS_GETTER, "GI_FUNCTION_IS_GETTER", "is-getter" },
218
+ { GI_FUNCTION_IS_SETTER, "GI_FUNCTION_IS_SETTER", "is-setter" },
219
+ { GI_FUNCTION_WRAPS_VFUNC, "GI_FUNCTION_WRAPS_VFUNC", "wraps-vfunc" },
220
+ { GI_FUNCTION_THROWS, "GI_FUNCTION_THROWS", "throws" },
221
+ { 0, NULL, NULL }
222
+ };
223
+ etype = g_flags_register_static ("GIFunctionInfoFlags", values);
224
+ }
225
+ return etype;
226
+ }
227
+
228
+
229
+ /* Generated data ends here */
230
+
@@ -0,0 +1,42 @@
1
+
2
+ /* Generated by glib-mkenums.rb ($Id$) */
3
+
4
+ #ifndef __GOBJECT_INTROSPECTION_ENUM_TYPES_H__
5
+ #define __GOBJECT_INTROSPECTION_ENUM_TYPES_H__
6
+
7
+ #include <glib-object.h>
8
+
9
+ G_BEGIN_DECLS
10
+
11
+ /* enumerations from "/usr/include/gobject-introspection-1.0/girepository.h" */
12
+ GType g_i_repository_load_flags_get_type (void);
13
+ #define G_TYPE_I_REPOSITORY_LOAD_FLAGS (g_i_repository_load_flags_get_type())
14
+ GType g_i_repository_error_get_type (void);
15
+ #define G_TYPE_I_REPOSITORY_ERROR (g_i_repository_error_get_type())
16
+
17
+ /* enumerations from "/usr/include/gobject-introspection-1.0/gitypes.h" */
18
+ GType g_i_info_type_get_type (void);
19
+ #define G_TYPE_I_INFO_TYPE (g_i_info_type_get_type())
20
+ GType g_i_transfer_get_type (void);
21
+ #define G_TYPE_I_TRANSFER (g_i_transfer_get_type())
22
+ GType g_i_direction_get_type (void);
23
+ #define G_TYPE_I_DIRECTION (g_i_direction_get_type())
24
+ GType g_i_scope_type_get_type (void);
25
+ #define G_TYPE_I_SCOPE_TYPE (g_i_scope_type_get_type())
26
+ GType g_i_type_tag_get_type (void);
27
+ #define G_TYPE_I_TYPE_TAG (g_i_type_tag_get_type())
28
+ GType g_i_array_type_get_type (void);
29
+ #define G_TYPE_I_ARRAY_TYPE (g_i_array_type_get_type())
30
+ GType g_i_field_info_flags_get_type (void);
31
+ #define G_TYPE_I_FIELD_INFO_FLAGS (g_i_field_info_flags_get_type())
32
+ GType g_iv_func_info_flags_get_type (void);
33
+ #define G_TYPE_IV_FUNC_INFO_FLAGS (g_iv_func_info_flags_get_type())
34
+ GType g_i_function_info_flags_get_type (void);
35
+ #define G_TYPE_I_FUNCTION_INFO_FLAGS (g_i_function_info_flags_get_type())
36
+
37
+ G_END_DECLS
38
+
39
+ #endif /* __GOBJECT_INTROSPECTION_ENUM_TYPES_H__ */
40
+
41
+ /* Generated data ends here */
42
+
@@ -274,6 +274,65 @@ interface_to_ruby(GIArgument *argument, GITypeInfo *type_info)
274
274
  return rb_interface;
275
275
  }
276
276
 
277
+ static VALUE
278
+ rb_gi_argument_to_ruby_glist(GIArgument *argument, GITypeInfo *type_info)
279
+ {
280
+ VALUE rb_argument;
281
+ GITypeInfo *element_type_info;
282
+ GITypeTag element_type_tag;
283
+
284
+ element_type_info = g_type_info_get_param_type(type_info, 0);
285
+ element_type_tag = g_type_info_get_tag(element_type_info);
286
+ g_base_info_unref(element_type_info);
287
+
288
+ switch (element_type_tag) {
289
+ case GI_TYPE_TAG_VOID:
290
+ case GI_TYPE_TAG_BOOLEAN:
291
+ case GI_TYPE_TAG_INT8:
292
+ case GI_TYPE_TAG_UINT8:
293
+ case GI_TYPE_TAG_INT16:
294
+ case GI_TYPE_TAG_UINT16:
295
+ case GI_TYPE_TAG_INT32:
296
+ case GI_TYPE_TAG_UINT32:
297
+ case GI_TYPE_TAG_INT64:
298
+ case GI_TYPE_TAG_UINT64:
299
+ case GI_TYPE_TAG_FLOAT:
300
+ case GI_TYPE_TAG_DOUBLE:
301
+ case GI_TYPE_TAG_GTYPE:
302
+ rb_raise(rb_eNotImpError,
303
+ "TODO: GIArgument(GList)[%s] -> Ruby",
304
+ g_type_tag_to_string(element_type_tag));
305
+ break;
306
+ case GI_TYPE_TAG_UTF8:
307
+ rb_argument = CSTRGLIST2RVAL(argument->v_pointer);
308
+ break;
309
+ case GI_TYPE_TAG_FILENAME:
310
+ case GI_TYPE_TAG_ARRAY:
311
+ rb_raise(rb_eNotImpError,
312
+ "TODO: GIArgument(GList)[%s] -> Ruby",
313
+ g_type_tag_to_string(element_type_tag));
314
+ break;
315
+ case GI_TYPE_TAG_INTERFACE:
316
+ GOBJGLIST2RVAL(argument->v_pointer);
317
+ break;
318
+ case GI_TYPE_TAG_GLIST:
319
+ case GI_TYPE_TAG_GSLIST:
320
+ case GI_TYPE_TAG_GHASH:
321
+ case GI_TYPE_TAG_ERROR:
322
+ case GI_TYPE_TAG_UNICHAR:
323
+ rb_raise(rb_eNotImpError,
324
+ "TODO: GIArgument(GList)[%s] -> Ruby",
325
+ g_type_tag_to_string(element_type_tag));
326
+ break;
327
+ default:
328
+ g_assert_not_reached();
329
+ break;
330
+ }
331
+
332
+ return rb_argument;
333
+ }
334
+
335
+
277
336
  VALUE
278
337
  rb_gi_argument_to_ruby(GIArgument *argument, GITypeInfo *type_info)
279
338
  {
@@ -340,7 +399,7 @@ rb_gi_argument_to_ruby(GIArgument *argument, GITypeInfo *type_info)
340
399
  rb_argument = interface_to_ruby(argument, type_info);
341
400
  break;
342
401
  case GI_TYPE_TAG_GLIST:
343
- rb_argument = GOBJGLIST2RVAL(argument->v_pointer);
402
+ rb_argument = rb_gi_argument_to_ruby_glist(argument, type_info);
344
403
  break;
345
404
  case GI_TYPE_TAG_GSLIST:
346
405
  case GI_TYPE_TAG_GHASH:
@@ -843,6 +902,64 @@ rb_gi_return_argument_free_everything_interface(GIArgument *argument,
843
902
  }
844
903
  }
845
904
 
905
+ static void
906
+ rb_gi_return_argument_free_everything_glist(GIArgument *argument,
907
+ GITypeInfo *type_info)
908
+ {
909
+ GITypeInfo *element_type_info;
910
+ GITypeTag element_type_tag;
911
+
912
+ element_type_info = g_type_info_get_param_type(type_info, 0);
913
+ element_type_tag = g_type_info_get_tag(element_type_info);
914
+ g_base_info_unref(element_type_info);
915
+
916
+ switch (element_type_tag) {
917
+ case GI_TYPE_TAG_VOID:
918
+ case GI_TYPE_TAG_BOOLEAN:
919
+ case GI_TYPE_TAG_INT8:
920
+ case GI_TYPE_TAG_UINT8:
921
+ case GI_TYPE_TAG_INT16:
922
+ case GI_TYPE_TAG_UINT16:
923
+ case GI_TYPE_TAG_INT32:
924
+ case GI_TYPE_TAG_UINT32:
925
+ case GI_TYPE_TAG_INT64:
926
+ case GI_TYPE_TAG_UINT64:
927
+ case GI_TYPE_TAG_FLOAT:
928
+ case GI_TYPE_TAG_DOUBLE:
929
+ case GI_TYPE_TAG_GTYPE:
930
+ rb_raise(rb_eNotImpError,
931
+ "TODO: free GIArgument(GList)[%s] everything",
932
+ g_type_tag_to_string(element_type_tag));
933
+ break;
934
+ case GI_TYPE_TAG_UTF8:
935
+ g_list_foreach(argument->v_pointer, (GFunc)g_free, NULL);
936
+ g_list_free(argument->v_pointer);
937
+ break;
938
+ case GI_TYPE_TAG_FILENAME:
939
+ case GI_TYPE_TAG_ARRAY:
940
+ rb_raise(rb_eNotImpError,
941
+ "TODO: free GIArgument(GList)[%s] everything",
942
+ g_type_tag_to_string(element_type_tag));
943
+ break;
944
+ case GI_TYPE_TAG_INTERFACE:
945
+ g_list_foreach(argument->v_pointer, (GFunc)g_object_unref, NULL);
946
+ g_list_free(argument->v_pointer);
947
+ break;
948
+ case GI_TYPE_TAG_GLIST:
949
+ case GI_TYPE_TAG_GSLIST:
950
+ case GI_TYPE_TAG_GHASH:
951
+ case GI_TYPE_TAG_ERROR:
952
+ case GI_TYPE_TAG_UNICHAR:
953
+ rb_raise(rb_eNotImpError,
954
+ "TODO: free GIArgument(GList)[%s] everything",
955
+ g_type_tag_to_string(element_type_tag));
956
+ break;
957
+ default:
958
+ g_assert_not_reached();
959
+ break;
960
+ }
961
+ }
962
+
846
963
  static void
847
964
  rb_gi_return_argument_free_everything(GIArgument *argument,
848
965
  GITypeInfo *type_info)
@@ -883,8 +1000,7 @@ rb_gi_return_argument_free_everything(GIArgument *argument,
883
1000
  rb_gi_return_argument_free_everything_interface(argument, type_info);
884
1001
  break;
885
1002
  case GI_TYPE_TAG_GLIST:
886
- g_list_foreach(argument->v_pointer, (GFunc)g_object_unref, NULL);
887
- g_list_free(argument->v_pointer);
1003
+ rb_gi_return_argument_free_everything_glist(argument, type_info);
888
1004
  break;
889
1005
  case GI_TYPE_TAG_GSLIST:
890
1006
  case GI_TYPE_TAG_GHASH:
@@ -232,6 +232,10 @@ fill_metadata_rb_arg_index(GPtrArray *args_metadata)
232
232
  continue;
233
233
  }
234
234
 
235
+ if (metadata->in_arg_index == -1) {
236
+ continue;
237
+ }
238
+
235
239
  metadata->rb_arg_index = rb_arg_index;
236
240
  rb_arg_index++;
237
241
  }
@@ -18,17 +18,43 @@
18
18
  * MA 02110-1301 USA
19
19
  */
20
20
 
21
+
22
+ /* GObjectIntrospection::Repository is used to manage repositories of
23
+ * namespaces. Namespaces are represented on disk by type libraries
24
+ * (.typelib files).
25
+ */
26
+
21
27
  #include "rb-gi-private.h"
22
28
 
23
29
  #define RG_TARGET_NAMESPACE rb_cGIRepository
24
30
  #define SELF(self) RVAL2GI_REPOSITORY(self)
25
31
 
32
+
33
+ /* Returns the singleton process-global default
34
+ * GObjectIntrospection::Repository. It is not currently supported to have
35
+ * multiple repositories in a particular process, but this function is provided
36
+ * in the unlikely eventuality that it would become possible, and as a
37
+ * convenience for higher level language bindings to conform to the GObject
38
+ * method call conventions.
39
+ *
40
+ * @return [GObjectIntrospection::Repository] The global singleton
41
+ * GObjectIntrospection::Repository.
42
+ */
26
43
  static VALUE
27
44
  rg_s_default(G_GNUC_UNUSED VALUE klass)
28
45
  {
29
46
  return GOBJ2RVAL(g_irepository_get_default());
30
47
  }
31
48
 
49
+
50
+ /* Force the namespace to be loaded if it isn't already. If namespace is not
51
+ * loaded, this function will search for a ".typelib" file using the repository
52
+ * search path. In addition, a version of namespace may be specified. If version
53
+ * is not specified, the latest will be used.
54
+ *
55
+ * @param [String] namespace The namespace to load
56
+ * @param [String, nil] version An optional version
57
+ */
32
58
  static VALUE
33
59
  rg_require(int argc, VALUE *argv, VALUE self)
34
60
  {
@@ -53,6 +79,16 @@ rg_require(int argc, VALUE *argv, VALUE self)
53
79
  return Qnil;
54
80
  }
55
81
 
82
+
83
+ /* Return an array of all (transitive) versioned dependencies for namespace.
84
+ * Returned strings are of the form "namespace-version".
85
+ * Note: namespace must have already been loaded using a function such as
86
+ * GObjectIntrospection::Repository.require() before calling this method.
87
+ *
88
+ * @param [String] namespace The namespace to get the dependencies for.
89
+ *
90
+ * @return [Array<String>] The dependencies.
91
+ */
56
92
  static VALUE
57
93
  rg_get_dependencies(VALUE self, VALUE rb_namespace)
58
94
  {
@@ -74,6 +110,11 @@ rg_get_dependencies(VALUE self, VALUE rb_namespace)
74
110
  return rb_dependencies;
75
111
  }
76
112
 
113
+
114
+ /* Return the list of currently loaded namespaces.
115
+ *
116
+ * @return [Array<String>] The loaded namespaces.
117
+ */
77
118
  static VALUE
78
119
  rg_loaded_namespaces(VALUE self)
79
120
  {
@@ -93,6 +134,14 @@ rg_loaded_namespaces(VALUE self)
93
134
  return rb_namespaces;
94
135
  }
95
136
 
137
+
138
+ /* This method returns the number of metadata entries in given namespace. The
139
+ * namespace must have already been loaded before calling this function.
140
+ *
141
+ * @param [String] namespace The namespace to fetch the entries from.
142
+ *
143
+ * @return [Integer] The number of metadata entries.
144
+ */
96
145
  static VALUE
97
146
  rg_get_n_infos(VALUE self, VALUE rb_namespace)
98
147
  {
@@ -105,6 +154,17 @@ rg_get_n_infos(VALUE self, VALUE rb_namespace)
105
154
  return INT2NUM(n_infos);
106
155
  }
107
156
 
157
+
158
+ /* This method returns a particular metadata entry in the given namespace. The
159
+ * namespace must have already been loaded before calling this function. See
160
+ * GObjectIntrospection::Repository#get_n_infos() to find the maximum number
161
+ * of entries.
162
+ *
163
+ * @param [String] namespace The namespace to fetch the metadata entry from.
164
+ * @param [Fixnum] index The index of the entry.
165
+ *
166
+ * @return [GObjectIntrospection::BaseInfo] The metadata entry.
167
+ */
108
168
  static VALUE
109
169
  rg_get_info(VALUE self, VALUE rb_namespace, VALUE rb_n)
110
170
  {
@@ -120,6 +180,28 @@ rg_get_info(VALUE self, VALUE rb_namespace, VALUE rb_n)
120
180
  return GI_BASE_INFO2RVAL_WITH_UNREF(info);
121
181
  }
122
182
 
183
+
184
+ /* This method searches for a particular type or name. If only one argument is
185
+ * given, it is interpreted as a gtype and all loaded namespaces are searched
186
+ * for it. If two arguments are given the first is a particular namespace and
187
+ * the second the name of an entry to search for.
188
+ *
189
+ * @overload find(type)
190
+ *
191
+ * @param [String] type The type to search for.
192
+ *
193
+ * @return [GObjectIntrospection::BaseInfo] The metadata entry.
194
+ *
195
+ *
196
+ * @overload find(namespace, type)
197
+ *
198
+ * @param [String] namespace The namespace to search in.
199
+ *
200
+ * @param [String] type The type to search for.
201
+ *
202
+ * @return [GObjectIntrospection::BaseInfo] The metadata entry.
203
+ */
204
+
123
205
  static VALUE
124
206
  rg_find(int argc, VALUE *argv, VALUE self)
125
207
  {
@@ -0,0 +1,24 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgiversion.h -
5
+
6
+ This file was generated by mkmf-gnome2.rb.
7
+
8
+ ************************************************/
9
+
10
+ #ifndef __RBGI_VERSION_H__
11
+ #define __RBGI_VERSION_H__
12
+
13
+ #define GI_MAJOR_VERSION (1)
14
+ #define GI_MINOR_VERSION (42)
15
+ #define GI_MICRO_VERSION (0)
16
+
17
+ #define GI_CHECK_VERSION(major,minor,micro) \
18
+ (GI_MAJOR_VERSION > (major) || \
19
+ (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION > (minor)) || \
20
+ (GI_MAJOR_VERSION == (major) && GI_MINOR_VERSION == (minor) && \
21
+ GI_MICRO_VERSION >= (micro)))
22
+
23
+
24
+ #endif /* __RBGI_VERSION_H__ */
@@ -349,13 +349,22 @@ module GObjectIntrospection
349
349
  end
350
350
  end
351
351
 
352
- def rubyish_method_name(function_info)
352
+ def rubyish_method_name(function_info, options={})
353
353
  name = function_info.name
354
+ if options[:prefix]
355
+ name = name.gsub(/\A#{Regexp.escape(options[:prefix])}/, "")
356
+ end
354
357
  return_type = function_info.return_type
355
358
  if return_type.tag == GObjectIntrospection::TypeTag::BOOLEAN
356
359
  case name
357
- when /\A(?:is|get_is|get)_/
360
+ when /\A(?:is|get_is)_/
358
361
  "#{$POSTMATCH}?"
362
+ when /\Aget_/
363
+ if function_info.n_in_args.zero?
364
+ "#{$POSTMATCH}?"
365
+ else
366
+ name
367
+ end
359
368
  when /\A(?:has|use)_/
360
369
  "#{name}?"
361
370
  else
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: 2.2.3
4
+ version: 2.2.4
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: 2014-10-26 00:00:00.000000000 Z
11
+ date: 2014-12-23 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: 2.2.3
19
+ version: 2.2.4
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: 2.2.3
26
+ version: 2.2.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: test-unit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -48,6 +48,8 @@ files:
48
48
  - Rakefile
49
49
  - ext/gobject-introspection/depend
50
50
  - ext/gobject-introspection/extconf.rb
51
+ - ext/gobject-introspection/gobject-introspection-enum-types.c
52
+ - ext/gobject-introspection/gobject-introspection-enum-types.h
51
53
  - ext/gobject-introspection/gobject_introspection.def
52
54
  - ext/gobject-introspection/rb-gi-arg-info.c
53
55
  - ext/gobject-introspection/rb-gi-argument.c
@@ -81,6 +83,7 @@ files:
81
83
  - ext/gobject-introspection/rb-gi-vfunc-info.c
82
84
  - ext/gobject-introspection/rb-gobject-introspection.c
83
85
  - ext/gobject-introspection/rb-gobject-introspection.h
86
+ - ext/gobject-introspection/rbgiversion.h
84
87
  - extconf.rb
85
88
  - lib/gobject-introspection.rb
86
89
  - lib/gobject-introspection/boxed-info.rb