Class: Aio::Text::Warning
- Inherits:
-
Object
- Object
- Aio::Text::Warning
- Defined in:
- lib/aio/core/text/warning.rb
Instance Attribute Summary collapse
-
#warning_info ⇒ Object
readonly
Returns the value of attribute warning_info.
Instance Method Summary collapse
- #clear ⇒ Object
- #compare_number ⇒ Object
-
#filter?(level, sym) ⇒ Boolean
与Aio::Config::Warning联动,如果里面有sym 的信息,则过滤.
-
#has_warning? ⇒ Boolean
判断是否有警告信息.
- #has_warning_compare? ⇒ Boolean
- #has_warning_ordinary? ⇒ Boolean
- #has_warning_serious? ⇒ Boolean
-
#include_warning?(warn) ⇒ Boolean
判断是否有指定的警告信息 不对compare 进行判断,因为compare 的格式还没有统一.
- #include_warning_ordinary?(warn) ⇒ Boolean
- #include_warning_serious?(warn) ⇒ Boolean
-
#initialize ⇒ Warning
constructor
A new instance of Warning.
- #ordinary_number ⇒ Object
-
#serious_number ⇒ Object
警告数量.
- #total_number ⇒ Object
-
#warning(info, sym, level, mod, force = nil) ⇒ Object
判断是否需要添加警告 info = iface sym = :errors mod = CMD模块self force 是否直接添加到warning_info中 如果是否,这相当于update.
- #warning_compare(info) ⇒ Object
- #warning_info_compare ⇒ Object
- #warning_info_ordinary ⇒ Object
- #warning_info_serious ⇒ Object
- #warning_ordinary(info, sym, mod, force = nil) ⇒ Object
- #warning_serious(info, sym, mod, force = nil) ⇒ Object
Constructor Details
Instance Attribute Details
#warning_info ⇒ Object (readonly)
Returns the value of attribute warning_info.
5 6 7 |
# File 'lib/aio/core/text/warning.rb', line 5 def warning_info @warning_info end |
Instance Method Details
#clear ⇒ Object
15 16 17 |
# File 'lib/aio/core/text/warning.rb', line 15 def clear @warning_info.each_pair { |_, v| v.clear } end |
#compare_number ⇒ Object
138 139 140 |
# File 'lib/aio/core/text/warning.rb', line 138 def compare_number warning_info_compare.size end |
#filter?(level, sym) ⇒ Boolean
与Aio::Config::Warning联动,如果里面有sym 的信息,则过滤
167 168 169 170 171 172 173 174 175 |
# File 'lib/aio/core/text/warning.rb', line 167 def filter?(level, sym) case level when :serious warn = Aio::Config::Warning::Serious when :ordinary warn = Aio::Config::Warning::Ordinary end warn.include?(sym) ? false : true end |
#has_warning? ⇒ Boolean
判断是否有警告信息
110 111 112 113 114 115 |
# File 'lib/aio/core/text/warning.rb', line 110 def has_warning? return true unless warning_info_serious.empty? return true unless warning_info_ordinary.empty? return true unless warning_info_compare.empty? return false end |
#has_warning_compare? ⇒ Boolean
125 126 127 |
# File 'lib/aio/core/text/warning.rb', line 125 def has_warning_compare? warning_info_compare.empty? ? false : true end |
#has_warning_ordinary? ⇒ Boolean
121 122 123 |
# File 'lib/aio/core/text/warning.rb', line 121 def has_warning_ordinary? warning_info_ordinary.empty? ? false : true end |
#has_warning_serious? ⇒ Boolean
117 118 119 |
# File 'lib/aio/core/text/warning.rb', line 117 def has_warning_serious? warning_info_serious.empty? ? false : true end |
#include_warning?(warn) ⇒ Boolean
判断是否有指定的警告信息不对compare 进行判断,因为compare 的格式还没有统一
148 149 150 151 152 153 154 |
# File 'lib/aio/core/text/warning.rb', line 148 def include_warning?(warn) warn = warn[0].to_sym if warn.class == ::Array return true if include_warning_serious?(warn) return true if include_warning_ordinary?(warn) #return true if include_warning_compare?(warn) return false end |
#include_warning_ordinary?(warn) ⇒ Boolean
161 162 163 164 |
# File 'lib/aio/core/text/warning.rb', line 161 def include_warning_ordinary?(warn) warn = warn[0].to_sym if warn.class == ::Array warning_info_ordinary.has_key?(warn) ? true : false end |
#include_warning_serious?(warn) ⇒ Boolean
156 157 158 159 |
# File 'lib/aio/core/text/warning.rb', line 156 def include_warning_serious?(warn) warn = warn[0].to_sym if warn.class == ::Array warning_info_serious.has_key?(warn) ? true : false end |
#ordinary_number ⇒ Object
134 135 136 |
# File 'lib/aio/core/text/warning.rb', line 134 def ordinary_number warning_info_ordinary.size end |
#serious_number ⇒ Object
警告数量
130 131 132 |
# File 'lib/aio/core/text/warning.rb', line 130 def serious_number warning_info_serious.size end |
#total_number ⇒ Object
142 143 144 |
# File 'lib/aio/core/text/warning.rb', line 142 def total_number serious_number + ordinary_number + compare_number end |
#warning(info, sym, level, mod, force = nil) ⇒ Object
判断是否需要添加警告info = iface sym = :errors mod = CMD模块self force 是否直接添加到warning_info中 如果是否,这相当于update
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/aio/core/text/warning.rb', line 25 def warning(info, sym, level, mod, force=nil) benchmark = mod.benchmark[sym] var = info[sym] # 支持有多个条件的基准值, 只要有一个符合标准就通过 if force.nil? cond_num = benchmark.size - 1 i = 1 res = [] cond_num.times do case benchmark[i] when String var = var.to_s when Integer var = var.to_i when Float var = var.to_f end # 还有种情况是正则的方式 var = var ben = benchmark[i] res << case benchmark[0] when "==" var == ben when "=~" var.match(Regexp.new(ben)) ? true : false when "!=" var != ben when ">" var > ben when ">=" var >= ben when "<" var < ben when "<=" var <= ben end i += 1 end # 当 force 为假的时候,说明不需要加入到warning中,所以 res 为真 elsif force == false res = [true] # 当 force 为真的时候,说明需要加入到warning中,所以 res 为假 elsif force == true res = [false] end unless res.include?(true) if filter?(level, sym) @warning_info[level][sym] ||= [] @warning_info[level][sym] << info #pp "#{mod.ext_info[:device_name]} : #{level} : #{sym}" end end end |
#warning_compare(info) ⇒ Object
93 94 95 |
# File 'lib/aio/core/text/warning.rb', line 93 def warning_compare(info) @warning_info[:compare] << info end |
#warning_info_compare ⇒ Object
105 106 107 |
# File 'lib/aio/core/text/warning.rb', line 105 def warning_info_compare @warning_info[:compare] end |
#warning_info_ordinary ⇒ Object
101 102 103 |
# File 'lib/aio/core/text/warning.rb', line 101 def warning_info_ordinary @warning_info[:ordinary] end |
#warning_info_serious ⇒ Object
97 98 99 |
# File 'lib/aio/core/text/warning.rb', line 97 def warning_info_serious @warning_info[:serious] end |
#warning_ordinary(info, sym, mod, force = nil) ⇒ Object
89 90 91 |
# File 'lib/aio/core/text/warning.rb', line 89 def warning_ordinary(info, sym, mod, force=nil) warning(info, sym, :ordinary, mod, force) end |
#warning_serious(info, sym, mod, force = nil) ⇒ Object
85 86 87 |
# File 'lib/aio/core/text/warning.rb', line 85 def warning_serious(info, sym, mod, force=nil) warning(info, sym, :serious, mod, force) end |