gir_ffi 0.7.7 → 0.7.8

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +9 -0
  3. data/lib/ffi-glib/array.rb +1 -1
  4. data/lib/ffi-glib/error.rb +1 -2
  5. data/lib/ffi-glib/hash_table.rb +2 -2
  6. data/lib/ffi-glib/variant.rb +1 -1
  7. data/lib/ffi-gobject/base.rb +23 -23
  8. data/lib/ffi-gobject/object.rb +7 -3
  9. data/lib/ffi-gobject/value.rb +6 -1
  10. data/lib/ffi-gobject.rb +9 -6
  11. data/lib/ffi-gobject_introspection/i_base_info.rb +3 -3
  12. data/lib/ffi-gobject_introspection/i_constant_info.rb +1 -1
  13. data/lib/ffi-gobject_introspection/i_repository.rb +4 -1
  14. data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
  15. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +7 -0
  16. data/lib/ffi-gobject_introspection/lib.rb +1 -1
  17. data/lib/gir_ffi/builders/argument_builder.rb +1 -1
  18. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +37 -29
  19. data/lib/gir_ffi/builders/callback_argument_builder.rb +57 -27
  20. data/lib/gir_ffi/builders/closure_convertor.rb +12 -8
  21. data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +12 -8
  22. data/lib/gir_ffi/builders/constructor_result_convertor.rb +11 -7
  23. data/lib/gir_ffi/builders/field_builder.rb +1 -1
  24. data/lib/gir_ffi/builders/function_builder.rb +1 -1
  25. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  26. data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
  27. data/lib/gir_ffi/builders/method_template.rb +1 -1
  28. data/lib/gir_ffi/builders/null_convertor.rb +11 -7
  29. data/lib/gir_ffi/builders/property_builder.rb +1 -1
  30. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +17 -13
  31. data/lib/gir_ffi/error_argument_info.rb +1 -1
  32. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  33. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +12 -0
  34. data/lib/gir_ffi/info_ext/safe_constant_name.rb +2 -2
  35. data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -1
  36. data/lib/gir_ffi/info_ext.rb +1 -0
  37. data/lib/gir_ffi/module_base.rb +1 -1
  38. data/lib/gir_ffi/receiver_argument_info.rb +15 -12
  39. data/lib/gir_ffi/user_data_argument_info.rb +17 -15
  40. data/lib/gir_ffi/user_data_type_info.rb +14 -12
  41. data/lib/gir_ffi/version.rb +1 -1
  42. data/lib/gir_ffi-base/gobject/lib.rb +1 -1
  43. data/test/base_test_helper.rb +15 -15
  44. data/test/ffi-glib/array_test.rb +38 -38
  45. data/test/ffi-glib/byte_array_test.rb +6 -7
  46. data/test/ffi-glib/bytes_test.rb +9 -9
  47. data/test/ffi-glib/hash_table_test.rb +26 -23
  48. data/test/ffi-glib/iconv_test.rb +5 -5
  49. data/test/ffi-glib/list_test.rb +16 -16
  50. data/test/ffi-glib/main_loop_test.rb +6 -6
  51. data/test/ffi-glib/ptr_array_test.rb +45 -45
  52. data/test/ffi-glib/ruby_closure_test.rb +6 -6
  53. data/test/ffi-glib/s_list_test.rb +15 -15
  54. data/test/ffi-glib/strv_test.rb +21 -21
  55. data/test/ffi-glib/variant_test.rb +4 -4
  56. data/test/ffi-gobject/gobject_test.rb +35 -35
  57. data/test/ffi-gobject/object_class_test.rb +1 -1
  58. data/test/ffi-gobject/object_test.rb +29 -6
  59. data/test/ffi-gobject/value_test.rb +66 -52
  60. data/test/ffi-gobject_introspection/i_base_info_test.rb +10 -11
  61. data/test/ffi-gobject_introspection/i_constant_info_test.rb +6 -6
  62. data/test/ffi-gobject_introspection/i_enum_info_test.rb +4 -5
  63. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -2
  64. data/test/ffi-gobject_introspection/i_object_info_test.rb +5 -5
  65. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +9 -8
  66. data/test/ffi-gobject_introspection/i_repository_test.rb +16 -16
  67. data/test/ffi-gobject_introspection/i_type_info_test.rb +16 -2
  68. data/test/ffi-gobject_introspection/lib_test.rb +2 -2
  69. data/test/ffi-gobject_test.rb +50 -40
  70. data/test/gir_ffi/arg_helper_test.rb +5 -5
  71. data/test/gir_ffi/builder_test.rb +41 -41
  72. data/test/gir_ffi/builders/argument_builder_test.rb +240 -207
  73. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -1
  74. data/test/gir_ffi/builders/callback_argument_builder_test.rb +81 -15
  75. data/test/gir_ffi/builders/callback_builder_test.rb +39 -14
  76. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +41 -33
  77. data/test/gir_ffi/builders/enum_builder_test.rb +3 -3
  78. data/test/gir_ffi/builders/field_builder_test.rb +17 -17
  79. data/test/gir_ffi/builders/function_builder_test.rb +16 -16
  80. data/test/gir_ffi/builders/interface_builder_test.rb +9 -7
  81. data/test/gir_ffi/builders/module_builder_test.rb +5 -6
  82. data/test/gir_ffi/builders/object_builder_test.rb +24 -19
  83. data/test/gir_ffi/builders/property_builder_test.rb +25 -23
  84. data/test/gir_ffi/builders/registered_type_builder_test.rb +11 -11
  85. data/test/gir_ffi/builders/return_value_builder_test.rb +237 -197
  86. data/test/gir_ffi/builders/signal_closure_builder_test.rb +29 -22
  87. data/test/gir_ffi/builders/struct_builder_test.rb +10 -10
  88. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +8 -8
  89. data/test/gir_ffi/builders/union_builder_test.rb +5 -6
  90. data/test/gir_ffi/builders/user_defined_builder_test.rb +42 -33
  91. data/test/gir_ffi/builders/vfunc_builder_test.rb +37 -30
  92. data/test/gir_ffi/callback_base_test.rb +4 -5
  93. data/test/gir_ffi/class_base_test.rb +35 -28
  94. data/test/gir_ffi/error_type_info_test.rb +14 -14
  95. data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
  96. data/test/gir_ffi/g_type_test.rb +6 -6
  97. data/test/gir_ffi/in_out_pointer_test.rb +27 -27
  98. data/test/gir_ffi/in_pointer_test.rb +54 -50
  99. data/test/gir_ffi/info_ext/i_callable_info_test.rb +8 -7
  100. data/test/gir_ffi/info_ext/i_callback_info_test.rb +7 -7
  101. data/test/gir_ffi/info_ext/i_field_info_test.rb +10 -8
  102. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -15
  103. data/test/gir_ffi/info_ext/i_signal_info_test.rb +10 -8
  104. data/test/gir_ffi/info_ext/i_type_info_test.rb +158 -155
  105. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +17 -0
  106. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +12 -10
  107. data/test/gir_ffi/info_ext/safe_function_name_test.rb +12 -10
  108. data/test/gir_ffi/interface_base_test.rb +6 -6
  109. data/test/gir_ffi/method_stubber_test.rb +16 -13
  110. data/test/gir_ffi/object_base_test.rb +6 -6
  111. data/test/gir_ffi/sized_array_test.rb +23 -23
  112. data/test/gir_ffi/type_map_test.rb +3 -3
  113. data/test/gir_ffi/unintrospectable_type_info_test.rb +18 -18
  114. data/test/gir_ffi/user_defined_property_info_test.rb +4 -4
  115. data/test/gir_ffi/user_defined_type_info_test.rb +16 -16
  116. data/test/gir_ffi/variable_name_generator_test.rb +6 -6
  117. data/test/gir_ffi/version_test.rb +1 -1
  118. data/test/gir_ffi/zero_terminated_test.rb +16 -17
  119. data/test/gir_ffi-base/glib/boolean_test.rb +13 -13
  120. data/test/gir_ffi-base/glib/strv_test.rb +11 -11
  121. data/test/gir_ffi_test.rb +18 -18
  122. data/test/gir_ffi_test_helper.rb +13 -18
  123. data/test/integration/derived_classes_test.rb +8 -8
  124. data/test/integration/generated_gimarshallingtests_test.rb +794 -792
  125. data/test/integration/generated_gio_test.rb +25 -26
  126. data/test/integration/generated_glib_test.rb +8 -2
  127. data/test/integration/generated_gobject_test.rb +16 -9
  128. data/test/integration/generated_pango_ft2_test.rb +1 -2
  129. data/test/integration/generated_pango_test.rb +2 -2
  130. data/test/integration/generated_regress_test.rb +785 -705
  131. data/test/integration/generated_secret_test.rb +5 -5
  132. data/test/integration/method_lookup_test.rb +5 -5
  133. data/test/introspection_test_helper.rb +3 -1
  134. data/test/minitest/stats_plugin.rb +3 -3
  135. metadata +6 -3
