gir_ffi 0.10.2 → 0.11.0

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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +13 -0
  3. data/Gemfile +9 -4
  4. data/README.md +3 -2
  5. data/Rakefile +2 -1
  6. data/lib/ffi-glib/byte_array.rb +1 -1
  7. data/lib/ffi-glib/main_loop.rb +2 -1
  8. data/lib/ffi-glib/strv.rb +5 -2
  9. data/lib/ffi-glib/variant.rb +3 -5
  10. data/lib/ffi-glib.rb +4 -0
  11. data/lib/ffi-gobject/closure.rb +8 -10
  12. data/lib/ffi-gobject/object.rb +9 -6
  13. data/lib/ffi-gobject/param_spec.rb +4 -0
  14. data/lib/ffi-gobject/value.rb +13 -16
  15. data/lib/ffi-gobject_introspection/gobject_type_init.rb +18 -0
  16. data/lib/ffi-gobject_introspection/i_callable_info.rb +1 -5
  17. data/lib/ffi-gobject_introspection/i_constant_info.rb +3 -3
  18. data/lib/ffi-gobject_introspection/i_repository.rb +3 -47
  19. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +3 -11
  20. data/lib/ffi-gobject_introspection/lib.rb +8 -31
  21. data/lib/{gir_ffi-base/glib → ffi-gobject_introspection}/strv.rb +9 -13
  22. data/lib/ffi-gobject_introspection.rb +47 -2
  23. data/lib/gir_ffi/allocation_helper.rb +1 -19
  24. data/lib/gir_ffi/arg_helper.rb +36 -26
  25. data/lib/{gir_ffi-base/glib → gir_ffi}/boolean.rb +7 -5
  26. data/lib/gir_ffi/boxed_base.rb +5 -23
  27. data/lib/gir_ffi/builder.rb +3 -3
  28. data/lib/gir_ffi/builders/argument_builder.rb +7 -8
  29. data/lib/gir_ffi/builders/base_argument_builder.rb +0 -1
  30. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -2
  31. data/lib/gir_ffi/builders/callback_return_value_builder.rb +21 -13
  32. data/lib/gir_ffi/builders/field_builder.rb +4 -10
  33. data/lib/gir_ffi/builders/module_builder.rb +6 -4
  34. data/lib/gir_ffi/builders/object_builder.rb +16 -16
  35. data/lib/gir_ffi/builders/struct_builder.rb +4 -6
  36. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  37. data/lib/gir_ffi/builders/user_defined_builder.rb +83 -23
  38. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +12 -17
  39. data/lib/gir_ffi/class_base.rb +0 -4
  40. data/lib/gir_ffi/core.rb +16 -13
  41. data/lib/gir_ffi/enum_base.rb +2 -41
  42. data/lib/gir_ffi/enum_like_base.rb +48 -0
  43. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  44. data/lib/gir_ffi/flags_base.rb +2 -41
  45. data/lib/gir_ffi/in_out_pointer.rb +1 -1
  46. data/lib/gir_ffi/in_pointer.rb +4 -4
  47. data/lib/gir_ffi/info_ext/i_type_info.rb +14 -5
  48. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +8 -0
  49. data/lib/gir_ffi/module_base.rb +4 -0
  50. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  51. data/lib/gir_ffi/sized_array.rb +6 -6
  52. data/lib/gir_ffi/struct_base.rb +1 -6
  53. data/lib/gir_ffi/struct_like_base.rb +54 -45
  54. data/lib/gir_ffi/type_map.rb +6 -7
  55. data/lib/gir_ffi/union_base.rb +1 -1
  56. data/lib/gir_ffi/{user_defined_type_info.rb → user_defined_object_info.rb} +1 -2
  57. data/lib/gir_ffi/user_defined_property_info.rb +80 -2
  58. data/lib/gir_ffi/version.rb +1 -1
  59. data/lib/gir_ffi-base/gobject/lib.rb +0 -1
  60. data/lib/gir_ffi-base/gobject.rb +3 -5
  61. data/lib/gir_ffi-base.rb +3 -8
  62. data/tasks/test.rake +17 -3
  63. data/test/base_test_helper.rb +39 -23
  64. data/test/ffi-glib/closure_test.rb +37 -0
  65. data/test/ffi-glib/main_loop_test.rb +24 -0
  66. data/test/ffi-glib/ruby_closure_test.rb +0 -5
  67. data/test/ffi-gobject/object_test.rb +6 -10
  68. data/test/ffi-gobject/param_spec_test.rb +17 -5
  69. data/test/ffi-gobject/value_test.rb +15 -6
  70. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +25 -0
  71. data/test/ffi-gobject_introspection/i_base_info_test.rb +1 -1
  72. data/test/ffi-gobject_introspection/i_repository_test.rb +18 -0
  73. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +40 -0
  74. data/test/{gir_ffi-base/glib → ffi-gobject_introspection}/strv_test.rb +8 -8
  75. data/test/gir_ffi/allocation_helper_test.rb +35 -0
  76. data/test/gir_ffi/arg_helper_test.rb +102 -7
  77. data/test/gir_ffi/boolean_test.rb +34 -0
  78. data/test/gir_ffi/boxed_base_test.rb +46 -6
  79. data/test/gir_ffi/builder_test.rb +88 -29
  80. data/test/gir_ffi/builders/argument_builder_test.rb +19 -0
  81. data/test/gir_ffi/builders/callback_argument_builder_test.rb +17 -0
  82. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +1 -1
  83. data/test/gir_ffi/builders/field_builder_test.rb +2 -1
  84. data/test/gir_ffi/builders/struct_builder_test.rb +42 -25
  85. data/test/gir_ffi/builders/user_defined_builder_test.rb +365 -17
  86. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +100 -0
  87. data/test/gir_ffi/builders/vfunc_builder_test.rb +5 -3
  88. data/test/{gir_ffi_test.rb → gir_ffi/core_test.rb} +8 -6
  89. data/test/gir_ffi/in_out_pointer_test.rb +1 -1
  90. data/test/gir_ffi/receiver_argument_info_test.rb +32 -0
  91. data/test/gir_ffi/sized_array_test.rb +34 -0
  92. data/test/gir_ffi/struct_base_test.rb +4 -32
  93. data/test/gir_ffi/struct_like_base_test.rb +164 -0
  94. data/test/gir_ffi/union_base_test.rb +4 -20
  95. data/test/gir_ffi/{user_defined_type_info_test.rb → user_defined_object_info_test.rb} +10 -10
  96. data/test/gir_ffi/user_defined_property_info_test.rb +22 -5
  97. data/test/gir_ffi/version_test.rb +1 -1
  98. data/test/integration/callback_exceptions_test.rb +2 -0
  99. data/test/integration/derived_classes_test.rb +2 -0
  100. data/test/integration/generated_everything_test.rb +22 -0
  101. data/test/integration/generated_gimarshallingtests_test.rb +23 -21
  102. data/test/integration/generated_gio_test.rb +2 -0
  103. data/test/integration/generated_glib_test.rb +2 -0
  104. data/test/integration/generated_gst_test.rb +2 -0
  105. data/test/integration/generated_gtop_test.rb +2 -0
  106. data/test/integration/generated_regress_test.rb +113 -29
  107. data/test/integration/generated_secret_test.rb +2 -0
  108. data/test/integration/generated_warnlib_test.rb +2 -0
  109. data/test/integration/method_lookup_test.rb +2 -0
  110. data/test/introspection_test_helper.rb +15 -0
  111. metadata +21 -27
  112. data/lib/gir_ffi-base/glib.rb +0 -8
  113. data/test/gir_ffi-base/glib/boolean_test.rb +0 -34
