/usr/lib/ruby/vendor_ruby/ffi-glib/container_class_methods.rb is in ruby-gir-ffi 0.9.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | module GLib
# Common methods for container classes: Array, PtrArray, List, SList and
# HashTable.
module ContainerClassMethods
def wrap(typespec, ptr)
# HACK: wrap and from are almost the same!
ptr = case ptr
when nil
nil
when FFI::Pointer
ptr
when GirFFI::BoxedBase
ptr.to_ptr
end
super(ptr).tap do |container|
container.reset_typespec typespec if container
end
end
def from(typespec = :void, it)
case it
when nil
nil
when FFI::Pointer
wrap typespec, it
when self
it.reset_typespec typespec
when GirFFI::BoxedBase
wrap typespec, it.to_ptr
else
from_enumerable typespec, it
end
end
end
end
|