@@ -1,25 +1,25 @@
1
1
  require 'gir_ffi_test_helper'
2
2
 
3
3
  # Tests generated methods and functions in the Gio namespace.
4
- describe "The generated Gio module" do
4
+ describe 'The generated Gio module' do
5
5
  before do
6
6
  GirFFI.setup :Gio
7
7
  end
8
8
 
9
- describe "#file_new_for_path, a method returning an interface," do
10
- it "returns an object of a more specific class" do
9
+ describe '#file_new_for_path, a method returning an interface,' do
10
+ it 'returns an object of a more specific class' do
11
11
  file = Gio.file_new_for_path('/')
12
12
  refute_instance_of Gio::File, file
13
13
  assert_includes file.class.ancestors, Gio::File
14
14
  end
15
15
  end
16
16
 
17
- describe "the result of #file_new_from_path" do
17
+ describe 'the result of #file_new_from_path' do
18
18
  before do
19
19
  @it = Gio.file_new_for_path('/')
20
20
  end
21
21
 
22
- it "is able to set up a method in a class that is not the first ancestor" do
22
+ it 'is able to set up a method in a class that is not the first ancestor' do
23
23
  anc = @it.class.ancestors
24
24
  assert_equal [Gio::File, GObject::Object], anc[1, 2]
