Class: Apress::Documentation::Storage::Modules
- Inherits:
-
Object
- Object
- Apress::Documentation::Storage::Modules
- Includes:
- Dsl::Modules, Singleton
- Defined in:
- lib/apress/documentation/storage/modules.rb
Overview
Protected
Класс хранения документов верхнего уровня (модулей)
Instance Method Summary collapse
-
#<<(document) ⇒ Object
Public.
-
#[](slug) ⇒ Object
Public.
-
#data ⇒ Object
Public.
-
#fetch_document(path) ⇒ Object
Public.
-
#reset! ⇒ Object
Public.
Methods included from Dsl::Modules
Instance Method Details
#<<(document) ⇒ Object
Public
Добавление модуля
Arguments
document - Document
Example usage:
Apress::Documentation::Modules.instance << document
30 31 32 |
# File 'lib/apress/documentation/storage/modules.rb', line 30 def <<(document) data[document.slug.to_s] = document end |
#[](slug) ⇒ Object
Public
Поиск модуля
Arguments
slug - String (или любой совместимый объект) - слаг документа
Example usage:
Apress::Documentation::Modules.instance[slug]
Returns Document
45 46 47 |
# File 'lib/apress/documentation/storage/modules.rb', line 45 def [](slug) data[slug.to_s] end |
#data ⇒ Object
Public
Хеш модулей
17 18 19 |
# File 'lib/apress/documentation/storage/modules.rb', line 17 def data @data ||= {} end |
#fetch_document(path) ⇒ Object
Public
Получение документа по его URL
Arguments
path - String - строка разделенная '/' (пример "/module/document/some_function")
Example usage:
Apress::Documentation.fetch_document('module_name/document/test')
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/apress/documentation/storage/modules.rb', line 58 def fetch_document(path) keys = path.split('/') doc = data[keys.shift] return unless doc keys.each do |key| doc = doc.documents[key] || (doc.respond_to?(:swagger_documents) && doc.swagger_documents[key]) break unless doc end doc end |
#reset! ⇒ Object
Public
Удаление всех документов, используется для тестирования
Example usage:
Apress::Documentation.reset!
77 78 79 |
# File 'lib/apress/documentation/storage/modules.rb', line 77 def reset! @data = {} end |