module GirFFI::Core

Core GirFFI interface.

Public Instance Methods

define_type(klass) { |info| ... } click to toggle source
# File lib/gir_ffi/core.rb, line 31
def define_type(klass)
  unless klass < GirFFI::ObjectBase
    raise ArgumentError, "#{klass} is not a GObject class"
  end

  klass.prepare_user_defined_class
  info = klass.gir_info

  unless info.is_a? UserDefinedObjectInfo
    raise ArgumentError, "#{klass} is not a user-defined class"
  end

  if block_given?
    warn "Using define_type with a block is deprecated." \
      " Call the relevant functions inside the class definition instead."
    yield info
  end
  Builders::UserDefinedBuilder.new(info).build_class

  klass.gtype
end
setup(namespace, version = nil) click to toggle source
# File lib/gir_ffi/core.rb, line 26
def setup(namespace, version = nil)
  namespace = namespace.to_s
  Builder.build_module namespace, version
end