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
@@ -4,165 +4,177 @@ describe GirFFI::Builders::ArgumentBuilder do
4
4
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
5
5
  let(:builder) { GirFFI::Builders::ArgumentBuilder.new(var_gen, arg_info) }
6
6
 
7
- describe "for an argument with direction :in" do
8
- describe "for :callback" do
7
+ describe 'for an argument with direction :in' do
8
+ describe 'for :callback' do
9
9
  let(:arg_info) {
10
- get_introspection_data('Regress', 'test_callback_destroy_notify').args[0] }
10
+ get_introspection_data('Regress', 'test_callback_destroy_notify').args[0]
11
+ }
11
12
 
12
- it "has the correct value for #pre_conversion" do
13
- builder.pre_conversion.must_equal [ "_v1 = Regress::TestCallbackUserData.from(callback)" ]
13
+ it 'has the correct value for #pre_conversion' do
14
+ builder.pre_conversion.must_equal ['_v1 = Regress::TestCallbackUserData.from(callback)']
14
15
  end
15
16
 
16
- it "has the correct value for #post_conversion" do
17
- builder.post_conversion.must_equal [ ]
17
+ it 'has the correct value for #post_conversion' do
18
+ builder.post_conversion.must_equal []
18
19
  end
19
20
  end
20
21
 
21
- describe "for :zero_terminated" do
22
- let(:arg_info) { get_introspection_data("GIMarshallingTests",
23
- "array_in_len_zero_terminated").args[0] }
22
+ describe 'for :zero_terminated' do
23
+ let(:arg_info) {
24
+ get_introspection_data('GIMarshallingTests',
25
+ 'array_in_len_zero_terminated').args[0]
26
+ }
24
27
 
25
- it "has the correct value for #pre_conversion" do
26
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::ZeroTerminated.from(:gint32, ints)" ]
28
+ it 'has the correct value for #pre_conversion' do
29
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::ZeroTerminated.from(:gint32, ints)']
27
30
  end
28
31
 
29
- it "has the correct value for #post_conversion" do
30
- builder.post_conversion.must_equal [ ]
32
+ it 'has the correct value for #post_conversion' do
33
+ builder.post_conversion.must_equal []
31
34
  end
32
35
  end
33
36
 
34
- describe "for :void" do
35
- let(:arg_info) { get_introspection_data("Regress", "test_callback_user_data").args[1] }
37
+ describe 'for :void' do
38
+ let(:arg_info) { get_introspection_data('Regress', 'test_callback_user_data').args[1] }
36
39
 
37
- describe "when it is a regular argument" do
40
+ describe 'when it is a regular argument' do
38
41
  before do
39
42
  builder.closure = false
40
43
  end
41
44
 
42
- it "has the correct value for #pre_conversion" do
43
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InPointer.from(:void, user_data)" ]
45
+ it 'has the correct value for #pre_conversion' do
46
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InPointer.from(:void, user_data)']
44
47
  end
45
48
 
46
- it "has the correct value for #post_conversion" do
47
- builder.post_conversion.must_equal [ ]
49
+ it 'has the correct value for #post_conversion' do
50
+ builder.post_conversion.must_equal []
48
51
  end
49
52
  end
50
53
 
51
- describe "when it is a closure" do
54
+ describe 'when it is a closure' do
52
55
  before do
53
56
  builder.closure = true
54
57
  end
55
58
 
56
- it "has the correct value for #pre_conversion" do
57
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InPointer.from_closure_data(user_data)" ]
59
+ it 'has the correct value for #pre_conversion' do
60
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InPointer.from_closure_data(user_data)']
58
61
  end
59
62
 
60
- it "has the correct value for #post_conversion" do
61
- builder.post_conversion.must_equal [ ]
63
+ it 'has the correct value for #post_conversion' do
64
+ builder.post_conversion.must_equal []
62
65
  end
63
66
  end
64
67
  end
65
68
  end
66
69
 
