Class: FFI::Tcl::PrettyStruct

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

Overview

Nicer introspection and some accessors.

Direct Known Subclasses

CmdProc, Interp, Obj, ObjType, TclTime

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



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

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



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

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