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,372 +4,412 @@ describe GirFFI::Builders::ReturnValueBuilder do
4
4
  let(:var_gen) { GirFFI::VariableNameGenerator.new }
5
5
  let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info) }
6
6
  let(:for_constructor) { false }
7
- let(:builder) { GirFFI::Builders::ReturnValueBuilder.new(var_gen,
7
+ let(:builder) {
8
+ GirFFI::Builders::ReturnValueBuilder.new(var_gen,
8
9
  return_type_info,
9
- for_constructor) }
10
+ for_constructor)
11
+ }
10
12
 
11
- describe "for :gint32" do
12
- let(:type_info) { get_introspection_data("GIMarshallingTests",
13
- "int_return_min").return_type }
13
+ describe 'for :gint32' do
14
+ let(:type_info) {
15
+ get_introspection_data('GIMarshallingTests',
16
+ 'int_return_min').return_type
17
+ }
14
18
 
15
- it "has no statements in #post_conversion" do
19
+ it 'has no statements in #post_conversion' do
16
20
  builder.post_conversion.must_equal []
17
21
  end
18
22
 
19
- it "returns the result of the c function directly" do
20
- builder.capture_variable_name.must_equal "_v1"
21
- builder.return_value_name.must_equal "_v1"
23
+ it 'returns the result of the c function directly' do
24
+ builder.capture_variable_name.must_equal '_v1'
25
+ builder.return_value_name.must_equal '_v1'
22
26
  end
23
27
  end
24
28
 
25
- describe "for :struct" do
26
- let(:type_info) { get_method_introspection_data("GIMarshallingTests",
27
- "BoxedStruct",
28
- "returnv").return_type }
29
+ describe 'for :struct' do
30
+ let(:type_info) {
31
+ get_method_introspection_data('GIMarshallingTests',
32
+ 'BoxedStruct',
33
+ 'returnv').return_type
34
+ }
29
35
 
30
- it "wraps the result in #post_conversion" do
31
- builder.capture_variable_name.must_equal "_v1"
32
- builder.post_conversion.must_equal [ "_v2 = GIMarshallingTests::BoxedStruct.wrap(_v1)" ]
36
+ it 'wraps the result in #post_conversion' do
37
+ builder.capture_variable_name.must_equal '_v1'
38
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::BoxedStruct.wrap(_v1)']
33
39
  end
34
40
 
35
- it "returns the wrapped result" do
36
- builder.capture_variable_name.must_equal "_v1"
37
- builder.return_value_name.must_equal "_v2"
41
+ it 'returns the wrapped result' do
42
+ builder.capture_variable_name.must_equal '_v1'
43
+ builder.return_value_name.must_equal '_v2'
38
44
  end
39
45
  end
40
46
 
41
- describe "for :union" do
42
- let(:type_info) { get_method_introspection_data("GIMarshallingTests",
43
- "Union",
44
- "returnv").return_type }
47
+ describe 'for :union' do
48
+ let(:type_info) {
49
+ get_method_introspection_data('GIMarshallingTests',
50
+ 'Union',
51
+ 'returnv').return_type
52
+ }
45
53
 
46
- it "wraps the result in #post_conversion" do
47
- builder.capture_variable_name.must_equal "_v1"
48
- builder.post_conversion.must_equal [ "_v2 = GIMarshallingTests::Union.wrap(_v1)" ]
54
+ it 'wraps the result in #post_conversion' do
55
+ builder.capture_variable_name.must_equal '_v1'
56
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Union.wrap(_v1)']
49
57
  end
50
58
 
51
- it "returns the wrapped result" do
52
- builder.capture_variable_name.must_equal "_v1"
53
- builder.return_value_name.must_equal "_v2"
59
+ it 'returns the wrapped result' do
60
+ builder.capture_variable_name.must_equal '_v1'
61
+ builder.return_value_name.must_equal '_v2'
54
62
  end
