aio_elin 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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