67
- describe "for an argument with direction :out" do
68
- describe "for :enum" do
69
- let(:arg_info) { get_introspection_data("GIMarshallingTests", "genum_out").args[0] }
70
+ describe 'for an argument with direction :out' do
71
+ describe 'for :enum' do
72
+ let(:arg_info) { get_introspection_data('GIMarshallingTests', 'genum_out').args[0] }
70
73
 
71
- it "has the correct value for #pre_conversion" do
72
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for GIMarshallingTests::GEnum" ]
74
+ it 'has the correct value for #pre_conversion' do
75
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::GEnum']
73
76
  end
74
77
 
75
- it "has the correct value for #post_conversion" do
76
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
78
+ it 'has the correct value for #post_conversion' do
79
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
77
80
  end
78
81
  end
79
82
 
80
- describe "for :flags" do
83
+ describe 'for :flags' do
81
84
  let(:arg_info) {
82
- get_introspection_data("GIMarshallingTests", "flags_out").args[0] }
85
+ get_introspection_data('GIMarshallingTests', 'flags_out').args[0]
86
+ }
83
87
 
84
- it "has the correct value for #pre_conversion" do
85
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Flags" ]
88
+ it 'has the correct value for #pre_conversion' do
89
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Flags']
86
90
  end
87
91
 
88
- it "has the correct value for #post_conversion" do
89
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
92
+ it 'has the correct value for #post_conversion' do
93
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
90
94
  end
91
95
  end
92
96
 
93
- describe "for :object" do
97
+ describe 'for :object' do
94
98
  let(:arg_info) {
95
- get_method_introspection_data("Regress", "TestObj", "null_out").args[0] }
99
+ get_method_introspection_data('Regress', 'TestObj', 'null_out').args[0]
100
+ }
96
101
 
97
- it "has the correct value for #pre_conversion" do
98
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, Regress::TestObj]" ]
102
+ it 'has the correct value for #pre_conversion' do
103
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, Regress::TestObj]']
99
104
  end
100
105
 
101
- it "has the correct value for #post_conversion" do
102
- builder.post_conversion.must_equal [ "_v2 = Regress::TestObj.wrap(_v1.to_value)" ]
106
+ it 'has the correct value for #post_conversion' do
107
+ builder.post_conversion.must_equal ['_v2 = Regress::TestObj.wrap(_v1.to_value)']
103
108
  end
104
109
  end
105
110
 
106
- describe "for :struct" do
111
+ describe 'for :struct' do
107
112
 
108
- describe "when not allocated by the caller" do
113
+ describe 'when not allocated by the caller' do
109
114
  let(:arg_info) {
110
- get_introspection_data("GIMarshallingTests", "boxed_struct_out").args[0] }
115
+ get_introspection_data('GIMarshallingTests', 'boxed_struct_out').args[0]
116
+ }
111
117
 
112
- it "has the correct value for #pre_conversion" do
113
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, GIMarshallingTests::BoxedStruct]" ]
118
+ it 'has the correct value for #pre_conversion' do
119
+ builder.pre_conversion.must_equal [
120
+ '_v1 = GirFFI::InOutPointer.for [:pointer, GIMarshallingTests::BoxedStruct]'
121
+ ]
114
122
  end
115
123
 
116
- it "has the correct value for #post_conversion" do
117
- builder.post_conversion.must_equal [ "_v2 = GIMarshallingTests::BoxedStruct.wrap(_v1.to_value)" ]
124
+ it 'has the correct value for #post_conversion' do
125
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap(_v1.to_value)']
118
126
  end
119
127
  end
120
128
 
121
- describe "when allocated by the caller" do
129
+ describe 'when allocated by the caller' do
122
130
  let(:arg_info) {
123
- get_method_introspection_data("Regress", "TestStructA", "clone").args[0] }
131
+ get_method_introspection_data('Regress', 'TestStructA', 'clone').args[0]
132
+ }
124
133
 