@@ -99,7 +99,7 @@ describe Regress do
99
99
  end
100
100
 
101
101
  it 'has a writable field arr' do
102
- instance.arr.must_equal nil
102
+ instance.arr.must_be_nil
103
103
  instance.arr = [1, 2, 3]
104
104
  # TODO: len should be set automatically
105
105
  instance.len = 3
@@ -394,6 +394,30 @@ describe Regress do
394
394
  end
395
395
  end
396
396
 
397
+ describe 'Regress::AnonymousUnionAndStruct' do
398
+ let(:instance) { Regress::AnonymousUnionAndStruct.new }
399
+
400
+ before do
401
+ skip unless get_introspection_data 'Regress', 'AnonymousUnionAndStruct'
402
+ end
403
+
404
+ it 'has a writable field x' do
405
+ instance.x = 42
406
+ instance.x.must_equal 42
407
+ end
408
+
409
+ it 'has a writable field a' do
410
+ skip 'Anonymous struct fields are not exposed in the GIR data'
411
+ end
412
+
413
+ it 'has a writable field b' do
414
+ skip 'Anonymous struct fields are not exposed in the GIR data'
415
+ end
416
+
417
+ it 'has a writable field padding' do
418
+ skip 'Anonymous union fields are not exposed in the GIR data'
419
+ end
420
+ end
397
421
  it 'has the constant BOOL_CONSTANT' do
