class Aio::Text::Warning
Attributes
warning_info[R]
Public Class Methods
new()
click to toggle source
# File lib/aio/core/text/warning.rb, line 7 def initialize @warning_info = { :serious => {}, :ordinary => {}, :compare => Aio::Text::Compare.new, } end
Public Instance Methods
clear()
click to toggle source
# File lib/aio/core/text/warning.rb, line 15 def clear @warning_info.each_pair { |_, v| v.clear } end
compare_number()
click to toggle source
# File lib/aio/core/text/warning.rb, line 138 def compare_number warning_info_compare.size end
filter?(level, sym)
click to toggle source
与Aio::Config::Warning联动,如果里面有sym 的信息,则过滤
# 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?()
click to toggle source
判断是否有警告信息
# 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?()
click to toggle source
# File lib/aio/core/text/warning.rb, line 125 def has_warning_compare? warning_info_compare.empty? ? false : true end
has_warning_ordinary?()
click to toggle source
# File lib/aio/core/text/warning.rb, line 121 def has_warning_ordinary? warning_info_ordinary.empty? ? false : true end
has_warning_serious?()
click to toggle source
# File lib/aio/core/text/warning.rb, line 117 def has_warning_serious? warning_info_serious.empty? ? false : true end
include_warning?(warn)
click to toggle source
判断是否有指定的警告信息 不对compare 进行判断,因为compare 的格式还没有统一
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/aio/core/text/warning.rb, line 134 def ordinary_number warning_info_ordinary.size end
serious_number()
click to toggle source
警告数量
# File lib/aio/core/text/warning.rb, line 130 def serious_number warning_info_serious.size end
total_number()
click to toggle source
# 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)
click to toggle source
判断是否需要添加警告 info = iface sym = :errors mod = CMD模块self force 是否直接添加到warning_info中
如果是否,这相当于update
# 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)
click to toggle source
# File lib/aio/core/text/warning.rb, line 93 def warning_compare(info) @warning_info[:compare] << info end
warning_info_compare()
click to toggle source
# File lib/aio/core/text/warning.rb, line 105 def warning_info_compare @warning_info[:compare] end
warning_info_ordinary()
click to toggle source
# File lib/aio/core/text/warning.rb, line 101 def warning_info_ordinary @warning_info[:ordinary] end
warning_info_serious()
click to toggle source
# File lib/aio/core/text/warning.rb, line 97 def warning_info_serious @warning_info[:serious] end
warning_ordinary(info, sym, mod, force=nil)
click to toggle source
# 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)
click to toggle source
# File lib/aio/core/text/warning.rb, line 85 def warning_serious(info, sym, mod, force=nil) warning(info, sym, :serious, mod, force) end