125
- it "has the correct value for #pre_conversion" do
126
- builder.pre_conversion.must_equal [ "_v1 = Regress::TestStructA.new" ]
134
+ it 'has the correct value for #pre_conversion' do
135
+ builder.pre_conversion.must_equal ['_v1 = Regress::TestStructA.new']
127
136
  end
128
137
 
129
- it "has empty #post_conversion" do
138
+ it 'has empty #post_conversion' do
130
139
  builder.post_conversion.must_equal []
131
140
  end
132
141
  end
133
142
  end
134
143
 
135
- describe "for :strv" do
144
+ describe 'for :strv' do
136
145
  let(:arg_info) {
137
- get_introspection_data("GIMarshallingTests", "gstrv_out").args[0] }
146
+ get_introspection_data('GIMarshallingTests', 'gstrv_out').args[0]
147
+ }
138
148
 
139
- it "has the correct value for #pre_conversion" do
140
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :strv]" ]
149
+ it 'has the correct value for #pre_conversion' do
150
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :strv]']
141
151
  end
142
152
 
143
- it "has the correct value for #post_conversion" do
144
- builder.post_conversion.must_equal [ "_v2 = GLib::Strv.wrap(_v1.to_value)" ]
153
+ it 'has the correct value for #post_conversion' do
154
+ builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1.to_value)']
145
155
  end
146
156
  end
147
157
 
148
- describe "for :array" do
158
+ describe 'for :array' do
149
159
 
150
- describe "when allocated by the callee" do
160
+ describe 'when allocated by the callee' do
151
161
  let(:arg_info) {
152
- get_introspection_data("GIMarshallingTests", "garray_utf8_none_out").args[0] }
162
+ get_introspection_data('GIMarshallingTests', 'garray_utf8_none_out').args[0]
163
+ }
153
164
 
154
- it "has the correct value for #pre_conversion" do
155
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :array]" ]
165
+ it 'has the correct value for #pre_conversion' do
166
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :array]']
156
167
  end
157
168
 
158
- it "has the correct value for #post_conversion" do
159
- builder.post_conversion.must_equal [ "_v2 = GLib::Array.wrap(:utf8, _v1.to_value)" ]
169
+ it 'has the correct value for #post_conversion' do
170
+ builder.post_conversion.must_equal ['_v2 = GLib::Array.wrap(:utf8, _v1.to_value)']
160
171
  end
161
172
  end
162
173
 
163
- describe "when allocated by the caller" do
174
+ describe 'when allocated by the caller' do
164
175
  let(:function_info) {
165
- get_introspection_data("GIMarshallingTests", "garray_utf8_full_out_caller_allocated") }
176
+ get_introspection_data('GIMarshallingTests', 'garray_utf8_full_out_caller_allocated')
177
+ }
166
178
 
167
179
  let(:arg_info) { function_info.args[0] }
168
180
 
@@ -170,321 +182,342 @@ describe GirFFI::Builders::ArgumentBuilder do
170
182
  skip unless function_info
171
183
  end
172
184
 
173
- it "has the correct value for #pre_conversion" do
174
- builder.pre_conversion.must_equal [ "_v1 = GLib::Array.new :utf8" ]
185
+ it 'has the correct value for #pre_conversion' do
186
+ builder.pre_conversion.must_equal ['_v1 = GLib::Array.new :utf8']
175
187
  end
176
188
 
177
- it "has empty #post_conversion" do
189
+ it 'has empty #post_conversion' do
178
190
  builder.post_conversion.must_equal []
179
191
  end
180
192
  end
181
193
  end
182
194
 
183
- describe "for :ptr_array" do
195
+ describe 'for :ptr_array' do
184
196
  let(:arg_info) {
185
- get_introspection_data("GIMarshallingTests", "gptrarray_utf8_none_out").args[0] }
197
+ get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_out').args[0]
198
+ }
186
199
 
187
- it "has the correct value for #pre_conversion" do
188
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]" ]
200
+ it 'has the correct value for #pre_conversion' do
201
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]']
189
202
  end
190
203
 
