ascii_binder 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +16 -0
  3. data/ascii_binder.gemspec +5 -3
  4. data/bin/asciibinder +53 -44
  5. data/features/command_help.feature +8 -0
  6. data/features/command_version.feature +8 -0
  7. data/features/repo_build.feature +34 -0
  8. data/features/repo_clean.feature +20 -0
  9. data/features/repo_clone.feature +22 -0
  10. data/features/repo_create.feature +13 -0
  11. data/features/repo_package.feature +15 -0
  12. data/features/step_definitions/steps.rb +182 -0
  13. data/features/support/_clone_distro_map.yml +14 -0
  14. data/features/support/_invalid_distro_map.yml +14 -0
  15. data/features/support/env.rb +468 -0
  16. data/features/support/test_distro/.gitignore +9 -0
  17. data/features/support/test_distro/_distro_map.yml +29 -0
  18. data/features/support/test_distro/_images/asciibinder-logo-horizontal.png +0 -0
  19. data/features/support/test_distro/_images/asciibinder_web_logo.svg +125 -0
  20. data/features/support/test_distro/_images/book_pages_bg.jpg +0 -0
  21. data/features/support/test_distro/_images/favicon.ico +0 -0
  22. data/features/support/test_distro/_images/favicon32x32.png +0 -0
  23. data/features/support/test_distro/_javascripts/.gitkeep +0 -0
  24. data/features/support/test_distro/_stylesheets/asciibinder.css +568 -0
  25. data/features/support/test_distro/_templates/_css.html.erb +3 -0
  26. data/features/support/test_distro/_templates/_nav.html.erb +31 -0
  27. data/features/support/test_distro/_templates/page.html.erb +92 -0
  28. data/features/support/test_distro/_topic_map.yml +36 -0
  29. data/features/support/test_distro/index-main.html +10 -0
  30. data/features/support/test_distro/index-test.html +10 -0
  31. data/features/support/test_distro/main_only_topic_group/index.adoc +17 -0
  32. data/features/support/test_distro/test_only_topic_group/index.adoc +17 -0
  33. data/features/support/test_distro/welcome/index.adoc +17 -0
  34. data/features/support/test_distro/welcome/subtopics/index.adoc +17 -0
  35. data/features/support/test_distro/welcome/subtopics/main_only_topic.adoc +17 -0
  36. data/features/support/test_distro/welcome/subtopics/test_only_topic.adoc +17 -0
  37. data/features/support/test_distro/welcome/subtopics/wildcard_all.adoc +17 -0
  38. data/lib/ascii_binder.rb +4 -2
  39. data/lib/ascii_binder/distro.rb +111 -0
  40. data/lib/ascii_binder/distro_branch.rb +93 -0
  41. data/lib/ascii_binder/distro_map.rb +67 -0
  42. data/lib/ascii_binder/engine.rb +581 -0
  43. data/lib/ascii_binder/helpers.rb +42 -856
  44. data/lib/ascii_binder/site.rb +52 -0
  45. data/lib/ascii_binder/site_info.rb +22 -0
  46. data/lib/ascii_binder/site_map.rb +24 -0
  47. data/lib/ascii_binder/topic_entity.rb +255 -0
  48. data/lib/ascii_binder/topic_map.rb +61 -0
  49. data/lib/ascii_binder/version.rb +1 -1
  50. data/templates/_templates/page.html.erb +1 -1
  51. metadata +118 -14