25
25
 
@@ -29,74 +29,73 @@ describe "The generated Gio module" do
29
29
  @it.setup_and_call :get_qdata, 1
30
30
  end
31
31
 
32
- it "knows its GType" do
32
+ it 'knows its GType' do
33
33
  instance_gtype = GObject.type_from_instance @it
34
34
  @it.class.get_gtype.must_equal instance_gtype
35
35
  end
36
36
  end
37
37
 
38
- describe "the FileInfo class" do
39
- describe "an instance" do
38
+ describe 'the FileInfo class' do
39
+ describe 'an instance' do
40
40
  before do
41
41
  file = Gio.file_new_for_path('/')
42
- @fileinfo = file.query_info "*", :none, nil
42
+ @fileinfo = file.query_info '*', :none, nil
43
43
  end
44
44
 
45
- it "has a working #get_attribute_type method" do
46
- type = @fileinfo.get_attribute_type "standard::display-name"
45
+ it 'has a working #get_attribute_type method' do
46
+ type = @fileinfo.get_attribute_type 'standard::display-name'
47
47
  assert_equal :string, type
48
48
  end
49
49
  end
50
50
  end
51
51
 
52
- describe "the action-added signal" do
52
+ describe 'the action-added signal' do
53
53
  before do
54
54
  @grp = Gio::SimpleActionGroup.new
55
55
  end
56
56
 
57
57
  it "correctly passes on the string parameter 'action_name'" do
58
58
  a = nil
59
- GObject.signal_connect @grp, "action-added" do |grp, action_name, user_data|
59
+ GObject.signal_connect @grp, 'action-added' do |_grp, action_name, _user_data|
60
60
  a = action_name
61
61
  end
62
- GObject.signal_emit @grp, "action-added", "foo"
63
- assert_equal "foo", a
62
+ GObject.signal_emit @grp, 'action-added', 'foo'
63
+ assert_equal 'foo', a
64
64
  end
65
65
  end
66
66
 
67
- describe "the reply signal" do
67
+ describe 'the reply signal' do
68
68
  before do
69
69
  @mo = Gio::MountOperation.new
70
70
  end
71
71
 
72
72
  it "correctly passes on the enum parameter 'result'" do
73
73
  a = nil
74
- GObject.signal_connect @mo, "reply" do |mnt, result, user_data|
74
+ GObject.signal_connect @mo, 'reply' do |_mnt, result, _user_data|
75
75
  a = result
76
76
  end
77
- GObject.signal_emit @mo, "reply", 2
77
+ GObject.signal_emit @mo, 'reply', :unhandled
78
78
  assert_equal :unhandled, a
79
79
  end
80
80
  end
81
81
 
82
- describe "the CharsetConverter class" do
83
- it "includes two interfaces" do
82
+ describe 'the CharsetConverter class' do
83
+ it 'includes two interfaces' do
84
84
  klass = Gio::CharsetConverter
85
85
  assert_includes klass.ancestors, Gio::Converter
86
86
  assert_includes klass.ancestors, Gio::Initable
87
87
  end
88
88
 
89
- it "allows an instance to find the #reset method" do
90
- cnv = Gio::CharsetConverter.new "utf8", "utf8"
89
+ it 'allows an instance to find the #reset method' do
90
+ cnv = Gio::CharsetConverter.new 'utf8', 'utf8'
91
91
  cnv.reset
92
92
  pass
93
93
  end
94
94
  end
95
95
 
96
- describe "the SocketSourceFunc callback" do
97
- it "can be cast to a native function" do
98
- Gio::SocketSourceFunc.new {|*args| p args}.to_native
96
+ describe 'the SocketSourceFunc callback' do
97
+ it 'can be cast to a native function' do
98
+ Gio::SocketSourceFunc.new { |*args| p args }.to_native
99
99
  end
