Module: GirFFI::Builders::TypeBuilder

Defined in:
lib/gir_ffi/builders/type_builder.rb

Overview

Builds a class based on information found in the introspection repository.

Constant Summary collapse

CACHE =
{}
TYPE_MAP =
{
  callback:               CallbackBuilder,
  constant:               ConstantBuilder,
  enum:                   EnumBuilder,
  flags:                  FlagsBuilder,
  interface:              InterfaceBuilder,
  object:                 ObjectBuilder,
  struct:                 StructBuilder,
  union:                  UnionBuilder,
  unintrospectable_boxed: UnintrospectableBoxedBuilder,
  unintrospectable:       UnintrospectableBuilder
}.freeze

Class Method Summary collapse

Class Method Details

.build(info) ⇒ Object



34
35
36
# File 'lib/gir_ffi/builders/type_builder.rb', line 34

def self.build(info)
  builder_for(info).build_class
end

.builder_for(info) ⇒ Object

TODO: Pull up to include :function and :module



39
40
41
# File 'lib/gir_ffi/builders/type_builder.rb', line 39

def self.builder_for(info)
  TYPE_MAP[info.info_type].new(info)
end