@@ -0,0 +1,52 @@
1
+ require 'ascii_binder/helpers'
2
+
3
+ include AsciiBinder::Helpers
4
+
5
+ module AsciiBinder
6
+ class Site
7
+ attr_reader :id, :name, :url
8
+
9
+ def initialize(distro_config)
10
+ @id = distro_config['site']
11
+ @name = distro_config['site_name']
12
+ @url = distro_config['site_url']
13
+ end
14
+
15
+ def is_valid?
16
+ validate
17
+ end
18
+
19
+ def errors
20
+ validate(true)
21
+ end
22
+
23
+ private
24
+
25
+ def validate(verbose=false)
26
+ errors = []
27
+ unless valid_id?(@id)
28
+ if verbose
29
+ errors << "Site ID '#{@id}' is not a valid ID."
30
+ else
31
+ return false
32
+ end
33
+ end
34
+ unless valid_string?(@name)
35
+ if verbose
36
+ errors << "Site name '#{@name}' for site ID '#{@id}' is not a valid string."
37
+ else
38
+ return false
39
+ end
40
+ end
41
+ unless valid_string?(@url)
42
+ if verbose
43
+ errors << "Site URL '#{@url}' for site ID '#{@id}' is not a valid string."
44
+ else
45
+ return false
46
+ end
47
+ end
48
+ return errors if verbose
49
+ return true
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,22 @@
1
+ module AsciiBinder
2
+ class SiteInfo
3
+ attr_reader :id, :name, :url, :distros, :branches
4
+
5
+ def initialize(distro)
6
+ @id = distro.site.id
7
+ @name = distro.site.name
8
+ @url = distro.site.url
9
+ @distros = {}
10
+ @branches = ['master']
11
+ add_distro(distro)
12
+ end
13
+
14
+ def add_distro(distro)
15
+ @distros[distro.id] = distro.branches
16
+ distro.branches.each do |branch|
17
+ next if @branches.include?(branch.id)
18
+ @branches << branch.id
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ require 'ascii_binder/site_info'
2
+
3
+ module AsciiBinder
4
+ class SiteMap
5
+ def initialize(distro_map)
6
+ @site_map = {}
7
+ distro_map.distros.each do |distro|
8
+ unless @site_map.has_key?(distro.site.id)
9
+ @site_map[distro.site.id] = AsciiBinder::SiteInfo.new(distro)
10
+ else
11
+ @site_map[distro.site.id].add_distro(distro)
12
+ end
13
+ end
14
+ end
15
+
16
+ def sites
17
+ return @site_map.values
18
+ end
19
+
20
+ def ids
21
+ return @site_map.keys
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,255 @@
1
+ require 'ascii_binder/helpers'
2
+ require 'trollop'
3
+
4
+ include AsciiBinder::Helpers
5
+
6
+ module AsciiBinder
7
+ class TopicEntity
8
+ attr_reader :name, :dir, :file, :distro_keys, :subitems, :raw, :parent, :depth
9
+
10
+ def initialize(topic_entity,actual_distro_keys,dir_path='',parent_group=nil,depth=0)
11
+ @raw = topic_entity
12
+ @parent = parent_group
13
+ @dir_path = dir_path
14
+ @name = topic_entity['Name']
15
+ @dir = topic_entity['Dir']
16
+ @file = topic_entity['File']
17
+ @depth = depth
18
+ @actual_distro_keys = actual_distro_keys
19
+ @distro_keys = topic_entity.has_key?('Distros') ? parse_distros(topic_entity['Distros']) : actual_distro_keys
20
+ @subitems = []
21
+ if topic_entity.has_key?('Topics')
22
+ entity_dir = @dir.nil? ? '<nil_dir>' : @dir
23
+ subdir_path = dir_path == '' ? entity_dir : File.join(dir_path,entity_dir)
24
+ topic_entity['Topics'].each do |sub_entity|
25
+ @subitems << AsciiBinder::TopicEntity.new(sub_entity,actual_distro_keys,subdir_path,self,depth+1)
26
+ end
27
+ end
28
+ end
29
+
30
+ def repo_path
31
+ @repo_path ||= begin
32
+ this_step = '<nil_item>'
33
+ if is_group?
34
+ this_step = dir
35
+ elsif is_topic?
36
+ this_step = name.end_with?('.adoc') ? name : "#{file}.adoc"
37
+ end
38
+ @dir_path == '' ? this_step : File.join(@dir_path,this_step)
39
+ end
40
+ end
41
+
42
+ def repo_path_html
43
+ @repo_path_html ||= is_topic? ? File.join(File.dirname(repo_path),File.basename(repo_path,'.adoc')) + ".html" : repo_path
44
+ end
45
+
46
+ def source_path
47
+ @source_path ||= File.join(docs_root_dir,repo_path)
48
+ end
49
+
50
+ def preview_path(distro_key,branch_dir)
51
+ File.join(preview_dir,distro_key,branch_dir,repo_path_html)
52
+ end
53
+
54
+ def package_path(site_id,branch_dir)
55
+ File.join(package_dir,site_id,branch_dir,repo_path_html)
56
+ end
57
+
58
+ def group_filepaths
59
+ @group_filepaths ||= begin
60
+ group_filepaths = []
61
+ if is_topic?
62
+ group_filepaths << File.join(File.dirname(repo_path),File.basename(repo_path,'.adoc'))
63
+ else
64
+ subitems.each do |subitem|
65
+ group_filepaths.concat(subitem.group_filepaths)
66
+ end
67
+ group_filepaths.uniq!
68
+ end
69
+ group_filepaths
70
+ end
71
+ end
72
+
73
+ def nav_tree(distro_key)
74
+ unless distro_keys.include?(distro_key)
75
+ return nil
76
+ end
77
+ nav_tree = { :id => id, :name => name }
78
+ if is_topic?
79
+ nav_tree[:path] = "../" + repo_path_html
80
+ elsif is_group?
81
+ sub_nav_items = []
82
+ subitems.each do |subitem|
83
+ sub_nav = subitem.nav_tree(distro_key)
84
+ next if sub_nav.nil?
85
+ sub_nav_items << sub_nav
86
+ end
87
+
88
+ # Don't bother with this group if none of the sub-items is used by this distro
89
+ return nil if sub_nav_items.length == 0
90
+
91
+ nav_tree[:topics] = sub_nav_items
92
+ end
93
+ return nav_tree
94
+ end
95
+
96
+ # Is this topic entity or any of its children used in
97
+ # the specified distro / single page chain
98
+ def include?(distro_key,single_page_path)
99
+ # If this entity isn't for this distro, bail out
100
+ return false unless distro_keys.include?(distro_key)
101
+
102
+ # If we're building a single page, check if we're on the right track.
103
+ if single_page_path.length > 0
104
+ if is_group?
105
+ return false unless single_page_path[depth] == dir
106
+ elsif is_topic?
107
+ return false unless single_page_path[depth] == file
108
+ else
109
+ return false
110
+ end
111
+ elsif is_group?
112
+ # If this is a topic group that -is- okay for this distro, but
113
+ # none of its subitems are okay for this distro, then bail out.
114
+ subitems_for_distro = false
115
+ subitems.each do |subitem|
116
+ if subitem.include?(distro_key,[])
117
+ subitems_for_distro = true
118
+ break
119
+ end
120
+ end
121
+ return false unless subitems_for_distro
122
+ end
123
+
124
+ return true
125
+ end
126
+
127
+ def breadcrumb
128
+ @breadcrumb ||= hierarchy.map{ |entity| { :id => entity.id, :name => entity.name, :url => entity.repo_path_html } }
129
+ end
130
+
131
+ def id
132
+ @id ||= hierarchy.map{ |entity| camelize(entity.name) }.join('::')
133
+ end
134
+
135
+ def is_group?
136
+ @is_group ||= file.nil? and not name.nil? and not dir.nil? and subitems.length > 0
137
+ end
138
+
139
+ def is_topic?
140
+ @is_topic ||= dir.nil? and not name.nil? and not file.nil? and subitems.length == 0
141
+ end
142
+
143
+ def is_valid?
144
+ validate
145
+ end
146
+
147
+ def errors
148
+ validate(true)
149
+ end
150
+
151
+ private
152
+
153
+ def parse_distros(entity_distros)
154
+ values = entity_distros.split(',').map(&:strip)
155
+ # Don't bother with glob expansion if 'all' is in the list.
156
+ return @actual_distro_keys if values.include?('all')
157
+
158
+ # Expand globs and return the list
159
+ values.flat_map do |value|
160
+ value_regex = Regexp.new("\\A#{value.gsub("*", ".*")}\\z")
161
+ @actual_distro_keys.select { |k| value_regex.match(k) }
162
+ end.uniq
163
+ end
164
+
165
+ def validate(verbose=false)
166
+ errors = []
167
+
168
+ # Check common fields - Name and Distros
169
+ if not valid_string?(name)
170
+ if verbose
171
+ errors << "Topic entity with missing or invalid 'Name' value: '#{raw.inspect}'"
172
+ else
173
+ return false
174
+ end
175
+ end
176
+ distro_keys.each do |distro_key|
177
+ next if @actual_distro_keys.include?(distro_key)
178
+ if verbose
179
+ errors << "#{entity_id} 'Distros' filter includes nonexistant distro key '#{distro_key}'"
180
+ else
181
+ return false
182
+ end
183
+ end
184
+
185
+ # Check the depth. For now, max depth is '2':
186
+ #
187
+ # [<group>,<subgroup>,<topic>]
188
+ #
189
+ # But this limit will be lifted in the next major version
190
+ if depth > 2
191
+ if verbose
192
+ errors << "#{entity_id} exceeds the maximum nested depth."
193
+ else
194
+ return false
195
+ end
196
+ end
197
+
198
+ # For groups, test the 'Dir' value and the sub-items.
199
+ if is_group?
200
+ if not valid_string?(dir)
201
+ if verbose
202
+ errors << "#{entity_id} has invalid 'Dir' value."
203
+ else
204
+ return false
205
+ end
206
+ end
207
+ subitems.each do |subitem|
208
+ next if subitem.is_valid?
209
+ if verbose
210
+ errors = errors.concat(subitem.errors)
211
+ else
212
+ return false
213
+ end
214
+ end
215
+ elsif is_topic?
216
+ if not valid_string?(file)
217
+ if verbose
218
+ errors << "#{entity_id} has invalid 'File' value."
219
+ else
220
+ return false
221
+ end
222
+ end
223
+ else
224
+ if verbose
225
+ errors << "#{entity_id} is not parseable as a group or a topic: '#{raw.inspect}'"
226
+ else
227
+ return false
228
+ end
229
+ end
230
+ return errors if verbose
231
+ return true
232
+ end
233
+
234
+ def hierarchy
235
+ @hierarchy ||= begin
236
+ entity = self
237
+ ancestry = []
238
+ loop do
239
+ ancestry << entity
240
+ break if entity.parent.nil?
241
+ entity = entity.parent
242
+ end
243
+ ancestry.reverse
244
+ end
245
+ end
246
+
247
+ def entity_id
248
+ if hierarchy.length == 1
249
+ return "Top level topic entity '#{name}'"
250
+ else
251
+ return "Topic entity at '#{breadcrumb.map{ |node| node[:name] }.join(' -> ')}'"
252
+ end
253
+ end
254
+ end
255
+ end
@@ -0,0 +1,61 @@
1
+ require 'ascii_binder/helpers'
2
+ require 'ascii_binder/topic_entity'
3
+ require 'trollop'
4
+ require 'yaml'
5
+
6
+ include AsciiBinder::Helpers
7
+
8
+ module AsciiBinder
9
+ class TopicMap
10
+ attr_reader :list
11
+
12
+ def initialize(topic_file,distro_keys)
13
+ @topic_yaml = YAML.load_stream(open(File.join(docs_root_dir,topic_file)))
14
+ @list = []
15
+ @topic_yaml.each do |topic_entity|
16
+ @list << AsciiBinder::TopicEntity.new(topic_entity,distro_keys)
17
+ end
18
+ end
19
+
20
+ def filepaths
21
+ @filepaths ||= begin
22
+ filepaths = []
23
+ @list.each do |topic_entity|
24
+ filepaths.concat(topic_entity.group_filepaths)
25
+ end
26
+ filepaths
27
+ end
28
+ end
29
+
30
+ def nav_tree(distro_key)
31
+ nav_tree = []
32
+ @list.each do |topic_entity|
33
+ entity_nav = topic_entity.nav_tree(distro_key)
34
+ next if entity_nav.nil?
35
+ nav_tree << entity_nav
36
+ end
37
+ return nav_tree
38
+ end
39
+
40
+ def is_valid?
41
+ @list.each do |topic_entity|
42
+ next if topic_entity.is_valid? and topic_entity.is_group?
43
+ return false
44
+ end
45
+ return true
46
+ end
47
+
48
+ def errors
49
+ errors = []
50
+ @list.each do |topic_entity|
51
+ if not topic_entity.is_group?
52
+ errors << "Top-level entries in the topic map must all be topic groups. Entity with name '#{topic_entity.name}' is not a group."
53
+ next
54
+ end
55
+ next if topic_entity.is_valid?
56
+ errors << topic_entity.errors
57
+ end
58
+ return errors
59
+ end
60
+ end
61
+ end
@@ -1,3 +1,3 @@
1
1
  module AsciiBinder
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  end
@@ -11,7 +11,6 @@
11
11
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
12
12
 
