bookbindery 2.0.1 → 2.1.0

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/lib/bookbinder.rb +2 -2
  3. data/lib/bookbinder/app_fetcher.rb +2 -6
  4. data/lib/bookbinder/archive.rb +1 -1
  5. data/lib/bookbinder/book.rb +7 -2
  6. data/lib/bookbinder/cli.rb +4 -5
  7. data/lib/bookbinder/code_example_reader.rb +1 -1
  8. data/lib/bookbinder/command_validator.rb +30 -10
  9. data/lib/bookbinder/commands/bind.rb +58 -53
  10. data/lib/bookbinder/commands/help.rb +4 -4
  11. data/lib/bookbinder/commands/naming.rb +14 -4
  12. data/lib/bookbinder/commands/push_from_local.rb +51 -0
  13. data/lib/bookbinder/commands/push_to_prod.rb +1 -2
  14. data/lib/bookbinder/commands/run_publish_ci.rb +1 -1
  15. data/lib/bookbinder/commands/tag.rb +1 -1
  16. data/lib/bookbinder/commands/version.rb +5 -4
  17. data/lib/bookbinder/configuration.rb +49 -28
  18. data/lib/bookbinder/configuration_fetcher.rb +1 -1
  19. data/lib/bookbinder/configuration_validator.rb +40 -37
  20. data/lib/bookbinder/{bookbinder_logger.rb → deprecated_logger.rb} +1 -1
  21. data/lib/bookbinder/distributor.rb +16 -9
  22. data/lib/bookbinder/dita_html_to_middleman_formatter.rb +26 -8
  23. data/lib/bookbinder/dita_section.rb +8 -2
  24. data/lib/bookbinder/git_hub_repository.rb +7 -20
  25. data/lib/bookbinder/html_document_manipulator.rb +21 -0
  26. data/lib/bookbinder/ingest/cloner_factory.rb +25 -0
  27. data/lib/bookbinder/ingest/git_hub_repository_cloner_facade.rb +26 -0
  28. data/lib/bookbinder/ingest/local_filesystem_cloner_facade.rb +28 -0
  29. data/lib/bookbinder/local_dita_preprocessor.rb +33 -5
  30. data/lib/bookbinder/local_dita_to_html_converter.rb +26 -28
  31. data/lib/bookbinder/local_file_system_accessor.rb +0 -5
  32. data/lib/bookbinder/publisher.rb +1 -1
  33. data/lib/bookbinder/remote_yaml_credential_provider.rb +1 -1
  34. data/lib/bookbinder/repositories/command_repository.rb +21 -5
  35. data/lib/bookbinder/section.rb +12 -1
  36. data/lib/bookbinder/subnav.rb +4 -0
  37. data/lib/bookbinder/subnav_formatter.rb +37 -0
  38. data/lib/bookbinder/user_message.rb +10 -1
  39. data/master_middleman/bookbinder_helpers.rb +3 -3
  40. metadata +46 -40
  41. data/lib/bookbinder/commands/push_local_to_staging.rb +0 -36