398
422
  skip unless get_introspection_data 'Regress', 'BOOL_CONSTANT'
399
423
  Regress::BOOL_CONSTANT.must_equal true
@@ -782,11 +806,11 @@ describe Regress do
782
806
 
783
807
  describe "its 'string' property" do
784
808
  it 'can be retrieved with #get_property' do
785
- instance.get_property('string').must_equal nil
809
+ instance.get_property('string').must_be_nil
786
810
  end
787
811
 
788
812
  it 'can be retrieved with #string' do
789
- instance.string.must_equal nil
813
+ instance.string.must_be_nil
790
814
  end
791
815
 
792
816
  it 'can be set with #set_property' do
@@ -895,7 +919,7 @@ describe Regress do
895
919
  describe 'Regress::FooStruct' do
896
920
  let(:instance) { Regress::FooStruct.new }
897
921
 
898
- it 'blocks access to the field priv' do
922
+ it 'blocks access to the hidden struct field priv' do
899
923
  proc { instance.priv = nil }.must_raise NoMethodError
900
924
  proc { instance.priv }.must_raise NoMethodError
901
925
  end
@@ -956,7 +980,6 @@ describe Regress do
956
980
 
957
981
  describe 'Regress::FooSubobject' do
958
982
  it 'creates an instance using #new' do
959
- # TODO: Guard against instantiating abstract classes
960
983
  skip 'This function is defined in the header but not implemented'
961
984
  end
962
985
  end
@@ -1167,7 +1190,7 @@ describe Regress do
1167
1190
  instance.nested_a.some_int.must_equal 12_345
1168
1191
  end
1169
1192
 
1170
- it 'blocks access to the field priv' do
1193
+ it 'blocks access to the hidden struct field priv' do
1171
1194
  proc { instance.priv = nil }.must_raise NoMethodError
1172
1195
  proc { instance.priv }.must_raise NoMethodError
1173
1196
  end
@@ -1440,20 +1463,18 @@ describe Regress do
1440
1463
  proc { Regress::TestFundamentalObject.new }.must_raise NoMethodError
1441
1464
  end
1442
1465
 
1443
- # NOTE: Instance methods can only be tested on the subclass, since
1444
- # TestFundamentalObject is an abstract class.
1445
- let(:instance) { Regress::TestFundamentalSubObject.new 'foo' }
1466
+ let(:derived_instance) { Regress::TestFundamentalSubObject.new 'foo' }
1446
1467
 
1447
1468
  it 'has a working method #ref' do
1448
- instance.refcount.must_equal 1
1449
- instance.ref
1450
- instance.refcount.must_equal 2
1469
+ derived_instance.refcount.must_equal 1
1470
+ derived_instance.ref
1471
+ derived_instance.refcount.must_equal 2
1451
1472
  end
1452
1473
 
1453
1474
  it 'has a working method #unref' do
1454
- instance.refcount.must_equal 1
1455
- instance.unref
1456
- instance.refcount.must_equal 0
1475
+ derived_instance.refcount.must_equal 1
1476
+ derived_instance.unref
1477
+ derived_instance.refcount.must_equal 0
1457
1478
  end
1458
1479
  end
1459
1480
 
