Class: FFI::Tcl::PrettyStruct

Inherits:
Struct
  • Object
show all
Defined in:
lib/ffi-tk/ffi/tcl/obj.rb

Overview

Nicer introspection and some accessors.

Constant Summary collapse

ACCESSOR_CODE =
<<-CODE
  def {name}; self[{sym}]; end
  def {name}=(value) self[{sym}] = value; end
CODE

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.layout(*kvs) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/ffi-tk/ffi/tcl/obj.rb', line 10

def self.layout(*kvs)
  kvs.each_slice(2) do |key, value|
    eval ACCESSOR_CODE.gsub(/\{(.*?)\}/, '{name}' => key, '{sym}' => ":#{key}")
  end

  super
end

Instance Method Details

#inspectObject



18
19
20
21
22
# File 'lib/ffi-tk/ffi/tcl/obj.rb', line 18

def inspect
  kvs = members.zip(values)
  kvs.map!{|key, value| "%s=%s" % [key, value.inspect] }
  "<%s %s>" % [self.class, kvs.join(' ')]
end