55
63
  end
56
64
 
57
- describe "for :interface" do
58
- let(:type_info) { get_method_introspection_data("Gio",
59
- "File",
60
- "new_for_commandline_arg").return_type }
65
+ describe 'for :interface' do
66
+ let(:type_info) {
67
+ get_method_introspection_data('Gio',
68
+ 'File',
69
+ 'new_for_commandline_arg').return_type
70
+ }
61
71
 
62
- it "wraps the result in #post_conversion" do
63
- builder.capture_variable_name.must_equal "_v1"
64
- builder.post_conversion.must_equal [ "_v2 = Gio::File.wrap(_v1)" ]
72
+ it 'wraps the result in #post_conversion' do
73
+ builder.capture_variable_name.must_equal '_v1'
74
+ builder.post_conversion.must_equal ['_v2 = Gio::File.wrap(_v1)']
65
75
  end
66
76
 
67
- it "returns the wrapped result" do
68
- builder.capture_variable_name.must_equal "_v1"
69
- builder.return_value_name.must_equal "_v2"
77
+ it 'returns the wrapped result' do
78
+ builder.capture_variable_name.must_equal '_v1'
79
+ builder.return_value_name.must_equal '_v2'
70
80
  end
71
81
  end
72
82
 
73
- describe "for :object" do
74
- describe "when the method is not a constructor" do
75
- let(:type_info) { get_method_introspection_data("GIMarshallingTests",
76
- "Object",
77
- "full_return").return_type }
83
+ describe 'for :object' do
84
+ describe 'when the method is not a constructor' do
85
+ let(:type_info) {
86
+ get_method_introspection_data('GIMarshallingTests',
87
+ 'Object',
88
+ 'full_return').return_type
89
+ }
78
90
  let(:for_constructor) { false }
79
91
 
80
- it "wraps the result in #post_conversion" do
81
- builder.capture_variable_name.must_equal "_v1"
82
- builder.post_conversion.must_equal [ "_v2 = GIMarshallingTests::Object.wrap(_v1)" ]
92
+ it 'wraps the result in #post_conversion' do
93
+ builder.capture_variable_name.must_equal '_v1'
94
+ builder.post_conversion.must_equal ['_v2 = GIMarshallingTests::Object.wrap(_v1)']
83
95
  end
84
96
 
85
- it "returns the wrapped result" do
86
- builder.capture_variable_name.must_equal "_v1"
87
- builder.return_value_name.must_equal "_v2"
97
+ it 'returns the wrapped result' do
98
+ builder.capture_variable_name.must_equal '_v1'
99
+ builder.return_value_name.must_equal '_v2'
88
100
  end
89
101
  end
90
102
 
91
- describe "when the method is a constructor" do
92
- let(:type_info) { get_method_introspection_data("GIMarshallingTests",
93
- "Object",
94
- "new").return_type }
103
+ describe 'when the method is a constructor' do
104
+ let(:type_info) {
105
+ get_method_introspection_data('GIMarshallingTests',
106
+ 'Object',
107
+ 'new').return_type
108
+ }
95
109
  let(:for_constructor) { true }
96
110
 
97
- it "wraps the result in #post_conversion" do
98
- builder.capture_variable_name.must_equal "_v1"
99
- builder.post_conversion.must_equal [ "_v2 = self.constructor_wrap(_v1)" ]
111
+ it 'wraps the result in #post_conversion' do
112
+ builder.capture_variable_name.must_equal '_v1'
113
+ builder.post_conversion.must_equal ['_v2 = self.constructor_wrap(_v1)']
100
114
  end
101
115
 
102
- it "returns the wrapped result" do
103
- builder.capture_variable_name.must_equal "_v1"
104
- builder.return_value_name.must_equal "_v2"
116
+ it 'returns the wrapped result' do
117
+ builder.capture_variable_name.must_equal '_v1'
118
+ builder.return_value_name.must_equal '_v2'
105
119
  end