@@ -1483,23 +1504,28 @@ describe Regress do
1483
1504
  skip unless get_introspection_data 'Regress', 'TestInheritDrawable'
1484
1505
  end
1485
1506
 
1486
- let(:instance) { ConcreteDrawable.new }
1507
+ it 'cannot be instantiated' do
1508
+ proc { Regress::TestInheritDrawable.new }.must_raise NoMethodError
1509
+ end
1510
+
1511
+ let(:derived_instance) { ConcreteDrawable.new }
1512
+
1487
1513
  it 'has a working method #do_foo' do
1488
- instance.do_foo 42
1514
+ derived_instance.do_foo 42
1489
1515
  pass
1490
1516
  end
1491
1517
 
1492
1518
  it 'has a working method #do_foo_maybe_throw' do
1493
- instance.do_foo_maybe_throw 42
1494
- proc { instance.do_foo_maybe_throw 41 }.must_raise GirFFI::GLibError
1519
+ derived_instance.do_foo_maybe_throw 42
1520
+ proc { derived_instance.do_foo_maybe_throw 41 }.must_raise GirFFI::GLibError
1495
1521
  end
1496
1522
 
1497
1523
  it 'has a working method #get_origin' do
1498
- instance.get_origin.must_equal [0, 0]
1524
+ derived_instance.get_origin.must_equal [0, 0]
1499
1525
  end
1500
1526
 
1501
1527
  it 'has a working method #get_size' do
1502
- instance.get_size.must_equal [42, 42]
1528
+ derived_instance.get_size.must_equal [42, 42]
1503
1529
  end
1504
1530
  end
1505
1531
 
@@ -1596,6 +1622,17 @@ describe Regress do
1596
1622
  instance.do_matrix('bar').must_equal 42
1597
1623
  end
1598
1624
 
1625
+ it 'has a working method #emit_sig_with_array_len_prop' do
1626
+ skip unless get_method_introspection_data('Regress', 'TestObj',
1627
+ 'emit_sig_with_array_len_prop')
1628
+ array = nil
1629
+ instance.signal_connect 'sig-with-array-len-prop' do |_obj, ary|
1630
+ array = ary.to_a
1631
+ end
1632
+ instance.emit_sig_with_array_len_prop
1633
+ array.to_a.must_equal [0, 1, 2, 3, 4]
1634
+ end
1635
+
1599
1636
  it 'has a working method #emit_sig_with_foreign_struct' do
1600
1637
  skip unless get_method_introspection_data('Regress', 'TestObj',
1601
1638
  'emit_sig_with_foreign_struct')
@@ -1657,6 +1694,21 @@ describe Regress do
1657
1694
  instance.ref_count.must_equal 1
1658
1695
  end
1659
1696
 
1697
+ it 'has a working method #not_nullable_element_typed_gpointer_in' do
1698
+ skip unless get_method_introspection_data('Regress', 'TestObj',
1699
+ 'not_nullable_element_typed_gpointer_in')
1700
+ instance.not_nullable_element_typed_gpointer_in [1, 2, 3]
1701
+ # TODO: Make method raise when passed nil
1702
+ end
1703
+
1704
+ it 'has a working method #not_nullable_typed_gpointer_in' do
1705
+ skip unless get_method_introspection_data('Regress', 'TestObj',
1706
+ 'not_nullable_typed_gpointer_in')
1707
+ obj = Regress::TestObj.new_from_file('bar')
1708
+ instance.not_nullable_typed_gpointer_in obj
1709
+ # TODO: Make method raise when passed nil
1710
+ end
1711
+
1660
1712
  it 'has a working method #set_bare' do
1661
1713
  obj = Regress::TestObj.new_from_file('bar')
1662
1714
  instance.set_bare obj
@@ -2198,7 +2250,7 @@ describe Regress do
2198
2250
  Regress::TestPrivateEnum[:public_enum_before].must_equal 1
2199
2251
  end
2200
2252
  it 'does not have the member :private' do
2201
- Regress::TestPrivateEnum[:private].must_equal nil
2253
+ Regress::TestPrivateEnum[:private].must_be_nil
2202
2254
  end
2203
2255
  it 'has the member :public_enum_after' do