191
- it "has the correct value for #post_conversion" do
192
- builder.post_conversion.must_equal [ "_v2 = GLib::PtrArray.wrap(:utf8, _v1.to_value)" ]
204
+ it 'has the correct value for #post_conversion' do
205
+ builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1.to_value)']
193
206
  end
194
207
  end
195
208
 
196
- describe "for :error" do
209
+ describe 'for :error' do
197
210
  let(:arg_info) {
198
- get_introspection_data("GIMarshallingTests", "gerror_out").args[0] }
211
+ get_introspection_data('GIMarshallingTests', 'gerror_out').args[0]
212
+ }
199
213
 
200
- it "has the correct value for #pre_conversion" do
201
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :error]" ]
214
+ it 'has the correct value for #pre_conversion' do
215
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :error]']
202
216
  end
203
217
 
204
- it "has the correct value for #post_conversion" do
205
- builder.post_conversion.must_equal [ "_v2 = GLib::Error.wrap(_v1.to_value)" ]
218
+ it 'has the correct value for #post_conversion' do
219
+ builder.post_conversion.must_equal ['_v2 = GLib::Error.wrap(_v1.to_value)']
206
220
  end
207
221
  end
208
222
 
209
- describe "for :c" do
223
+ describe 'for :c' do
210
224
 
211
- describe "with fixed size" do
225
+ describe 'with fixed size' do
212
226
  let(:arg_info) {
213
- get_introspection_data("GIMarshallingTests", "array_fixed_out").args[0] }
227
+ get_introspection_data('GIMarshallingTests', 'array_fixed_out').args[0]
228
+ }
214
229
 
215
- it "has the correct value for #pre_conversion" do
216
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :c]" ]
230
+ it 'has the correct value for #pre_conversion' do
231
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :c]']
217
232
  end
218
233
 
219
- it "has the correct value for #post_conversion" do
220
- builder.post_conversion.must_equal [ "_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.to_value)" ]
234
+ it 'has the correct value for #post_conversion' do
235
+ builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.to_value)']
221
236
  end
222
237
  end
223
238
 
224
- describe "with separate size parameter" do
239
+ describe 'with separate size parameter' do
225
240
  let(:arg_info) {
226
- get_introspection_data("GIMarshallingTests", "array_out").args[0] }
241
+ get_introspection_data('GIMarshallingTests', 'array_out').args[0]
242
+ }
227
243
 
228
244
  let(:length_argument) { Object.new }
229
245
  before do
230
- stub(length_argument).post_converted_name { "bar" }
246
+ stub(length_argument).post_converted_name { 'bar' }
231
247
  builder.length_arg = length_argument
232
248
  end
233
249
 
234
- it "has the correct value for #pre_conversion" do
235
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :c]" ]
250
+ it 'has the correct value for #pre_conversion' do
251
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :c]']
236
252
  end
237
253
 
238
- it "has the correct value for #post_conversion" do
239
- builder.post_conversion.must_equal [ "_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1.to_value)" ]
254
+ it 'has the correct value for #post_conversion' do
255
+ builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1.to_value)']
240
256
  end
241
257
  end
242
258
  end
243
259
 
244
- describe "for :glist" do
260
+ describe 'for :glist' do
245
261
  let(:arg_info) {
246
- get_introspection_data("GIMarshallingTests", "glist_utf8_none_out").args[0] }
262
+ get_introspection_data('GIMarshallingTests', 'glist_utf8_none_out').args[0]
263
+ }
247
264
 
248
- it "has the correct value for #pre_conversion" do
249
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :glist]" ]
265
+ it 'has the correct value for #pre_conversion' do
266
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :glist]']
250
267
  end
251
268
 
252
- it "has the correct value for #post_conversion" do
253
- builder.post_conversion.must_equal [ "_v2 = GLib::List.wrap(:utf8, _v1.to_value)" ]
269
+ it 'has the correct value for #post_conversion' do
270
+ builder.post_conversion.must_equal ['_v2 = GLib::List.wrap(:utf8, _v1.to_value)']
254
271
  end
