diff options
Diffstat (limited to 'ext/tk/lib/tk/validation.rb')
-rw-r--r-- | ext/tk/lib/tk/validation.rb | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/tk/lib/tk/validation.rb b/ext/tk/lib/tk/validation.rb index a0bb5feb8b..53147178a7 100644 --- a/ext/tk/lib/tk/validation.rb +++ b/ext/tk/lib/tk/validation.rb @@ -183,6 +183,7 @@ end class TkValidateCommand include TkComm + extend TkComm class ValidateArgs < TkUtil::CallbackSubst KEY_TBL = [ @@ -227,14 +228,19 @@ class TkValidateCommand _setup_subst_table(KEY_TBL, PROC_TBL); - def self.ret_val(val) - (val)? '1': '0' - end + # + # NOTE: The order of parameters which passed to callback procedure is + # <extra_arg>, <extra_arg>, ... , <subst_arg>, <subst_arg>, ... + # #def self._get_extra_args_tbl # # return an array of convert procs # [] #end + + def self.ret_val(val) + (val)? '1': '0' + end end ############################################### @@ -257,7 +263,7 @@ class TkValidateCommand else @id = install_cmd(proc{|*arg| ex_args = [] - extra_args_tbl.reverse_each{|conv| ex_args << conv.call(args.pop)} + 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))) )) @@ -272,9 +278,9 @@ class TkValidateCommand else @id = install_cmd(proc{|*arg| ex_args = [] - extra_args_tbl.reverse_each{|conv| ex_args << conv.call(args.pop)} + 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))) + *(ex_args << klass.new(*klass.scan_args(keys, arg))) )) }) + ' ' + args end |