Sha256: 6ab4eb577bc32aa7500c9aff0614623c598ede1b53c4a082d3dca3f30445fdd8
Contents?: true
Size: 895 Bytes
Versions: 4
Compression:
Stored size: 895 Bytes
Contents
require 'ffi-glib/container_class_methods' module GLib module ListMethods include Enumerable attr_accessor :element_type def self.included base base.extend ContainerClassMethods # Override default field accessors. replace_method base, :next, :tail replace_method base, :data, :head end def self.replace_method base, old, new base.class_eval do remove_method old alias_method old, new end end def each list = self rval = nil until list.nil? rval = yield list.head list = list.tail end rval end def tail self.class.wrap(element_type, @struct[:next]) end def head GirFFI::ArgHelper.cast_from_pointer(element_type, @struct[:data]) end def reset_typespec typespec self.element_type = typespec self end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.4.0 | lib/ffi-glib/list_methods.rb |
gir_ffi-0.3.2 | lib/ffi-glib/list_methods.rb |
gir_ffi-0.3.1 | lib/ffi-glib/list_methods.rb |
gir_ffi-0.3.0 | lib/ffi-glib/list_methods.rb |