2204
2256
  Regress::TestPrivateEnum[:public_enum_after].must_equal 4
@@ -2432,7 +2484,7 @@ describe Regress do
2432
2484
 
2433
2485
  it 'has a writable field obj' do
2434
2486
  o = Regress::TestSubObj.new
2435
- instance.obj.must_equal nil
2487
+ instance.obj.must_be_nil
2436
2488
  instance.obj = o
2437
2489
  instance.obj.must_equal o
2438
2490
  end
@@ -2455,7 +2507,7 @@ describe Regress do
2455
2507
  end
2456
2508
 
2457
2509
  it 'has a writable field field' do
2458
- instance.field.must_equal nil
2510
+ instance.field.must_be_nil
2459
2511
  o = Regress::TestSubObj.new
2460
2512
  instance.field = o
2461
2513
  instance.field.must_equal o
@@ -2564,7 +2616,7 @@ describe Regress do
2564
2616
 
2565
2617
  it 'has a writable field data1' do
2566
2618
  instance.data1.must_be :null?
2567
- instance.data1 = GirFFI::AllocationHelper.allocate(:int32).tap { |it| it.put_int(0, 42) }
2619
+ instance.data1 = FFI::MemoryPointer.new(:int32).tap { |it| it.put_int(0, 42) }
2568
2620
  instance.data1.read_int.must_equal 42
2569
2621
  end
2570
2622
 
@@ -2872,6 +2924,13 @@ describe Regress do
2872
2924
  pass
2873
2925
  end
2874
2926
 
2927
+ it 'has a working function #get_variant' do
2928
+ skip unless get_introspection_data 'Regress', 'get_variant'
2929
+ var = Regress.get_variant
2930
+ var.get_int32.must_equal 42
2931
+ # TODO: Make var not floating
2932
+ end
2933
+
2875
2934
  it 'has a working function #global_get_flags_out' do
2876
2935
  result = Regress.global_get_flags_out
2877
2936
  result.must_equal(flag1: true, flag3: true)
@@ -3003,13 +3062,19 @@ describe Regress do
3003
3062
  end
3004
3063
 
3005
3064
  it 'has a working function #test_array_int_null_out' do
3006
- assert_equal nil, Regress.test_array_int_null_out
3065
+ Regress.test_array_int_null_out.must_be_nil
3007
3066
  end
3008
3067
 
3009
3068
  it 'has a working function #test_array_int_out' do
3010
3069
  Regress.test_array_int_out.must_be :==, [0, 1, 2, 3, 4]
3011
3070
  end
3012
3071
 
3072
+ it 'has a working function #test_array_struct_out' do
3073
+ skip unless get_introspection_data 'Regress', 'test_array_struct_out'
3074
+ result = Regress.test_array_struct_out
3075
+ result.map(&:some_int).must_equal [22, 33, 44]
3076
+ end
3077
+
3013
3078
  it 'has a working function #test_async_ready_callback' do
3014
3079
  main_loop = GLib::MainLoop.new nil, false
3015
3080
 
@@ -3408,7 +3473,7 @@ describe Regress do
3408
3473
 
3409
3474
  it 'has a working function #test_glist_null_out' do
3410
3475
  result = Regress.test_glist_null_out
3411
- assert_equal nil, result
3476
+ result.must_be_nil
3412
3477
  end
3413
3478
 
3414
3479
  it 'has a working function #test_gslist_container_return' do
@@ -3449,7 +3514,7 @@ describe Regress do
3449
3514
 
3450
3515
  it 'has a working function #test_gslist_null_out' do
3451
3516
  result = Regress.test_gslist_null_out
3452
- assert_equal nil, result
3517
+ result.must_be_nil
3453
3518
  end
3454
3519
 
3455
3520
  it 'has a working function #test_gtype' do
@@ -3554,6 +3619,13 @@ describe Regress do
3554
3619
  Regress.test_nested_parameter(3).must_be_nil
3555
3620
  end
3556
3621
 