@@ -0,0 +1,21 @@
1
+ require 'nokogiri'
2
+
3
+ module Bookbinder
4
+ class HtmlDocumentManipulator
5
+ def set_attribute(document: nil,
6
+ selector: nil,
7
+ attribute: nil,
8
+ value: nil)
9
+ doc = Nokogiri::HTML.fragment(document)
10
+ node_set = doc.css(selector)
11
+ node_set.attr(attribute, value)
12
+ doc.to_html
13
+ end
14
+
15
+ def read_html_in_tag(document: nil, tag: nil)
16
+ doc = Nokogiri::HTML(document)
17
+ doc.css(tag).inner_html
18
+ end
19
+ end
20
+ end
21
+
@@ -0,0 +1,25 @@
1
+ require_relative 'git_hub_repository_cloner_facade'
2
+ require_relative 'local_filesystem_cloner_facade'
3
+
4
+ module Bookbinder
5
+ module Ingest
6
+ class ClonerFactory
7
+ def initialize(logger, version_control_system)
8
+ @logger = logger
9
+ @version_control_system = version_control_system
10
+ end
11
+
12
+ def produce(source, user_repo_dir)
13
+ if user_repo_dir
14
+ LocalFilesystemClonerFacade.new(logger, version_control_system, user_repo_dir)
15
+ else
16
+ GitHubRepositoryClonerFacade.new(logger, version_control_system)
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ attr_reader :logger, :version_control_system
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,26 @@
1
+ module Bookbinder
2
+ module Ingest
3
+ class GitHubRepositoryClonerFacade
4
+ def initialize(logger, version_control_system)
5
+ @logger = logger
6
+ @version_control_system = version_control_system
7
+ end
8
+
9
+ def call(from: nil,
10
+ ref: nil,
11
+ parent_dir: nil,
12
+ dir_name: nil)
13
+ GitHubRepository.
14
+ build_from_remote(logger,
15
+ {'repository' => {'name' => from},
16
+ 'directory' => dir_name},
17
+ version_control_system).
18
+ tap { |repo| repo.copy_from_remote(parent_dir, ref) }
19
+ end
20
+
21
+ private
22
+
23
+ attr_reader :logger, :version_control_system
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ module Bookbinder
2
+ module Ingest
3
+ class LocalFilesystemClonerFacade
4
+ def initialize(logger, version_control_system, user_repo_dir)
5
+ @logger = logger
6
+ @version_control_system = version_control_system
7
+ @user_repo_dir = user_repo_dir
8
+ end
9
+
10
+ def call(from: nil,
11
+ ref: nil,
12
+ parent_dir: nil,
13
+ dir_name: nil)
14
+ GitHubRepository.
15
+ build_from_local(logger,
16
+ {'repository' => {'name' => from},
17
+ 'directory' => dir_name},
18
+ user_repo_dir,
19
+ version_control_system).
20
+ tap { |repo| repo.copy_from_local(parent_dir) }
21
+ end
22
+
23
+ private
24
+
25
+ attr_reader :logger, :version_control_system, :user_repo_dir
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,5 @@
1
+ require_relative 'subnav'
2
+
1
3
  module Bookbinder
2
4
  class LocalDitaPreprocessor
3
5
 
@@ -7,15 +9,41 @@ module Bookbinder
7
9
  @local_file_system_accessor = local_file_system_accessor
8
10
  end
9
11
 
10
- def preprocess(dita_sections, converted_dita_dir, formatted_dita_dir, workspace_dir)
11
- dita_converter.convert dita_sections, to: converted_dita_dir
12
+ def preprocess(dita_section,
13
+ html_from_dita_dir,
14
+ formatted_dita_dir,
15
+ workspace_dir,
16
+ subnavs_dir,
17
+ dita_subnav_template_path)
18
+ dita_converter.convert_to_html dita_section, write_to: html_from_dita_dir
19
+
20
+ dita_formatter.format_html html_from_dita_dir, formatted_dita_dir
21
+
22
+ dita_subnav_template_text = local_file_system_accessor.read(dita_subnav_template_path)
23
+ tocjs_text = local_file_system_accessor.read(File.join html_from_dita_dir,
24
+ dita_section.directory,
25
+ 'index.html')
26
+
27
+ json_props_location = File.join(dita_section.directory + '-props.json')
28
+ props_file_location = File.join(subnavs_dir, json_props_location)
12
29
 
13
- dita_formatter.format converted_dita_dir, formatted_dita_dir
30
+ subnav = dita_formatter.format_subnav(dita_section,
31
+ dita_subnav_template_text,
32
+ json_props_location,
33
+ tocjs_text)
34
+
35
+ local_file_system_accessor.write text: subnav.json_links, to: props_file_location
36
+
37
+ local_file_system_accessor.write text: subnav.text,
38
+ to: File.join(subnavs_dir,
39
+ filename="#{dita_section.directory}_subnav.erb")
14
40
 
15
41
  local_file_system_accessor.copy_named_directory_with_path('images',
16
- converted_dita_dir,
42
+ html_from_dita_dir,
17
43
  workspace_dir)
