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 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