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,25 +1,25 @@ | |
| 1 1 | 
             
            require 'gir_ffi_test_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            # Tests generated methods and functions in the Gio namespace.
         | 
| 4 | 
            -
            describe  | 
| 4 | 
            +
            describe 'The generated Gio module' do
         | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                GirFFI.setup :Gio
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 | 
            -
              describe  | 
| 10 | 
            -
                it  | 
| 9 | 
            +
              describe '#file_new_for_path, a method returning an interface,' do
         | 
| 10 | 
            +
                it 'returns an object of a more specific class' do
         | 
| 11 11 | 
             
                  file = Gio.file_new_for_path('/')
         | 
| 12 12 | 
             
                  refute_instance_of Gio::File, file
         | 
| 13 13 | 
             
                  assert_includes file.class.ancestors, Gio::File
         | 
| 14 14 | 
             
                end
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 | 
            -
              describe  | 
| 17 | 
            +
              describe 'the result of #file_new_from_path' do
         | 
| 18 18 | 
             
                before do
         | 
| 19 19 | 
             
                  @it = Gio.file_new_for_path('/')
         | 
| 20 20 | 
             
                end
         | 
| 21 21 |  | 
| 22 | 
            -
                it  | 
| 22 | 
            +
                it 'is able to set up a method in a class that is not the first ancestor' do
         | 
| 23 23 | 
             
                  anc = @it.class.ancestors
         | 
| 24 24 | 
             
                  assert_equal [Gio::File, GObject::Object], anc[1, 2]
         | 
| 25 25 |  | 
| @@ -29,74 +29,73 @@ describe "The generated Gio module" do | |
| 29 29 | 
             
                  @it.setup_and_call :get_qdata, 1
         | 
| 30 30 | 
             
                end
         | 
| 31 31 |  | 
| 32 | 
            -
                it  | 
| 32 | 
            +
                it 'knows its GType' do
         | 
| 33 33 | 
             
                  instance_gtype = GObject.type_from_instance @it
         | 
| 34 34 | 
             
                  @it.class.get_gtype.must_equal instance_gtype
         | 
| 35 35 | 
             
                end
         | 
| 36 36 | 
             
              end
         | 
| 37 37 |  | 
| 38 | 
            -
              describe  | 
| 39 | 
            -
                describe  | 
| 38 | 
            +
              describe 'the FileInfo class' do
         | 
| 39 | 
            +
                describe 'an instance' do
         | 
| 40 40 | 
             
                  before do
         | 
| 41 41 | 
             
                    file = Gio.file_new_for_path('/')
         | 
| 42 | 
            -
                    @fileinfo = file.query_info  | 
| 42 | 
            +
                    @fileinfo = file.query_info '*', :none, nil
         | 
| 43 43 | 
             
                  end
         | 
| 44 44 |  | 
| 45 | 
            -
                  it  | 
| 46 | 
            -
                    type = @fileinfo.get_attribute_type  | 
| 45 | 
            +
                  it 'has a working #get_attribute_type method' do
         | 
| 46 | 
            +
                    type = @fileinfo.get_attribute_type 'standard::display-name'
         | 
| 47 47 | 
             
                    assert_equal :string, type
         | 
| 48 48 | 
             
                  end
         | 
| 49 49 | 
             
                end
         | 
| 50 50 | 
             
              end
         | 
| 51 51 |  | 
| 52 | 
            -
              describe  | 
| 52 | 
            +
              describe 'the action-added signal' do
         | 
| 53 53 | 
             
                before do
         | 
| 54 54 | 
             
                  @grp = Gio::SimpleActionGroup.new
         | 
| 55 55 | 
             
                end
         | 
| 56 56 |  | 
| 57 57 | 
             
                it "correctly passes on the string parameter 'action_name'" do
         | 
| 58 58 | 
             
                  a = nil
         | 
| 59 | 
            -
                  GObject.signal_connect @grp,  | 
| 59 | 
            +
                  GObject.signal_connect @grp, 'action-added' do |_grp, action_name, _user_data|
         | 
| 60 60 | 
             
                    a = action_name
         | 
| 61 61 | 
             
                  end
         | 
| 62 | 
            -
                  GObject.signal_emit @grp,  | 
| 63 | 
            -
                  assert_equal  | 
| 62 | 
            +
                  GObject.signal_emit @grp, 'action-added', 'foo'
         | 
| 63 | 
            +
                  assert_equal 'foo', a
         | 
| 64 64 | 
             
                end
         | 
| 65 65 | 
             
              end
         | 
| 66 66 |  | 
| 67 | 
            -
              describe  | 
| 67 | 
            +
              describe 'the reply signal' do
         | 
| 68 68 | 
             
                before do
         | 