18
- local_file_system_accessor.copy_contents(formatted_dita_dir, workspace_dir)
44
+
45
+ local_file_system_accessor.copy_contents(formatted_dita_dir,
46
+ workspace_dir)
19
47
  end
20
48
 
21
49
 
@@ -9,36 +9,34 @@ module Bookbinder
9
9
  @path_to_dita_ot_library = path_to_dita_ot_library
10
10
  end
11
11
 
12
- def convert(dita_sections, to: nil)
13
- dita_sections.map do |dita_section|
14
- absolute_path_to_ditamap = File.join dita_section.path_to_local_repo, dita_section.ditamap_location
15
- classpath = "#{path_to_dita_ot_library}/lib/xercesImpl.jar:" +
16
- "#{path_to_dita_ot_library}/lib/xml-apis.jar:" +
17
- "#{path_to_dita_ot_library}/lib/resolver.jar:" +
18
- "#{path_to_dita_ot_library}/lib/commons-codec-1.4.jar:" +
19
- "#{path_to_dita_ot_library}/lib/icu4j.jar:" +
20
- "#{path_to_dita_ot_library}/lib/saxon/saxon9-dom.jar:" +
21
- "#{path_to_dita_ot_library}/lib/saxon/saxon9.jar:target/classes:" +
22
- "#{path_to_dita_ot_library}:" +
23
- "#{path_to_dita_ot_library}/lib/:" +
24
- "#{path_to_dita_ot_library}/lib/dost.jar"
25
- out_dir = File.join to, dita_section.directory
26
- command = "export CLASSPATH=#{classpath}; " +
27
- "ant -f #{path_to_dita_ot_library} " +
28
- "-Dbasedir='/' " +
29
- "-Doutput.dir=#{out_dir} " +
30
- "-Dtranstype='tocjs' " +
31
- "-Dargs.input=#{absolute_path_to_ditamap} "
12
+ def convert_to_html(dita_section, write_to: nil)
13
+ absolute_path_to_ditamap = File.join dita_section.path_to_local_repo, dita_section.ditamap_location
14
+ classpath = "#{path_to_dita_ot_library}/lib/xercesImpl.jar:" +
15
+ "#{path_to_dita_ot_library}/lib/xml-apis.jar:" +
16
+ "#{path_to_dita_ot_library}/lib/resolver.jar:" +
17
+ "#{path_to_dita_ot_library}/lib/commons-codec-1.4.jar:" +
18
+ "#{path_to_dita_ot_library}/lib/icu4j.jar:" +
19
+ "#{path_to_dita_ot_library}/lib/saxon/saxon9-dom.jar:" +
20
+ "#{path_to_dita_ot_library}/lib/saxon/saxon9.jar:target/classes:" +
21
+ "#{path_to_dita_ot_library}:" +
22
+ "#{path_to_dita_ot_library}/lib/:" +
23
+ "#{path_to_dita_ot_library}/lib/dost.jar"
24
+ out_dir = File.join write_to, dita_section.directory
25
+ command = "export CLASSPATH=#{classpath}; " +
26
+ "ant -f #{path_to_dita_ot_library} " +
27
+ "-Dbasedir='/' " +
28
+ "-Doutput.dir=#{out_dir} " +
29
+ "-Dtranstype='tocjs' " +
30
+ "-Dargs.input=#{absolute_path_to_ditamap} "
32
31
 
33
- begin
34
- sheller.run_command(command)
35
- rescue Sheller::ShelloutFailure
36
- raise DitaToHtmlLibraryFailure.new 'The DITA-to-HTML conversion failed. ' +
37
- 'Please check that you have specified the path to your DITA-OT library in the ENV, ' +
38
- 'that your DITA-specific keys/values in config.yml are set, ' +
39
- 'and that your DITA toolkit is correctly configured.'
32
+ begin
33
+ sheller.run_command(command)
34
+ rescue Sheller::ShelloutFailure
35
+ raise DitaToHtmlLibraryFailure.new 'The DITA-to-HTML conversion failed. ' +
36
+ 'Please check that you have specified the path to your DITA-OT library in the ENV, ' +
37
+ 'that your DITA-specific keys/values in config.yml are set, ' +
38
+ 'and that your DITA toolkit is correctly configured.'
40
39
 
