Module: GirFFI::EnumBase

Includes:
FFI::DataConverter, RegisteredTypeBase
Defined in:
lib/gir_ffi/enum_base.rb

Overview

Base module for enums.

Instance Method Summary collapse

Methods included from RegisteredTypeBase

#get_gtype

Methods included from TypeBase

#gir_ffi_builder, #gir_info

Instance Method Details

#[](arg) ⇒ Object



21
22
23
# File 'lib/gir_ffi/enum_base.rb', line 21

def [] arg
  self::Enum[arg]
end

#copy_value_to_pointer(value, pointer) ⇒ Object



33
34
35
# File 'lib/gir_ffi/enum_base.rb', line 33

def copy_value_to_pointer value, pointer
  pointer.put_int32 0, to_native(value, nil)
end

#from(arg) ⇒ Object



29
30
31
# File 'lib/gir_ffi/enum_base.rb', line 29

def from arg
  self[arg]
end

#from_native(*args) ⇒ Object



17
18
19
# File 'lib/gir_ffi/enum_base.rb', line 17

def from_native *args
  self::Enum.from_native(*args)
end

#get_value_from_pointer(pointer) ⇒ Object



37
38
39
# File 'lib/gir_ffi/enum_base.rb', line 37

def get_value_from_pointer pointer
  from_native pointer.get_int32(0), nil
end

#native_typeObject



9
10
11
# File 'lib/gir_ffi/enum_base.rb', line 9

def native_type
  self::Enum.native_type
end

#setup_and_call(method, *arguments, &block) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/gir_ffi/enum_base.rb', line 41

def setup_and_call method, *arguments, &block
  result = setup_method method.to_s

  unless result
    raise RuntimeError, "Unable to set up method #{method} in #{self}"
  end

  send method, *arguments, &block
end

#setup_method(name) ⇒ Object



55
56
57
# File 'lib/gir_ffi/enum_base.rb', line 55

def setup_method name
  gir_ffi_builder.setup_method name
end

#to_ffitypeObject



51
52
53
# File 'lib/gir_ffi/enum_base.rb', line 51

def to_ffitype
  self
end

#to_native(*args) ⇒ Object



13
14
15
# File 'lib/gir_ffi/enum_base.rb', line 13

def to_native *args
  self::Enum.to_native(*args)
end

#wrap(arg) ⇒ Object



25
26
27
# File 'lib/gir_ffi/enum_base.rb', line 25

def wrap arg
  self[arg]
end