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.
- 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
|