| 69 69 | 
             
                  @mo = Gio::MountOperation.new
         | 
| 70 70 | 
             
                end
         | 
| 71 71 |  | 
| 72 72 | 
             
                it "correctly passes on the enum parameter 'result'" do
         | 
| 73 73 | 
             
                  a = nil
         | 
| 74 | 
            -
                  GObject.signal_connect @mo,  | 
| 74 | 
            +
                  GObject.signal_connect @mo, 'reply' do |_mnt, result, _user_data|
         | 
| 75 75 | 
             
                    a = result
         | 
| 76 76 | 
             
                  end
         | 
| 77 | 
            -
                  GObject.signal_emit @mo,  | 
| 77 | 
            +
                  GObject.signal_emit @mo, 'reply', :unhandled
         | 
| 78 78 | 
             
                  assert_equal :unhandled, a
         | 
| 79 79 | 
             
                end
         | 
| 80 80 | 
             
              end
         | 
| 81 81 |  | 
| 82 | 
            -
              describe  | 
| 83 | 
            -
                it  | 
| 82 | 
            +
              describe 'the CharsetConverter class' do
         | 
| 83 | 
            +
                it 'includes two interfaces' do
         | 
| 84 84 | 
             
                  klass = Gio::CharsetConverter
         | 
| 85 85 | 
             
                  assert_includes klass.ancestors, Gio::Converter
         | 
| 86 86 | 
             
                  assert_includes klass.ancestors, Gio::Initable
         | 
| 87 87 | 
             
                end
         | 
| 88 88 |  | 
| 89 | 
            -
                it  | 
| 90 | 
            -
                  cnv = Gio::CharsetConverter.new  | 
| 89 | 
            +
                it 'allows an instance to find the #reset method' do
         | 
| 90 | 
            +
                  cnv = Gio::CharsetConverter.new 'utf8', 'utf8'
         | 
| 91 91 | 
             
                  cnv.reset
         | 
| 92 92 | 
             
                  pass
         | 
| 93 93 | 
             
                end
         | 
| 94 94 | 
             
              end
         | 
| 95 95 |  | 
| 96 | 
            -
              describe  | 
| 97 | 
            -
                it  | 
| 98 | 
            -
                  Gio::SocketSourceFunc.new {|*args| p args}.to_native
         | 
| 96 | 
            +
              describe 'the SocketSourceFunc callback' do
         | 
| 97 | 
            +
                it 'can be cast to a native function' do
         | 
| 98 | 
            +
                  Gio::SocketSourceFunc.new { |*args| p args }.to_native
         | 
| 99 99 | 
             
                end
         | 
| 100 100 | 
             
              end
         | 
| 101 101 | 
             
            end
         | 
| 102 | 
            -
             | 
| @@ -1,10 +1,16 @@ | |
| 1 1 | 
             
            require 'gir_ffi_test_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            # Tests generated classes, methods and functions in the GLib namespace.
         | 
| 4 | 
            -
            describe  | 
| 5 | 
            -
              it  | 
| 4 | 
            +
            describe 'The generated GLib module' do
         | 
| 5 | 
            +
              it 'can auto-generate the GLib::IConv class' do
         | 
| 6 6 | 
             
                klass = GLib::IConv
         | 
| 7 7 |  | 
| 8 8 | 
             
                klass.must_be_instance_of Class
         | 
| 9 9 | 
             
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              it 'can auto-generate the GLib::SOURCE_REMOVE constant' do
         | 
| 12 | 
            +
                skip unless get_introspection_data 'GLib', 'SOURCE_REMOVE'
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                GLib::SOURCE_REMOVE.must_equal false
         | 
| 15 | 
            +
              end
         | 
| 10 16 | 
             
            end
         | 
| @@ -1,24 +1,31 @@ | |
| 1 1 | 
             
            require 'gir_ffi_test_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe GObject do
         | 
| 4 | 
            -
              describe  | 
| 5 | 
            -
                it  | 
| 4 | 
            +
              describe '.type_interfaces' do
         | 
| 5 | 
            +
                it 'works, showing that returning an array of GType works' do
         | 
| 6 6 | 
             
                  klass = GObject::TypeModule
         | 
| 7 7 | 
             
                  ifcs = GObject.type_interfaces klass.get_gtype
         | 
| 8 8 | 
             
                  assert_equal 1, ifcs.size
         | 
| 9 9 | 
             
                end
         | 
| 10 10 | 
             
              end
         | 
| 11 11 |  | 
| 12 | 
            +
              describe '.signal_set_va_marshaller' do
         | 
| 13 | 
            +
                it 'can be set up' do
         | 
| 14 | 
            +
                  result = GObject.setup_method 'signal_set_va_marshaller'
         | 
