class GObjectIntrospection::IRepository

The Gobject Introspection Repository. This class is the point of access to the introspection typelibs. This class wraps the GIRepository struct.

Constants

TYPEMAP

Map info type to class. Default is IBaseInfo.

Public Class Methods

default() click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 63
def self.default
  self.instance
end
new() click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 57
def initialize
  @gobj = Lib::g_irepository_get_default
end
prepend_search_path(path) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 67
def self.prepend_search_path path
  Lib.g_irepository_prepend_search_path path
end
type_tag_to_string(type) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 71
def self.type_tag_to_string type
  Lib.g_type_tag_to_string type
end
wrap_ibaseinfo_pointer(ptr) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 121
def self.wrap_ibaseinfo_pointer ptr
  return nil if ptr.null?

  type = Lib.g_base_info_get_type ptr
  klass = TYPEMAP[type]

  return klass.wrap(ptr)
end

Public Instance Methods

dependencies(namespace) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 111
def dependencies namespace
  strv_p = Lib.g_irepository_get_dependencies(@gobj, namespace)
  strv = GLib::Strv.new strv_p
  strv.to_a
end
find_by_gtype(gtype) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 105
def find_by_gtype gtype
  raise ArgumentError, "Type #{gtype} is not a valid type" if gtype == 0
  ptr = Lib.g_irepository_find_by_gtype @gobj, gtype
  return wrap ptr
end
find_by_name(namespace, name) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 100
def find_by_name namespace, name
  ptr = Lib.g_irepository_find_by_name @gobj, namespace, name
  return wrap ptr
end
info(namespace, index) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 88
def info namespace, index
  ptr = Lib.g_irepository_get_info @gobj, namespace, index
  return wrap ptr
end
infos(namespace) click to toggle source

Utility method

# File lib/ffi-gobject_introspection/i_repository.rb, line 94
def infos namespace
  (0..(n_infos(namespace) - 1)).map do |idx|
    info namespace, idx
  end
end
n_infos(namespace) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 84
def n_infos namespace
  Lib.g_irepository_get_n_infos @gobj, namespace
end
require(namespace, version=nil, flags=0) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 75
def require namespace, version=nil, flags=0
  errpp = FFI::MemoryPointer.new(:pointer).write_pointer nil

  Lib.g_irepository_require @gobj, namespace, version, flags, errpp

  errp = errpp.read_pointer
  raise GError.new(errp).message unless errp.null?
end
shared_library(namespace) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 117
def shared_library namespace
  Lib.g_irepository_get_shared_library @gobj, namespace
end

Private Instance Methods

wrap(ptr) click to toggle source
# File lib/ffi-gobject_introspection/i_repository.rb, line 132
def wrap ptr
  IRepository.wrap_ibaseinfo_pointer ptr
end