106
120
  end
107
121
  end
108
122
 
109
- describe "for :strv" do
110
- let(:type_info) { get_method_introspection_data("GLib",
111
- "KeyFile",
112
- "get_locale_string_list").return_type }
123
+ describe 'for :strv' do
124
+ let(:type_info) {
125
+ get_method_introspection_data('GLib',
126
+ 'KeyFile',
127
+ 'get_locale_string_list').return_type
128
+ }
113
129
 
114
- it "wraps the result in #post_conversion" do
115
- builder.capture_variable_name.must_equal "_v1"
116
- builder.post_conversion.must_equal [ "_v2 = GLib::Strv.wrap(_v1)" ]
130
+ it 'wraps the result in #post_conversion' do
131
+ builder.capture_variable_name.must_equal '_v1'
132
+ builder.post_conversion.must_equal ['_v2 = GLib::Strv.wrap(_v1)']
117
133
  end
118
134
 
119
- it "returns the wrapped result" do
120
- builder.capture_variable_name.must_equal "_v1"
121
- builder.return_value_name.must_equal "_v2"
135
+ it 'returns the wrapped result' do
136
+ builder.capture_variable_name.must_equal '_v1'
137
+ builder.return_value_name.must_equal '_v2'
122
138
  end
123
139
  end
124
140
 
125
- describe "for :zero_terminated" do
126
- let(:type_info) { get_method_introspection_data("GLib",
127
- "Variant",
128
- "dup_bytestring").return_type }
141
+ describe 'for :zero_terminated' do
142
+ let(:type_info) {
143
+ get_method_introspection_data('GLib',
144
+ 'Variant',
145
+ 'dup_bytestring').return_type
146
+ }
129
147
  before do
130
148
  skip unless type_info.zero_terminated?
131
149
  end
132
150
 
133
- it "wraps the result in #post_conversion" do
134
- builder.capture_variable_name.must_equal "_v1"
135
- builder.post_conversion.must_equal [ "_v2 = GirFFI::ZeroTerminated.wrap(:guint8, _v1)" ]
151
+ it 'wraps the result in #post_conversion' do
152
+ builder.capture_variable_name.must_equal '_v1'
153
+ builder.post_conversion.must_equal ['_v2 = GirFFI::ZeroTerminated.wrap(:guint8, _v1)']
136
154
  end
137
155
 
138
- it "returns the wrapped result" do
139
- builder.capture_variable_name.must_equal "_v1"
140
- builder.return_value_name.must_equal "_v2"
156
+ it 'returns the wrapped result' do
157
+ builder.capture_variable_name.must_equal '_v1'
158
+ builder.return_value_name.must_equal '_v2'
141
159
  end
142
160
  end
143
161
 
144
- describe "for :byte_array" do
145
- let(:type_info) { get_introspection_data("GIMarshallingTests",
146
- "bytearray_full_return").return_type }
162
+ describe 'for :byte_array' do
163
+ let(:type_info) {
164
+ get_introspection_data('GIMarshallingTests',
165
+ 'bytearray_full_return').return_type
166
+ }
147
167
 
148
- it "wraps the result in #post_conversion" do
149
- builder.capture_variable_name.must_equal "_v1"
150
- builder.post_conversion.must_equal [ "_v2 = GLib::ByteArray.wrap(_v1)" ]
168
+ it 'wraps the result in #post_conversion' do
169
+ builder.capture_variable_name.must_equal '_v1'
170
+ builder.post_conversion.must_equal ['_v2 = GLib::ByteArray.wrap(_v1)']
151
171
  end
152
172
 
153
- it "returns the wrapped result" do
154
- builder.capture_variable_name.must_equal "_v1"
155
- builder.return_value_name.must_equal "_v2"
173
+ it 'returns the wrapped result' do
174
+ builder.capture_variable_name.must_equal '_v1'
175
+ builder.return_value_name.must_equal '_v2'
156
176
  end
