Project

General

Profile

« Previous | Next » 

Revision b0e38c17

Added by Oleksandr Ivanov 7 months ago

Impl: Unify navigation pane behavior for all the docs (#130)

View differences:

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