gir_ffi 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1ad50242508ce93d6d0b6751cd18b550f3f8137
4
- data.tar.gz: b4ea1af0594d95c7293edabbf4f108506b2d46c4
3
+ metadata.gz: 33c7535a4e04bc9db6d60c9b92fd70d7b6d15942
4
+ data.tar.gz: f2a04471af13eda5efbd038f1f7fa80cb1b0458c
5
5
  SHA512:
6
- metadata.gz: 71bc54a2a76ddaa7a8d3633c02ce1ccc123ca036031e7c207fb6808aa81c995e30bf2eb4ffa7bc78321401f09887d1118862e7178534d12bc962c32099889355
7
- data.tar.gz: 099c5f239a3f1d7222871f1ad3f78730e733dbbc6c8f7fe278740b261390271f7aa072174ccf3a92b3246ead586d52bd29c09c22596474ede0282ef612c86ea7
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
@@ -22,27 +22,29 @@ module GObject
22
22
  end
23
23
 
24
24
  METHOD_MAP = {
25
- TYPE_INVALID => [:get_none, :set_none],
26
- TYPE_BOOLEAN => [:get_boolean, :set_boolean],
27
- TYPE_BOXED => [:get_boxed, :set_boxed],
28
- TYPE_CHAR => [:get_char, :set_char],
29
- TYPE_DOUBLE => [:get_double, :set_double],
30
- TYPE_ENUM => [:get_enum_enhanced, :set_enum_enhanced],
31
- TYPE_FLAGS => [:get_flags, :set_flags],
32
- TYPE_FLOAT => [:get_float, :set_float],
33
- TYPE_GTYPE => [:get_gtype, :set_gtype],
34
- TYPE_INT => [:get_int, :set_int],
35
- TYPE_INT64 => [:get_int64, :set_int64],
36
- TYPE_LONG => [:get_long, :set_long],
37
- TYPE_OBJECT => [:get_object, :set_instance_enhanced],
38
- TYPE_PARAM => [:get_param, :set_param],
39
- TYPE_POINTER => [:get_pointer, :set_pointer],
40
- TYPE_STRING => [:get_string, :set_string],
41
- TYPE_UCHAR => [:get_uchar, :set_uchar],
42
- TYPE_UINT => [:get_uint, :set_uint],
43
- TYPE_UINT64 => [:get_uint64, :set_uint64],
44
- TYPE_ULONG => [:get_ulong, :set_ulong],
45
- TYPE_VARIANT => [:get_variant, :set_variant]
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
@@ -1,4 +1,4 @@
1
1
  # Current GirFFI version
2
2
  module GirFFI
3
- VERSION = '0.8.4'
3
+ VERSION = '0.8.5'
4
4
  end
@@ -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
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-03 00:00:00.000000000 Z
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi