Almirah 0.2.5 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/bin/almirah +4 -4
  3. data/lib/almirah/doc_fabric.rb +65 -65
  4. data/lib/almirah/doc_items/blockquote.rb +21 -21
  5. data/lib/almirah/doc_items/code_block.rb +26 -26
  6. data/lib/almirah/doc_items/controlled_paragraph.rb +112 -112
  7. data/lib/almirah/doc_items/controlled_table.rb +224 -224
  8. data/lib/almirah/doc_items/controlled_table_row.rb +22 -22
  9. data/lib/almirah/doc_items/doc_footer.rb +16 -16
  10. data/lib/almirah/doc_items/doc_item.rb +22 -22
  11. data/lib/almirah/doc_items/frontmatter.rb +9 -9
  12. data/lib/almirah/doc_items/heading.rb +93 -93
  13. data/lib/almirah/doc_items/image.rb +27 -27
  14. data/lib/almirah/doc_items/markdown_list.rb +156 -156
  15. data/lib/almirah/doc_items/markdown_table.rb +97 -61
  16. data/lib/almirah/doc_items/paragraph.rb +25 -25
  17. data/lib/almirah/doc_items/text_line.rb +296 -296
  18. data/lib/almirah/doc_items/todo_block.rb +21 -21
  19. data/lib/almirah/doc_parser.rb +379 -378
  20. data/lib/almirah/doc_types/base_document.rb +64 -64
  21. data/lib/almirah/doc_types/coverage.rb +95 -80
  22. data/lib/almirah/doc_types/index.rb +173 -173
  23. data/lib/almirah/doc_types/persistent_document.rb +17 -17
  24. data/lib/almirah/doc_types/protocol.rb +24 -24
  25. data/lib/almirah/doc_types/specification.rb +67 -67
  26. data/lib/almirah/doc_types/traceability.rb +142 -142
  27. data/lib/almirah/dom/doc_section.rb +25 -25
  28. data/lib/almirah/dom/document.rb +78 -78
  29. data/lib/almirah/navigation_pane.rb +16 -16
  30. data/lib/almirah/project.rb +287 -287
  31. data/lib/almirah/project_configuration.rb +41 -41
  32. data/lib/almirah/project_template.rb +298 -298
  33. data/lib/almirah/project_utility.rb +52 -0
  34. data/lib/almirah/search/specifications_db.rb +79 -79
  35. data/lib/almirah/templates/css/main.css +300 -300
  36. data/lib/almirah/templates/css/search.css +40 -40
  37. data/lib/almirah/templates/page.html +42 -42
  38. data/lib/almirah/templates/scripts/main.js +111 -111
  39. data/lib/almirah/templates/scripts/orama_search.js +138 -138
  40. data/lib/almirah.rb +93 -58
  41. metadata +4 -3
