class Fiddle::CStruct
A base class for objects representing a C structure
Public Class Methods
entity_class()
click to toggle source
accessor to Fiddle::CStructEntity
# File ext/fiddle/lib/fiddle/struct.rb, line 12 def CStruct.entity_class CStructEntity end
Public Instance Methods
each() { |self| ... }
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 16 def each return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(self[name]) end end
each_pair() { |name, self| ... }
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 24 def each_pair return enum_for(__function__) unless block_given? self.class.members.each do |name,| yield(name, self[name]) end end
replace(another)
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 40 def replace(another) if another.nil? self.class.members.each do |name,| self[name] = nil end elsif another.respond_to?(:each_pair) another.each_pair do |name, value| self[name] = value end else another.each do |name, value| self[name] = value end end self end
to_h()
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 32 def to_h hash = {} each_pair do |name, value| hash[name] = unstruct(value) end hash end
Private Instance Methods
unstruct(value)
click to toggle source
# File ext/fiddle/lib/fiddle/struct.rb, line 58 def unstruct(value) case value when CStruct value.to_h when Array value.collect do |v| unstruct(v) end else value end end