Sha256: 35a5837cca68a1543aaa06098c4c5c66e5ac380f94c6e48e42c9fa0b15cc48a7

Contents?: true

Size: 896 Bytes

Versions: 18

Compression:

Stored size: 896 Bytes

Contents

# 用于调用描述信息
module Aio::Warning
	class Description

		# Description模块
		attr_accessor :modules

		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

		# 整理后的格式为
		# modules = { :crc => klass }
		def tidy_modules(module_info)
			module_info.each_value do |info|
				md = info[:klass]
				self.modules[md.case] = md
			end
		end

		# 通过case获取模块的实例
		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
					
	end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
aio_elin-1.1.8 lib/aio/core/warning/description.rb
aio_elin-1.1.7 lib/aio/core/warning/description.rb
aio_elin-1.1.4 lib/aio/core/warning/description.rb
aio_elin-1.1.3 lib/aio/core/warning/description.rb
aio_elin-1.1.2 lib/aio/core/warning/description.rb
aio_elin-1.1.1 lib/aio/core/warning/description.rb
aio_elin-1.1.0 lib/aio/core/warning/description.rb
aio_elin-1.0.9 lib/aio/core/warning/description.rb
aio_elin-1.0.8 lib/aio/core/warning/description.rb
aio_elin-1.0.7 lib/aio/core/warning/description.rb
aio_elin-1.0.6 lib/aio/core/warning/description.rb
aio_elin-1.0.5 lib/aio/core/warning/description.rb
aio_elin-1.0.4 lib/aio/core/warning/description.rb
aio_elin-1.0.3 lib/aio/core/warning/description.rb
aio_elin-1.0.2 lib/aio/core/warning/description.rb
aio_elin-1.0.1 lib/aio/core/warning/description.rb
aio_elin-1.0.0 lib/aio/core/warning/description.rb
aio_elin-0.0.1 lib/aio/core/warning/description.rb