gir_ffi 0.8.4 → 0.8.5
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 +4 -4
- data/Changelog.md +7 -0
- data/lib/ffi-gobject/value.rb +26 -21
- data/lib/gir_ffi/version.rb +1 -1
- data/test/ffi-gobject/value_test.rb +22 -1
- data/test/integration/generated_gio_test.rb +2 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33c7535a4e04bc9db6d60c9b92fd70d7b6d15942
|
4
|
+
data.tar.gz: f2a04471af13eda5efbd038f1f7fa80cb1b0458c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4542926a9b0514a68855b00991381fbeb40393001c8da662d2f711107b9276a1803a74910308338b2e7e7a73c32aff8c48d4fef96d10cbb8fe8619e80b09f95
|
7
|
+
data.tar.gz: 9333b2763f9db28c70fee615905ce0e20d9eff912ac222fb136a1ed07cc1f8b4793dd27bbaa8814f44453e781528d7d3be5b25365fbb8dc846a2533dc1114d08
|
data/Changelog.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.8.5 / 2015-12-04
|
4
|
+
|
5
|
+
* Improve GObject::Value
|
6
|
+
* Make #wrap_ruby_value work for object classes
|
7
|
+
* Use non-deprecated methods for getting and setting char values
|
8
|
+
* Make set_value and get_value work for interface types
|
9
|
+
|
3
10
|
## 0.8.4 / 2015-12-03
|
4
11
|
|
5
12
|
* Handle classes with lower-case names
|
data/lib/ffi-gobject/value.rb
CHANGED
@@ -22,27 +22,29 @@ module GObject
|
|
22
22
|
end
|
23
23
|
|
24
24
|
METHOD_MAP = {
|
25
|
-
TYPE_INVALID
|
26
|
-
|
27
|
-
|
28
|
-
TYPE_CHAR
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
TYPE_INT64
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
25
|
+
TYPE_INVALID => [:get_none, :set_none],
|
26
|
+
# TYPE_NONE is skipped
|
27
|
+
TYPE_INTERFACE => [:get_object, :set_instance_enhanced],
|
28
|
+
TYPE_CHAR => [:get_schar, :set_schar],
|
29
|
+
TYPE_UCHAR => [:get_uchar, :set_uchar],
|
30
|
+
TYPE_BOOLEAN => [:get_boolean, :set_boolean],
|
31
|
+
TYPE_INT => [:get_int, :set_int],
|
32
|
+
TYPE_UINT => [:get_uint, :set_uint],
|
33
|
+
TYPE_LONG => [:get_long, :set_long],
|
34
|
+
TYPE_ULONG => [:get_ulong, :set_ulong],
|
35
|
+
TYPE_INT64 => [:get_int64, :set_int64],
|
36
|
+
TYPE_UINT64 => [:get_uint64, :set_uint64],
|
37
|
+
TYPE_ENUM => [:get_enum_enhanced, :set_enum_enhanced],
|
38
|
+
TYPE_FLAGS => [:get_flags, :set_flags],
|
39
|
+
TYPE_FLOAT => [:get_float, :set_float],
|
40
|
+
TYPE_DOUBLE => [:get_double, :set_double],
|
41
|
+
TYPE_STRING => [:get_string, :set_string],
|
42
|
+
TYPE_POINTER => [:get_pointer, :set_pointer],
|
43
|
+
TYPE_BOXED => [:get_boxed, :set_boxed],
|
44
|
+
TYPE_PARAM => [:get_param, :set_param],
|
45
|
+
TYPE_OBJECT => [:get_object, :set_instance_enhanced],
|
46
|
+
TYPE_GTYPE => [:get_gtype, :set_gtype],
|
47
|
+
TYPE_VARIANT => [:get_variant, :set_variant]
|
46
48
|
}
|
47
49
|
|
48
50
|
def set_value(val)
|
@@ -120,6 +122,9 @@ module GObject
|
|
120
122
|
}
|
121
123
|
|
122
124
|
def init_for_ruby_value(val)
|
125
|
+
if val.class.respond_to? :gtype
|
126
|
+
return init val.class.gtype
|
127
|
+
end
|
123
128
|
CLASS_TO_GTYPE_MAP.each do |klass, type|
|
124
129
|
return init type if val.is_a? klass
|
125
130
|
end
|
data/lib/gir_ffi/version.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'gir_ffi_test_helper'
|
2
2
|
|
3
3
|
GirFFI.setup :Regress
|
4
|
+
GirFFI.setup :Gio
|
4
5
|
|
5
6
|
describe GObject::Value do
|
6
7
|
describe '::Struct' do
|
@@ -63,11 +64,17 @@ describe GObject::Value do
|
|
63
64
|
assert_instance_of GObject::Value, gv
|
64
65
|
assert_equal nil, gv.get_value
|
65
66
|
end
|
67
|
+
|
68
|
+
it 'wraps object values' do
|
69
|
+
value = GObject::Object.new({})
|
70
|
+
gv = GObject::Value.wrap_ruby_value value
|
71
|
+
gv.get_value.must_equal value
|
72
|
+
end
|
66
73
|
end
|
67
74
|
|
68
75
|
describe '#set_value' do
|
69
76
|
it 'handles char values' do
|
70
|
-
value = 83
|
77
|
+
value = -83
|
71
78
|
gv = GObject::Value.for_gtype GObject::TYPE_CHAR
|
72
79
|
gv.set_value value
|
73
80
|
gv.get_char.must_equal value
|
@@ -142,6 +149,20 @@ describe GObject::Value do
|
|
142
149
|
gv.set_value value
|
143
150
|
gv.get_variant.must_equal value
|
144
151
|
end
|
152
|
+
|
153
|
+
it 'handles object values' do
|
154
|
+
value = GObject::Object.new({})
|
155
|
+
gv = GObject::Value.for_gtype GObject::Object.gtype
|
156
|
+
gv.set_value value
|
157
|
+
gv.get_object.must_equal value
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'handles interface values' do
|
161
|
+
value = Gio.file_new_for_path('/')
|
162
|
+
gv = GObject::Value.for_gtype Gio::File.gtype
|
163
|
+
gv.set_value value
|
164
|
+
gv.get_object.must_equal value
|
165
|
+
end
|
145
166
|
end
|
146
167
|
|
147
168
|
describe '#get_value' do
|
@@ -1,11 +1,9 @@
|
|
1
1
|
require 'gir_ffi_test_helper'
|
2
2
|
|
3
|
+
GirFFI.setup :Gio
|
4
|
+
|
3
5
|
# Tests generated methods and functions in the Gio namespace.
|
4
6
|
describe 'The generated Gio module' do
|
5
|
-
before do
|
6
|
-
GirFFI.setup :Gio
|
7
|
-
end
|
8
|
-
|
9
7
|
describe '#file_new_for_path, a method returning an interface,' do
|
10
8
|
it 'returns an object of a more specific class' do
|
11
9
|
file = Gio.file_new_for_path('/')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gir_ffi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|