class Aio::Warning::Description

Attributes

modules[RW]

Description模块

Public Class Methods

new(module_manager) click to toggle source
# File lib/aio/core/warning/description.rb, line 8
def initialize(module_manager)
        @modules = {}
        @parent_klass = Aio::Module::Description.new
        modules_info = module_manager.get_modules_by_type("description")
        tidy_modules(modules_info)
end

Public Instance Methods

get_desc(sym) click to toggle source

通过case获取模块的实例

# File lib/aio/core/warning/description.rb, line 25
def get_desc(sym)
        modules.each_pair do |cs, klass|
                case cs
                when ::Array
                        if cs.include?(sym)
                                return klass
                        end
                when ::Symbol
                        if cs == sym.to_sym
                                return klass
                        end
                when ::String
                        if cs == sym.to_s
                                return klass
                        end
                end
        end

        return @parent_klass.temp(sym)
end
tidy_modules(module_info) click to toggle source

整理后的格式为 modules = { :crc => klass }

# File lib/aio/core/warning/description.rb, line 17
def tidy_modules(module_info)
        module_info.each_value do |info|
                md = info[:klass]
                self.modules[md.case] = md
        end
end