41
- end
42
40
  end
43
41
  end
44
42
 
@@ -23,11 +23,6 @@ module Bookbinder
23
23
  File.read(path)
24
24
  end
25
25
 
26
- def read_html_in_tag(path: nil, marker: nil)
27
- doc = Nokogiri::XML(File.open path)
28
- doc.css(marker).inner_html
29
- end
30
-
31
26
  def remove_directory(path)
32
27
  FileUtils.rm_rf(path)
33
28
  end
@@ -1,5 +1,5 @@
1
1
  require 'middleman-syntax'
2
- require_relative 'bookbinder_logger'
2
+ require_relative 'deprecated_logger'
3
3
  require_relative 'directory_helpers'
4
4
  require_relative 'repositories/section_repository'
5
5
  require_relative 'server_director'
@@ -11,7 +11,7 @@ module Bookbinder
11
11
  def credentials
12
12
  @logger.log "Processing #{@repository.full_name.cyan}"
13
13
  Dir.mktmpdir do |destination_dir|
14
- @repository.copy_from_remote(destination_dir)
14
+ @repository.copy_from_remote(destination_dir, 'master')
15
15
  cred_file_yaml = File.join(destination_dir, @repository.short_name, 'credentials.yml')
16
16
  YAML.load_file(cred_file_yaml)
17
17
  end
@@ -5,11 +5,14 @@ require_relative '../configuration_fetcher'
5
5
  require_relative '../configuration_validator'
6
6
  require_relative '../dita_html_to_middleman_formatter'
7
7
  require_relative '../git_accessor'
8
- require_relative '../local_dita_to_html_converter'
8
+ require_relative '../html_document_manipulator'
9
+ require_relative '../ingest/cloner_factory'
9
10
  require_relative '../local_dita_preprocessor'
11
+ require_relative '../local_dita_to_html_converter'
10
12
  require_relative '../local_file_system_accessor'
11
13
  require_relative '../middleman_runner'
12
14
  require_relative '../spider'
15
+ require_relative '../subnav_formatter'
13
16
  require_relative '../yaml_loader'
14
17
 
15
18
  module Bookbinder
@@ -49,6 +52,7 @@ module Bookbinder
49
52
  build_and_push_tarball,
50
53
  Commands::GeneratePDF.new(logger, configuration_fetcher),
51
54
  bind,
55
+ Commands::PushFromLocal.new(logger, configuration_fetcher, 'acceptance'),
52
56
  push_local_to_staging,
53
57
  Commands::PushToProd.new(logger, configuration_fetcher),
54
58
  Commands::RunPublishCI.new(bind, push_local_to_staging, build_and_push_tarball),
@@ -76,14 +80,16 @@ module Bookbinder
76
80
  final_app_directory,
77
81
  server_director,
78
82
  File.absolute_path('.'),
79
- dita_preprocessor
83
+ dita_preprocessor,
84
+ Ingest::ClonerFactory.new(logger, git_accessor)
80
85
  )
81
86
  end
82
87
 
83
88
  def push_local_to_staging
