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.
- checksums.yaml +4 -4
- data/Changelog.md +9 -0
- data/lib/ffi-glib/array.rb +1 -1
- data/lib/ffi-glib/error.rb +1 -2
- data/lib/ffi-glib/hash_table.rb +2 -2
- data/lib/ffi-glib/variant.rb +1 -1
- data/lib/ffi-gobject/base.rb +23 -23
- data/lib/ffi-gobject/object.rb +7 -3
- data/lib/ffi-gobject/value.rb +6 -1
- data/lib/ffi-gobject.rb +9 -6
- data/lib/ffi-gobject_introspection/i_base_info.rb +3 -3
- data/lib/ffi-gobject_introspection/i_constant_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_repository.rb +4 -1
- data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_unresolved_info.rb +7 -0
- data/lib/ffi-gobject_introspection/lib.rb +1 -1
- data/lib/gir_ffi/builders/argument_builder.rb +1 -1
- data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +37 -29
- data/lib/gir_ffi/builders/callback_argument_builder.rb +57 -27
- data/lib/gir_ffi/builders/closure_convertor.rb +12 -8
- data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +12 -8
- data/lib/gir_ffi/builders/constructor_result_convertor.rb +11 -7
- data/lib/gir_ffi/builders/field_builder.rb +1 -1
- data/lib/gir_ffi/builders/function_builder.rb +1 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
- data/lib/gir_ffi/builders/method_template.rb +1 -1
- data/lib/gir_ffi/builders/null_convertor.rb +11 -7
- data/lib/gir_ffi/builders/property_builder.rb +1 -1
- data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +17 -13
- data/lib/gir_ffi/error_argument_info.rb +1 -1
- data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +12 -0
- data/lib/gir_ffi/info_ext/safe_constant_name.rb +2 -2
- data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -1
- data/lib/gir_ffi/info_ext.rb +1 -0
- data/lib/gir_ffi/module_base.rb +1 -1
- data/lib/gir_ffi/receiver_argument_info.rb +15 -12
- data/lib/gir_ffi/user_data_argument_info.rb +17 -15
- data/lib/gir_ffi/user_data_type_info.rb +14 -12
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi-base/gobject/lib.rb +1 -1
- data/test/base_test_helper.rb +15 -15
- data/test/ffi-glib/array_test.rb +38 -38
- data/test/ffi-glib/byte_array_test.rb +6 -7
- data/test/ffi-glib/bytes_test.rb +9 -9
- data/test/ffi-glib/hash_table_test.rb +26 -23
- data/test/ffi-glib/iconv_test.rb +5 -5
- data/test/ffi-glib/list_test.rb +16 -16
- data/test/ffi-glib/main_loop_test.rb +6 -6
- data/test/ffi-glib/ptr_array_test.rb +45 -45
- data/test/ffi-glib/ruby_closure_test.rb +6 -6
- data/test/ffi-glib/s_list_test.rb +15 -15
- data/test/ffi-glib/strv_test.rb +21 -21
- data/test/ffi-glib/variant_test.rb +4 -4
- data/test/ffi-gobject/gobject_test.rb +35 -35
- data/test/ffi-gobject/object_class_test.rb +1 -1
- data/test/ffi-gobject/object_test.rb +29 -6
- data/test/ffi-gobject/value_test.rb +66 -52
- data/test/ffi-gobject_introspection/i_base_info_test.rb +10 -11
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +6 -6
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +4 -5
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -2
- data/test/ffi-gobject_introspection/i_object_info_test.rb +5 -5
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +9 -8
- data/test/ffi-gobject_introspection/i_repository_test.rb +16 -16
- data/test/ffi-gobject_introspection/i_type_info_test.rb +16 -2
- data/test/ffi-gobject_introspection/lib_test.rb +2 -2
- data/test/ffi-gobject_test.rb +50 -40
- data/test/gir_ffi/arg_helper_test.rb +5 -5
- data/test/gir_ffi/builder_test.rb +41 -41
- data/test/gir_ffi/builders/argument_builder_test.rb +240 -207
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -1
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +81 -15
- data/test/gir_ffi/builders/callback_builder_test.rb +39 -14
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +41 -33
- data/test/gir_ffi/builders/enum_builder_test.rb +3 -3
- data/test/gir_ffi/builders/field_builder_test.rb +17 -17
- data/test/gir_ffi/builders/function_builder_test.rb +16 -16
- data/test/gir_ffi/builders/interface_builder_test.rb +9 -7
- data/test/gir_ffi/builders/module_builder_test.rb +5 -6
- data/test/gir_ffi/builders/object_builder_test.rb +24 -19
- data/test/gir_ffi/builders/property_builder_test.rb +25 -23
- data/test/gir_ffi/builders/registered_type_builder_test.rb +11 -11
- data/test/gir_ffi/builders/return_value_builder_test.rb +237 -197
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +29 -22
- data/test/gir_ffi/builders/struct_builder_test.rb +10 -10
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +8 -8
- data/test/gir_ffi/builders/union_builder_test.rb +5 -6
- data/test/gir_ffi/builders/user_defined_builder_test.rb +42 -33
- data/test/gir_ffi/builders/vfunc_builder_test.rb +37 -30
- data/test/gir_ffi/callback_base_test.rb +4 -5
- data/test/gir_ffi/class_base_test.rb +35 -28
- data/test/gir_ffi/error_type_info_test.rb +14 -14
- data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
- data/test/gir_ffi/g_type_test.rb +6 -6
- data/test/gir_ffi/in_out_pointer_test.rb +27 -27
- data/test/gir_ffi/in_pointer_test.rb +54 -50
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +8 -7
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +7 -7
- data/test/gir_ffi/info_ext/i_field_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -15
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_type_info_test.rb +158 -155
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +17 -0
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +12 -10
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +12 -10
- data/test/gir_ffi/interface_base_test.rb +6 -6
- data/test/gir_ffi/method_stubber_test.rb +16 -13
- data/test/gir_ffi/object_base_test.rb +6 -6
- data/test/gir_ffi/sized_array_test.rb +23 -23
- data/test/gir_ffi/type_map_test.rb +3 -3
- data/test/gir_ffi/unintrospectable_type_info_test.rb +18 -18
- data/test/gir_ffi/user_defined_property_info_test.rb +4 -4
- data/test/gir_ffi/user_defined_type_info_test.rb +16 -16
- data/test/gir_ffi/variable_name_generator_test.rb +6 -6
- data/test/gir_ffi/version_test.rb +1 -1
- data/test/gir_ffi/zero_terminated_test.rb +16 -17
- data/test/gir_ffi-base/glib/boolean_test.rb +13 -13
- data/test/gir_ffi-base/glib/strv_test.rb +11 -11
- data/test/gir_ffi_test.rb +18 -18
- data/test/gir_ffi_test_helper.rb +13 -18
- data/test/integration/derived_classes_test.rb +8 -8
- data/test/integration/generated_gimarshallingtests_test.rb +794 -792
- data/test/integration/generated_gio_test.rb +25 -26
- data/test/integration/generated_glib_test.rb +8 -2
- data/test/integration/generated_gobject_test.rb +16 -9
- data/test/integration/generated_pango_ft2_test.rb +1 -2
- data/test/integration/generated_pango_test.rb +2 -2
- data/test/integration/generated_regress_test.rb +785 -705
- data/test/integration/generated_secret_test.rb +5 -5
- data/test/integration/method_lookup_test.rb +5 -5
- data/test/introspection_test_helper.rb +3 -1
- data/test/minitest/stats_plugin.rb +3 -3
- metadata +6 -3
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'gir_ffi_test_helper'
|
2
2
|
|
3
3
|
describe GirFFI::Builders::ObjectBuilder do
|
4
|
-
let(:obj_builder) {
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
let(:obj_builder) {
|
5
|
+
GirFFI::Builders::ObjectBuilder.new(
|
6
|
+
get_introspection_data('Regress', 'TestObj'))
|
7
|
+
}
|
8
|
+
let(:sub_obj_builder) {
|
9
|
+
GirFFI::Builders::ObjectBuilder.new(
|
10
|
+
get_introspection_data('Regress', 'TestSubObj'))
|
11
|
+
}
|
8
12
|
|
9
13
|
describe '#find_signal' do
|
10
14
|
it 'finds the signal "test" for TestObj' do
|
@@ -34,37 +38,38 @@ describe GirFFI::Builders::ObjectBuilder do
|
|
34
38
|
end
|
35
39
|
end
|
36
40
|
|
37
|
-
describe
|
38
|
-
it
|
39
|
-
prop = obj_builder.find_property(
|
40
|
-
prop.name.must_equal
|
41
|
+
describe '#find_property' do
|
42
|
+
it 'finds a property specified on the class itself' do
|
43
|
+
prop = obj_builder.find_property('int')
|
44
|
+
prop.name.must_equal 'int'
|
41
45
|
end
|
42
46
|
|
43
|
-
it
|
44
|
-
prop = sub_obj_builder.find_property(
|
45
|
-
prop.name.must_equal
|
47
|
+
it 'finds a property specified on the parent class' do
|
48
|
+
prop = sub_obj_builder.find_property('int')
|
49
|
+
prop.name.must_equal 'int'
|
46
50
|
end
|
47
51
|
|
48
|
-
it
|
52
|
+
it 'raises an error if the property is not found' do
|
49
53
|
proc {
|
50
|
-
sub_obj_builder.find_property(
|
51
|
-
}.must_raise RuntimeError
|
54
|
+
sub_obj_builder.find_property('this-property-does-not-exist')
|
55
|
+
}.must_raise RuntimeError
|
52
56
|
end
|
53
57
|
end
|
54
58
|
|
55
|
-
describe
|
59
|
+
describe '#function_definition' do
|
56
60
|
let(:method_info) {
|
57
|
-
get_method_introspection_data 'Regress', 'TestObj', 'instance_method'
|
61
|
+
get_method_introspection_data 'Regress', 'TestObj', 'instance_method'
|
62
|
+
}
|
58
63
|
|
59
|
-
it
|
64
|
+
it 'delegates definition to FunctionBuilder' do
|
60
65
|
code = obj_builder.send :function_definition, method_info
|
61
66
|
expected = GirFFI::Builders::FunctionBuilder.new(method_info).generate
|
62
67
|
code.must_equal expected
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
66
|
-
describe
|
67
|
-
it
|
71
|
+
describe '#object_class_struct' do
|
72
|
+
it 'returns the class struct type' do
|
68
73
|
obj_builder.object_class_struct.must_equal Regress::TestObjClass
|
69
74
|
end
|
70
75
|
end
|
@@ -3,9 +3,9 @@ require 'gir_ffi_test_helper'
|
|
3
3
|
describe GirFFI::Builders::PropertyBuilder do
|
4
4
|
let(:builder) { GirFFI::Builders::PropertyBuilder.new property_info }
|
5
5
|
|
6
|
-
describe
|
7
|
-
let(:property_info) { get_property_introspection_data(
|
8
|
-
it
|
6
|
+
describe 'for a property of type :glist' do
|
7
|
+
let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'list') }
|
8
|
+
it 'generates the correct getter definition' do
|
9
9
|
expected = <<-CODE.reset_indentation
|
10
10
|
def list
|
11
11
|
_v1 = get_property("list").get_value_plain
|
@@ -17,7 +17,7 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
17
17
|
builder.getter_def.must_equal expected
|
18
18
|
end
|
19
19
|
|
20
|
-
it
|
20
|
+
it 'generates the correct setter definition' do
|
21
21
|
expected = <<-CODE.reset_indentation
|
22
22
|
def list= value
|
23
23
|
_v1 = GLib::List.from(:utf8, value)
|
@@ -29,9 +29,9 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
describe
|
33
|
-
let(:property_info) { get_property_introspection_data(
|
34
|
-
it
|
32
|
+
describe 'for a property of type :ghash' do
|
33
|
+
let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'hash-table') }
|
34
|
+
it 'generates the correct getter definition' do
|
35
35
|
expected = <<-CODE.reset_indentation
|
36
36
|
def hash_table
|
37
37
|
_v1 = get_property("hash-table").get_value_plain
|
@@ -43,7 +43,7 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
43
43
|
builder.getter_def.must_equal expected
|
44
44
|
end
|
45
45
|
|
46
|
-
it
|
46
|
+
it 'generates the correct setter definition' do
|
47
47
|
expected = <<-CODE.reset_indentation
|
48
48
|
def hash_table= value
|
49
49
|
_v1 = GLib::HashTable.from([:utf8, :gint8], value)
|
@@ -55,15 +55,17 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
describe
|
59
|
-
let(:property_info) {
|
60
|
-
|
61
|
-
|
58
|
+
describe 'for a property of type :strv' do
|
59
|
+
let(:property_info) {
|
60
|
+
get_property_introspection_data('GIMarshallingTests',
|
61
|
+
'PropertiesObject',
|
62
|
+
'some-strv')
|
63
|
+
}
|
62
64
|
before do
|
63
65
|
skip unless property_info
|
64
66
|
end
|
65
67
|
|
66
|
-
it
|
68
|
+
it 'generates the correct getter definition' do
|
67
69
|
expected = <<-CODE.reset_indentation
|
68
70
|
def some_strv
|
69
71
|
get_property("some-strv").get_value
|
@@ -73,7 +75,7 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
73
75
|
builder.getter_def.must_equal expected
|
74
76
|
end
|
75
77
|
|
76
|
-
it
|
78
|
+
it 'generates the correct setter definition' do
|
77
79
|
expected = <<-CODE.reset_indentation
|
78
80
|
def some_strv= value
|
79
81
|
_v1 = GLib::Strv.from(value)
|
@@ -85,9 +87,9 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
85
87
|
end
|
86
88
|
end
|
87
89
|
|
88
|
-
describe
|
89
|
-
let(:property_info) { get_property_introspection_data(
|
90
|
-
it
|
90
|
+
describe 'for a property of type :utf8' do
|
91
|
+
let(:property_info) { get_property_introspection_data('Regress', 'TestObj', 'string') }
|
92
|
+
it 'generates the correct getter definition' do
|
91
93
|
expected = <<-CODE.reset_indentation
|
92
94
|
def string
|
93
95
|
get_property("string").get_value
|
@@ -97,7 +99,7 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
97
99
|
builder.getter_def.must_equal expected
|
98
100
|
end
|
99
101
|
|
100
|
-
it
|
102
|
+
it 'generates the correct setter definition' do
|
101
103
|
expected = <<-CODE.reset_indentation
|
102
104
|
def string= value
|
103
105
|
set_property("string", value)
|
@@ -108,17 +110,17 @@ describe GirFFI::Builders::PropertyBuilder do
|
|
108
110
|
end
|
109
111
|
end
|
110
112
|
|
111
|
-
describe
|
112
|
-
let(:property_info) { Object.new.tap {|o| o.extend GirFFI::InfoExt::IPropertyInfo } }
|
113
|
+
describe '#container_defines_getter_method?' do
|
114
|
+
let(:property_info) { Object.new.tap { |o| o.extend GirFFI::InfoExt::IPropertyInfo } }
|
113
115
|
let(:container_info) { Object.new }
|
114
116
|
|
115
117
|
before do
|
116
118
|
stub(property_info).container { container_info }
|
117
|
-
stub(property_info).name {
|
118
|
-
stub(container_info).find_instance_method(
|
119
|
+
stub(property_info).name { 'foo-bar' }
|
120
|
+
stub(container_info).find_instance_method('foo_bar') { true }
|
119
121
|
end
|
120
122
|
|
121
|
-
it
|
123
|
+
it 'finds methods with underscores for properties with dashes' do
|
122
124
|
builder.container_defines_getter_method?.must_equal true
|
123
125
|
end
|
124
126
|
end
|
@@ -3,28 +3,28 @@ require 'gir_ffi_test_helper'
|
|
3
3
|
GirFFI.setup :Regress
|
4
4
|
|
5
5
|
describe GirFFI::Builders::RegisteredTypeBuilder do
|
6
|
-
describe
|
7
|
-
it
|
8
|
-
Regress::TestObj.class_eval { remove_method
|
6
|
+
describe '#setup_instance_method' do
|
7
|
+
it 'restores a method that was removed' do
|
8
|
+
Regress::TestObj.class_eval { remove_method 'instance_method' }
|
9
9
|
|
10
10
|
builder = Regress::TestObj.gir_ffi_builder
|
11
11
|
|
12
|
-
builder.setup_instance_method
|
12
|
+
builder.setup_instance_method 'instance_method'
|
13
13
|
|
14
14
|
obj = Regress::TestObj.constructor
|
15
|
-
obj.must_respond_to
|
15
|
+
obj.must_respond_to 'instance_method'
|
16
16
|
end
|
17
17
|
|
18
|
-
it
|
18
|
+
it 'returns the name of the generated method' do
|
19
19
|
builder = Regress::TestObj.gir_ffi_builder
|
20
|
-
result = builder.setup_instance_method
|
21
|
-
result.must_equal
|
20
|
+
result = builder.setup_instance_method 'instance_method'
|
21
|
+
result.must_equal 'instance_method'
|
22
22
|
end
|
23
23
|
|
24
|
-
it
|
24
|
+
it 'returns the name of the generated method if different from the info name' do
|
25
25
|
builder = GLib::IConv.gir_ffi_builder
|
26
|
-
result = builder.setup_instance_method
|
27
|
-
result.must_equal
|
26
|
+
result = builder.setup_instance_method ''
|
27
|
+
result.must_equal '_'
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|