Class: GLib::Value

Inherits:
Object
  • Object
show all
Defined in:
lib/glib2/value.rb

Class Method Summary collapse

Class Method Details

.try_convert(value) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/glib2/value.rb', line 20

def try_convert(value)
  case value
  when String
    new(GLib::Type::STRING, value)
  when Integer
    if value.negative?
      if value < GLib::MININT32
        new(GLib::Type::INT64, value)
      else
        new(GLib::Type::INT, value)
      end
    else
      if value > GLib::MAXUINT32
        new(GLib::Type::UINT64, value)
      else
        new(GLib::Type::UINT, value)
      end
    end
  when Float
    new(GLib::Type::DOUBLE, value)
  else
    nil
  end
end