glib2 1.2.5 → 1.2.6
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.
- data/Rakefile +3 -3
- data/ext/glib2/rbglib.c +0 -1
- data/ext/glib2/rbglib.h +1 -1
- data/ext/glib2/rbglib2conversions.h +0 -2
- data/ext/glib2/rbglib_source.c +9 -6
- data/ext/glib2/rbgobj_closure.c +4 -2
- data/ext/glib2/rbgprivate.h +0 -1
- data/lib/glib-mkenums.rb +1 -3
- data/lib/gnome2-raketask.rb +3 -0
- data/lib/gnome2-win32-binary-build-task.rb +4 -2
- data/test/test_source.rb +29 -0
- metadata +3 -4
- data/ext/glib2/rbglib_completion.c +0 -195
- data/sample/completion.rb +0 -45
data/Rakefile
CHANGED
@@ -21,7 +21,7 @@ package = GNOME2Package.new do |_package|
|
|
21
21
|
:name => "glib",
|
22
22
|
:download_site => :gnome,
|
23
23
|
:label => "GLib",
|
24
|
-
:version => "2.
|
24
|
+
:version => "2.36.0",
|
25
25
|
:configure_args => [
|
26
26
|
"LIBFFI_CFLAGS=-I#{libffi_include_dir}",
|
27
27
|
"LIBFFI_LIBS=-L#{libffi_lib_dir} -lffi",
|
@@ -51,7 +51,7 @@ package = GNOME2Package.new do |_package|
|
|
51
51
|
:name => "gnutls",
|
52
52
|
:download_base_url => "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1",
|
53
53
|
:label => "GnuTLS",
|
54
|
-
:version => "3.1.
|
54
|
+
:version => "3.1.10",
|
55
55
|
:configure_args => [
|
56
56
|
"--with-libnettle-prefix=#{_package.win32.absolute_binary_dir}"
|
57
57
|
],
|
@@ -61,7 +61,7 @@ package = GNOME2Package.new do |_package|
|
|
61
61
|
:name => "glib-networking",
|
62
62
|
:download_site => :gnome,
|
63
63
|
:label => "glib-networking",
|
64
|
-
:version => "2.
|
64
|
+
:version => "2.36.0",
|
65
65
|
:configure_args => [
|
66
66
|
"--without-libproxy",
|
67
67
|
"--without-gnome-proxy",
|
data/ext/glib2/rbglib.c
CHANGED
data/ext/glib2/rbglib.h
CHANGED
@@ -25,8 +25,6 @@
|
|
25
25
|
|
26
26
|
#define RVAL2GCLOSURE(o) ((GClosure*)RVAL2BOXED(o, G_TYPE_CLOSURE))
|
27
27
|
#define GCLOSURE2RVAL(o) (BOXED2RVAL(o, G_TYPE_CLOSURE))
|
28
|
-
#define RVAL2GCOMPLETION(o) ((GCompletion*)RVAL2BOXED(o, G_TYPE_COMPLETION))
|
29
|
-
#define GCOMPLETION2RVAL(o) (BOXED2RVAL(o, G_TYPE_COMPLETION))
|
30
28
|
#define RVAL2GIOCHANNEL(o) ((GIOChannel*)RVAL2BOXED(o, G_TYPE_IO_CHANNEL))
|
31
29
|
#define GIOCHANNEL2RVAL(o) (BOXED2RVAL(o, G_TYPE_IO_CHANNEL))
|
32
30
|
#define RVAL2GKEYFILE(o) ((GKeyFile*)RVAL2BOXED(o, G_TYPE_KEY_FILE))
|
data/ext/glib2/rbglib_source.c
CHANGED
@@ -148,14 +148,15 @@ rg_remove_poll(VALUE self, VALUE fd)
|
|
148
148
|
return self;
|
149
149
|
}
|
150
150
|
|
151
|
+
#if GLIB_CHECK_VERSION(2, 28, 0)
|
151
152
|
static VALUE
|
152
|
-
|
153
|
+
rg_time(VALUE self)
|
153
154
|
{
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
return rb_assoc_new(LONG2NUM(timeval.tv_sec), LONG2NUM(timeval.tv_usec));
|
155
|
+
gint64 time;
|
156
|
+
time = g_source_get_time(_SELF(self));
|
157
|
+
return LL2NUM(time);
|
158
158
|
}
|
159
|
+
#endif
|
159
160
|
|
160
161
|
/* How can I implement them ?
|
161
162
|
gboolean g_source_remove_by_funcs_user_data
|
@@ -189,7 +190,9 @@ Init_glib_source(void)
|
|
189
190
|
RG_DEF_METHOD(set_callback, 0);
|
190
191
|
RG_DEF_METHOD(add_poll, 1);
|
191
192
|
RG_DEF_METHOD(remove_poll, 1);
|
192
|
-
|
193
|
+
#if GLIB_CHECK_VERSION(2, 28, 0)
|
194
|
+
RG_DEF_METHOD(time, 0);
|
195
|
+
#endif
|
193
196
|
|
194
197
|
/* GLib::Source.remove is moved to rbglib_maincontext.c */
|
195
198
|
}
|
data/ext/glib2/rbgobj_closure.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
3
|
+
* Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
|
4
4
|
* Copyright (C) 2002-2006 Ruby-GNOME2 Project
|
5
5
|
* Copyright (C) 2002,2003 Masahiro Sakai
|
6
6
|
*
|
@@ -332,9 +332,11 @@ rg_invalidate(VALUE self)
|
|
332
332
|
void
|
333
333
|
Init_gobject_gclosure(void)
|
334
334
|
{
|
335
|
+
VALUE RG_TARGET_NAMESPACE;
|
336
|
+
|
335
337
|
init_rclosure();
|
336
338
|
|
337
|
-
|
339
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_CLOSURE, "Closure", mGLib);
|
338
340
|
|
339
341
|
RG_DEF_METHOD(initialize, 0);
|
340
342
|
RG_DEF_METHOD_P(in_marshal, 0);
|
data/ext/glib2/rbgprivate.h
CHANGED
@@ -141,7 +141,6 @@ G_GNUC_INTERNAL void Init_glib_io_channelerror(void);
|
|
141
141
|
G_GNUC_INTERNAL void Init_glib_io_channel_win32_socket(void);
|
142
142
|
G_GNUC_INTERNAL void Init_glib_shell(void);
|
143
143
|
G_GNUC_INTERNAL void Init_glib_shellerror(void);
|
144
|
-
G_GNUC_INTERNAL void Init_glib_completion(void);
|
145
144
|
G_GNUC_INTERNAL void Init_glib_timer(void);
|
146
145
|
G_GNUC_INTERNAL void Init_glib_unicode(void);
|
147
146
|
G_GNUC_INTERNAL void Init_glib_utf8(void);
|
data/lib/glib-mkenums.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# C language enum description generation library like as glib-mkenums tool.
|
5
5
|
#
|
6
|
-
# Copyright(C) 2006-
|
6
|
+
# Copyright(C) 2006-2013 Ruby-GNOME2 Project.
|
7
7
|
#
|
8
8
|
# This program is licenced under the same license of Ruby-GNOME2.
|
9
9
|
#
|
@@ -29,8 +29,6 @@ module GLib
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def parse_const_lines(const_lines)
|
32
|
-
ret = ""
|
33
|
-
|
34
32
|
if @options[:force_flags] or /<</ =~ const_lines
|
35
33
|
@type = "flags"
|
36
34
|
@Type = "Flags"
|
data/lib/gnome2-raketask.rb
CHANGED
@@ -202,6 +202,7 @@ class GNOME2Package
|
|
202
202
|
attr_accessor :packages, :dependencies, :build_packages, :build_dependencies
|
203
203
|
attr_accessor :build_host
|
204
204
|
attr_accessor :relative_binary_dir, :absolute_binary_dir
|
205
|
+
attr_accessor :support_concurrent_build
|
205
206
|
def initialize(package)
|
206
207
|
@package = package
|
207
208
|
@packages = []
|
@@ -211,6 +212,7 @@ class GNOME2Package
|
|
211
212
|
@build_host = "i686-w64-mingw32"
|
212
213
|
@relative_binary_dir = File.join("vendor", "local")
|
213
214
|
@absolute_binary_dir = File.expand_path(@relative_binary_dir)
|
215
|
+
@support_concurrent_build = true
|
214
216
|
end
|
215
217
|
|
216
218
|
def to_hash
|
@@ -221,6 +223,7 @@ class GNOME2Package
|
|
221
223
|
:build_host => @build_host,
|
222
224
|
:relative_binary_dir => @relative_binary_dir,
|
223
225
|
:absolute_binary_dir => @absolute_binary_dir,
|
226
|
+
:support_concurrent_build => @support_concurrent_build,
|
224
227
|
}
|
225
228
|
end
|
226
229
|
end
|
@@ -119,8 +119,10 @@ class GNOME2Win32BinaryBuildTask
|
|
119
119
|
common_make_args << "GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
|
120
120
|
build_make_args = common_make_args.dup
|
121
121
|
install_make_args = common_make_args.dup
|
122
|
-
|
123
|
-
|
122
|
+
if package[:support_concurrent_build]
|
123
|
+
make_n_jobs = ENV["MAKE_N_JOBS"]
|
124
|
+
build_make_args << "-j#{make_n_jobs}" if make_n_jobs
|
125
|
+
end
|
124
126
|
ENV["GREP_OPTIONS"] = "--text"
|
125
127
|
sh("nice", "make", *build_make_args) or exit(false)
|
126
128
|
sh("make", "install", *install_make_args) or exit(false)
|
data/test/test_source.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Copyright (C) 2013 Ruby-GNOME2 Project Team
|
4
|
+
#
|
5
|
+
# This library is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
7
|
+
# License as published by the Free Software Foundation; either
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
# Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
16
|
+
# License along with this library; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
class TestGLibSource < Test::Unit::TestCase
|
20
|
+
include GLibTestUtils
|
21
|
+
|
22
|
+
def test_time
|
23
|
+
context = GLib::MainContext.default
|
24
|
+
source = GLib::Idle.source_new
|
25
|
+
source.attach(context)
|
26
|
+
time = source.time
|
27
|
+
assert_operator(0, :<, time)
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glib2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pkg-config
|
@@ -68,7 +68,6 @@ files:
|
|
68
68
|
- ext/glib2/rbglib.h
|
69
69
|
- ext/glib2/rbglib2conversions.h
|
70
70
|
- ext/glib2/rbglib_bookmarkfile.c
|
71
|
-
- ext/glib2/rbglib_completion.c
|
72
71
|
- ext/glib2/rbglib_convert.c
|
73
72
|
- ext/glib2/rbglib_error.c
|
74
73
|
- ext/glib2/rbglib_fileutils.c
|
@@ -129,7 +128,6 @@ files:
|
|
129
128
|
- ext/glib2/rbgutildeprecated.c
|
130
129
|
- ext/glib2/rbgutildeprecated.h
|
131
130
|
- sample/bookmarkfile.rb
|
132
|
-
- sample/completion.rb
|
133
131
|
- sample/idle.rb
|
134
132
|
- sample/iochannel.rb
|
135
133
|
- sample/keyfile.rb
|
@@ -153,6 +151,7 @@ files:
|
|
153
151
|
- test/test_mkenums.rb
|
154
152
|
- test/test_poll_fd.rb
|
155
153
|
- test/test_signal.rb
|
154
|
+
- test/test_source.rb
|
156
155
|
- test/test_spawn.rb
|
157
156
|
- test/test_timeout.rb
|
158
157
|
- test/test_unicode.rb
|
@@ -1,195 +0,0 @@
|
|
1
|
-
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
/*
|
3
|
-
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
-
* Copyright (C) 2005,2006 Masao Mutoh
|
5
|
-
*
|
6
|
-
* This library is free software; you can redistribute it and/or
|
7
|
-
* modify it under the terms of the GNU Lesser General Public
|
8
|
-
* License as published by the Free Software Foundation; either
|
9
|
-
* version 2.1 of the License, or (at your option) any later version.
|
10
|
-
*
|
11
|
-
* This library is distributed in the hope that it will be useful,
|
12
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
-
* Lesser General Public License for more details.
|
15
|
-
*
|
16
|
-
* You should have received a copy of the GNU Lesser General Public
|
17
|
-
* License along with this library; if not, write to the Free Software
|
18
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
-
* MA 02110-1301 USA
|
20
|
-
*/
|
21
|
-
|
22
|
-
#include "rbgprivate.h"
|
23
|
-
|
24
|
-
static ID id_compfunc;
|
25
|
-
static ID id_call;
|
26
|
-
static ID id_to_s;
|
27
|
-
static ID id_clear;
|
28
|
-
static ID id_items_internal;
|
29
|
-
|
30
|
-
/*****************************************/
|
31
|
-
static GCompletion*
|
32
|
-
completion_copy(GCompletion *comp)
|
33
|
-
{
|
34
|
-
GCompletion* new_comp;
|
35
|
-
g_return_val_if_fail (comp != NULL, NULL);
|
36
|
-
|
37
|
-
new_comp = g_new(GCompletion, 1);
|
38
|
-
*new_comp = *comp;
|
39
|
-
return new_comp;
|
40
|
-
}
|
41
|
-
|
42
|
-
static GType
|
43
|
-
g_completion_get_type(void)
|
44
|
-
{
|
45
|
-
static GType our_type = 0;
|
46
|
-
if (our_type == 0)
|
47
|
-
our_type = g_boxed_type_register_static ("GCompletion",
|
48
|
-
(GBoxedCopyFunc)completion_copy,
|
49
|
-
(GBoxedFreeFunc)g_completion_free);
|
50
|
-
return our_type;
|
51
|
-
}
|
52
|
-
/*****************************************/
|
53
|
-
|
54
|
-
#define G_TYPE_COMPLETION (g_completion_get_type())
|
55
|
-
|
56
|
-
#define RG_TARGET_NAMESPACE cCompletion
|
57
|
-
#define _SELF(s) ((GCompletion*)RVAL2BOXED(s, G_TYPE_COMPLETION))
|
58
|
-
|
59
|
-
/* data should be [self, data] */
|
60
|
-
static gchar *
|
61
|
-
comp_func(gpointer compdata)
|
62
|
-
{
|
63
|
-
VALUE ret;
|
64
|
-
VALUE self = RARRAY_PTR((VALUE)compdata)[0];
|
65
|
-
VALUE data = RARRAY_PTR((VALUE)compdata)[1];
|
66
|
-
|
67
|
-
VALUE func = rb_ivar_get(self, id_compfunc);
|
68
|
-
|
69
|
-
if (NIL_P(func)){
|
70
|
-
ret = rb_funcall(data, id_to_s, 0);
|
71
|
-
} else {
|
72
|
-
ret = rb_funcall(func, id_call, 1, data);
|
73
|
-
}
|
74
|
-
return (gchar *)RVAL2CSTR(ret);
|
75
|
-
}
|
76
|
-
|
77
|
-
static VALUE
|
78
|
-
rg_initialize(VALUE self)
|
79
|
-
{
|
80
|
-
VALUE block = Qnil;
|
81
|
-
|
82
|
-
if (rb_block_given_p()) {
|
83
|
-
block = rb_block_proc();
|
84
|
-
}
|
85
|
-
|
86
|
-
rb_ivar_set(self, id_compfunc, block);
|
87
|
-
/* This is used for memory management(GC) */
|
88
|
-
rb_ivar_set(self, id_items_internal, rb_hash_new());
|
89
|
-
|
90
|
-
G_INITIALIZE(self, g_completion_new((GCompletionFunc)comp_func));
|
91
|
-
|
92
|
-
return Qnil;
|
93
|
-
}
|
94
|
-
|
95
|
-
static VALUE
|
96
|
-
rg_add_items(VALUE self, VALUE items)
|
97
|
-
{
|
98
|
-
gint i, len;
|
99
|
-
GList* list = (GList*)NULL;
|
100
|
-
VALUE items_internal = rb_ivar_get(self, id_items_internal);
|
101
|
-
|
102
|
-
items = rb_ary_to_ary(items);
|
103
|
-
len = RARRAY_LEN(items);
|
104
|
-
for (i = 0; i < len; i ++){
|
105
|
-
VALUE data = RARRAY_PTR(items)[i];
|
106
|
-
VALUE item = rb_assoc_new(self, data);
|
107
|
-
list = g_list_append(list, (gpointer)item);
|
108
|
-
rb_hash_aset(items_internal, data, item);
|
109
|
-
}
|
110
|
-
g_completion_add_items(_SELF(self), list);
|
111
|
-
|
112
|
-
return self;
|
113
|
-
}
|
114
|
-
|
115
|
-
static VALUE
|
116
|
-
rg_remove_items(VALUE self, VALUE items)
|
117
|
-
{
|
118
|
-
gint i, len;
|
119
|
-
GList* list = (GList*)NULL;
|
120
|
-
VALUE items_internal = rb_ivar_get(self, id_items_internal);
|
121
|
-
|
122
|
-
items = rb_ary_to_ary(items);
|
123
|
-
len = RARRAY_LEN(items);
|
124
|
-
for (i = 0; i < len; i ++){
|
125
|
-
VALUE data = RARRAY_PTR(items)[i];
|
126
|
-
VALUE item = rb_hash_aref(items_internal, data);
|
127
|
-
list = g_list_append(list, (gpointer)item);
|
128
|
-
rb_hash_delete(items_internal, data);
|
129
|
-
}
|
130
|
-
g_completion_remove_items(_SELF(self), list);
|
131
|
-
|
132
|
-
return self;
|
133
|
-
}
|
134
|
-
|
135
|
-
static VALUE
|
136
|
-
rg_clear_items(VALUE self)
|
137
|
-
{
|
138
|
-
VALUE items_internal = rb_ivar_get(self, id_items_internal);
|
139
|
-
rb_funcall(items_internal, id_clear, 0);
|
140
|
-
g_completion_clear_items(_SELF(self));
|
141
|
-
return self;
|
142
|
-
}
|
143
|
-
|
144
|
-
static VALUE
|
145
|
-
rg_items(VALUE self)
|
146
|
-
{
|
147
|
-
return rb_ivar_get(self, id_items_internal);
|
148
|
-
}
|
149
|
-
|
150
|
-
static VALUE
|
151
|
-
rg_complete(VALUE self, VALUE prefix)
|
152
|
-
{
|
153
|
-
gchar* new_prefix;
|
154
|
-
VALUE ary = rb_ary_new();
|
155
|
-
#if GLIB_CHECK_VERSION(2,4,0)
|
156
|
-
GList* list = g_completion_complete_utf8(_SELF(self),
|
157
|
-
(const gchar*)RVAL2CSTR(prefix),
|
158
|
-
&new_prefix);
|
159
|
-
#else
|
160
|
-
GList* list = g_completion_complete(_SELF(self),
|
161
|
-
RVAL2CSTR(prefix),
|
162
|
-
&new_prefix);
|
163
|
-
#endif
|
164
|
-
while (list) {
|
165
|
-
rb_ary_push(ary, RARRAY_PTR((VALUE)list->data)[1]);
|
166
|
-
list = list->next;
|
167
|
-
}
|
168
|
-
|
169
|
-
return rb_assoc_new(ary, new_prefix ? CSTR2RVAL(new_prefix) : Qnil);
|
170
|
-
}
|
171
|
-
|
172
|
-
/* We don't use this.
|
173
|
-
void g_completion_set_compare (GCompletion *cmp,
|
174
|
-
GCompletionStrncmpFunc strncmp_func);
|
175
|
-
*/
|
176
|
-
|
177
|
-
void
|
178
|
-
Init_glib_completion(void)
|
179
|
-
{
|
180
|
-
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_COMPLETION, "Completion", mGLib);
|
181
|
-
|
182
|
-
id_call = rb_intern("call");
|
183
|
-
id_to_s = rb_intern("to_s");
|
184
|
-
id_clear = rb_intern("clear");
|
185
|
-
id_compfunc = rb_intern("completion_proc");
|
186
|
-
id_items_internal = rb_intern("items_internal");
|
187
|
-
|
188
|
-
RG_DEF_METHOD(initialize, 0);
|
189
|
-
RG_DEF_METHOD(add_items, 1);
|
190
|
-
RG_DEF_METHOD(remove_items, 1);
|
191
|
-
RG_DEF_METHOD(clear_items, 0);
|
192
|
-
RG_DEF_METHOD(complete, 1);
|
193
|
-
|
194
|
-
RG_DEF_METHOD(items, 0);
|
195
|
-
}
|
data/sample/completion.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
completion.rb - Sample for GLib::Completion
|
3
|
-
|
4
|
-
Copyright (C) 2005 Ruby-GNOME2 Project Team
|
5
|
-
This program is licenced under the same licence as Ruby-GNOME2.
|
6
|
-
|
7
|
-
$Id: completion.rb,v 1.1 2005/10/14 19:10:07 mutoh Exp $
|
8
|
-
=end
|
9
|
-
|
10
|
-
require 'glib2'
|
11
|
-
|
12
|
-
###########################
|
13
|
-
# Simple String completion
|
14
|
-
###########################
|
15
|
-
ary = ["a_", "a_ab", "aac", "aabc", "aabcd"]
|
16
|
-
comp = GLib::Completion.new
|
17
|
-
comp.add_items(ary)
|
18
|
-
p comp.complete("a_")
|
19
|
-
p comp.complete("aab")
|
20
|
-
|
21
|
-
puts "-----------"
|
22
|
-
|
23
|
-
|
24
|
-
############################
|
25
|
-
# Class completion and UTF-8
|
26
|
-
############################
|
27
|
-
class Test
|
28
|
-
def initialize(str)
|
29
|
-
@str = str
|
30
|
-
end
|
31
|
-
def value
|
32
|
-
@str
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
ary2 = [Test.new("あ_"), Test.new("あ_あい"),
|
37
|
-
Test.new("ああab"), Test.new("ああabc"), Test.new("ああbcd")]
|
38
|
-
|
39
|
-
comp2 = GLib::Completion.new {|data|
|
40
|
-
data.value
|
41
|
-
}
|
42
|
-
|
43
|
-
comp2.add_items(ary2)
|
44
|
-
puts %Q$["#{comp2.complete("あ_").join(', "')}"]$
|
45
|
-
puts %Q$["#{comp2.complete("ああa").join(', "')}"]$
|