255
272
  end
256
273
 
257
- describe "for :gslist" do
274
+ describe 'for :gslist' do
258
275
  let(:arg_info) {
259
- get_introspection_data("GIMarshallingTests", "gslist_utf8_none_out").args[0] }
276
+ get_introspection_data('GIMarshallingTests', 'gslist_utf8_none_out').args[0]
277
+ }
260
278
 
261
- it "has the correct value for #pre_conversion" do
262
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :gslist]" ]
279
+ it 'has the correct value for #pre_conversion' do
280
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :gslist]']
263
281
  end
264
282
 
265
- it "has the correct value for #post_conversion" do
266
- builder.post_conversion.must_equal [ "_v2 = GLib::SList.wrap(:utf8, _v1.to_value)" ]
283
+ it 'has the correct value for #post_conversion' do
284
+ builder.post_conversion.must_equal ['_v2 = GLib::SList.wrap(:utf8, _v1.to_value)']
267
285
  end
268
286
  end
269
287
 
270
- describe "for :ghash" do
288
+ describe 'for :ghash' do
271
289
  let(:arg_info) {
272
- get_introspection_data("GIMarshallingTests", "ghashtable_utf8_none_out").args[0] }
290
+ get_introspection_data('GIMarshallingTests', 'ghashtable_utf8_none_out').args[0]
291
+ }
273
292
 
274
- it "has the correct value for #pre_conversion" do
275
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, [:ghash, :utf8, :utf8]]" ]
293
+ it 'has the correct value for #pre_conversion' do
294
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, [:ghash, :utf8, :utf8]]']
276
295
  end
277
296
 
278
- it "has the correct value for #post_conversion" do
279
- builder.post_conversion.must_equal [ "_v2 = GLib::HashTable.wrap([:utf8, :utf8], _v1.to_value)" ]
297
+ it 'has the correct value for #post_conversion' do
298
+ builder.post_conversion.must_equal ['_v2 = GLib::HashTable.wrap([:utf8, :utf8], _v1.to_value)']
280
299
  end
281
300
  end
282
301
  end
283
302
 
284
- describe "for an argument with direction :inout" do
285
- describe "for :enum" do
303
+ describe 'for an argument with direction :inout' do
304
+ describe 'for :enum' do
286
305
  let(:arg_info) {
287
- get_introspection_data("GIMarshallingTests", "enum_inout").args[0] }
306
+ get_introspection_data('GIMarshallingTests', 'enum_inout').args[0]
307
+ }
288
308
 
289
- it "has the correct value for #pre_conversion" do
290
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Enum",
291
- "_v1.set_value #{arg_info.name}" ]
309
+ it 'has the correct value for #pre_conversion' do
310
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Enum',
311
+ "_v1.set_value #{arg_info.name}"]
292
312
  end
293
313
 
294
- it "has the correct value for #post_conversion" do
295
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
314
+ it 'has the correct value for #post_conversion' do
315
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
296
316
  end
297
317
  end
298
318
 
299
- describe "for :flags" do
319
+ describe 'for :flags' do
300
320
  let(:arg_info) {
301
- get_introspection_data("GIMarshallingTests", "no_type_flags_inout").args[0] }
321
+ get_introspection_data('GIMarshallingTests', 'no_type_flags_inout').args[0]
322
+ }
302
323
 
303
- it "has the correct value for #pre_conversion" do
304
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for GIMarshallingTests::NoTypeFlags",
305
- "_v1.set_value #{arg_info.name}" ]
324
+ it 'has the correct value for #pre_conversion' do
325
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::NoTypeFlags',
326
+ "_v1.set_value #{arg_info.name}"]
306
327
  end
307
328
 
308
- it "has the correct value for #post_conversion" do
309
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
329
+ it 'has the correct value for #post_conversion' do
330
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
310
331
  end
311
332
  end
312
333
 
