Class: Aio::Ui::Console
Constant Summary collapse
- DefaultCompare =
"special/style/compare"
- DefaultInputComapreXML =
"input/style/compare_xml"
Instance Attribute Summary collapse
-
#banner ⇒ Object
Aio::Ui::Banner.
-
#device_manager ⇒ Object
Aio::DeviceManager.
-
#module_manager ⇒ Object
Aio::ModuleManager.
-
#parser ⇒ Object
Aio::Parse::Parser.
Instance Method Summary collapse
-
#initialize(args) ⇒ Console
constructor
A new instance of Console.
-
#proc_0 ⇒ Object
输出模块表.
-
#proc_1 ⇒ Object
通过选择的输入输出模块进行操作.
- #process ⇒ Object
Methods included from Verbose
#clear_line, #print_error, #print_good, #progress_bar
Constructor Details
Instance Attribute Details
#banner ⇒ Object
Aio::Ui::Banner
24 25 26 |
# File 'lib/aio/ui.rb', line 24 def @banner end |
#device_manager ⇒ Object
Aio::DeviceManager
18 19 20 |
# File 'lib/aio/ui.rb', line 18 def device_manager @device_manager end |
#module_manager ⇒ Object
Aio::ModuleManager
15 16 17 |
# File 'lib/aio/ui.rb', line 15 def module_manager @module_manager end |
#parser ⇒ Object
Aio::Parse::Parser
21 22 23 |
# File 'lib/aio/ui.rb', line 21 def parser @parser end |
Instance Method Details
#proc_0 ⇒ Object
输出模块表
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/aio/ui.rb', line 44 def proc_0 case .type when "cmd" mods = module_manager.get_modules_by_type("cmd") print ReadableText.dump_module_cmds(mods) when "input" mods = module_manager.get_modules_by_type("input") print ReadableText.dump_module_inputs(mods) when "output" mods = module_manager.get_modules_by_type("output") print ReadableText.dump_module_outputs(mods) else mods = module_manager.get_modules_by_type("cmd") print ReadableText.dump_module_cmds(mods) mods = module_manager.get_modules_by_type("input") print ReadableText.dump_module_inputs(mods) mods = module_manager.get_modules_by_type("output") print ReadableText.dump_module_outputs(mods) end end |
#proc_1 ⇒ Object
通过选择的输入输出模块进行操作
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/aio/ui.rb', line 68 def proc_1 # 当完全没有指定input的时候,是可以跳过的 if .has_input? input_klass = module_manager.get_module_klass_by_name(.input_style) input_klass.input_file = .input input_klass.ext_info = {:cmds_reg => device_manager.just_cmds_reg} parser.input_klass = input_klass parser.parse_by_module # 当有compare选项的时候,同时解析compare模块,并合并warning信息 if .compare print_good "正在加载比较模块" if .compare =~ /\.xml$/ input_klass_compare = module_manager.get_module_klass_by_name(DefaultInputComapreXML) else print_error "请确认 -c 参数文件后缀" . end input_klass_compare.input_file = .compare compare_klass = module_manager.get_module_klass_by_name(DefaultCompare) print_good "比较模块加载成功" print_good "正在进行对比..." parser.input_klass = input_klass_compare parser.parse_by_compare(compare_klass) print_good "对比分析完成" end # Debug 处 if Aio::Base::Debug.ui_enable? #or true puts "[Debug UI]" device_manager.devices.each_pair{|name, device_klass| pp name pp device_klass.cmds_useful["show version"] #pp device_klass.device_name #pp device_klass.cmds_useful #pp device_klass.warning_klass.warning_info puts } puts "[/Debug UI]" end device_manager.warning_summarize_tidy end # 判断没有没 input 尾部 # NOTE Debug 输出方法处 #device_manager["PF_YYB_MP2900_1"].inventory print_good "正在加载输出模块 #{.output_style}" output_klass = module_manager.get_module_klass_by_name(.output_style) pn = Pathname.new(.output) dir, base = pn.split base = base.to_s unless base =~ /\./ suffix = output_klass.file_suffix unless suffix == "" or /(?i)null/ =~ suffix base << "." + suffix end end print_good "正在输出文件 #{dir + base}" output_klass.device_manager = device_manager output_klass.module_manager = module_manager output_klass.output_file = .output output_klass.generate print_good "输出文件完成" end |
#process ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/aio/ui.rb', line 34 def process case self..mode when 0 proc_0 when 1 proc_1 end end |