Class: Apress::Documentation::Storage::Modules

Inherits:
Object
  • Object
show all
Includes:
Dsl::Modules, Singleton
Defined in:
lib/apress/documentation/storage/modules.rb

Overview

Protected

Класс хранения документов верхнего уровня (модулей)

Instance Method Summary collapse

Methods included from Dsl::Modules

#build

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

#dataObject

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