313
- describe "for :gint32" do
334
+ describe 'for :gint32' do
314
335
  let(:arg_info) {
315
- get_introspection_data("GIMarshallingTests", "int32_inout_min_max").args[0] }
336
+ get_introspection_data('GIMarshallingTests', 'int32_inout_min_max').args[0]
337
+ }
316
338
 
317
- it "has the correct value for method_argument_name" do
339
+ it 'has the correct value for method_argument_name' do
318
340
  builder.method_argument_name.must_equal "#{arg_info.name}"
319
341
  end
320
342
 
321
- it "has the correct value for #pre_conversion" do
322
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for :gint32",
323
- "_v1.set_value #{arg_info.name}" ]
343
+ it 'has the correct value for #pre_conversion' do
344
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for :gint32',
345
+ "_v1.set_value #{arg_info.name}"]
324
346
  end
325
347
 
326
- it "has the correct value for #post_conversion" do
327
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
348
+ it 'has the correct value for #post_conversion' do
349
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
328
350
  end
329
351
  end
330
352
 
331
- describe "for an array length" do
353
+ describe 'for an array length' do
332
354
  let(:function_info) {
333
- get_introspection_data('Regress', 'test_array_int_inout') }
355
+ get_introspection_data('Regress', 'test_array_int_inout')
356
+ }
334
357
  let(:arg_info) { function_info.args[0] }
335
358
  let(:array_arg_info) { function_info.args[1] }
336
359
  let(:array_arg_builder) {
337
- GirFFI::Builders::ArgumentBuilder.new(var_gen, array_arg_info) }
360
+ GirFFI::Builders::ArgumentBuilder.new(var_gen, array_arg_info)
361
+ }
338
362
 
339
363
  before do
340
364
  builder.array_arg = array_arg_builder
341
365
  end
342
366
 
343
- it "has the correct value for #pre_conversion" do
344
- builder.pre_conversion.must_equal [ "n_ints = ints.nil? ? 0 : ints.length",
345
- "_v1 = GirFFI::InOutPointer.for :gint32",
346
- "_v1.set_value n_ints" ]
367
+ it 'has the correct value for #pre_conversion' do
368
+ builder.pre_conversion.must_equal ['n_ints = ints.nil? ? 0 : ints.length',
369
+ '_v1 = GirFFI::InOutPointer.for :gint32',
370
+ '_v1.set_value n_ints']
347
371
  end
348
372
 
349
- it "has the correct value for #post_conversion" do
350
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value" ]
373
+ it 'has the correct value for #post_conversion' do
374
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value']
351
375
  end
352
376
  end
353
377
 
354
- describe "for :strv" do
378
+ describe 'for :strv' do
355
379
  let(:arg_info) {
356
- get_introspection_data("GIMarshallingTests", "gstrv_inout").args[0] }
380
+ get_introspection_data('GIMarshallingTests', 'gstrv_inout').args[0]
381
+ }
357
382
 
358
- it "has the correct value for #pre_conversion" do
359
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :strv]",
360
- "_v1.set_value GLib::Strv.from(g_strv)" ]
383
+ it 'has the correct value for #pre_conversion' do
384
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :strv]',
385
+ '_v1.set_value GLib::Strv.from(g_strv)']
361
386
  end
362
387
 
363
- it "has the correct value for #post_conversion" do
364
- builder.post_conversion.must_equal [ "_v2 = GLib::Strv.wrap(_v1.to_value)" ]
388
+ it 'has the correct value for #post_conversion' do
389
+ builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1.to_value)']
365
390
  end
366
391
  end
367
392
 
368
- describe "for :ptr_array" do
393
+ describe 'for :ptr_array' do
369
394
  let(:arg_info) {
370
- get_introspection_data("GIMarshallingTests", "gptrarray_utf8_none_inout").args[0] }
395
+ get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_inout').args[0]
396
+ }
371
397
 
372
- it "has the correct value for #pre_conversion" do
373
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]",
374
- "_v1.set_value GLib::PtrArray.from(:utf8, parray_)" ]
398
+ it 'has the correct value for #pre_conversion' do
399
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]',
400
+ '_v1.set_value GLib::PtrArray.from(:utf8, parray_)']
375
401
  end
