Class: Aio::Warning::Description

Inherits:
Object
  • Object
show all
Defined in:
lib/aio/core/warning/description.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(module_manager) ⇒ Description

Returns a new instance of Description.



8
9
10
11
12
13
# 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

Instance Attribute Details

#modulesObject

Description模块



6
7
8
# File 'lib/aio/core/warning/description.rb', line 6

def modules
  @modules
end

Instance Method Details

#get_desc(sym) ⇒ Object

通过case获取模块的实例



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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) ⇒ Object

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



17
18
19
20
21
22
# 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