| 15 | 
            +
                  result.must_equal true
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
             | 
| 12 19 | 
             
              describe GObject::TypeInfo do
         | 
| 13 20 | 
             
                let(:instance) { GObject::TypeInfo.new }
         | 
| 14 | 
            -
                it  | 
| 15 | 
            -
                  instance.class_init = proc do | | 
| 21 | 
            +
                it 'has a working field setter for class_init' do
         | 
| 22 | 
            +
                  instance.class_init = proc do |_object_class, _data|
         | 
| 16 23 | 
             
                  end
         | 
| 17 24 | 
             
                end
         | 
| 18 25 |  | 
| 19 | 
            -
                it  | 
| 26 | 
            +
                it 'has a working field getter for class_init' do
         | 
| 20 27 | 
             
                  instance.class_init.must_be_nil
         | 
| 21 | 
            -
                  instance.class_init = proc do | | 
| 28 | 
            +
                  instance.class_init = proc do |_object_class, _data|
         | 
| 22 29 | 
             
                  end
         | 
| 23 30 | 
             
                  result = instance.class_init
         | 
| 24 31 | 
             
                  result.wont_be_nil
         | 
| @@ -27,7 +34,7 @@ describe GObject do | |
| 27 34 | 
             
              end
         | 
| 28 35 |  | 
| 29 36 | 
             
              describe GObject::TypePlugin do
         | 
| 30 | 
            -
                it  | 
| 37 | 
            +
                it 'is implemented as a module' do
         | 
| 31 38 | 
             
                  mod = GObject::TypePlugin
         | 
| 32 39 | 
             
                  assert_instance_of Module, mod
         | 
| 33 40 | 
             
                  refute_instance_of Class, mod
         | 
| @@ -35,14 +42,14 @@ describe GObject do | |
| 35 42 | 
             
              end
         | 
| 36 43 |  | 
| 37 44 | 
             
              describe GObject::TypeModule do
         | 
| 38 | 
            -
                it  | 
| 45 | 
            +
                it 'has the GObject::TypePlugin module as an ancestor' do
         | 
| 39 46 | 
             
                  klass = GObject::TypeModule
         | 
| 40 47 | 
             
                  assert_includes klass.ancestors, GObject::TypePlugin
         | 
| 41 48 | 
             
                end
         | 
| 42 49 | 
             
              end
         | 
| 43 50 |  | 
| 44 51 | 
             
              describe GObject::ValueArray do
         | 
| 45 | 
            -
                it  | 
| 52 | 
            +
                it 'uses the constructor provided by GObject' do
         | 
| 46 53 | 
             
                  instance = GObject::ValueArray.new 16
         | 
| 47 54 | 
             
                  instance.n_prealloced.must_equal 16
         | 
| 48 55 | 
             
                  instance.n_values.must_equal 0
         | 
| @@ -6,7 +6,7 @@ GirFFI.setup :PangoFT2 | |
| 6 6 | 
             
            # Tests generated methods and functions in the PangoFT2 namespace.
         | 
| 7 7 | 
             
            describe PangoFT2 do
         | 
| 8 8 | 
             
              describe PangoFT2::FontMap do
         | 
| 9 | 
            -
                it  | 
| 9 | 
            +
                it 'has a working method #load_font' do
         | 
| 10 10 | 
             
                  font_map = PangoFT2::FontMap.new
         | 
| 11 11 | 
             
                  context = font_map.create_context
         | 
| 12 12 | 
             
                  font_description = Pango::FontDescription.new
         | 
| @@ -14,4 +14,3 @@ describe PangoFT2 do | |
| 14 14 | 
             
                end
         | 
| 15 15 | 
             
              end
         | 
| 16 16 | 
             
            end
         | 
| 17 | 
            -
             | 
| @@ -6,11 +6,11 @@ GirFFI.setup :Pango | |
| 6 6 | 
             
            # Tests generated methods and functions in the Pango namespace.
         | 
| 7 7 | 
             
            describe Pango do
         | 
| 8 8 | 
             
              describe Pango::Language do
         | 
| 9 | 
            -
                it  | 
| 9 | 
            +
                it 'has a working method #get_scripts' do
         | 
| 10 10 | 
             
                  lang = Pango::Language.from_string 'ja'
         | 
| 11 11 | 
             
                  result = lang.get_scripts
         | 
| 12 12 |  | 
| 13 | 
            -
                  if GirFFI::SizedArray | 
| 13 | 
            +
                  if result.is_a? GirFFI::SizedArray
         | 
| 14 14 | 
             
                    scripts = result
         | 
| 15 15 | 
             
                  else
         | 
| 16 16 | 
             
                    ptr, size = *result
         |