100
100
  end
101
101
  end
102
-
@@ -1,10 +1,16 @@
1
1
  require 'gir_ffi_test_helper'
2
2
 
3
3
  # Tests generated classes, methods and functions in the GLib namespace.
4
- describe "The generated GLib module" do
5
- it "can auto-generate the GLib::IConv class" do
4
+ describe 'The generated GLib module' do
5
+ it 'can auto-generate the GLib::IConv class' do
6
6
  klass = GLib::IConv
7
7
 
8
8
  klass.must_be_instance_of Class
9
9
  end
10
+
11
+ it 'can auto-generate the GLib::SOURCE_REMOVE constant' do
12
+ skip unless get_introspection_data 'GLib', 'SOURCE_REMOVE'
13
+
14
+ GLib::SOURCE_REMOVE.must_equal false
15
+ end
10
16
  end
@@ -1,24 +1,31 @@
1
1
  require 'gir_ffi_test_helper'
2
2
 
3
3
  describe GObject do
4
- describe "#type_interfaces" do
5
- it "works, showing that returning an array of GType works" do
4
+ describe '.type_interfaces' do
5
+ it 'works, showing that returning an array of GType works' do
6
6
  klass = GObject::TypeModule
7
7
  ifcs = GObject.type_interfaces klass.get_gtype
8
8
  assert_equal 1, ifcs.size
9
9
  end
10
10
  end
11
11
 
12
+ describe '.signal_set_va_marshaller' do
13
+ it 'can be set up' do
14
+ result = GObject.setup_method 'signal_set_va_marshaller'
15
+ result.must_equal true
16
+ end
17
+ end
18
+
12
19
  describe GObject::TypeInfo do
13
20
  let(:instance) { GObject::TypeInfo.new }
14
- it "has a working field setter for class_init" do
15
- instance.class_init = proc do |object_class, data|
21
+ it 'has a working field setter for class_init' do
22
+ instance.class_init = proc do |_object_class, _data|
16
23
  end
17
24
  end
18
25
 
19
- it "has a working field getter for class_init" do
26
+ it 'has a working field getter for class_init' do
20
27
  instance.class_init.must_be_nil
21
- instance.class_init = proc do |object_class, data|
28
+ instance.class_init = proc do |_object_class, _data|
22
29
  end
23
30
  result = instance.class_init
24
31
  result.wont_be_nil
@@ -27,7 +34,7 @@ describe GObject do
27
34
  end
28
35
 
29
36
  describe GObject::TypePlugin do
30
- it "is implemented as a module" do
37
+ it 'is implemented as a module' do
31
38
  mod = GObject::TypePlugin
32
39
  assert_instance_of Module, mod
33
40
  refute_instance_of Class, mod
@@ -35,14 +42,14 @@ describe GObject do
35
42
  end
36
43
 
37
44
  describe GObject::TypeModule do
38
- it "has the GObject::TypePlugin module as an ancestor" do
45
+ it 'has the GObject::TypePlugin module as an ancestor' do
39
46
  klass = GObject::TypeModule
40
47
  assert_includes klass.ancestors, GObject::TypePlugin
41
48
  end
42
49
  end
43
50
 
44
51
  describe GObject::ValueArray do
45
- it "uses the constructor provided by GObject" do
52
+ it 'uses the constructor provided by GObject' do
46
53
  instance = GObject::ValueArray.new 16
47
54
  instance.n_prealloced.must_equal 16
48
55
  instance.n_values.must_equal 0
@@ -6,7 +6,7 @@ GirFFI.setup :PangoFT2
6
6
  # Tests generated methods and functions in the PangoFT2 namespace.
7
7
  describe PangoFT2 do
8
8
  describe PangoFT2::FontMap do
9
- it "has a working method #load_font" do
9
+ it 'has a working method #load_font' do
10
10
  font_map = PangoFT2::FontMap.new
11
11
  context = font_map.create_context
12
12
  font_description = Pango::FontDescription.new
@@ -14,4 +14,3 @@ describe PangoFT2 do
14
14
  end
15
15
  end
16
16
  end
17
-
@@ -6,11 +6,11 @@ GirFFI.setup :Pango
6
6
  # Tests generated methods and functions in the Pango namespace.
7
7
  describe Pango do
8
8
  describe Pango::Language do
9
- it "has a working method #get_scripts" do
9
+ it 'has a working method #get_scripts' do
10
10
  lang = Pango::Language.from_string 'ja'
11
11
  result = lang.get_scripts
12
12
 
13
- if GirFFI::SizedArray === result
13
+ if result.is_a? GirFFI::SizedArray
14
14
  scripts = result
15
15
  else
16
16
  ptr, size = *result