Revision b0e38c17
Added by Oleksandr Ivanov 7 months ago
lib/almirah/doc_fabric.rb | ||
---|---|---|
require_relative 'doc_types/base_document'
|
||
require_relative 'doc_types/specification'
|
||
require_relative 'doc_types/protocol'
|
||
require_relative 'doc_types/coverage'
|
||
require_relative 'doc_parser'
|
||
require_relative 'dom/document'
|
||
require_relative 'doc_items/heading'
|
||
|
||
class DocFabric
|
||
@@color_index = 0
|
||
... | ... | |
doc
|
||
end
|
||
|
||
def self.create_coverage_matrix(specification)
|
||
doc = Coverage.new specification
|
||
Heading.reset_global_section_number
|
||
doc.headings << Heading.new(doc, doc.title, 0)
|
||
# Build dom
|
||
doc.dom = Document.new(doc.headings)
|
||
doc
|
||
end
|
||
|
||
def self.create_traceability_document(top_document, bottom_document)
|
||
doc = Traceability.new top_document, bottom_document
|
||
Heading.reset_global_section_number
|
||
doc.headings << Heading.new(doc, doc.title, 0)
|
||
# Build dom
|
||
doc.dom = Document.new(doc.headings)
|
||
doc
|
||
end
|
||
|
||
def self.parse_document(doc)
|
||
|
||
file = File.open(doc.path)
|
lib/almirah/doc_types/base_document.rb | ||
---|---|---|
attr_accessor :title
|
||
attr_accessor :id
|
||
attr_accessor :dom
|
||
attr_accessor :headings
|
||
|
||
def initialize()
|
||
@items = Array.new
|
lib/almirah/doc_types/traceability.rb | ||
---|---|---|
attr_accessor :is_agregated
|
||
attr_accessor :traced_items
|
||
|
||
def initialize(top_doc, bottom_doc, is_agregated)
|
||
def initialize(top_doc, bottom_doc)
|
||
super()
|
||
@top_doc = top_doc
|
||
@bottom_doc = bottom_doc
|
||
@is_agregated = is_agregated
|
||
@is_agregated = if bottom_doc
|
||
false
|
||
else
|
||
true
|
||
end
|
||
@traced_items = {}
|
||
|
||
if @is_agregated
|
lib/almirah/project.rb | ||
---|---|---|
require_relative 'doc_fabric'
|
||
require_relative 'navigation_pane'
|
||
require_relative 'doc_types/traceability'
|
||
require_relative 'doc_types/coverage'
|
||
require_relative 'doc_types/index'
|
||
require_relative 'search/specifications_db'
|
||
|
||
... | ... | |
|
||
document = @specifications_dictionary[i.to_s.downcase]
|
||
if document
|
||
trx = Traceability.new document, nil, true
|
||
@traceability_matrices.append trx
|
||
doc = DocFabric.create_traceability_document(document, nil)
|
||
@traceability_matrices.append doc
|
||
end
|
||
end
|
||
end
|
||
... | ... | |
end
|
||
# create coverage documents
|
||
@covered_specifications_dictionary.each do |_key, value|
|
||
trx = Coverage.new value
|
||
@coverage_matrices.append trx
|
||
doc = DocFabric.create_coverage_matrix(value)
|
||
@coverage_matrices.append doc
|
||
end
|
||
end
|
||
|
||
... | ... | |
end
|
||
end
|
||
# create treceability document
|
||
trx = Traceability.new top_document, bottom_document, false
|
||
@traceability_matrices.append trx
|
||
doc = DocFabric.create_traceability_document(top_document, bottom_document)
|
||
@traceability_matrices.append doc
|
||
end
|
||
|
||
def link_protocol_to_spec(protocol, specification) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
|
||
... | ... | |
end
|
||
|
||
def render_all_protocols
|
||
# create a sidebar first
|
||
# nav_pane = NavigationPane.new(@specifications)
|
||
|
||
path = @configuration.project_root_directory
|
||
|
||
FileUtils.mkdir_p("#{path}/build/tests/protocols")
|
Also available in: Unified diff
Impl: Unify navigation pane behavior for all the docs (#130)