@@ -1,79 +1,79 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
-
5
- # Prepare JSON database file for further indexing by other tools
6
- class SpecificationsDb
7
- attr_accessor :specifications, :data
8
-
9
- def initialize(spec_list)
10
- @specifications = spec_list
11
- @data = []
12
- create_data
13
- end
14
-
15
- def create_data # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
16
- @specifications.each do |sp|
17
- sp.items.each do |i|
18
- if (i.instance_of? Paragraph) or (i.instance_of? ControlledParagraph)
19
- e = { 'document' => i.parent_doc.title, \
20
- 'doc_color' => i.parent_doc.color, \
21
- 'text' => i.text, \
22
- 'heading_url' => i.parent_heading.get_url, \
23
- 'heading_text' => i.parent_heading.get_section_info }
24
- @data.append e
25
- elsif i.instance_of? MarkdownList
26
- add_markdown_list_item_to_db(@data, i, i)
27
- elsif i.instance_of? MarkdownTable
28
- add_markdown_table_item_to_db(@data, i, i)
29
- end
30
- end
31
- end
32
- end
33
-
34
- def add_markdown_list_item_to_db(data, item_for_reference, item_to_process) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
35
- e = nil
36
- item_to_process.rows.each do |r|
37
- if r.is_a?(MarkdownList)
38
- f_text = r.text
39
- e = { 'document' => item_for_reference.parent_doc.title, \
40
- 'doc_color' => item_for_reference.parent_doc.color, \
41
- 'text' => f_text, \
42
- 'heading_url' => item_for_reference.parent_heading.get_url, \
43
- 'heading_text' => item_for_reference.parent_heading.get_section_info }
44
- data << e
45
- add_markdown_list_item_to_db(data, item_for_reference, r)
46
- else
47
- f_text = r
48
- e = { 'document' => item_for_reference.parent_doc.title, \
49
- 'doc_color' => item_for_reference.parent_doc.color, \
50
- 'text' => f_text, \
51
- 'heading_url' => item_for_reference.parent_heading.get_url, \
52
- 'heading_text' => item_for_reference.parent_heading.get_section_info }
53
- data << e
54
- end
55
- end
56
- e
57
- end
58
-
59
- def add_markdown_table_item_to_db(data, item_for_reference, item_to_process)
60
- table_text = ''
61
- item_to_process.rows.each do |row|
62
- table_text += "| #{row.join(' | ')} |"
63
- end
64
- e = { 'document' => item_for_reference.parent_doc.title, \
65
- 'doc_color' => item_for_reference.parent_doc.color, \
66
- 'text' => table_text, \
67
- 'heading_url' => item_for_reference.parent_heading.get_url, \
68
- 'heading_text' => item_for_reference.parent_heading.get_section_info }
69
- data << e
70
- end
71
-
72
- def save(path)
73
- json = JSON.generate(@data)
74
-
75
- file = File.open("#{path}/specifications_db.json", 'w')
76
- file.puts json
77
- file.close
78
- end
79
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ # Prepare JSON database file for further indexing by other tools
6
+ class SpecificationsDb
7
+ attr_accessor :specifications, :data
8
+
9
+ def initialize(spec_list)
10
+ @specifications = spec_list
11
+ @data = []
12
+ create_data
13
+ end
14
+
15
+ def create_data # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
16
+ @specifications.each do |sp|
17
+ sp.items.each do |i|
18
+ if (i.instance_of? Paragraph) or (i.instance_of? ControlledParagraph)
19
+ e = { 'document' => i.parent_doc.title, \
20
+ 'doc_color' => i.parent_doc.color, \
21
+ 'text' => i.text, \
22
+ 'heading_url' => i.parent_heading.get_url, \
23
+ 'heading_text' => i.parent_heading.get_section_info }
24
+ @data.append e
25
+ elsif i.instance_of? MarkdownList
26
+ add_markdown_list_item_to_db(@data, i, i)
27
+ elsif i.instance_of? MarkdownTable
28
+ add_markdown_table_item_to_db(@data, i, i)
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ def add_markdown_list_item_to_db(data, item_for_reference, item_to_process) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
35
+ e = nil
36
+ item_to_process.rows.each do |r|
37
+ if r.is_a?(MarkdownList)
38
+ f_text = r.text
39
+ e = { 'document' => item_for_reference.parent_doc.title, \
40
+ 'doc_color' => item_for_reference.parent_doc.color, \
41
+ 'text' => f_text, \
42
+ 'heading_url' => item_for_reference.parent_heading.get_url, \
43
+ 'heading_text' => item_for_reference.parent_heading.get_section_info }
44
+ data << e
45
+ add_markdown_list_item_to_db(data, item_for_reference, r)
46
+ else
47
+ f_text = r
48
+ e = { 'document' => item_for_reference.parent_doc.title, \
49
+ 'doc_color' => item_for_reference.parent_doc.color, \
50
+ 'text' => f_text, \
51
+ 'heading_url' => item_for_reference.parent_heading.get_url, \
52
+ 'heading_text' => item_for_reference.parent_heading.get_section_info }
53
+ data << e
54
+ end
55
+ end
56
+ e
57
+ end
58
+
59
+ def add_markdown_table_item_to_db(data, item_for_reference, item_to_process)
60
+ table_text = ''
61
+ item_to_process.rows.each do |row|
62
+ table_text += "| #{row.join(' | ')} |"
63
+ end
64
+ e = { 'document' => item_for_reference.parent_doc.title, \
65
+ 'doc_color' => item_for_reference.parent_doc.color, \
66
+ 'text' => table_text, \
67
+ 'heading_url' => item_for_reference.parent_heading.get_url, \
68
+ 'heading_text' => item_for_reference.parent_heading.get_section_info }
69
+ data << e
70
+ end
71
+
72
+ def save(path)
73
+ json = JSON.generate(@data)
74
+
75
+ file = File.open("#{path}/specifications_db.json", 'w')
76
+ file.puts json
77
+ file.close
78
+ end
79
+ end