gir_ffi 0.0.5 → 0.0.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/History.txt +8 -0
- data/lib/gir_ffi/arg_helper.rb +55 -37
- data/lib/gir_ffi/argument_builder.rb +382 -0
- data/lib/gir_ffi/builder.rb +4 -4
- data/lib/gir_ffi/class_builder.rb +36 -33
- data/lib/gir_ffi/function_definition_builder.rb +50 -277
- data/lib/gir_ffi/g_object.rb +9 -8
- data/lib/gir_ffi/i_repository.rb +2 -2
- data/lib/gir_ffi/lib.rb +4 -2
- data/lib/gir_ffi/overrides/gobject.rb +43 -41
- data/lib/gir_ffi.rb +0 -34
- data/test/arg_helper_test.rb +19 -13
- data/test/builder_test.rb +0 -1
- data/test/class_base_test.rb +0 -1
- data/test/class_builder_test.rb +0 -1
- data/test/function_definition_builder_test.rb +2 -4
- data/test/{gobject_overrides_test.rb → g_object_overrides_test.rb} +0 -1
- data/test/g_object_test.rb +0 -1
- data/test/{everything_test.rb → generated_everything_test.rb} +13 -14
- data/test/generated_gio_test.rb +32 -0
- data/test/generated_gtk_test.rb +65 -0
- data/test/girffi_test.rb +0 -1
- data/test/gtk_overrides_test.rb +1 -1
- data/test/i_object_info_test.rb +0 -1
- data/test/i_repository_test.rb +0 -1
- data/test/module_builder_test.rb +0 -1
- data/test/test_helper.rb +11 -0
- metadata +13 -8
@@ -1,5 +1,4 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi'
|
3
2
|
|
4
3
|
class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
5
4
|
context "The FunctionDefinition builder" do
|
@@ -48,10 +47,10 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
48
47
|
"def signal_connect_data instance, detailed_signal, c_handler, data, destroy_data, connect_flags
|
49
48
|
_v1 = GirFFI::ArgHelper.object_to_inptr instance
|
50
49
|
_v2 = GirFFI::ArgHelper.utf8_to_inptr detailed_signal
|
51
|
-
_v3 = GirFFI::ArgHelper.
|
50
|
+
_v3 = GirFFI::ArgHelper.wrap_in_callback_args_mapper \"GObject\", \"Callback\", c_handler
|
52
51
|
::Lib::CALLBACKS << _v3
|
53
52
|
_v4 = GirFFI::ArgHelper.object_to_inptr data
|
54
|
-
_v5 = GirFFI::ArgHelper.
|
53
|
+
_v5 = GirFFI::ArgHelper.wrap_in_callback_args_mapper \"GObject\", \"ClosureNotify\", destroy_data
|
55
54
|
::Lib::CALLBACKS << _v5
|
56
55
|
_v6 = connect_flags
|
57
56
|
_v7 = ::Lib.g_signal_connect_data _v1, _v2, _v3, _v4, _v5, _v6
|
@@ -73,7 +72,6 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
73
72
|
_v2 = ::Lib.test_obj_new_from_file _v1, _v4
|
74
73
|
GirFFI::ArgHelper.check_error(_v4)
|
75
74
|
_v3 = ::Everything::TestObj.wrap(_v2)
|
76
|
-
GirFFI::ArgHelper.sink_if_floating(_v3)
|
77
75
|
return _v3
|
78
76
|
end"
|
79
77
|
|
data/test/g_object_test.rb
CHANGED
@@ -1,16 +1,7 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi'
|
3
2
|
|
4
3
|
# Tests generated methods and functions in the Everything namespace.
|
5
|
-
class
|
6
|
-
def ref_count object
|
7
|
-
GObject::Object::Struct.new(object.to_ptr)[:ref_count]
|
8
|
-
end
|
9
|
-
|
10
|
-
def is_floating? object
|
11
|
-
(GObject::Object::Struct.new(object.to_ptr)[:qdata].address & 2) == 2
|
12
|
-
end
|
13
|
-
|
4
|
+
class GeneratedEverythingTest < Test::Unit::TestCase
|
14
5
|
context "The generated Everything module" do
|
15
6
|
setup do
|
16
7
|
GirFFI.setup :Everything
|
@@ -117,10 +108,18 @@ class EverythingTest < Test::Unit::TestCase
|
|
117
108
|
assert_equal 623.0, rv
|
118
109
|
end
|
119
110
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
111
|
+
context "#static_method_callback" do
|
112
|
+
should "work when called with a Proc" do
|
113
|
+
a = 1
|
114
|
+
Everything::TestObj.static_method_callback Proc.new { a = 2 }
|
115
|
+
assert_equal 2, a
|
116
|
+
end
|
117
|
+
|
118
|
+
should "work when called with nil" do
|
119
|
+
assert_nothing_raised do
|
120
|
+
Everything::TestObj.static_method_callback nil
|
121
|
+
end
|
122
|
+
end
|
124
123
|
end
|
125
124
|
|
126
125
|
context "an instance" do
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
# Tests generated methods and functions in the Gio namespace.
|
4
|
+
class GeneratedGioTest < Test::Unit::TestCase
|
5
|
+
context "In the generated Gio module" do
|
6
|
+
setup do
|
7
|
+
GirFFI.setup :Gio
|
8
|
+
end
|
9
|
+
|
10
|
+
should "create a GFile with #file_new_from_path" do
|
11
|
+
assert_nothing_raised {
|
12
|
+
Gio.file_new_for_path('/')
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
context "the FileInfo class" do
|
17
|
+
context "an instance" do
|
18
|
+
setup do
|
19
|
+
file = Gio.file_new_for_path('/')
|
20
|
+
@fileinfo = file.query_info "*", :none, nil
|
21
|
+
end
|
22
|
+
|
23
|
+
should "hava a working #get_attribute_type method" do
|
24
|
+
assert_nothing_raised {
|
25
|
+
@fileinfo.get_attribute_type "standard::displayname"
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
# Tests generated methods and functions in the Gtk namespace.
|
4
|
+
class GeneratedGtkTest < Test::Unit::TestCase
|
5
|
+
context "In the generated Gtk module" do
|
6
|
+
setup do
|
7
|
+
GirFFI.setup :Gtk
|
8
|
+
end
|
9
|
+
|
10
|
+
context "a Gtk::Builder instance" do
|
11
|
+
setup do
|
12
|
+
@builder = Gtk::Builder.new
|
13
|
+
@spec = '
|
14
|
+
<interface>
|
15
|
+
<object class="GtkButton" id="foo">
|
16
|
+
<signal handler="on_button_clicked" name="clicked"/>
|
17
|
+
</object>
|
18
|
+
</interface>
|
19
|
+
'
|
20
|
+
end
|
21
|
+
|
22
|
+
should "load spec" do
|
23
|
+
assert_nothing_raised { @builder.add_from_string @spec, @spec.length }
|
24
|
+
end
|
25
|
+
|
26
|
+
context "its #get_object method" do
|
27
|
+
should "return objects of the proper class" do
|
28
|
+
@builder.add_from_string @spec, @spec.length
|
29
|
+
o = @builder.get_object "foo"
|
30
|
+
assert_instance_of Gtk::Button, o
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "its #connect_signals_full method" do
|
35
|
+
setup do
|
36
|
+
@builder.add_from_string @spec, @spec.length
|
37
|
+
end
|
38
|
+
should "pass arguments correctly" do
|
39
|
+
aa = nil
|
40
|
+
@builder.connect_signals_full Proc.new {|*args| aa = args}, nil
|
41
|
+
b, o, sn, hn, co, f, ud = aa
|
42
|
+
assert_instance_of Gtk::Builder, b
|
43
|
+
assert_equal b.to_ptr, @builder.to_ptr
|
44
|
+
assert_instance_of Gtk::Button, o
|
45
|
+
assert_equal "clicked", sn
|
46
|
+
assert_equal "on_button_clicked", hn
|
47
|
+
assert_equal nil, co
|
48
|
+
assert_equal :after, f
|
49
|
+
assert_equal nil, ud
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context "a Gtk::Window instance" do
|
55
|
+
setup do
|
56
|
+
@w = Gtk::Window.new :toplevel
|
57
|
+
end
|
58
|
+
|
59
|
+
should "start with a refcount of 2 (one for us, one for GTK+)" do
|
60
|
+
assert_equal 2, ref_count(@w)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/test/girffi_test.rb
CHANGED
data/test/gtk_overrides_test.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi'
|
3
2
|
|
4
3
|
class GtkOverridesTest < Test::Unit::TestCase
|
5
4
|
context "The Gtk.init function" do
|
@@ -10,6 +9,7 @@ class GtkOverridesTest < Test::Unit::TestCase
|
|
10
9
|
|
11
10
|
should "not take any arguments" do
|
12
11
|
assert_raises(ArgumentError) { Gtk.init 1, ["foo"] }
|
12
|
+
assert_raises(ArgumentError) { Gtk.init ["foo"] }
|
13
13
|
assert_nothing_raised { Gtk.init }
|
14
14
|
end
|
15
15
|
|
data/test/i_object_info_test.rb
CHANGED
data/test/i_repository_test.rb
CHANGED
data/test/module_builder_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
require 'shoulda'
|
2
2
|
require 'rr'
|
3
3
|
require 'ffi'
|
4
|
+
|
4
5
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
6
|
|
7
|
+
require 'gir_ffi'
|
8
|
+
|
6
9
|
if RUBY_PLATFORM == 'java'
|
7
10
|
require 'java'
|
8
11
|
JRuby.objectspace = true
|
@@ -51,4 +54,12 @@ class Test::Unit::TestCase
|
|
51
54
|
Object.send(:remove_const, name)
|
52
55
|
end
|
53
56
|
end
|
57
|
+
|
58
|
+
def ref_count object
|
59
|
+
GObject::Object::Struct.new(object.to_ptr)[:ref_count]
|
60
|
+
end
|
61
|
+
|
62
|
+
def is_floating? object
|
63
|
+
(GObject::Object::Struct.new(object.to_ptr)[:qdata].address & 2) == 2
|
64
|
+
end
|
54
65
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gir_ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matijs van Zuijlen
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-03-01 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/gir_ffi/i_base_info.rb
|
112
112
|
- lib/gir_ffi/module_builder.rb
|
113
113
|
- lib/gir_ffi/arg_helper.rb
|
114
|
+
- lib/gir_ffi/argument_builder.rb
|
114
115
|
- lib/gir_ffi/g_object.rb
|
115
116
|
- lib/gir_ffi/i_union_info.rb
|
116
117
|
- lib/gir_ffi/class_builder.rb
|
@@ -121,16 +122,18 @@ files:
|
|
121
122
|
- test/function_definition_builder_test.rb
|
122
123
|
- test/g_object_test.rb
|
123
124
|
- test/arg_helper_test.rb
|
124
|
-
- test/gobject_overrides_test.rb
|
125
125
|
- test/class_base_test.rb
|
126
126
|
- test/test_helper.rb
|
127
127
|
- test/class_builder_test.rb
|
128
128
|
- test/girffi_test.rb
|
129
129
|
- test/module_builder_test.rb
|
130
130
|
- test/i_object_info_test.rb
|
131
|
-
- test/
|
131
|
+
- test/generated_everything_test.rb
|
132
|
+
- test/g_object_overrides_test.rb
|
133
|
+
- test/generated_gtk_test.rb
|
132
134
|
- test/builder_test.rb
|
133
135
|
- test/gtk_overrides_test.rb
|
136
|
+
- test/generated_gio_test.rb
|
134
137
|
- tasks/test.rake
|
135
138
|
- tasks/setup.rb
|
136
139
|
- tasks/notes.rake
|
@@ -186,11 +189,13 @@ test_files:
|
|
186
189
|
- test/builder_test.rb
|
187
190
|
- test/class_base_test.rb
|
188
191
|
- test/class_builder_test.rb
|
189
|
-
- test/everything_test.rb
|
190
192
|
- test/function_definition_builder_test.rb
|
193
|
+
- test/g_object_overrides_test.rb
|
191
194
|
- test/g_object_test.rb
|
195
|
+
- test/generated_everything_test.rb
|
196
|
+
- test/generated_gio_test.rb
|
197
|
+
- test/generated_gtk_test.rb
|
192
198
|
- test/girffi_test.rb
|
193
|
-
- test/gobject_overrides_test.rb
|
194
199
|
- test/gtk_overrides_test.rb
|
195
200
|
- test/i_object_info_test.rb
|
196
201
|
- test/i_repository_test.rb
|