class GirFFI::BaseTypeBuilder

Base class for type builders.

Attributes

info[R]

Public Class Methods

new(info) click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 8
def initialize(info)
  @info = info
  @namespace = @info.namespace
  @classname = @info.safe_name
end

Public Instance Methods

build_class() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 14
def build_class
  instantiate_class unless defined? @klass
  @klass
end
instantiate_class() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 19
def instantiate_class
  setup_class unless already_set_up
end

Private Instance Methods

already_set_up() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 40
def already_set_up
  klass.const_defined? :GIR_FFI_BUILDER, false
end
gir() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 44
def gir
  @gir ||= GObjectIntrospection::IRepository.default
end
lib() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 31
def lib
  @lib ||= namespace_module::Lib
end
namespace_module() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 27
def namespace_module
  @namespace_module ||= Builder.build_module @namespace
end
setup_constants() click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 35
def setup_constants
  klass.const_set :GIR_INFO, info
  klass.const_set :GIR_FFI_BUILDER, self
end