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 +4 -4
- data/Rakefile +19 -11
- data/ext/gobject-introspection/extconf.rb +1 -1
- data/ext/gobject-introspection/gobject-introspection-enum-types.c +230 -0
- data/ext/gobject-introspection/gobject-introspection-enum-types.h +42 -0
- data/ext/gobject-introspection/rb-gi-argument.c +119 -3
- data/ext/gobject-introspection/rb-gi-function-info.c +4 -0
- data/ext/gobject-introspection/rb-gi-repository.c +82 -0
- data/ext/gobject-introspection/rbgiversion.h +24 -0
- data/lib/gobject-introspection/loader.rb +11 -2
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11d7f6dc5c2100d0c72504f4415d605ba830a44c
|
4
|
+
data.tar.gz: 9f7a3bfcb911357b0e12576a19289a662f486da8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
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 :
|
98
|
+
namespace :windows do
|
95
99
|
namespace :"gobject-introspection" do
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
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 => "
|
127
|
+
task :after => "windows:gobject-introspection:cross"
|
120
128
|
end
|
121
129
|
end
|
@@ -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 =
|
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
|
-
|
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:
|
@@ -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
|
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.
|
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-
|
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.
|
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.
|
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
|