157
177
  end
158
178
 
159
- describe "for :ptr_array" do
160
- let(:type_info) { get_introspection_data("GIMarshallingTests",
161
- "gptrarray_utf8_none_return").return_type }
179
+ describe 'for :ptr_array' do
180
+ let(:type_info) {
181
+ get_introspection_data('GIMarshallingTests',
182
+ 'gptrarray_utf8_none_return').return_type
183
+ }
162
184
 
163
- it "wraps the result in #post_conversion" do
164
- builder.capture_variable_name.must_equal "_v1"
165
- builder.post_conversion.must_equal [ "_v2 = GLib::PtrArray.wrap(:utf8, _v1)" ]
185
+ it 'wraps the result in #post_conversion' do
186
+ builder.capture_variable_name.must_equal '_v1'
187
+ builder.post_conversion.must_equal ['_v2 = GLib::PtrArray.wrap(:utf8, _v1)']
166
188
  end
167
189
 
168
- it "returns the wrapped result" do
169
- builder.capture_variable_name.must_equal "_v1"
170
- builder.return_value_name.must_equal "_v2"
190
+ it 'returns the wrapped result' do
191
+ builder.capture_variable_name.must_equal '_v1'
192
+ builder.return_value_name.must_equal '_v2'
171
193
  end
172
194
  end
173
195
 
174
- describe "for :glist" do
175
- let(:type_info) { get_introspection_data("GIMarshallingTests",
176
- "glist_int_none_return").return_type }
196
+ describe 'for :glist' do
197
+ let(:type_info) {
198
+ get_introspection_data('GIMarshallingTests',
199
+ 'glist_int_none_return').return_type
200
+ }
177
201
 
178
- it "wraps the result in #post_conversion" do
179
- builder.capture_variable_name.must_equal "_v1"
180
- builder.post_conversion.must_equal [ "_v2 = GLib::List.wrap(:gint32, _v1)" ]
202
+ it 'wraps the result in #post_conversion' do
203
+ builder.capture_variable_name.must_equal '_v1'
204
+ builder.post_conversion.must_equal ['_v2 = GLib::List.wrap(:gint32, _v1)']
181
205
  end
182
206
 
183
- it "returns the wrapped result" do
184
- builder.capture_variable_name.must_equal "_v1"
185
- builder.return_value_name.must_equal "_v2"
207
+ it 'returns the wrapped result' do
208
+ builder.capture_variable_name.must_equal '_v1'
209
+ builder.return_value_name.must_equal '_v2'
186
210
  end
187
211
  end
188
212
 
189
- describe "for :gslist" do
190
- let(:type_info) { get_introspection_data("GIMarshallingTests",
191
- "gslist_int_none_return").return_type }
213
+ describe 'for :gslist' do
214
+ let(:type_info) {
215
+ get_introspection_data('GIMarshallingTests',
216
+ 'gslist_int_none_return').return_type
217
+ }
192
218
 
193
- it "wraps the result in #post_conversion" do
194
- builder.capture_variable_name.must_equal "_v1"
195
- builder.post_conversion.must_equal [ "_v2 = GLib::SList.wrap(:gint32, _v1)" ]
219
+ it 'wraps the result in #post_conversion' do
220
+ builder.capture_variable_name.must_equal '_v1'
221
+ builder.post_conversion.must_equal ['_v2 = GLib::SList.wrap(:gint32, _v1)']
196
222
  end
197
223
 
198
- it "returns the wrapped result" do
199
- builder.capture_variable_name.must_equal "_v1"
200
- builder.return_value_name.must_equal "_v2"
224
+ it 'returns the wrapped result' do
225
+ builder.capture_variable_name.must_equal '_v1'
226
+ builder.return_value_name.must_equal '_v2'
201
227
  end
202
228
  end
203
229
 
