gir_ffi 0.7.8 → 0.7.9
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 +16 -0
- data/README.md +24 -11
- data/TODO.md +10 -2
- data/gir_ffi.gemspec +2 -2
- data/lib/ffi-glib/array.rb +1 -1
- data/lib/ffi-glib/hash_table.rb +0 -4
- data/lib/ffi-gobject.rb +10 -6
- data/lib/ffi-gobject/object.rb +17 -0
- data/lib/ffi-gobject/ruby_closure.rb +1 -1
- data/lib/ffi-gobject/value.rb +28 -4
- data/lib/ffi-gobject_introspection.rb +4 -0
- data/lib/ffi-gobject_introspection/g_error.rb +2 -2
- data/lib/ffi-gobject_introspection/i_base_info.rb +1 -3
- data/lib/ffi-gobject_introspection/i_callable_info.rb +8 -0
- data/lib/ffi-gobject_introspection/i_registered_type_info.rb +2 -0
- data/lib/ffi-gobject_introspection/i_repository.rb +4 -4
- data/lib/ffi-gobject_introspection/lib.rb +57 -32
- data/lib/gir_ffi.rb +1 -1
- data/lib/gir_ffi/boxed_base.rb +40 -0
- data/lib/gir_ffi/builders/argument_builder.rb +11 -3
- data/lib/gir_ffi/builders/base_argument_builder.rb +4 -0
- data/lib/gir_ffi/builders/boxed_builder.rb +29 -0
- data/lib/gir_ffi/builders/callback_builder.rb +3 -1
- data/lib/gir_ffi/builders/callback_return_value_builder.rb +9 -1
- data/lib/gir_ffi/builders/field_builder.rb +68 -18
- data/lib/gir_ffi/builders/function_builder.rb +12 -2
- data/lib/gir_ffi/builders/mapping_method_builder.rb +7 -5
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/module_builder.rb +1 -1
- data/lib/gir_ffi/builders/registered_type_builder.rb +0 -9
- data/lib/gir_ffi/builders/return_value_builder.rb +0 -1
- data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -1
- data/lib/gir_ffi/builders/struct_builder.rb +4 -16
- data/lib/gir_ffi/builders/union_builder.rb +2 -13
- data/lib/gir_ffi/builders/user_defined_builder.rb +6 -6
- data/lib/gir_ffi/builders/vfunc_argument_builder.rb +44 -0
- data/lib/gir_ffi/builders/vfunc_builder.rb +3 -1
- data/lib/gir_ffi/callback_base.rb +5 -2
- data/lib/gir_ffi/class_base.rb +6 -7
- data/lib/gir_ffi/enum_base.rb +5 -0
- data/lib/gir_ffi/ffi_ext/pointer.rb +1 -0
- data/lib/gir_ffi/field_argument_info.rb +4 -0
- data/lib/gir_ffi/in_out_pointer.rb +1 -1
- data/lib/gir_ffi/in_pointer.rb +2 -2
- data/lib/gir_ffi/info_ext/i_arg_info.rb +12 -2
- data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_callback_info.rb +7 -2
- data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_registered_type_info.rb +7 -2
- data/lib/gir_ffi/info_ext/i_type_info.rb +21 -9
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +5 -0
- data/lib/gir_ffi/interface_base.rb +5 -0
- data/lib/gir_ffi/object_base.rb +5 -0
- data/lib/gir_ffi/receiver_argument_info.rb +5 -0
- data/lib/gir_ffi/registered_type_base.rb +5 -0
- data/lib/gir_ffi/return_value_info.rb +3 -1
- data/lib/gir_ffi/sized_array.rb +1 -1
- data/lib/gir_ffi/struct_base.rb +2 -24
- data/lib/gir_ffi/type_map.rb +5 -1
- data/lib/gir_ffi/union_base.rb +2 -2
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/zero_terminated.rb +1 -1
- data/test/base_test_helper.rb +6 -6
- data/test/ffi-glib/hash_table_test.rb +7 -7
- data/test/ffi-glib/iconv_test.rb +2 -3
- data/test/ffi-glib/main_loop_test.rb +2 -2
- data/test/ffi-gobject/gobject_test.rb +1 -1
- data/test/ffi-gobject/object_test.rb +5 -14
- data/test/ffi-gobject/value_test.rb +30 -6
- data/test/ffi-gobject_introspection/i_base_info_test.rb +6 -6
- data/test/ffi-gobject_introspection/i_repository_test.rb +2 -4
- data/test/gir_ffi/arg_helper_test.rb +1 -1
- data/test/gir_ffi/builder_test.rb +18 -12
- data/test/gir_ffi/builders/argument_builder_test.rb +2 -5
- data/test/gir_ffi/builders/callback_builder_test.rb +1 -1
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +11 -10
- data/test/gir_ffi/builders/field_builder_test.rb +0 -2
- data/test/gir_ffi/builders/function_builder_test.rb +156 -147
- data/test/gir_ffi/builders/interface_builder_test.rb +1 -1
- data/test/gir_ffi/builders/module_builder_test.rb +2 -2
- data/test/gir_ffi/builders/object_builder_test.rb +2 -2
- data/test/gir_ffi/builders/property_builder_test.rb +5 -5
- data/test/gir_ffi/builders/return_value_builder_test.rb +30 -30
- data/test/gir_ffi/builders/struct_builder_test.rb +14 -14
- data/test/gir_ffi/builders/user_defined_builder_test.rb +21 -22
- data/test/gir_ffi/builders/vfunc_builder_test.rb +57 -0
- data/test/gir_ffi/class_base_test.rb +8 -8
- data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
- data/test/gir_ffi/g_type_test.rb +1 -1
- data/test/gir_ffi/in_pointer_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +3 -3
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_field_info_test.rb +8 -8
- data/test/gir_ffi/info_ext/i_function_info_test.rb +13 -13
- data/test/gir_ffi/info_ext/i_type_info_test.rb +131 -132
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +2 -2
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +2 -2
- data/test/gir_ffi/interface_base_test.rb +3 -3
- data/test/gir_ffi/object_base_test.rb +3 -3
- data/test/gir_ffi/sized_array_test.rb +2 -2
- data/test/gir_ffi/type_map_test.rb +3 -3
- data/test/gir_ffi/unintrospectable_type_info_test.rb +14 -14
- data/test/gir_ffi/user_defined_property_info_test.rb +1 -1
- data/test/gir_ffi/user_defined_type_info_test.rb +25 -12
- data/test/gir_ffi/zero_terminated_test.rb +0 -1
- data/test/gir_ffi_test.rb +3 -3
- data/test/gir_ffi_test_helper.rb +4 -0
- data/test/integration/generated_gimarshallingtests_test.rb +31 -25
- data/test/integration/generated_gio_test.rb +1 -1
- data/test/integration/generated_gobject_test.rb +1 -1
- data/test/integration/generated_regress_test.rb +18 -22
- metadata +11 -8
@@ -4,7 +4,7 @@ describe GObject do
|
|
4
4
|
describe '.type_interfaces' do
|
5
5
|
it 'works, showing that returning an array of GType works' do
|
6
6
|
klass = GObject::TypeModule
|
7
|
-
ifcs = GObject.type_interfaces klass.
|
7
|
+
ifcs = GObject.type_interfaces klass.gtype
|
8
8
|
assert_equal 1, ifcs.size
|
9
9
|
end
|
10
10
|
end
|
@@ -225,14 +225,13 @@ describe Regress do
|
|
225
225
|
assert_equal 54, tb.some_int8
|
226
226
|
end
|
227
227
|
|
228
|
-
it 'has non-zero positive result for #
|
229
|
-
assert Regress::TestBoxed.
|
228
|
+
it 'has non-zero positive result for #gtype' do
|
229
|
+
assert Regress::TestBoxed.gtype > 0
|
230
230
|
end
|
231
231
|
|
232
232
|
it 'has a working method #_not_a_method' do
|
233
|
+
# NOTE: This method is marked as moved, but this is not exposed in the typelib
|
233
234
|
skip unless get_method_introspection_data('Regress', 'TestBoxed', '_not_a_method')
|
234
|
-
# FIXME: This method has been moved to a function. Should we still expose
|
235
|
-
# it as a method?
|
236
235
|
instance._not_a_method
|
237
236
|
pass
|
238
237
|
end
|
@@ -307,17 +306,16 @@ describe Regress do
|
|
307
306
|
end
|
308
307
|
|
309
308
|
describe 'Regress::TestBoxedD' do
|
309
|
+
let(:instance) { Regress::TestBoxedD.new 'foo', 42 }
|
310
310
|
before do
|
311
311
|
skip unless get_introspection_data 'Regress', 'TestBoxedD'
|
312
312
|
end
|
313
313
|
|
314
314
|
it 'creates an instance using #new' do
|
315
|
-
instance = Regress::TestBoxedD.new 'foo', 42
|
316
315
|
instance.must_be_instance_of Regress::TestBoxedD
|
317
316
|
end
|
318
317
|
|
319
318
|
it 'has a working method #copy' do
|
320
|
-
instance = Regress::TestBoxedD.new 'foo', 42
|
321
319
|
copy = instance.copy
|
322
320
|
copy.must_be_instance_of Regress::TestBoxedD
|
323
321
|
instance.get_magic.must_equal copy.get_magic
|
@@ -325,13 +323,11 @@ describe Regress do
|
|
325
323
|
end
|
326
324
|
|
327
325
|
it 'has a working method #free' do
|
328
|
-
instance = Regress::TestBoxedD.new 'foo', 42
|
329
326
|
instance.free
|
330
327
|
pass
|
331
328
|
end
|
332
329
|
|
333
330
|
it 'has a working method #get_magic' do
|
334
|
-
instance = Regress::TestBoxedD.new 'foo', 42
|
335
331
|
instance.get_magic.must_equal 'foo'.length + 42
|
336
332
|
end
|
337
333
|
end
|
@@ -466,7 +462,7 @@ describe Regress do
|
|
466
462
|
describe 'Regress::TestFundamentalObject' do
|
467
463
|
it 'does not have GObject::Object as an ancestor' do
|
468
464
|
refute_includes Regress::TestFundamentalObject.ancestors,
|
469
|
-
|
465
|
+
GObject::Object
|
470
466
|
end
|
471
467
|
|
472
468
|
it 'cannot be instantiated' do
|
@@ -521,8 +517,8 @@ describe Regress do
|
|
521
517
|
assert_includes metaclass.ancestors, GirFFI::InterfaceBase
|
522
518
|
end
|
523
519
|
|
524
|
-
it 'has non-zero positive result for #
|
525
|
-
Regress::TestInterface.
|
520
|
+
it 'has non-zero positive result for #gtype' do
|
521
|
+
Regress::TestInterface.gtype.must_be :>, 0
|
526
522
|
end
|
527
523
|
end
|
528
524
|
|
@@ -575,8 +571,8 @@ describe Regress do
|
|
575
571
|
let(:instance) { Regress::TestObj.new_from_file('foo') }
|
576
572
|
|
577
573
|
describe 'its gtype' do
|
578
|
-
it 'can be found through
|
579
|
-
gtype = Regress::TestObj.
|
574
|
+
it 'can be found through gtype and GObject.type_from_instance' do
|
575
|
+
gtype = Regress::TestObj.gtype
|
580
576
|
r = GObject.type_from_instance instance
|
581
577
|
assert_equal gtype, r
|
582
578
|
end
|
@@ -654,10 +650,9 @@ describe Regress do
|
|
654
650
|
|
655
651
|
it 'has a working method #instance_method_full' do
|
656
652
|
skip unless get_method_introspection_data('Regress', 'TestObj', 'instance_method_full')
|
653
|
+
ref_count(instance).must_equal 1
|
657
654
|
instance.instance_method_full
|
658
|
-
|
659
|
-
# refcount beforehand?
|
660
|
-
ref_count(instance).must_equal 0
|
655
|
+
ref_count(instance).must_equal 1
|
661
656
|
end
|
662
657
|
|
663
658
|
it 'has a working method #set_bare' do
|
@@ -723,7 +718,7 @@ describe Regress do
|
|
723
718
|
it 'has a working method #torture_signature_0' do
|
724
719
|
y, z, q = instance.torture_signature_0(-21, 'hello', 13)
|
725
720
|
assert_equal [-21, 2 * -21, 'hello'.length + 13],
|
726
|
-
|
721
|
+
[y, z, q]
|
727
722
|
end
|
728
723
|
|
729
724
|
it 'has a working method #torture_signature_1' do
|
@@ -1042,7 +1037,7 @@ describe Regress do
|
|
1042
1037
|
a = nil
|
1043
1038
|
GObject.signal_connect(instance, 'sig-with-array-prop') { |_, arr, _| a = arr }
|
1044
1039
|
GObject.signal_emit instance, 'sig-with-array-prop',
|
1045
|
-
|
1040
|
+
GLib::Array.from(:uint, [1, 2, 3])
|
1046
1041
|
a.to_a.must_equal [1, 2, 3]
|
1047
1042
|
end
|
1048
1043
|
|
@@ -1765,7 +1760,7 @@ describe Regress do
|
|
1765
1760
|
|
1766
1761
|
it 'has a working function #test_array_fixed_out_objects' do
|
1767
1762
|
result = Regress.test_array_fixed_out_objects
|
1768
|
-
gtype = Regress::TestObj.
|
1763
|
+
gtype = Regress::TestObj.gtype
|
1769
1764
|
|
1770
1765
|
result.size.must_equal 2
|
1771
1766
|
|
@@ -2060,7 +2055,7 @@ describe Regress do
|
|
2060
2055
|
date = r.get_value
|
2061
2056
|
skip unless date.respond_to? :get_year
|
2062
2057
|
assert_equal [1984, :december, 5],
|
2063
|
-
|
2058
|
+
[date.get_year, date.get_month, date.get_day]
|
2064
2059
|
end
|
2065
2060
|
|
2066
2061
|
it 'has a working function #test_def_error_quark' do
|
@@ -2502,8 +2497,8 @@ describe Regress do
|
|
2502
2497
|
it 'has a working function #test_torture_signature_2' do
|
2503
2498
|
a = 1
|
2504
2499
|
y, z, q = Regress.test_torture_signature_2 244,
|
2505
|
-
|
2506
|
-
|
2500
|
+
proc { |u| a = u }, 2, proc { a = 3 },
|
2501
|
+
'foofoo', 31
|
2507
2502
|
assert_equal [244, 2 * 244, 6 + 31], [y, z, q]
|
2508
2503
|
assert_equal 3, a
|
2509
2504
|
end
|
@@ -2603,6 +2598,7 @@ describe Regress do
|
|
2603
2598
|
|
2604
2599
|
it 'has a working function #test_versioning' do
|
2605
2600
|
skip unless get_introspection_data 'Regress', 'test_versioning'
|
2601
|
+
# TODO: Provide versioning info to the end user
|
2606
2602
|
Regress.test_versioning
|
2607
2603
|
pass
|
2608
2604
|
end
|
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.7.
|
4
|
+
version: 0.7.9
|
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:
|
11
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 5.5.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 5.5.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest-rspec_mocks
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.2.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 0.2.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,12 +159,14 @@ files:
|
|
159
159
|
- lib/gir_ffi.rb
|
160
160
|
- lib/gir_ffi/allocation_helper.rb
|
161
161
|
- lib/gir_ffi/arg_helper.rb
|
162
|
+
- lib/gir_ffi/boxed_base.rb
|
162
163
|
- lib/gir_ffi/builder.rb
|
163
164
|
- lib/gir_ffi/builder_helper.rb
|
164
165
|
- lib/gir_ffi/builders/argument_builder.rb
|
165
166
|
- lib/gir_ffi/builders/argument_builder_collection.rb
|
166
167
|
- lib/gir_ffi/builders/base_argument_builder.rb
|
167
168
|
- lib/gir_ffi/builders/base_type_builder.rb
|
169
|
+
- lib/gir_ffi/builders/boxed_builder.rb
|
168
170
|
- lib/gir_ffi/builders/c_to_ruby_convertor.rb
|
169
171
|
- lib/gir_ffi/builders/callback_argument_builder.rb
|
170
172
|
- lib/gir_ffi/builders/callback_builder.rb
|
@@ -195,6 +197,7 @@ files:
|
|
195
197
|
- lib/gir_ffi/builders/unintrospectable_builder.rb
|
196
198
|
- lib/gir_ffi/builders/union_builder.rb
|
197
199
|
- lib/gir_ffi/builders/user_defined_builder.rb
|
200
|
+
- lib/gir_ffi/builders/vfunc_argument_builder.rb
|
198
201
|
- lib/gir_ffi/builders/vfunc_builder.rb
|
199
202
|
- lib/gir_ffi/builders/with_layout.rb
|
200
203
|
- lib/gir_ffi/callback_base.rb
|
@@ -367,7 +370,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
367
370
|
version: '0'
|
368
371
|
requirements: []
|
369
372
|
rubyforge_project:
|
370
|
-
rubygems_version: 2.
|
373
|
+
rubygems_version: 2.4.5
|
371
374
|
signing_key:
|
372
375
|
specification_version: 4
|
373
376
|
summary: FFI-based GObject binding using the GObject Introspection Repository
|