gir_ffi 0.14.1 → 0.15.4
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 +56 -0
- data/README.md +12 -12
- data/TODO.md +14 -35
- data/docs/Documentation.md +6 -0
- data/docs/Subclassing.md +38 -0
- data/lib/ffi-glib.rb +26 -21
- data/lib/ffi-glib/array.rb +14 -4
- data/lib/ffi-glib/byte_array.rb +9 -3
- data/lib/ffi-glib/container_class_methods.rb +1 -1
- data/lib/ffi-glib/destroy_notify.rb +2 -2
- data/lib/ffi-glib/error.rb +1 -1
- data/lib/ffi-glib/hash_table.rb +4 -5
- data/lib/ffi-glib/list.rb +12 -6
- data/lib/ffi-glib/list_methods.rb +13 -1
- data/lib/ffi-glib/main_loop.rb +3 -3
- data/lib/ffi-glib/ptr_array.rb +30 -8
- data/lib/ffi-glib/s_list.rb +11 -5
- data/lib/ffi-glib/variant.rb +1 -1
- data/lib/ffi-gobject.rb +13 -16
- data/lib/ffi-gobject/object.rb +82 -87
- data/lib/ffi-gobject/object_class.rb +1 -1
- data/lib/ffi-gobject/param_spec.rb +1 -1
- data/lib/ffi-gobject/ruby_closure.rb +2 -2
- data/lib/ffi-gobject/value.rb +136 -126
- data/lib/ffi-gobject_introspection.rb +20 -20
- data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
- data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_base_info.rb +34 -23
- data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
- data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
- data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
- data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
- data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
- data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
- data/lib/ffi-gobject_introspection/lib.rb +30 -19
- data/lib/ffi-gobject_introspection/strv.rb +1 -1
- data/lib/gir_ffi-base.rb +1 -1
- data/lib/gir_ffi-base/gobject.rb +26 -25
- data/lib/gir_ffi-base/gobject/lib.rb +7 -2
- data/lib/gir_ffi.rb +3 -3
- data/lib/gir_ffi/allocation_helper.rb +1 -1
- data/lib/gir_ffi/arg_helper.rb +4 -4
- data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -24
- data/lib/gir_ffi/boolean.rb +1 -1
- data/lib/gir_ffi/boxed_base.rb +2 -6
- data/lib/gir_ffi/builder.rb +19 -11
- data/lib/gir_ffi/builder_helper.rb +10 -2
- data/lib/gir_ffi/builders/argument_builder.rb +19 -19
- data/lib/gir_ffi/builders/argument_builder_collection.rb +2 -2
- data/lib/gir_ffi/builders/base_argument_builder.rb +2 -1
- data/lib/gir_ffi/builders/base_method_builder.rb +8 -8
- data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
- data/lib/gir_ffi/builders/base_type_builder.rb +2 -2
- data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
- data/lib/gir_ffi/builders/callback_argument_builder.rb +10 -8
- data/lib/gir_ffi/builders/callback_builder.rb +28 -14
- data/lib/gir_ffi/builders/callback_return_value_builder.rb +6 -8
- data/lib/gir_ffi/builders/class_struct_builder.rb +24 -0
- data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
- data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
- data/lib/gir_ffi/builders/constant_builder.rb +1 -1
- data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
- data/lib/gir_ffi/builders/enum_builder.rb +11 -7
- data/lib/gir_ffi/builders/field_builder.rb +20 -18
- data/lib/gir_ffi/builders/flags_builder.rb +2 -2
- data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
- data/lib/gir_ffi/builders/function_builder.rb +11 -5
- data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
- data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
- data/lib/gir_ffi/builders/interface_builder.rb +5 -3
- data/lib/gir_ffi/builders/mapping_method_builder.rb +10 -10
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +12 -9
- data/lib/gir_ffi/builders/method_template.rb +5 -5
- data/lib/gir_ffi/builders/module_builder.rb +7 -7
- data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
- data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
- data/lib/gir_ffi/builders/object_builder.rb +22 -12
- data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
- data/lib/gir_ffi/builders/property_builder.rb +14 -14
- data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
- data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
- data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
- data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
- data/lib/gir_ffi/builders/signal_closure_builder.rb +5 -7
- data/lib/gir_ffi/builders/struct_builder.rb +8 -6
- data/lib/gir_ffi/builders/struct_like.rb +1 -1
- data/lib/gir_ffi/builders/type_builder.rb +12 -12
- data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
- data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
- data/lib/gir_ffi/builders/union_builder.rb +4 -4
- data/lib/gir_ffi/builders/user_defined_builder.rb +10 -3
- data/lib/gir_ffi/builders/vfunc_argument_builder.rb +2 -2
- data/lib/gir_ffi/builders/vfunc_builder.rb +8 -8
- data/lib/gir_ffi/builders/with_layout.rb +2 -2
- data/lib/gir_ffi/callback_base.rb +7 -9
- data/lib/gir_ffi/class_base.rb +6 -5
- data/lib/gir_ffi/core.rb +36 -22
- data/lib/gir_ffi/enum_base.rb +1 -1
- data/lib/gir_ffi/enum_like_base.rb +2 -2
- data/lib/gir_ffi/error_argument_info.rb +2 -2
- data/lib/gir_ffi/error_type_info.rb +1 -1
- data/lib/gir_ffi/ffi_ext.rb +1 -1
- data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
- data/lib/gir_ffi/flags_base.rb +1 -1
- data/lib/gir_ffi/glib_error.rb +1 -2
- data/lib/gir_ffi/in_pointer.rb +17 -0
- data/lib/gir_ffi/info_ext.rb +15 -15
- data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
- data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
- data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
- data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
- data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_value_info.rb +2 -2
- data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
- data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
- data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
- data/lib/gir_ffi/interface_base.rb +3 -3
- data/lib/gir_ffi/lib_c.rb +1 -1
- data/lib/gir_ffi/method_stubber.rb +1 -1
- data/lib/gir_ffi/module_base.rb +1 -1
- data/lib/gir_ffi/object_base.rb +30 -4
- data/lib/gir_ffi/receiver_argument_info.rb +1 -1
- data/lib/gir_ffi/receiver_type_info.rb +2 -2
- data/lib/gir_ffi/registered_type_base.rb +1 -1
- data/lib/gir_ffi/return_value_info.rb +1 -2
- data/lib/gir_ffi/sized_array.rb +4 -2
- data/lib/gir_ffi/struct.rb +1 -1
- data/lib/gir_ffi/struct_base.rb +2 -10
- data/lib/gir_ffi/struct_like_base.rb +9 -5
- data/lib/gir_ffi/type_map.rb +2 -23
- data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
- data/lib/gir_ffi/unintrospectable_type_info.rb +6 -2
- data/lib/gir_ffi/union.rb +1 -1
- data/lib/gir_ffi/union_base.rb +2 -10
- data/lib/gir_ffi/user_defined_object_info.rb +9 -4
- data/lib/gir_ffi/user_defined_property_info.rb +33 -33
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/vfunc_implementation.rb +1 -0
- metadata +102 -155
- data/Gemfile +0 -12
- data/Rakefile +0 -9
- data/lib/ffi-glib/array_methods.rb +0 -16
- data/tasks/test.rake +0 -203
- data/test/base_test_helper.rb +0 -63
- data/test/ffi-glib/array_test.rb +0 -188
- data/test/ffi-glib/byte_array_test.rb +0 -22
- data/test/ffi-glib/bytes_test.rb +0 -56
- data/test/ffi-glib/closure_test.rb +0 -38
- data/test/ffi-glib/destroy_notify_test.rb +0 -18
- data/test/ffi-glib/hash_table_test.rb +0 -68
- data/test/ffi-glib/list_test.rb +0 -86
- data/test/ffi-glib/main_loop_test.rb +0 -53
- data/test/ffi-glib/ptr_array_test.rb +0 -112
- data/test/ffi-glib/ruby_closure_test.rb +0 -62
- data/test/ffi-glib/s_list_test.rb +0 -76
- data/test/ffi-glib/strv_test.rb +0 -60
- data/test/ffi-glib/variant_test.rb +0 -12
- data/test/ffi-gobject/gobject_test.rb +0 -72
- data/test/ffi-gobject/object_class_test.rb +0 -31
- data/test/ffi-gobject/object_test.rb +0 -140
- data/test/ffi-gobject/param_spec_test.rb +0 -32
- data/test/ffi-gobject/value_test.rb +0 -370
- data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
- data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -53
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -33
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
- data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
- data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
- data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
- data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -33
- data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
- data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
- data/test/ffi-gobject_introspection/lib_test.rb +0 -13
- data/test/ffi-gobject_introspection/strv_test.rb +0 -46
- data/test/ffi-gobject_test.rb +0 -151
- data/test/gir_ffi/allocation_helper_test.rb +0 -36
- data/test/gir_ffi/arg_helper_test.rb +0 -140
- data/test/gir_ffi/boolean_test.rb +0 -43
- data/test/gir_ffi/boxed_base_test.rb +0 -65
- data/test/gir_ffi/builder_test.rb +0 -300
- data/test/gir_ffi/builders/argument_builder_test.rb +0 -657
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -129
- data/test/gir_ffi/builders/callback_builder_test.rb +0 -118
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -85
- data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
- data/test/gir_ffi/builders/constructor_builder_test.rb +0 -37
- data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
- data/test/gir_ffi/builders/field_builder_test.rb +0 -134
- data/test/gir_ffi/builders/function_builder_test.rb +0 -538
- data/test/gir_ffi/builders/initializer_builder_test.rb +0 -54
- data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
- data/test/gir_ffi/builders/module_builder_test.rb +0 -43
- data/test/gir_ffi/builders/object_builder_test.rb +0 -98
- data/test/gir_ffi/builders/property_builder_test.rb +0 -161
- data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -30
- data/test/gir_ffi/builders/return_value_builder_test.rb +0 -440
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -188
- data/test/gir_ffi/builders/struct_builder_test.rb +0 -93
- data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -35
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -73
- data/test/gir_ffi/builders/union_builder_test.rb +0 -31
- data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -524
- data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -101
- data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -253
- data/test/gir_ffi/callback_base_test.rb +0 -22
- data/test/gir_ffi/class_base_test.rb +0 -168
- data/test/gir_ffi/core_test.rb +0 -98
- data/test/gir_ffi/enum_base_test.rb +0 -43
- data/test/gir_ffi/error_type_info_test.rb +0 -50
- data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -20
- data/test/gir_ffi/g_type_test.rb +0 -31
- data/test/gir_ffi/in_out_pointer_test.rb +0 -56
- data/test/gir_ffi/in_pointer_test.rb +0 -183
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -21
- data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
- data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
- data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -697
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
- data/test/gir_ffi/interface_base_test.rb +0 -20
- data/test/gir_ffi/method_stubber_test.rb +0 -65
- data/test/gir_ffi/object_base_test.rb +0 -64
- data/test/gir_ffi/object_store_test.rb +0 -41
- data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
- data/test/gir_ffi/sized_array_test.rb +0 -206
- data/test/gir_ffi/struct_base_test.rb +0 -23
- data/test/gir_ffi/struct_like_base_test.rb +0 -167
- data/test/gir_ffi/type_map_test.rb +0 -17
- data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
- data/test/gir_ffi/union_base_test.rb +0 -23
- data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
- data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
- data/test/gir_ffi/variable_name_generator_test.rb +0 -18
- data/test/gir_ffi/version_test.rb +0 -9
- data/test/gir_ffi/zero_terminated_test.rb +0 -108
- data/test/gir_ffi_test_helper.rb +0 -84
- data/test/integration/callback_exceptions_test.rb +0 -63
- data/test/integration/derived_classes_test.rb +0 -53
- data/test/integration/generated_everything_test.rb +0 -452
- data/test/integration/generated_gimarshallingtests_test.rb +0 -2995
- data/test/integration/generated_gio_test.rb +0 -116
- data/test/integration/generated_glib_test.rb +0 -12
- data/test/integration/generated_gobject_test.rb +0 -116
- data/test/integration/generated_gst_test.rb +0 -34
- data/test/integration/generated_gtk_source_test.rb +0 -27
- data/test/integration/generated_gtop_test.rb +0 -29
- data/test/integration/generated_pango_ft2_test.rb +0 -17
- data/test/integration/generated_pango_test.rb +0 -24
- data/test/integration/generated_regress_test.rb +0 -3850
- data/test/integration/generated_secret_test.rb +0 -17
- data/test/integration/generated_utility_test.rb +0 -174
- data/test/integration/generated_warnlib_test.rb +0 -49
- data/test/integration/method_lookup_test.rb +0 -34
- data/test/introspection_test_helper.rb +0 -52
- data/test/lib/Makefile.am +0 -110
- data/test/lib/autogen.sh +0 -4
- data/test/lib/configure.ac +0 -34
- data/test/lib/m4/jhflags.m4 +0 -21
- data/test/minitest/stats_plugin.rb +0 -30
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IConstantInfo do
|
6
|
-
describe 'for GLib::USEC_PER_SEC, a constant of type :gint32' do
|
7
|
-
let(:constant_info) { get_introspection_data 'GLib', 'USEC_PER_SEC' }
|
8
|
-
|
9
|
-
it 'returns :gint32 as its type' do
|
10
|
-
assert_equal :gint32, constant_info.constant_type.tag
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'returns 1_000_000 as its value' do
|
14
|
-
assert_equal 1_000_000, constant_info.value
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe 'for GLib::SOURCE_CONTINUE, a constant of type :gboolean' do
|
19
|
-
let(:constant_info) { get_introspection_data 'GLib', 'SOURCE_CONTINUE' }
|
20
|
-
|
21
|
-
before do
|
22
|
-
skip unless constant_info
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'returns :gboolean as its type' do
|
26
|
-
assert_equal :gboolean, constant_info.constant_type.tag
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'returns true as its value' do
|
30
|
-
assert_equal true, constant_info.value
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IEnumInfo do
|
6
|
-
describe '#find_method' do
|
7
|
-
before do
|
8
|
-
gir = GObjectIntrospection::IRepository.default
|
9
|
-
gir.require 'Regress', nil
|
10
|
-
@info = gir.find_by_name 'Regress', 'TestEnum'
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'finds a method by name' do
|
14
|
-
result = @info.find_method('param')
|
15
|
-
result.name.must_equal 'param'
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IInterfaceInfo do
|
6
|
-
let(:object_info) { get_introspection_data('GObject', 'TypePlugin') }
|
7
|
-
|
8
|
-
describe '#find_method' do
|
9
|
-
it 'finds a method by name string' do
|
10
|
-
object_info.find_method('complete_interface_info').wont_be_nil
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'finds a method by name symbol' do
|
14
|
-
object_info.find_method(:complete_interface_info).wont_be_nil
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#type_name' do
|
19
|
-
it 'returns the correct name' do
|
20
|
-
object_info.type_name.must_equal 'GTypePlugin'
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IObjectInfo do
|
6
|
-
let(:object_info) { get_introspection_data('GObject', 'Object') }
|
7
|
-
|
8
|
-
describe '#find_vfunc' do
|
9
|
-
it 'finds a vfunc by name string' do
|
10
|
-
object_info.find_vfunc('finalize').wont_be_nil
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'finds a vfunc by name symbol' do
|
14
|
-
object_info.find_vfunc(:finalize).wont_be_nil
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#find_method' do
|
19
|
-
it 'finds a method by name string' do
|
20
|
-
object_info.find_method('bind_property').wont_be_nil
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'finds a method by name symbol' do
|
24
|
-
object_info.find_method(:bind_property).wont_be_nil
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '#find_property' do
|
29
|
-
let(:object_info) { get_introspection_data('GObject', 'Binding') }
|
30
|
-
|
31
|
-
it 'finds a property by name string' do
|
32
|
-
object_info.find_property('source-property').wont_be_nil
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'finds a property by snake case string' do
|
36
|
-
object_info.find_property('source_property').wont_be_nil
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'finds a property by name symbol' do
|
40
|
-
object_info.find_property(:source).wont_be_nil
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe '#type_name' do
|
45
|
-
it 'returns the correct name' do
|
46
|
-
object_info.type_name.must_equal 'GObject'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IPropertyInfo do
|
6
|
-
describe "for Regress::TestObj's 'double' property" do
|
7
|
-
let(:property_info) { get_property_introspection_data 'Regress', 'TestObj', 'double' }
|
8
|
-
|
9
|
-
it 'returns :gdouble as its type' do
|
10
|
-
property_info.property_type.tag.must_equal :gdouble
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'flags the property as readable' do
|
14
|
-
property_info.readable?.must_equal true
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'flags the property as writeable' do
|
18
|
-
property_info.writeable?.must_equal true
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'flags the property as not construct-only' do
|
22
|
-
property_info.construct_only?.must_equal false
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "for GObject::Binding's 'target-property' property" do
|
27
|
-
let(:property_info) do
|
28
|
-
get_property_introspection_data 'GObject', 'Binding', 'target-property'
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'returns :utf8 as its type' do
|
32
|
-
property_info.property_type.tag.must_equal :utf8
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'flags the property as readable' do
|
36
|
-
property_info.readable?.must_equal true
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'flags the property as writeable' do
|
40
|
-
property_info.writeable?.must_equal true
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'flags the property as construct-only' do
|
44
|
-
property_info.construct_only?.must_equal true
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IRegisteredTypeInfo do
|
6
|
-
describe '#get_type_name' do
|
7
|
-
describe 'for an interface' do
|
8
|
-
let(:registered_type_info) do
|
9
|
-
get_introspection_data('GIMarshallingTests', 'Interface')
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'returns interface name' do
|
13
|
-
registered_type_info.type_name.must_equal 'GIMarshallingTestsInterface'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe 'for a type that is not an interface' do
|
18
|
-
let(:registered_type_info) do
|
19
|
-
get_introspection_data('GIMarshallingTests', 'Enum')
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'returns nil' do
|
23
|
-
registered_type_info.type_name.must_be_nil
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IRepository do
|
6
|
-
let(:gir) { GObjectIntrospection::IRepository.default }
|
7
|
-
|
8
|
-
describe 'an instance' do
|
9
|
-
it 'is not created by calling new()' do
|
10
|
-
assert_raises NoMethodError do
|
11
|
-
GObjectIntrospection::IRepository.new
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'is created by calling default()' do
|
16
|
-
assert_kind_of GObjectIntrospection::IRepository, gir
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'is a singleton' do
|
20
|
-
gir2 = GObjectIntrospection::IRepository.default
|
21
|
-
assert_equal gir, gir2
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe '#require' do
|
26
|
-
it "raises an error if the namespace doesn't exist" do
|
27
|
-
assert_raises RuntimeError do
|
28
|
-
gir.require 'VeryUnlikelyGObjectNamespaceName', nil
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'allows version to be nil' do
|
33
|
-
gir.require 'GObject', nil
|
34
|
-
pass
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'allows version to be left out' do
|
38
|
-
gir.require 'GObject'
|
39
|
-
pass
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe '#find_by_gtype' do
|
44
|
-
it 'raises an error if 0 is passed as the gtype' do
|
45
|
-
proc { gir.find_by_gtype 0 }.must_raise ArgumentError
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe '#n_infos' do
|
50
|
-
it 'yields more than one object for the GObject namespace' do
|
51
|
-
gir.require 'GObject', '2.0'
|
52
|
-
assert_operator gir.n_infos('GObject'), :>, 0
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe '#info' do
|
57
|
-
it 'yields IBaseInfo objects' do
|
58
|
-
gir.require 'GObject', '2.0'
|
59
|
-
assert_kind_of GObjectIntrospection::IBaseInfo, gir.info('GObject', 0)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
describe '#dependencies' do
|
64
|
-
it 'returns a list of dependencies of the given namespace' do
|
65
|
-
gir.require 'GObject', '2.0'
|
66
|
-
result = gir.dependencies('GObject')
|
67
|
-
result.must_equal ['GLib-2.0']
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'passes its struct pointer to the c function just in case' do
|
71
|
-
gir.require 'GObject', '2.0'
|
72
|
-
allow(GObjectIntrospection::Lib).to receive(:g_irepository_get_dependencies).
|
73
|
-
and_call_original
|
74
|
-
|
75
|
-
gir.dependencies('GObject')
|
76
|
-
|
77
|
-
expect(GObjectIntrospection::Lib).to have_received(:g_irepository_get_dependencies).
|
78
|
-
with(gir, 'GObject')
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IStructInfo do
|
6
|
-
let(:object_info) { get_introspection_data('GObject', 'Closure') }
|
7
|
-
|
8
|
-
describe '#find_method' do
|
9
|
-
it 'finds a method by name string' do
|
10
|
-
object_info.find_method('new_simple').wont_be_nil
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'finds a method by name symbol' do
|
14
|
-
object_info.find_method(:new_simple).wont_be_nil
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#type_name' do
|
19
|
-
it 'returns the correct name' do
|
20
|
-
object_info.type_name.must_equal 'GClosure'
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::ITypeInfo do
|
6
|
-
describe '#name?' do
|
7
|
-
let(:object_info) { get_introspection_data('GIMarshallingTests', 'Object') }
|
8
|
-
let(:vfunc_info) { object_info.find_vfunc('vfunc_array_out_parameter') }
|
9
|
-
let(:arg_info) { vfunc_info.args[0] }
|
10
|
-
let(:type_info) { arg_info.argument_type }
|
11
|
-
|
12
|
-
it 'raises an error' do
|
13
|
-
skip unless vfunc_info
|
14
|
-
proc do
|
15
|
-
type_info.name
|
16
|
-
end.must_raise RuntimeError
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe '#interface' do
|
21
|
-
describe 'for unresolvable interface types' do
|
22
|
-
let(:function_info) { get_introspection_data 'GObject', 'signal_set_va_marshaller' }
|
23
|
-
let(:argument_info) { function_info.args.last }
|
24
|
-
let(:type_info) { argument_info.argument_type }
|
25
|
-
|
26
|
-
it 'returns an IUnresolvableInfo object' do
|
27
|
-
result = type_info.interface
|
28
|
-
result.info_type.must_equal :unresolved
|
29
|
-
result.must_be_kind_of GObjectIntrospection::IUnresolvedInfo
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IUnionInfo do
|
6
|
-
let(:object_info) { get_introspection_data('GLib', 'Mutex') }
|
7
|
-
|
8
|
-
describe '#find_method' do
|
9
|
-
it 'finds a method by name string' do
|
10
|
-
object_info.find_method('clear').wont_be_nil
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'finds a method by name symbol' do
|
14
|
-
object_info.find_method(:clear).wont_be_nil
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IVFuncInfo do
|
6
|
-
let(:vfunc_info) do
|
7
|
-
get_vfunc_introspection_data 'GIMarshallingTests', 'Object', 'method_int8_in'
|
8
|
-
end
|
9
|
-
|
10
|
-
let(:throwing_vfunc_info) do
|
11
|
-
get_vfunc_introspection_data 'GIMarshallingTests', 'Object', 'vfunc_meth_with_err'
|
12
|
-
end
|
13
|
-
|
14
|
-
let(:vfunc_info_with_different_invoker) do
|
15
|
-
get_vfunc_introspection_data 'Regress', 'TestObj', 'matrix'
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#throws?' do
|
19
|
-
it 'returns false if there is no error argument' do
|
20
|
-
vfunc_info.wont_be :throws?
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'returns true if there is and error argument' do
|
24
|
-
throwing_vfunc_info.must_be :throws?
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe '#invoker' do
|
29
|
-
it 'returns nil if no invoker method is present' do
|
30
|
-
throwing_vfunc_info.invoker.must_be_nil
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'returns info for the invoker method if present' do
|
34
|
-
vfunc_info.invoker.name.must_equal 'method_int8_in'
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'returns the correct invoker even if named differently' do
|
38
|
-
vfunc_info_with_different_invoker.invoker.name.must_equal 'do_matrix'
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'introspection_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::Lib::GIArgument do
|
6
|
-
describe 'its member :v_ssize' do
|
7
|
-
it 'is signed' do
|
8
|
-
gia = GObjectIntrospection::Lib::GIArgument.new
|
9
|
-
gia[:v_int64] = -1
|
10
|
-
assert_equal(-1, gia[:v_ssize])
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'base_test_helper'
|
4
|
-
|
5
|
-
describe GObjectIntrospection::Strv do
|
6
|
-
it 'wraps a pointer' do
|
7
|
-
strv = GObjectIntrospection::Strv.new :some_pointer
|
8
|
-
assert_equal :some_pointer, strv.to_ptr
|
9
|
-
end
|
10
|
-
|
11
|
-
describe '::wrap' do
|
12
|
-
it 'takes a pointer and returns a GObjectIntrospection::Strv wrapping it' do
|
13
|
-
strv = GObjectIntrospection::Strv.wrap :some_pointer
|
14
|
-
assert_instance_of GObjectIntrospection::Strv, strv
|
15
|
-
assert_equal :some_pointer, strv.to_ptr
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe '#each' do
|
20
|
-
it 'yields each string element' do
|
21
|
-
ary = %w(one two three)
|
22
|
-
ptrs = ary.map { |a| FFI::MemoryPointer.from_string(a) }
|
23
|
-
ptrs << nil
|
24
|
-
block = FFI::MemoryPointer.new(:pointer, ptrs.length)
|
25
|
-
block.write_array_of_pointer ptrs
|
26
|
-
|
27
|
-
strv = GObjectIntrospection::Strv.new block
|
28
|
-
arr = []
|
29
|
-
strv.each do |str|
|
30
|
-
arr << str
|
31
|
-
end
|
32
|
-
assert_equal %w(one two three), arr
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'yields zero times for a Strv wrapping a null pointer' do
|
36
|
-
strv = GObjectIntrospection::Strv.new FFI::Pointer.new(0)
|
37
|
-
strv.each do |_str|
|
38
|
-
flunk
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'includes Enumerable' do
|
44
|
-
GObjectIntrospection::Strv.must_include Enumerable
|
45
|
-
end
|
46
|
-
end
|