class FFIAdditions::Struct
Public Class Methods
layout(*args)
click to toggle source
Calls superclass method
# File lib/ffi-additions/struct.rb, line 5 def self.layout(*args) args = args.first.map do |k, v| if v == :string v = :pointer define_method "#{k}=", ->(s){ self[k] = FFI::MemoryPointer.from_string(s) } end [k, v] end.to_h # puts args super(args) members.each do |name| unless method_defined?(name) define_method name, ->{ self[name] } end unless method_defined?("#{name}=") define_method "#{name}=", ->(v){ self[name] = v } end end end