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 10 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 16 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 21 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 42 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 46 def gir @gir ||= GObjectIntrospection::IRepository.default end
lib()
click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 33 def lib @lib ||= namespace_module::Lib end
namespace_module()
click to toggle source
# File lib/gir_ffi/builders/base_type_builder.rb, line 29 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 37 def setup_constants optionally_define_constant(klass, :GIR_INFO) { info } klass.const_set :GIR_FFI_BUILDER, self end