Sha256: 97d386f864c5efb6d2b65f51e1475ce397820a5ac0c786e7cb37fc8ed2af977d
Contents?: true
Size: 1.02 KB
Versions: 11
Compression:
Stored size: 1.02 KB
Contents
require 'gir_ffi/builder/type/registered_type' module GirFFI module Builder module Type # Implements the creation of an enum or flags type. The type will be # attached to the appropriate namespace module, and will be defined # as an enum for FFI. class Enum < RegisteredType def pretty_print "#{@classname} = Lib.enum #{enum_sym.inspect}, #{value_spec.inspect}" end private def enum_sym @classname.to_sym end def value_spec return info.values.map {|vinfo| val = GirFFI::ArgHelper.cast_uint32_to_int32(vinfo.value) [vinfo.name.to_sym, val] }.flatten end def instantiate_class @klass = optionally_define_constant namespace_module, @classname do lib.enum(enum_sym, value_spec) end setup_gtype_getter unless already_set_up end def already_set_up @klass.respond_to? :get_gtype end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems