Sha256: f5f647e9a92fdf898a6aa425331f591cc8f763efb959e1766ad2ce5c6358a072

Contents?: true

Size: 773 Bytes

Versions: 9

Compression:

Stored size: 773 Bytes

Contents

module Tk
  # This class is used for communication of variables with Tcl.
  class Variable
    attr_reader :name, :tcl_name, :bytesize

    def initialize(name, value = None)
      @name = name.freeze
      @tcl_name = "$#{name}".freeze
      set(value) unless None == value
    end

    def get
      Tk.execute('set', name)
    rescue RuntimeError
      raise NameError, "can't read %p: no such variable" % [name]
    end

    def set(value)
      Tk.execute_only('set', name, value)
    end

    def unset
      Tk.execute_only('unset', name)
    end

    def to_tcl
      TclString.new(name)
    end

    def to_s
      get.to_s
    end

    def to_i
      get.to_i
    end

    def to_boolean
      get.to_boolean
    end

    def to_f
      get.to_f
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ffi-tk-2010.08.23 lib/ffi-tk/variable.rb
ffi-tk-2010.08 lib/ffi-tk/variable.rb
ffi-tk-2010.06 lib/ffi-tk/variable.rb
ffi-tk-2010.03 lib/ffi-tk/variable.rb
ffi-tk-2010.02 lib/ffi-tk/variable.rb
ffi-tk-2010.01 lib/ffi-tk/variable.rb
ffi-tk-2010.01.02 lib/ffi-tk/variable.rb
ffi-tk-2009.12.14 lib/ffi-tk/variable.rb
ffi-tk-2009.11.29 lib/ffi-tk/variable.rb