204
- describe "for :ghash" do
205
- let(:type_info) { get_introspection_data("GIMarshallingTests",
206
- "ghashtable_int_none_return").return_type }
230
+ describe 'for :ghash' do
231
+ let(:type_info) {
232
+ get_introspection_data('GIMarshallingTests',
233
+ 'ghashtable_int_none_return').return_type
234
+ }
207
235
 
208
- it "wraps the result in #post_conversion" do
209
- builder.capture_variable_name.must_equal "_v1"
210
- builder.post_conversion.must_equal [ "_v2 = GLib::HashTable.wrap([:gint32, :gint32], _v1)" ]
236
+ it 'wraps the result in #post_conversion' do
237
+ builder.capture_variable_name.must_equal '_v1'
238
+ builder.post_conversion.must_equal ['_v2 = GLib::HashTable.wrap([:gint32, :gint32], _v1)']
211
239
  end
212
240
 
213
- it "returns the wrapped result" do
214
- builder.capture_variable_name.must_equal "_v1"
215
- builder.return_value_name.must_equal "_v2"
241
+ it 'returns the wrapped result' do
242
+ builder.capture_variable_name.must_equal '_v1'
243
+ builder.return_value_name.must_equal '_v2'
216
244
  end
217
245
  end
218
246
 
219
- describe "for :array" do
220
- let(:type_info) { get_introspection_data("GIMarshallingTests",
221
- "garray_int_none_return").return_type }
222
-
247
+ describe 'for :array' do
248
+ let(:type_info) {
249
+ get_introspection_data('GIMarshallingTests',
250
+ 'garray_int_none_return').return_type
251
+ }
223
252
 
224
- it "wraps the result in #post_conversion" do
225
- builder.capture_variable_name.must_equal "_v1"
226
- builder.post_conversion.must_equal [ "_v2 = GLib::Array.wrap(:gint32, _v1)" ]
253
+ it 'wraps the result in #post_conversion' do
254
+ builder.capture_variable_name.must_equal '_v1'
255
+ builder.post_conversion.must_equal ['_v2 = GLib::Array.wrap(:gint32, _v1)']
227
256
  end
228
257
 
229
- it "returns the wrapped result" do
230
- builder.capture_variable_name.must_equal "_v1"
231
- builder.return_value_name.must_equal "_v2"
258
+ it 'returns the wrapped result' do
259
+ builder.capture_variable_name.must_equal '_v1'
260
+ builder.return_value_name.must_equal '_v2'
232
261
  end
233
262
  end
234
263
 
235
- describe "for :error" do
236
- let(:type_info) { get_introspection_data("GIMarshallingTests",
237
- "gerror_return").return_type }
264
+ describe 'for :error' do
265
+ let(:type_info) {
266
+ get_introspection_data('GIMarshallingTests',
267
+ 'gerror_return').return_type
268
+ }
238
269
 
239
- it "wraps the result in #post_conversion" do
240
- builder.capture_variable_name.must_equal "_v1"
241
- builder.post_conversion.must_equal [ "_v2 = GLib::Error.wrap(_v1)" ]
270
+ it 'wraps the result in #post_conversion' do
271
+ builder.capture_variable_name.must_equal '_v1'
272
+ builder.post_conversion.must_equal ['_v2 = GLib::Error.wrap(_v1)']
242
273
  end
243
274
 
244
- it "returns the wrapped result" do
245
- builder.capture_variable_name.must_equal "_v1"
246
- builder.return_value_name.must_equal "_v2"
275
+ it 'returns the wrapped result' do
276
+ builder.capture_variable_name.must_equal '_v1'
277
+ builder.return_value_name.must_equal '_v2'
247
278
  end
248
279
  end
249
280
 
250
- describe "for :c" do
251
- describe "with fixed size" do
252
- let(:type_info) { get_introspection_data("GIMarshallingTests",
253
- "array_fixed_int_return").return_type }
281
+ describe 'for :c' do
282
+ describe 'with fixed size' do
283
+ let(:type_info) {
284
+ get_introspection_data('GIMarshallingTests',
285
+ 'array_fixed_int_return').return_type
286
+ }
254
287
 
