aio_elin 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec78b85511d7bf50150105a4a9c4668ce103ea9f4440b5536e1af0c2be9d309f
4
- data.tar.gz: ca257da733025cf4ccb5dc2297da2ea088b286bf27375fb8c2e53e58c0575020
3
+ metadata.gz: c983dc7e327c673b8fc3c28129e9831d7577abad0773f99f6f5720c192eba531
4
+ data.tar.gz: d2c98d1325451c6a011acde48c2fd5d4b0abc2eeca135c008fb0df99eeb5bb33
5
5
  SHA512:
6
- metadata.gz: f90bd170d42af4e816ab04fc345a9b54bee66ea65c757c432290ca692997b4713299f1b0f8b2f18e83707774790a0a7e0460891b41e2c48c0629329d781d943a
7
- data.tar.gz: ee6f3299b774d705de437a1a7fcadd4428e665630a9656ad80860e954e1a21d2198a982d7314c19ca2ffd3fab2870eef06ff7d8b9192894018d1ba5834a5ba18
6
+ metadata.gz: c8270e9ea0e6adca9755d6513ff90140769c383c63ad534c98872e81a2dcc65889e1df4529dc191aa6e6b79718d43b5f10b4af6ba951d5fc1a408ca3a9dc41c4
7
+ data.tar.gz: b49bff6caca4f13752c3063d9b84df26577d7f50fdb0c8a2833c9bedd229c829566a9f48a811bcacb8ba34348299fbf7cba3abbabf04b710123910b9c72dd726
@@ -1,28 +1,34 @@
1
1
  module Aio::Base::Toolkit::String
2
- class << self
2
+ class << self
3
3
 
4
- # 终极解决方案
4
+ # 终极解决方案
5
5
  # 遇到了 invalid byte sequence in UTF-8 (ArgumentError) 问题
6
6
  # 解决办法参考 https://stackoverflow.com/questions/29877310/invalid-byte-sequence-in-utf-8-argumenterror
7
- def safe(str)
8
- case Aio::Base::Toolkit::OS.os_family
9
- when "unix"
10
- if ! str.valid_encoding?
11
- str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
12
- end
13
- when "windows"
14
- #str = str.force_encoding("UTF-8")
15
- str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
16
- end
7
+ def safe(str)
8
+ case Aio::Base::Toolkit::OS.os_family
9
+ when "unix"
10
+ if ! str.valid_encoding?
11
+ str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
12
+ end
13
+
14
+ # UTF-8 编码前缀删除
15
+ # 参考: https://estl.tech/of-ruby-and-hidden-csv-characters-ef482c679b35
16
+ str.sub!("\xEF\xBB\xBF", '')
17
+
18
+ when "windows"
19
+ #str = str.force_encoding("UTF-8")
20
+ str = str.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
21
+ str.sub!("\xEF\xBB\xBF", '')
22
+ end
17
23
  return str
18
- end
24
+ end
19
25
 
20
- # 改写成安全的Windows书写方式
21
- def safe_path(path)
22
- if Aio::Base::Toolkit::OS.windows?
23
- path.gsub!("/", "\\")
24
- end
25
- end
26
- end
26
+ # 改写成安全的Windows书写方式
27
+ def safe_path(path)
28
+ if Aio::Base::Toolkit::OS.windows?
29
+ path.gsub!("/", "\\")
30
+ end
31
+ end
32
+ end
27
33
  end
28
-
34
+
@@ -28,6 +28,7 @@ module Aio::Parse
28
28
  # 通过巡检文件的方式获得关键信息,并按cmd模块逐个解析
29
29
  def parse_by_module
30
30
 
31
+ debugger
31
32
  # 注意这里manager_ip可有可无, 没有的话默认为nil
32
33
  print_good "正在加载信息..."
33
34
  @input_klass.parse do |device_name, cmd, context, manager_ip|
@@ -136,8 +136,8 @@ class Aio::Module::InputStyle::Console < Aio::Module::InputStyle
136
136
 
137
137
  def parse_line(line)
138
138
  # 如果这行是命令行格式,那么就代表上一个cmd内容结束
139
- tmp_reg = ::Regexp.new "^[\\[|<]?#{cmd_context.device_name}(#|>|\\])"
140
-
139
+ #tmp_reg = ::Regexp.new "^[\\[|<]{0,1}#{cmd_context.device_name}[#|>|\\]]{1}"
140
+ tmp_reg = ::Regexp.new "^[\\[|<]?#{cmd_context.device_name}[#|>|\\]]{1}"
141
141
  # 可能会出现UTF-8识别不出摄氏度符号的问题
142
142
  # 已经通过安全字符解决
143
143
  begin
@@ -197,6 +197,7 @@ class Aio::Module::InputStyle::Console < Aio::Module::InputStyle
197
197
 
198
198
  fo.each_line do |line|
199
199
  begin
200
+ debugger if line =~ /more off/
200
201
  line = Aio::Base::Toolkit::String.safe(line)
201
202
  line = line.strip
202
203
  rescue => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aio_elin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-04 00:00:00.000000000 Z
11
+ date: 2018-12-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 网络设备巡检工具
14
14
  email: 365433079@qq.com