3622
+ it 'has a working function #test_noptr_callback' do
3623
+ skip unless get_introspection_data 'Regress', 'test_noptr_callback'
3624
+ a = 0
3625
+ Regress.test_noptr_callback { a = 1 }
3626
+ a.must_equal 1
3627
+ end
3628
+
3557
3629
  it 'has a working function #test_null_gerror_callback' do
3558
3630
  value = nil
3559
3631
  Regress.test_owned_gerror_callback { |err| value = err }
@@ -3566,6 +3638,18 @@ describe Regress do
3566
3638
  value.message.must_equal 'regression test owned error'
3567
3639
  end
3568
3640
 
3641
+ it 'has a working function #test_return_allow_none' do
3642
+ skip unless get_introspection_data 'Regress', 'test_return_allow_none'
3643
+ result = Regress.test_return_allow_none
3644
+ result.must_be_nil
3645
+ end
3646
+
3647
+ it 'has a working function #test_return_nullable' do
3648
+ skip unless get_introspection_data 'Regress', 'test_return_nullable'
3649
+ result = Regress.test_return_nullable
3650
+ result.must_be_nil
3651
+ end
3652
+
3569
3653
  it 'has a working function #test_short' do
3570
3654
  result = Regress.test_short 23
3571
3655
  assert_equal 23, result
@@ -3724,7 +3808,7 @@ describe Regress do
3724
3808
  end
3725
3809
 
3726
3810
  it 'has a working function #test_utf8_null_out' do
3727
- assert_equal nil, Regress.test_utf8_null_out
3811
+ Regress.test_utf8_null_out.must_be_nil
3728
3812
  end
3729
3813
 
3730
3814
  it 'has a working function #test_utf8_out' do
@@ -2,6 +2,8 @@
2
2
  require 'gir_ffi_test_helper'
3
3
 
4
4
  describe 'The generated Secret module' do
5
+ cover 'Secret'
6
+
5
7
  describe 'Secret::Schema' do
6
8
  it 'has a working constructor' do
7
9
  begin
@@ -2,6 +2,8 @@
2
2
  require 'gir_ffi_test_helper'
3
3
 
4
4
  describe 'The generated WarnLib module' do
5
+ cover 'WarnLib'
6
+
5
7
  before do
6
8
  begin
7
9
  GirFFI.setup :WarnLib
@@ -3,6 +3,8 @@ require 'gir_ffi_test_helper'
3
3
 
4
4
  # Tests how methods are looked up and generated on first use.
5
5
  describe 'Looking up methods' do
6
+ cover 'GirFFI'
7
+
6
8
  before do
7
9
  save_module :Regress
8
10
  GirFFI.setup :Regress
@@ -3,6 +3,21 @@ require 'base_test_helper'
3
3
 
4
4
  require 'ffi-gobject_introspection'
5
5
 
6
+ GObjectIntrospection::IRepository.prepend_search_path File.join(File.dirname(__FILE__), 'lib')
7
+
8
+ module LocalSharedLibrary
9
+ def shared_library(namespace)
10
+ case namespace
11
+ when 'Everything', 'GIMarshallingTests', 'Regress', 'Utility', 'WarnLib'
12
+ File.join(File.dirname(__FILE__), 'lib', "lib#{namespace.downcase}.so")
13
+ else
14
+ super
15
+ end
16
+ end
17
+ end
18
+
19
+ GObjectIntrospection::IRepository.prepend LocalSharedLibrary
20
+
6
21
  module IntrospectionTestExtensions
7
22
  module_function
8
23
 
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.10.2
4
+ version: 0.11.0
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: 2016-04-29 00:00:00.000000000 Z
11
+ date: 2016-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -66,34 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '5.5'
69
- - !ruby/object:Gem::Dependency
70
- name: minitest-rspec_mocks
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.3.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.3.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec-mocks
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 3.4.1
75
+ version: 3.5.0
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 3.4.1
82
+ version: 3.5.0
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rake
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -173,6 +159,7 @@ files:
173
159
  - lib/ffi-gobject/value.rb
174
160
  - lib/ffi-gobject_introspection.rb
175
161
  - lib/ffi-gobject_introspection/g_error.rb
162
+ - lib/ffi-gobject_introspection/gobject_type_init.rb
176
163
  - lib/ffi-gobject_introspection/i_arg_info.rb