376
402
 
377
- it "has the correct value for #post_conversion" do
378
- builder.post_conversion.must_equal [ "_v2 = GLib::PtrArray.wrap(:utf8, _v1.to_value)" ]
403
+ it 'has the correct value for #post_conversion' do
404
+ builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1.to_value)']
379
405
  end
380
406
  end
381
407
 
382
- describe "for :utf8" do
408
+ describe 'for :utf8' do
383
409
  let(:arg_info) {
384
- get_introspection_data("GIMarshallingTests", "utf8_none_inout").args[0] }
410
+ get_introspection_data('GIMarshallingTests', 'utf8_none_inout').args[0]
411
+ }
385
412
 
386
- it "has the correct value for #pre_conversion" do
387
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for :utf8",
388
- "_v1.set_value GirFFI::InPointer.from(:utf8, utf8)" ]
413
+ it 'has the correct value for #pre_conversion' do
414
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for :utf8',
415
+ '_v1.set_value GirFFI::InPointer.from(:utf8, utf8)']
389
416
  end
390
417
 
391
- it "has the correct value for #post_conversion" do
392
- builder.post_conversion.must_equal [ "_v2 = _v1.to_value.to_utf8" ]
418
+ it 'has the correct value for #post_conversion' do
419
+ builder.post_conversion.must_equal ['_v2 = _v1.to_value.to_utf8']
393
420
  end
394
421
  end
395
422
 
396
- describe "for :c" do
397
- describe "with fixed size" do
423
+ describe 'for :c' do
424
+ describe 'with fixed size' do
398
425
  let(:arg_info) {
399
- get_introspection_data("GIMarshallingTests", "array_fixed_inout").args[0] }
426
+ get_introspection_data('GIMarshallingTests', 'array_fixed_inout').args[0]
427
+ }
400
428
 
401
- it "has the correct value for #pre_conversion" do
429
+ it 'has the correct value for #pre_conversion' do
402
430
  builder.pre_conversion.must_equal [
403
431
  "GirFFI::ArgHelper.check_fixed_array_size 4, ints, \"ints\"",
404
- "_v1 = GirFFI::InOutPointer.for [:pointer, :c]",
405
- "_v1.set_value GirFFI::SizedArray.from(:gint32, 4, ints)"
432
+ '_v1 = GirFFI::InOutPointer.for [:pointer, :c]',
433
+ '_v1.set_value GirFFI::SizedArray.from(:gint32, 4, ints)'
406
434
  ]
407
435
  end
408
436
 
409
- it "has the correct value for #post_conversion" do
410
- builder.post_conversion.must_equal [ "_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.to_value)" ]
437
+ it 'has the correct value for #post_conversion' do
438
+ builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1.to_value)']
411
439
  end
412
440
  end
413
441
 
414
- describe "with separate size parameter" do
442
+ describe 'with separate size parameter' do
415
443
  let(:function_info) {
416
- get_introspection_data('Regress', 'test_array_int_inout') }
444
+ get_introspection_data('Regress', 'test_array_int_inout')
445
+ }
417
446
  let(:length_arg_info) { function_info.args[0] }
418
447
  let(:arg_info) { function_info.args[1] }
419
448
  let(:length_arg_builder) {
420
- GirFFI::Builders::ArgumentBuilder.new(var_gen, length_arg_info) }
449
+ GirFFI::Builders::ArgumentBuilder.new(var_gen, length_arg_info)
450
+ }
421
451
 
422
452
  before do
423
453
  builder.length_arg = length_arg_builder
424
454
  end
425
455
 
