class TkValidateCommand - tk-0.1.2 Documentation

# class TkValidateCommand

### Public Class Methods

_config_keys() click to toggle source

    # File lib/tk/validation.rb, line 292
    def self._config_keys
      # array of config-option key (string or symbol)
      ['vcmd', 'validatecommand', 'invcmd', 'invalidcommand']
    end

new(cmd = Proc.new, *args) click to toggle source

    # File lib/tk/validation.rb, line 335
    def initialize(cmd = Proc.new, *args)
      _initialize_for_cb_class(self.class::ValidateArgs, cmd, *args)
    end

### Public Instance Methods

_initialize_for_cb_class(klass, cmd = Proc.new, *args) click to toggle source

    # File lib/tk/validation.rb, line 297
    def _initialize_for_cb_class(klass, cmd = Proc.new, *args)
      extra_args_tbl = klass._get_extra_args_tbl

      if args.compact.size > 0
        args.map!{|arg| klass._sym2subst(arg)}
        args = args.join(' ')
        keys = klass._get_subst_key(args)
        if cmd.kind_of?(String)
          id = cmd
        elsif cmd.kind_of?(TkCallbackEntry)
          @id = install_cmd(cmd)
        else
          @id = install_cmd(proc{|*arg|
               ex_args = []
               extra_args_tbl.reverse_each{|conv| ex_args << conv.call(arg.pop)}
               klass.ret_val(cmd.call(
                 *(ex_args.concat(klass.scan_args(keys, arg)))
               ))
          }) + ' ' + args
        end
      else
        keys, args = klass._get_all_subst_keys
        if cmd.kind_of?(String)
          id = cmd
        elsif cmd.kind_of?(TkCallbackEntry)
          @id = install_cmd(cmd)
        else
          @id = install_cmd(proc{|*arg|
               ex_args = []
               extra_args_tbl.reverse_each{|conv| ex_args << conv.call(arg.pop)}
               klass.ret_val(cmd.call(
                 *(ex_args << klass.new(*klass.scan_args(keys, arg)))
               ))
          }) + ' ' + args
        end
      end
    end

to_eval() click to toggle source

    # File lib/tk/validation.rb, line 339
    def to_eval
      @id
    end