Sha256: 42f76e38e4da2a3d82867fe917bd619b40d23f2599e00bbcd550a3353485b724

Contents?: true

Size: 922 Bytes

Versions: 7

Compression:

Stored size: 922 Bytes

Contents

require 'gir_ffi/user_defined_property_info'
require 'gir_ffi/vfunc_implementation'

module GirFFI
  # Represents a user defined type, conforming, as needed, to the interface of
  # GObjectIntrospection::IObjectInfo.
  # TODO: Rename to UserDefinedObjectInfo
  class UserDefinedTypeInfo
    attr_reader :properties, :vfunc_implementations

    def initialize klass
      @klass = klass
      @properties = []
      @vfunc_implementations = []
      yield self if block_given?
    end

    def described_class
      @klass
    end

    def install_property property
      @properties << UserDefinedPropertyInfo.new(property)
    end

    def install_vfunc_implementation name, implementation
      @vfunc_implementations << VFuncImplementation.new(name, implementation)
    end

    def find_instance_method _method
      nil
    end

    attr_writer :g_name

    def g_name
      @g_name ||= @klass.name
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
gir_ffi-0.7.10 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.9 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.8 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.7 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.6 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.5 lib/gir_ffi/user_defined_type_info.rb
gir_ffi-0.7.4 lib/gir_ffi/user_defined_type_info.rb