255
- it "converts the result in #post_conversion" do
256
- builder.capture_variable_name.must_equal "_v1"
257
- builder.post_conversion.must_equal [ "_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1)" ]
288
+ it 'converts the result in #post_conversion' do
289
+ builder.capture_variable_name.must_equal '_v1'
290
+ builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, 4, _v1)']
258
291
  end
259
292
 
260
- it "returns the wrapped result" do
261
- builder.capture_variable_name.must_equal "_v1"
262
- builder.return_value_name.must_equal "_v2"
293
+ it 'returns the wrapped result' do
294
+ builder.capture_variable_name.must_equal '_v1'
295
+ builder.return_value_name.must_equal '_v2'
263
296
  end
264
297
  end
265
298
 
266
- describe "with separate size parameter" do
299
+ describe 'with separate size parameter' do
267
300
  let(:length_argument) { Object.new }
268
- let(:type_info) { get_method_introspection_data("GIMarshallingTests",
269
- "Object",
270
- "method_array_return").return_type }
301
+ let(:type_info) {
302
+ get_method_introspection_data('GIMarshallingTests',
303
+ 'Object',
304
+ 'method_array_return').return_type
305
+ }
271
306
 
272
307
  before do
273
- stub(length_argument).post_converted_name { "bar" }
308
+ stub(length_argument).post_converted_name { 'bar' }
274
309
  builder.length_arg = length_argument
275
310
  end
276
311
 
277
- it "converts the result in #post_conversion" do
278
- builder.capture_variable_name.must_equal "_v1"
279
- builder.post_conversion.must_equal [ "_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1)" ]
312
+ it 'converts the result in #post_conversion' do
313
+ builder.capture_variable_name.must_equal '_v1'
314
+ builder.post_conversion.must_equal ['_v2 = GirFFI::SizedArray.wrap(:gint32, bar, _v1)']
280
315
  end
281
316
 
282
- it "returns the wrapped result" do
283
- builder.capture_variable_name.must_equal "_v1"
284
- builder.return_value_name.must_equal "_v2"
317
+ it 'returns the wrapped result' do
318
+ builder.capture_variable_name.must_equal '_v1'
319
+ builder.return_value_name.must_equal '_v2'
285
320
  end
286
321
  end
287
322
  end
288
323
 
289
- describe "for :utf8" do
324
+ describe 'for :utf8' do
290
325
  let(:type_info) {
291
- get_introspection_data("GIMarshallingTests", "utf8_full_return").return_type }
326
+ get_introspection_data('GIMarshallingTests', 'utf8_full_return').return_type
327
+ }
292
328
 
293
- it "converts the result in #post_conversion" do
294
- builder.capture_variable_name.must_equal "_v1"
295
- builder.post_conversion.must_equal [ "_v2 = _v1.to_utf8" ]
329
+ it 'converts the result in #post_conversion' do
330
+ builder.capture_variable_name.must_equal '_v1'
331
+ builder.post_conversion.must_equal ['_v2 = _v1.to_utf8']
296
332
  end
297
333
 
298
- it "returns the converted result" do
299
- builder.capture_variable_name.must_equal "_v1"
300
- builder.return_value_name.must_equal "_v2"
334
+ it 'returns the converted result' do
335
+ builder.capture_variable_name.must_equal '_v1'
336
+ builder.return_value_name.must_equal '_v2'
301
337
  end
302
338
  end
303
339
 
304
- describe "for :void pointer" do
340
+ describe 'for :void pointer' do
305
341
  let(:callback_info) {
306
- get_introspection_data("GIMarshallingTests", "CallbackIntInt") }
342
+ get_introspection_data('GIMarshallingTests', 'CallbackIntInt')
343
+ }
307
344
  let(:type_info) { callback_info.args[1].argument_type }
