Sha256: 67299ad743ad0103c3ca0196f2d93cda6d354ae4d1e18360f08e2427b4a1e1a4

Contents?: true

Size: 638 Bytes

Versions: 1

Compression:

Stored size: 638 Bytes

Contents

module GirFFI
  module InfoExt
    # Extensions for GObjectIntrospection::IArgInfo needed by GirFFI
    module IArgInfo
      def cast_signal_argument arg
        arg_t = self.argument_type
        if arg_t.tag == :interface
          iface = arg_t.interface
          kls = GirFFI::Builder.build_class iface
          case iface.info_type
          when :enum, :flags
            kls[arg]
          when :interface
            arg.to_object
          else
            kls.wrap(arg)
          end
        else
          arg
        end
      end
    end
  end
end

GObjectIntrospection::IArgInfo.send :include, GirFFI::InfoExt::IArgInfo

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gir_ffi-0.5.2 lib/gir_ffi/info_ext/i_arg_info.rb