Sha256: a84d2bcbf1b2f1e05eaffa1eeef58c5a2fc4fa0b1a20c323ea18f452bc9b69c8
Contents?: true
Size: 1.09 KB
Versions: 10
Compression:
Stored size: 1.09 KB
Contents
# frozen_string_literal: true module GObjectIntrospection # Wraps a GIConstantInfo struct; represents a constant. class IConstantInfo < IBaseInfo TYPE_TAG_TO_UNION_MEMBER = { gboolean: :v_boolean, gint8: :v_int8, gint16: :v_int16, gint32: :v_int32, gint64: :v_int64, guint8: :v_uint8, guint16: :v_uint16, guint32: :v_uint32, guint64: :v_uint64, gdouble: :v_double, utf8: :v_string }.freeze def value case type_tag when :utf8 raw_value.force_encoding("utf-8") when :gboolean raw_value.nonzero? ? true : false else raw_value end end def constant_type @constant_type ||= ITypeInfo.wrap Lib.g_constant_info_get_type self end private def type_tag @type_tag ||= constant_type.tag end def raw_value value_union = Lib::GIArgument.new Lib.g_constant_info_get_value self, value_union value_union[union_member_key] end def union_member_key TYPE_TAG_TO_UNION_MEMBER[type_tag] end end end
Version data entries
10 entries across 10 versions & 1 rubygems