ascii_binder 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +16 -0
- data/ascii_binder.gemspec +5 -3
- data/bin/asciibinder +53 -44
- data/features/command_help.feature +8 -0
- data/features/command_version.feature +8 -0
- data/features/repo_build.feature +34 -0
- data/features/repo_clean.feature +20 -0
- data/features/repo_clone.feature +22 -0
- data/features/repo_create.feature +13 -0
- data/features/repo_package.feature +15 -0
- data/features/step_definitions/steps.rb +182 -0
- data/features/support/_clone_distro_map.yml +14 -0
- data/features/support/_invalid_distro_map.yml +14 -0
- data/features/support/env.rb +468 -0
- data/features/support/test_distro/.gitignore +9 -0
- data/features/support/test_distro/_distro_map.yml +29 -0
- data/features/support/test_distro/_images/asciibinder-logo-horizontal.png +0 -0
- data/features/support/test_distro/_images/asciibinder_web_logo.svg +125 -0
- data/features/support/test_distro/_images/book_pages_bg.jpg +0 -0
- data/features/support/test_distro/_images/favicon.ico +0 -0
- data/features/support/test_distro/_images/favicon32x32.png +0 -0
- data/features/support/test_distro/_javascripts/.gitkeep +0 -0
- data/features/support/test_distro/_stylesheets/asciibinder.css +568 -0
- data/features/support/test_distro/_templates/_css.html.erb +3 -0
- data/features/support/test_distro/_templates/_nav.html.erb +31 -0
- data/features/support/test_distro/_templates/page.html.erb +92 -0
- data/features/support/test_distro/_topic_map.yml +36 -0
- data/features/support/test_distro/index-main.html +10 -0
- data/features/support/test_distro/index-test.html +10 -0
- data/features/support/test_distro/main_only_topic_group/index.adoc +17 -0
- data/features/support/test_distro/test_only_topic_group/index.adoc +17 -0
- data/features/support/test_distro/welcome/index.adoc +17 -0
- data/features/support/test_distro/welcome/subtopics/index.adoc +17 -0
- data/features/support/test_distro/welcome/subtopics/main_only_topic.adoc +17 -0
- data/features/support/test_distro/welcome/subtopics/test_only_topic.adoc +17 -0
- data/features/support/test_distro/welcome/subtopics/wildcard_all.adoc +17 -0
- data/lib/ascii_binder.rb +4 -2
- data/lib/ascii_binder/distro.rb +111 -0
- data/lib/ascii_binder/distro_branch.rb +93 -0
- data/lib/ascii_binder/distro_map.rb +67 -0
- data/lib/ascii_binder/engine.rb +581 -0
- data/lib/ascii_binder/helpers.rb +42 -856
- data/lib/ascii_binder/site.rb +52 -0
- data/lib/ascii_binder/site_info.rb +22 -0
- data/lib/ascii_binder/site_map.rb +24 -0
- data/lib/ascii_binder/topic_entity.rb +255 -0
- data/lib/ascii_binder/topic_map.rb +61 -0
- data/lib/ascii_binder/version.rb +1 -1
- data/templates/_templates/page.html.erb +1 -1
- 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
|
data/lib/ascii_binder/version.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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.
|
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:
|
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:
|
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:
|
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:
|
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.
|
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
|