class C_控制台

Public Class Methods

new(外部绑定=TOPLEVEL_BINDING) click to toggle source
# File lib/wxl_console.rb, line 19
def initialize(外部绑定=TOPLEVEL_BINDING)
        @命令段落=""
        @命令行提示符="->"
        #
        # 配置参数
        #
        @代码回显=false
        @执行回显=true
        @外部绑定=外部绑定
        @内部绑定=binding
        刷新命令补齐
end

Public Instance Methods

切换代码回显() click to toggle source
# File lib/wxl_console.rb, line 67
def 切换代码回显
        @代码回显 = ! @代码回显
end
切换执行回显() click to toggle source
# File lib/wxl_console.rb, line 71
def 切换执行回显
        @执行回显 = ! @执行回显
end
刷新命令补齐() click to toggle source
# File lib/wxl_console.rb, line 83
def 刷新命令补齐
        补齐列表 =  eval "local_variables",TOPLEVEL_BINDING
        tmp=[]
        补齐列表.each {|x|
                tmp += eval "#{x}.methods",TOPLEVEL_BINDING

        }
        补齐列表 += tmp
        补齐过程 = proc { |s| 补齐列表.grep(/^#{Regexp.escape(s)}/) }
        Readline.completion_proc = 补齐过程
        #
        # completion_append_character 补齐之后,后面自动补上的字符
        # completer_word_break_characters ,比如 a.cc ,这里设置的是以.为起始,cc开头的
        Readline.completion_append_character = ""
        Readline.completer_word_break_characters = ' ."\''  #这里可以设置多个起始的判断字符,让操作支持的范围更广
end
帮助() click to toggle source
# File lib/wxl_console.rb, line 75
def 帮助
        puts "命令:"
        puts "            配置;   #显示配置参数"
        puts "      帮助;   #显示帮助内容"
        puts "      切换代码回显; #切换代码的回显设置"
        puts "      切换执行回显; #切换执行的回显设置"
end
开启() click to toggle source
# File lib/wxl_console.rb, line 32
def 开启
        while 读取行 = Readline.readline(@命令行提示符, true)
                #退出
                exit if 读取行=='exit' || 读取行=='quit' ;
                if ! 读取行.include? ";"
                        @命令段落 << 读取行 + "\n"
                        @命令行提示符="  "
                else
                        @命令段落 << 读取行
                        puts "#{@命令段落}" if @代码回显
                        if @命令段落.include?('配置') or @命令段落.include?('切换代码回显') or @命令段落.include?('切换执行回显') or @命令段落.include?('帮助')
                                begin
                                        eval @命令段落 , @内部绑定
                                rescue Exception => e
                                        puts e
                                end
                        else
                                begin
                                        eval @命令段落 , @外部绑定
                                rescue Exception => e
                                        puts e
                                end
                                
                        end
                        @命令段落=''
                        @命令行提示符="->"
                        刷新命令补齐
                end
        end           
end
配置() click to toggle source
# File lib/wxl_console.rb, line 63
def 配置
        puts "@代码回显 #{@代码回显}"
        puts "@执行回显 #{@执行回显}"
end