308
345
 
309
346
  before do
310
347
  skip unless callback_info
311
348
  end
312
349
 
313
- it "has no statements in #post_conversion" do
350
+ it 'has no statements in #post_conversion' do
314
351
  builder.post_conversion.must_equal []
315
352
  end
316
353
 
317
- it "returns the result of the c function directly" do
318
- builder.capture_variable_name.must_equal "_v1"
319
- builder.return_value_name.must_equal "_v1"
354
+ it 'returns the result of the c function directly' do
355
+ builder.capture_variable_name.must_equal '_v1'
356
+ builder.return_value_name.must_equal '_v1'
320
357
  end
321
358
  end
322
359
 
323
- describe "for :void" do
360
+ describe 'for :void' do
324
361
  let(:type_info) {
325
- get_method_introspection_data("Regress", "TestObj", "null_out").return_type }
362
+ get_method_introspection_data('Regress', 'TestObj', 'null_out').return_type
363
+ }
326
364
 
327
- it "has no statements in #post_conversion" do
365
+ it 'has no statements in #post_conversion' do
328
366
  builder.post_conversion.must_equal []
329
367
  end
330
368
 
331
- it "marks itself as irrelevant" do
369
+ it 'marks itself as irrelevant' do
332
370
  builder.relevant?.must_equal false
333
371
  end
334
372
 
335
- it "returns nothing" do
373
+ it 'returns nothing' do
336
374
  builder.return_value_name.must_be_nil
337
375
  end
338
376
  end
339
377
 
340
- describe "for a closure argument" do
378
+ describe 'for a closure argument' do
341
379
  let(:type_info) {
342
- get_introspection_data("Regress", "TestCallbackUserData").args[0].argument_type }
380
+ get_introspection_data('Regress', 'TestCallbackUserData').args[0].argument_type
381
+ }
343
382
 
344
383
  before do
345
384
  builder.closure = true
346
385
  end
347
386
 
348
- it "fetches the stored object in #post_conversion" do
349
- builder.capture_variable_name.must_equal "_v1"
350
- builder.post_conversion.must_equal [ "_v2 = GirFFI::ArgHelper::OBJECT_STORE.fetch(_v1)" ]
387
+ it 'fetches the stored object in #post_conversion' do
388
+ builder.capture_variable_name.must_equal '_v1'
389
+ builder.post_conversion.must_equal ['_v2 = GirFFI::ArgHelper::OBJECT_STORE.fetch(_v1)']
351
390
  end
352
391
 
353
- it "returns the stored object" do
354
- builder.capture_variable_name.must_equal "_v1"
355
- builder.return_value_name.must_equal "_v2"
392
+ it 'returns the stored object' do
393
+ builder.capture_variable_name.must_equal '_v1'
394
+ builder.return_value_name.must_equal '_v2'
356
395
  end
357
396
  end
358
397
 
359
- describe "for a skipped return value" do
398
+ describe 'for a skipped return value' do
360
399
  let(:type_info) {
361
- get_method_introspection_data("Regress", "TestObj", "skip_return_val").return_type }
400
+ get_method_introspection_data('Regress', 'TestObj', 'skip_return_val').return_type
401
+ }
362
402
  let(:return_type_info) { GirFFI::ReturnValueInfo.new(type_info, true) }
363
403
 
364
- it "has no statements in #post_conversion" do
404
+ it 'has no statements in #post_conversion' do
365
405
  builder.post_conversion.must_equal []
366
406
  end
367
407
 
368
- it "marks itself as irrelevant" do
408
+ it 'marks itself as irrelevant' do
369
409
  builder.relevant?.must_equal false
370
410
  end
371
411
 
372
- it "returns nothing" do
412
+ it 'returns nothing' do
373
413
  builder.return_value_name.must_be_nil
374
414
  end
375
415
  end