177
164
  - lib/ffi-gobject_introspection/i_base_info.rb
178
165
  - lib/ffi-gobject_introspection/i_callable_info.rb
@@ -195,15 +182,14 @@ files:
195
182
  - lib/ffi-gobject_introspection/i_value_info.rb
196
183
  - lib/ffi-gobject_introspection/i_vfunc_info.rb
197
184
  - lib/ffi-gobject_introspection/lib.rb
185
+ - lib/ffi-gobject_introspection/strv.rb
198
186
  - lib/gir_ffi-base.rb
199
- - lib/gir_ffi-base/glib.rb
200
- - lib/gir_ffi-base/glib/boolean.rb
201
- - lib/gir_ffi-base/glib/strv.rb
202
187
  - lib/gir_ffi-base/gobject.rb
203
188
  - lib/gir_ffi-base/gobject/lib.rb
204
189
  - lib/gir_ffi.rb
205
190
  - lib/gir_ffi/allocation_helper.rb
206
191
  - lib/gir_ffi/arg_helper.rb
192
+ - lib/gir_ffi/boolean.rb
207
193
  - lib/gir_ffi/boxed_base.rb
208
194
  - lib/gir_ffi/builder.rb
209
195
  - lib/gir_ffi/builder_helper.rb
@@ -262,6 +248,7 @@ files:
262
248
  - lib/gir_ffi/class_base.rb
263
249
  - lib/gir_ffi/core.rb
264
250
  - lib/gir_ffi/enum_base.rb
251
+ - lib/gir_ffi/enum_like_base.rb
265
252
  - lib/gir_ffi/error_argument_info.rb
266
253
  - lib/gir_ffi/error_type_info.rb
267
254
  - lib/gir_ffi/ffi_ext.rb
@@ -311,8 +298,8 @@ files:
311
298
  - lib/gir_ffi/unintrospectable_type_info.rb
312
299
  - lib/gir_ffi/union.rb
313
300
  - lib/gir_ffi/union_base.rb
301
+ - lib/gir_ffi/user_defined_object_info.rb
314
302
  - lib/gir_ffi/user_defined_property_info.rb
315
- - lib/gir_ffi/user_defined_type_info.rb
316
303
  - lib/gir_ffi/variable_name_generator.rb
317
304
  - lib/gir_ffi/version.rb
318
305
  - lib/gir_ffi/vfunc_implementation.rb
@@ -323,6 +310,7 @@ files:
323
310
  - test/ffi-glib/array_test.rb
324
311
  - test/ffi-glib/byte_array_test.rb
325
312
  - test/ffi-glib/bytes_test.rb
313
+ - test/ffi-glib/closure_test.rb
326
314
  - test/ffi-glib/destroy_notify_test.rb
327
315
  - test/ffi-glib/hash_table_test.rb
328
316
  - test/ffi-glib/iconv_test.rb
@@ -338,6 +326,7 @@ files:
338
326
  - test/ffi-gobject/object_test.rb
339
327
  - test/ffi-gobject/param_spec_test.rb
340
328
  - test/ffi-gobject/value_test.rb
329
+ - test/ffi-gobject_introspection/gobject_type_init_test.rb
341
330
  - test/ffi-gobject_introspection/i_base_info_test.rb
342
331
  - test/ffi-gobject_introspection/i_constant_info_test.rb
343
332
  - test/ffi-gobject_introspection/i_enum_info_test.rb
@@ -350,11 +339,13 @@ files:
350
339
  - test/ffi-gobject_introspection/i_struct_info_test.rb
351
340
  - test/ffi-gobject_introspection/i_type_info_test.rb
352
341
  - test/ffi-gobject_introspection/i_union_info_test.rb
342
+ - test/ffi-gobject_introspection/i_vfunc_info_test.rb
353
343
  - test/ffi-gobject_introspection/lib_test.rb
344
+ - test/ffi-gobject_introspection/strv_test.rb
354
345
  - test/ffi-gobject_test.rb
355
- - test/gir_ffi-base/glib/boolean_test.rb
356
- - test/gir_ffi-base/glib/strv_test.rb
346
+ - test/gir_ffi/allocation_helper_test.rb
357
347
  - test/gir_ffi/arg_helper_test.rb
