class GObject::Value

Overrides for GValue, GObject’s generic value container structure.

Constants

CLASS_TO_GTYPE_MAP
TYPE_TO_GET_METHOD_MAP
TYPE_TO_SET_METHOD_MAP

Public Class Methods

from(val) click to toggle source
# File lib/ffi-gobject/value.rb, line 82
def from val
  case val
  when self
    val
  when nil
    nil
  else
    wrap_ruby_value val
  end
end
wrap_ruby_value(val) click to toggle source
# File lib/ffi-gobject/value.rb, line 78
def wrap_ruby_value val
  self.new.set_ruby_value val
end

Public Instance Methods

current_fundamental_type() click to toggle source
# File lib/ffi-gobject/value.rb, line 53
def current_fundamental_type
  GObject.type_fundamental current_gtype
end
current_gtype() click to toggle source
# File lib/ffi-gobject/value.rb, line 49
def current_gtype
  @struct[:g_type]
end
current_gtype_name() click to toggle source
# File lib/ffi-gobject/value.rb, line 57
def current_gtype_name
  GObject.type_name current_gtype
end
init_for_ruby_value(val) click to toggle source
# File lib/ffi-gobject/value.rb, line 39
def init_for_ruby_value val
  CLASS_TO_GTYPE_MAP.each do |klass, type|
    if klass === val
      init type
      return self
    end
  end
  raise "Can't handle #{val.class}"
end
ruby_value() click to toggle source
# File lib/ffi-gobject/value.rb, line 72
def ruby_value
  method = TYPE_TO_GET_METHOD_MAP[current_fundamental_type]
  call_or_raise method
end
set_ruby_value(val) click to toggle source
# File lib/ffi-gobject/value.rb, line 6
def set_ruby_value val
  if current_gtype == 0
    init_for_ruby_value val
  end

  set_value val
end
set_value(val) click to toggle source
# File lib/ffi-gobject/value.rb, line 26
def set_value val
  method = TYPE_TO_SET_METHOD_MAP[current_fundamental_type]
  call_or_raise method, val
  self
end