gobject-introspection 2.2.3 → 2.2.4

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: 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