13
13
  <%= render("_templates/_css.html.erb", :css_path => css_path) %>
14
- <script src="<%= File.join(javascripts_path, "bootstrap-offcanvas.js") %>" type="text/javascript"></script>
15
14
 
16
15
  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
17
16
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
@@ -67,6 +66,7 @@
67
66
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
68
67
  <!-- Latest compiled and minified JavaScript -->
69
68
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
69
+ <script src="<%= File.join(javascripts_path, "bootstrap-offcanvas.js") %>" type="text/javascript"></script>
70
70
  <script type="text/javascript">
71
71
  /*<![CDATA[*/
72
72
  $(document).ready(function() {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ascii_binder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - N. Harrison Ripps
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-01-03 00:00:00.000000000 Z
12
+ date: 2017-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -25,6 +25,34 @@ dependencies:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.7'
28
+ - !ruby/object:Gem::Dependency
29
+ name: cucumber
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 2.3.3
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 2.3.3
42
+ - !ruby/object:Gem::Dependency
43
+ name: diff_dirs
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.1.2
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.2
28
56
  - !ruby/object:Gem::Dependency
29
57
  name: rake
30
58
  requirement: !ruby/object:Gem::Requirement
@@ -45,28 +73,28 @@ dependencies:
45
73
  requirements:
46
74
  - - "~>"
47
75
  - !ruby/object:Gem::Version
48
- version: 1.5.4
76
+ version: 1.5.6
49
77
  type: :runtime
50
78
  prerelease: false
51
79
  version_requirements: !ruby/object:Gem::Requirement
52
80
  requirements:
53
81
  - - "~>"
54
82
  - !ruby/object:Gem::Version
55
- version: 1.5.4
83
+ version: 1.5.6
56
84
  - !ruby/object:Gem::Dependency
57
85
  name: asciidoctor-diagram
58
86
  requirement: !ruby/object:Gem::Requirement
59
87
  requirements:
60
- - - ">="
88
+ - - "~>"
61
89
  - !ruby/object:Gem::Version
62
- version: '0'
90
+ version: 1.5.5
63
91
  type: :runtime
64
92
  prerelease: false
65
93
  version_requirements: !ruby/object:Gem::Requirement
66
94
  requirements:
67
- - - ">="
95
+ - - "~>"
68
96
  - !ruby/object:Gem::Version
69
- version: '0'
97
+ version: 1.5.5
70
98
  - !ruby/object:Gem::Dependency
71
99
  name: git
72
100
  requirement: !ruby/object:Gem::Requirement
@@ -197,16 +225,16 @@ dependencies:
197
225
  name: yajl-ruby
198
226
  requirement: !ruby/object:Gem::Requirement
199
227
  requirements:
200
- - - ">="
228
+ - - "~>"
201
229
  - !ruby/object:Gem::Version
202
- version: '0'
230
+ version: 1.3.0
203
231
  type: :runtime
204
232
  prerelease: false
205
233
  version_requirements: !ruby/object:Gem::Requirement
206
234
  requirements:
207
- - - ">="
235
+ - - "~>"
208
236
  - !ruby/object:Gem::Version
209
- version: '0'
237
+ version: 1.3.0
210
238
  - !ruby/object:Gem::Dependency
211
239
  name: tilt
212
240
  requirement: !ruby/object:Gem::Requirement
@@ -233,6 +261,7 @@ extensions: []
233
261
  extra_rdoc_files: []
234
262
  files:
235
263
  - ".gitignore"
264
+ - ".travis.yml"
236
265
  - Dockerfile
237
266
  - Gemfile
238
267
  - Guardfile
@@ -242,11 +271,53 @@ files:
242
271
  - ascii_binder.gemspec
243
272
  - bin/ascii_binder
244
273
  - bin/asciibinder
274
+ - features/command_help.feature
275
+ - features/command_version.feature
276
+ - features/repo_build.feature
277
+ - features/repo_clean.feature
278
+ - features/repo_clone.feature
279
+ - features/repo_create.feature
280
+ - features/repo_package.feature
281
+ - features/step_definitions/steps.rb
282
+ - features/support/_clone_distro_map.yml
283
+ - features/support/_invalid_distro_map.yml
284
+ - features/support/env.rb
285
+ - features/support/test_distro/.gitignore
286
+ - features/support/test_distro/_distro_map.yml
287
+ - features/support/test_distro/_images/asciibinder-logo-horizontal.png
288
+ - features/support/test_distro/_images/asciibinder_web_logo.svg
289
+ - features/support/test_distro/_images/book_pages_bg.jpg
290
+ - features/support/test_distro/_images/favicon.ico
291
+ - features/support/test_distro/_images/favicon32x32.png
292
+ - features/support/test_distro/_javascripts/.gitkeep
293
+ - features/support/test_distro/_stylesheets/asciibinder.css
294
+ - features/support/test_distro/_templates/_css.html.erb
295
+ - features/support/test_distro/_templates/_nav.html.erb
296
+ - features/support/test_distro/_templates/page.html.erb
297
+ - features/support/test_distro/_topic_map.yml
298
+ - features/support/test_distro/index-main.html
299
+ - features/support/test_distro/index-test.html
300
+ - features/support/test_distro/main_only_topic_group/index.adoc
301
+ - features/support/test_distro/test_only_topic_group/index.adoc
302
+ - features/support/test_distro/welcome/index.adoc
303
+ - features/support/test_distro/welcome/subtopics/index.adoc
304
+ - features/support/test_distro/welcome/subtopics/main_only_topic.adoc
305
+ - features/support/test_distro/welcome/subtopics/test_only_topic.adoc
306
+ - features/support/test_distro/welcome/subtopics/wildcard_all.adoc
245
307
  - lib/ascii_binder.rb
308
+ - lib/ascii_binder/distro.rb
309
+ - lib/ascii_binder/distro_branch.rb
310
+ - lib/ascii_binder/distro_map.rb
311
+ - lib/ascii_binder/engine.rb
246
312
  - lib/ascii_binder/helpers.rb
313
+ - lib/ascii_binder/site.rb
314
+ - lib/ascii_binder/site_info.rb
315
+ - lib/ascii_binder/site_map.rb
247
316
  - lib/ascii_binder/tasks/guards.rb
248
317
  - lib/ascii_binder/tasks/tasks.rb
249
318
  - lib/ascii_binder/template_renderer.rb
319
+ - lib/ascii_binder/topic_entity.rb
320
+ - lib/ascii_binder/topic_map.rb
250
321
  - lib/ascii_binder/version.rb
251
322
  - templates/.gitignore
252
323
  - templates/LICENSE.txt
@@ -286,9 +357,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
357
  version: '0'
287
358
  requirements: []
288
359
  rubyforge_project:
289
- rubygems_version: 2.6.8
360
+ rubygems_version: 2.6.11
290
361
  signing_key:
291
362
  specification_version: 4
292
363
  summary: AsciiBinder is an AsciiDoc-based system for authoring and publishing closely
293
364
  related documentation sets from a single source.
294
- test_files: []
365
+ test_files:
366
+ - features/command_help.feature
367
+ - features/command_version.feature
368
+ - features/repo_build.feature
369
+ - features/repo_clean.feature
370
+ - features/repo_clone.feature
371
+ - features/repo_create.feature
372
+ - features/repo_package.feature
373
+ - features/step_definitions/steps.rb
374
+ - features/support/_clone_distro_map.yml
375
+ - features/support/_invalid_distro_map.yml
376
+ - features/support/env.rb
377
+ - features/support/test_distro/.gitignore
378
+ - features/support/test_distro/_distro_map.yml
379
+ - features/support/test_distro/_images/asciibinder-logo-horizontal.png
380
+ - features/support/test_distro/_images/asciibinder_web_logo.svg
381
+ - features/support/test_distro/_images/book_pages_bg.jpg
382
+ - features/support/test_distro/_images/favicon.ico
383
+ - features/support/test_distro/_images/favicon32x32.png
384
+ - features/support/test_distro/_javascripts/.gitkeep
385
+ - features/support/test_distro/_stylesheets/asciibinder.css
386
+ - features/support/test_distro/_templates/_css.html.erb
387
+ - features/support/test_distro/_templates/_nav.html.erb
388
+ - features/support/test_distro/_templates/page.html.erb
389
+ - features/support/test_distro/_topic_map.yml
390
+ - features/support/test_distro/index-main.html
391
+ - features/support/test_distro/index-test.html
392
+ - features/support/test_distro/main_only_topic_group/index.adoc
393
+ - features/support/test_distro/test_only_topic_group/index.adoc
394
+ - features/support/test_distro/welcome/index.adoc
395
+ - features/support/test_distro/welcome/subtopics/index.adoc
396
+ - features/support/test_distro/welcome/subtopics/main_only_topic.adoc
397
+ - features/support/test_distro/welcome/subtopics/test_only_topic.adoc
398
+ - features/support/test_distro/welcome/subtopics/wildcard_all.adoc