Sha256: 8b71420d293c948f85d071ab6e910ce6fb32e44c079c00629b42b0baa84f3abe
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
module PyCall class List include PyObjectWrapper include Enumerable def self.new(init=nil) case init when LibPython::PyObjectStruct super when nil new(0) when Integer new(LibPython.PyList_New(init)) when Array new.tap do |list| init.each do |item| list << item end end else new(obj.to_ary) end end def <<(value) value = Conversions.from_ruby(value) LibPython.PyList_Append(__pyobj__, value) self end def size LibPython.PyList_Size(__pyobj__) end alias length size def include?(value) value = Conversions.from_ruby(value) value = LibPython.PySequence_Contains(__pyobj__, value) raise PyError.fetch if value == -1 1 == value end def ==(other) case other when Array self.to_a == other else super end end def each return enum_for unless block_given? i, n = 0, size while i < n yield self[i] i += 1 end self end def to_a [].tap do |a| i, n = 0, size while i < n a << self[i] i += 1 end end end alias to_ary to_a end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pycall-0.1.0.alpha.20170711 | lib/pycall/list.rb |