84
- @push_local_to_staging ||= Commands::PushLocalToStaging.new(
89
+ @push_local_to_staging ||= Commands::PushFromLocal.new(
85
90
  logger,
86
- configuration_fetcher
91
+ configuration_fetcher,
92
+ 'staging'
87
93
  )
88
94
  end
89
95
 
@@ -141,7 +147,17 @@ module Bookbinder
141
147
  end
142
148
 
143
149
  def dita_html_to_middleman_formatter
144
- @dita_html_to_middleman_formatter ||= DitaHtmlToMiddlemanFormatter.new(local_file_system_accessor)
150
+ @dita_html_to_middleman_formatter ||= DitaHtmlToMiddlemanFormatter.new(local_file_system_accessor,
151
+ subnav_formatter,
152
+ html_document_manipulator)
153
+ end
154
+
155
+ def subnav_formatter
156
+ @subnav_formatter ||= SubnavFormatter.new
157
+ end
158
+
159
+ def html_document_manipulator
160
+ @html_document_manipulator ||= HtmlDocumentManipulator.new
145
161
  end
146
162
 
147
163
  def git_accessor
@@ -1,6 +1,11 @@
1
1
  module Bookbinder
2
2
 
3
- Section = Struct.new(:path_to_repository, :full_name, :copied, :subnav_templ, :destination_dir, :directory_name) do
3
+ Section = Struct.new(:path_to_repository,
4
+ :full_name,
5
+ :copied,
6
+ :subnav_templ,
7
+ :destination_dir,
8
+ :directory_name) do
4
9
  def path_to_repository
5
10
  Pathname(self[:path_to_repository].to_s)
6
11
  end
@@ -12,5 +17,11 @@ module Bookbinder
12
17
  def directory
13
18
  directory_name
14
19
  end
20
+
21
+ def subnav
22
+ namespace = directory.gsub('/', '_')
23
+ template = subnav_template || 'default'
24
+ {namespace => template}
25
+ end
15
26
  end
16
27
  end
@@ -0,0 +1,4 @@
1
+ module Bookbinder
2
+ Subnav = Struct.new(:json_links,
3
+ :text)
4
+ end
@@ -0,0 +1,37 @@
1
+ require 'nokogiri'
2
+ require 'active_support/all'
3
+
4
+ module Bookbinder
5
+ class SubnavFormatter
6
+
7
+ def get_links_as_json(raw_subnav_text, base_dirname)
8
+ doc = Nokogiri::XML(raw_subnav_text)
9
+
10
+ all_anchors = doc.css('a')
11
+ all_anchors.each do |anchor|
12
+ anchor['href'] = "/#{base_dirname}/#{anchor['href']}"
13
+ end
14
+
15
+ {
16
+ links: gather_urls_and_texts(doc.css('body > ul'))
17
+ }.to_json
18
+ end
19
+
20
+ private
21
+
22
+ def gather_urls_and_texts(base_node)
23
+ top_level_li = base_node.css("> li")
24
+ top_level_li.map do |li|
25
+ anchor = li.css('a')[0]
26
+ href = anchor['href']
27
+ text = anchor.inner_text
28
+ ul = li.css('> ul')
29
+ if ul.size > 0
30
+ {url: href, text: text, nestedLinks: gather_urls_and_texts(ul)}
31
+ else
32
+ {url: href, text: text}
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,6 +1,15 @@
1
1
  module Bookbinder
2
2
 
3
- UserMessage = Struct.new(:message, :escalation_type)
3
+ UserMessage = Struct.new(:message, :escalation_type) do
4
+ def error?
5
+ escalation_type == EscalationType.error
6
+ end
7
+
8
+ def warn?
9
+ escalation_type == EscalationType.warn
10
+ end
11
+ end
12
+
4
13
  EscalationType = OpenStruct.new(success: 0, error: 1, warn: 2)
5
14
 
6
15
  end
@@ -33,8 +33,8 @@ module Bookbinder
33
33
  tap { |repo| repo.copy_from_local(workspace) }
34
34
  else
35
35
  GitHubRepository.
36
- build_from_remote(bookbinder_logger, attributes, nil, git_accessor).
37
- tap { |repo| repo.copy_from_remote(workspace) }
36
+ build_from_remote(bookbinder_logger, attributes, git_accessor).
37
+ tap { |repo| repo.copy_from_remote(workspace, 'master') }
38
38
  end
39
39
  example = code_example_repo.get_instance(attributes,
40
40
  vcs_repo: vcs_repo,
@@ -132,7 +132,7 @@ module Bookbinder
132
132
  end
133
133
 
134
134
  def bookbinder_logger
135
- BookbinderLogger.new
135
+ DeprecatedLogger.new
136
136
  end
137
137
  end
138
138
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookbindery
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Grafton
@@ -15,20 +15,20 @@ authors:
15
15
  autorequire:
16
16
  bindir: install_bin
17
17
  cert_chain: []
18
- date: 2015-02-18 00:00:00.000000000 Z
18
+ date: 2015-03-05 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: fog-aws
22
22
  requirement: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.6
27
27
  type: :runtime
28
28
  prerelease: false
29
29
  version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.0.6
34
34
  - !ruby/object:Gem::Dependency
@@ -49,70 +49,70 @@ dependencies:
49
49
  name: ansi
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.4'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.4'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: unf
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.1'
69
69
  type: :runtime
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.1'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: middleman
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.3.5
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: 3.3.5
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: middleman-syntax
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '2.0'
97
97
  type: :runtime
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
103
  version: '2.0'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: redcarpet
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: '3.0'
111
111
  type: :runtime
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: '3.0'
118
118
  - !ruby/object:Gem::Dependency
@@ -147,154 +147,154 @@ dependencies:
147
147
  name: anemone
148
148
  requirement: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  type: :runtime
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - '>='
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  - !ruby/object:Gem::Dependency
161
161
  name: css_parser
162
162
  requirement: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - '>='
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  type: :runtime
168
168
  prerelease: false
169
169
  version_requirements: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  - !ruby/object:Gem::Dependency
175
175
  name: puma
176
176
  requirement: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - '>='
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
181
  type: :runtime
182
182
  prerelease: false
183
183
  version_requirements: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">="
185
+ - - '>='
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0'
188
188
  - !ruby/object:Gem::Dependency
189
189
  name: popen4
190
190
  requirement: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - '>='
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  type: :runtime
196
196
  prerelease: false
197
197
  version_requirements: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ">="
199
+ - - '>='
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  - !ruby/object:Gem::Dependency
203
203
  name: rack-rewrite
204
204
  requirement: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ">="
206
+ - - '>='
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
209
  type: :runtime
210
210
  prerelease: false
211
211
  version_requirements: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - ">="
213
+ - - '>='
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
216
  - !ruby/object:Gem::Dependency
217
217
  name: therubyracer
218
218
  requirement: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ">="
220
+ - - '>='
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  type: :runtime
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ">="
227
+ - - '>='
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
230
  - !ruby/object:Gem::Dependency
231
231
  name: git
232
232
  requirement: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - "~>"
234
+ - - ~>
235
235
  - !ruby/object:Gem::Version
236
236
  version: 1.2.8
237
237
  type: :runtime
238
238
  prerelease: false
239
239
  version_requirements: !ruby/object:Gem::Requirement
240
240
  requirements:
241
- - - "~>"
241
+ - - ~>
242
242
  - !ruby/object:Gem::Version
243
243
  version: 1.2.8
244
244
  - !ruby/object:Gem::Dependency
245
245
  name: license_finder
246
246
  requirement: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - ">="
248
+ - - '>='
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  type: :development
252
252
  prerelease: false
253
253
  version_requirements: !ruby/object:Gem::Requirement
254
254
  requirements:
255
- - - ">="
255
+ - - '>='
256
256
  - !ruby/object:Gem::Version
257
257
  version: '0'
258
258
  - !ruby/object:Gem::Dependency
259
259
  name: pry-byebug
260
260
  requirement: !ruby/object:Gem::Requirement
261
261
  requirements:
262
- - - ">="
262
+ - - '>='
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
265
  type: :development
266
266
  prerelease: false
267
267
  version_requirements: !ruby/object:Gem::Requirement
268
268
  requirements:
269
- - - ">="
269
+ - - '>='
270
270
  - !ruby/object:Gem::Version
271
271
  version: '0'
272
272
  - !ruby/object:Gem::Dependency
273
273
  name: rake
274
274
  requirement: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - ">="
276
+ - - '>='
277
277
  - !ruby/object:Gem::Version
278
278
  version: '0'
279
279
  type: :development
280
280
  prerelease: false
281
281
  version_requirements: !ruby/object:Gem::Requirement
282
282
  requirements:
283
- - - ">="
283
+ - - '>='
284
284
  - !ruby/object:Gem::Version
285
285
  version: '0'
286
286
  - !ruby/object:Gem::Dependency
287
287
  name: rspec
288
288
  requirement: !ruby/object:Gem::Requirement
289
289
  requirements:
290
- - - ">="
290
+ - - '>='
291
291
  - !ruby/object:Gem::Version
292
292
  version: '0'
293
293
  type: :development
294
294
  prerelease: false
295
295
  version_requirements: !ruby/object:Gem::Requirement
296
296
  requirements:
297
- - - ">="
297
+ - - '>='
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  description: A command line utility to be run in Book repositories to stitch together
@@ -311,7 +311,6 @@ files:
311
311
  - lib/bookbinder/artifact_namer.rb
312
312
  - lib/bookbinder/blue_green_app.rb
313
313
  - lib/bookbinder/book.rb
314
- - lib/bookbinder/bookbinder_logger.rb
315
314
  - lib/bookbinder/cf_command_runner.rb
316
315
  - lib/bookbinder/cf_routes.rb
317
316
  - lib/bookbinder/cli.rb
@@ -328,7 +327,7 @@ files:
328
327
  - lib/bookbinder/commands/generate_pdf.rb
329
328
  - lib/bookbinder/commands/help.rb
330
329
  - lib/bookbinder/commands/naming.rb
331
- - lib/bookbinder/commands/push_local_to_staging.rb
330
+ - lib/bookbinder/commands/push_from_local.rb
332
331
  - lib/bookbinder/commands/push_to_prod.rb
333
332
  - lib/bookbinder/commands/run_publish_ci.rb
334
333
  - lib/bookbinder/commands/tag.rb
@@ -338,6 +337,7 @@ files:
338
337
  - lib/bookbinder/configuration_fetcher.rb
339
338
  - lib/bookbinder/configuration_validator.rb
340
339
  - lib/bookbinder/css_link_checker.rb
340
+ - lib/bookbinder/deprecated_logger.rb
341
341
  - lib/bookbinder/directory_helpers.rb
342
342
  - lib/bookbinder/distributor.rb
343
343
  - lib/bookbinder/dita_html_to_middleman_formatter.rb
@@ -346,6 +346,10 @@ files:
346
346
  - lib/bookbinder/git_accessor.rb
347
347
  - lib/bookbinder/git_client.rb
348
348
  - lib/bookbinder/git_hub_repository.rb
349
+ - lib/bookbinder/html_document_manipulator.rb
350
+ - lib/bookbinder/ingest/cloner_factory.rb
351
+ - lib/bookbinder/ingest/git_hub_repository_cloner_facade.rb
352
+ - lib/bookbinder/ingest/local_filesystem_cloner_facade.rb
349
353
  - lib/bookbinder/local_dita_preprocessor.rb
350
354
  - lib/bookbinder/local_dita_to_html_converter.rb
351
355
  - lib/bookbinder/local_file_system_accessor.rb
@@ -364,6 +368,8 @@ files:
364
368
  - lib/bookbinder/sitemap_generator.rb
365
369
  - lib/bookbinder/spider.rb
366
370
  - lib/bookbinder/stabilimentum.rb
371
+ - lib/bookbinder/subnav.rb
372
+ - lib/bookbinder/subnav_formatter.rb
367
373
  - lib/bookbinder/terminal.rb
368
374
  - lib/bookbinder/user_message.rb
369
375
  - lib/bookbinder/user_message_presenter.rb
@@ -391,12 +397,12 @@ require_paths:
391
397
  - lib
392
398
  required_ruby_version: !ruby/object:Gem::Requirement
393
399
  requirements:
394
- - - ">="
400
+ - - '>='
395
401
  - !ruby/object:Gem::Version
396
402
  version: '0'
397
403
  required_rubygems_version: !ruby/object:Gem::Requirement
398
404
  requirements:
399
- - - ">="
405
+ - - '>='
400
406
  - !ruby/object:Gem::Version
401
407
  version: '0'
402
408
  requirements: []