426
- it "has the correct value for #pre_conversion" do
456
+ it 'has the correct value for #pre_conversion' do
427
457
  builder.pre_conversion.must_equal [
428
- "_v1 = GirFFI::InOutPointer.for [:pointer, :c]",
429
- "_v1.set_value GirFFI::SizedArray.from(:gint32, -1, ints)"
458
+ '_v1 = GirFFI::InOutPointer.for [:pointer, :c]',
459
+ '_v1.set_value GirFFI::SizedArray.from(:gint32, -1, ints)'
430
460
  ]
431
461
  end
432
462
 
433
- it "has the correct value for #post_conversion" do
434
- builder.post_conversion.must_equal [ "_v3 = GirFFI::SizedArray.wrap(:gint32, _v2, _v1.to_value)" ]
463
+ it 'has the correct value for #post_conversion' do
464
+ builder.post_conversion.must_equal ['_v3 = GirFFI::SizedArray.wrap(:gint32, _v2, _v1.to_value)']
435
465
  end
436
466
  end
437
467
  end
438
468
  end
439
469
 
440
- describe "for a skipped argument with direction :in" do
470
+ describe 'for a skipped argument with direction :in' do
441
471
  let(:arg_info) {
442
- get_method_introspection_data("Regress", "TestObj", "skip_param").args[2] }
472
+ get_method_introspection_data('Regress', 'TestObj', 'skip_param').args[2]
473
+ }
443
474
 
444
- it "has the correct value for method_argument_name" do
475
+ it 'has the correct value for method_argument_name' do
445
476
  builder.method_argument_name.must_be_nil
446
477
  end
447
478
 
448
- it "has the correct value for #pre_conversion" do
449
- builder.pre_conversion.must_equal [ "_v1 = 0" ]
479
+ it 'has the correct value for #pre_conversion' do
480
+ builder.pre_conversion.must_equal ['_v1 = 0']
450
481
  end
451
482
 
452
- it "has the correct value for #post_conversion" do
483
+ it 'has the correct value for #post_conversion' do
453
484
  builder.post_conversion.must_equal []
454
485
  end
455
486
  end
456
487
 
457
- describe "for a skipped argument with direction :inout" do
488
+ describe 'for a skipped argument with direction :inout' do
458
489
  let(:arg_info) {
459
- get_method_introspection_data("Regress", "TestObj", "skip_inout_param").args[3] }
490
+ get_method_introspection_data('Regress', 'TestObj', 'skip_inout_param').args[3]
491
+ }
460
492
 
461
- it "has the correct value for method_argument_name" do
493
+ it 'has the correct value for method_argument_name' do
462
494
  builder.method_argument_name.must_be_nil
463
495
  end
464
496
 
465
- it "has the correct value for #pre_conversion" do
466
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for :gint32",
467
- "_v1.set_value 0" ]
497
+ it 'has the correct value for #pre_conversion' do
498
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for :gint32',
499
+ '_v1.set_value 0']
468
500
  end
469
501
 
470
- it "has the correct value for #post_conversion" do
502
+ it 'has the correct value for #post_conversion' do
471
503
  builder.post_conversion.must_equal []
472
504
  end
473
505
  end
474
506
 
475
- describe "for a skipped argument with direction :out" do
507
+ describe 'for a skipped argument with direction :out' do
476
508
  let(:arg_info) {
477
- get_method_introspection_data("Regress", "TestObj", "skip_out_param").args[1] }
509
+ get_method_introspection_data('Regress', 'TestObj', 'skip_out_param').args[1]
510
+ }
478
511
 
479
- it "has the correct value for method_argument_name" do
512
+ it 'has the correct value for method_argument_name' do
480
513
  builder.method_argument_name.must_be_nil
481
514
  end
482
515
 
483
- it "has the correct value for #pre_conversion" do
484
- builder.pre_conversion.must_equal [ "_v1 = GirFFI::InOutPointer.for :gint32" ]
516
+ it 'has the correct value for #pre_conversion' do
517
+ builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for :gint32']
485
518
  end
486
519
 
487
- it "has the correct value for #post_conversion" do
520
+ it 'has the correct value for #post_conversion' do
488
521
  builder.post_conversion.must_equal []
489
522
  end
490
523
  end