348
+ - test/gir_ffi/boolean_test.rb
358
349
  - test/gir_ffi/boxed_base_test.rb
359
350
  - test/gir_ffi/builder_test.rb
360
351
  - test/gir_ffi/builders/argument_builder_test.rb
@@ -380,9 +371,11 @@ files:
380
371
  - test/gir_ffi/builders/unintrospectable_builder_test.rb
381
372
  - test/gir_ffi/builders/union_builder_test.rb
382
373
  - test/gir_ffi/builders/user_defined_builder_test.rb
374
+ - test/gir_ffi/builders/vfunc_argument_builder_test.rb
383
375
  - test/gir_ffi/builders/vfunc_builder_test.rb
384
376
  - test/gir_ffi/callback_base_test.rb
385
377
  - test/gir_ffi/class_base_test.rb
378
+ - test/gir_ffi/core_test.rb
386
379
  - test/gir_ffi/error_type_info_test.rb
387
380
  - test/gir_ffi/ffi_ext/pointer_test.rb
388
381
  - test/gir_ffi/g_type_test.rb
@@ -401,17 +394,18 @@ files:
401
394
  - test/gir_ffi/method_stubber_test.rb
402
395
  - test/gir_ffi/object_base_test.rb
403
396
  - test/gir_ffi/object_store_test.rb
397
+ - test/gir_ffi/receiver_argument_info_test.rb
404
398
  - test/gir_ffi/sized_array_test.rb
405
399
  - test/gir_ffi/struct_base_test.rb
400
+ - test/gir_ffi/struct_like_base_test.rb
406
401
  - test/gir_ffi/type_map_test.rb
407
402
  - test/gir_ffi/unintrospectable_type_info_test.rb
408
403
  - test/gir_ffi/union_base_test.rb
404
+ - test/gir_ffi/user_defined_object_info_test.rb
409
405
  - test/gir_ffi/user_defined_property_info_test.rb
410
- - test/gir_ffi/user_defined_type_info_test.rb
411
406
  - test/gir_ffi/variable_name_generator_test.rb
412
407
  - test/gir_ffi/version_test.rb
413
408
  - test/gir_ffi/zero_terminated_test.rb
414
- - test/gir_ffi_test.rb
415
409
  - test/gir_ffi_test_helper.rb
416
410
  - test/integration/callback_exceptions_test.rb
417
411
  - test/integration/derived_classes_test.rb
@@ -449,7 +443,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
449
443
  requirements:
450
444
  - - ">="
451
445
  - !ruby/object:Gem::Version
452
- version: 2.0.0
446
+ version: 2.1.0
453
447
  required_rubygems_version: !ruby/object:Gem::Requirement
454
448
  requirements:
455
449
  - - ">="
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Ensure GLib is defined by GirFFI itself
4
- raise 'The module GLib was already defined elsewhere' if Kernel.const_defined? :GLib
5
-
6
- # Module representing GLib's GLib namespace.
7
- module GLib
8
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'base_test_helper'
3
-
4
- describe GLib::Boolean do
5
- it 'has the same native size as an int' do
6
- FFI.type_size(GLib::Boolean).must_equal FFI.type_size :int
7
- end
8
-
9
- describe '.from_native' do
10
- it 'converts 0 to false' do
11
- GLib::Boolean.from_native(0, 'whatever').must_equal false
12
- end
13
-
14
- it 'converts 1 to true' do
15
- GLib::Boolean.from_native(1, 'whatever').must_equal true
16
- end
17
- end
18
-
19
- describe '.to_native' do
20
- it 'converts false to 0' do
21
- GLib::Boolean.to_native(false, 'whatever').must_equal 0
22
- end
23
-
24
- it 'converts true to 1' do
25
- GLib::Boolean.to_native(true, 'whatever').must_equal 1
26
- end
27
- end
28
-
29
- describe '.size' do
30
- it 'returns the correct type size' do
31
- GLib::Boolean.size.must_equal FFI.type_size :int
32
- end
33
- end
34
- end