bookbindery 3.1.0 → 3.1.2

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/install_bin/bookbinder +1 -1
  3. data/lib/bookbinder/cf_command_runner.rb +1 -1
  4. data/lib/bookbinder/cli.rb +5 -5
  5. data/lib/bookbinder/code_example_reader.rb +57 -19
  6. data/lib/bookbinder/colorizer.rb +5 -2
  7. data/lib/bookbinder/commands/bind.rb +32 -42
  8. data/lib/bookbinder/commands/bind/bind_options.rb +6 -4
  9. data/lib/bookbinder/commands/bind/directory_preparer.rb +8 -13
  10. data/lib/bookbinder/{repositories/command_repository.rb → commands/collection.rb} +19 -37
  11. data/lib/bookbinder/config/archive_menu_configuration.rb +38 -0
  12. data/lib/bookbinder/config/checkers/archive_menu_checker.rb +35 -0
  13. data/lib/bookbinder/config/checkers/dita_section_checker.rb +24 -0
  14. data/lib/bookbinder/config/checkers/duplicate_section_name_checker.rb +29 -0
  15. data/lib/bookbinder/config/checkers/repository_name_presence_checker.rb +37 -0
  16. data/lib/bookbinder/config/checkers/required_keys_checker.rb +47 -0
  17. data/lib/bookbinder/config/configuration.rb +99 -0
  18. data/lib/bookbinder/config/fetcher.rb +61 -0
  19. data/lib/bookbinder/config/remote_yaml_credential_provider.rb +22 -0
  20. data/lib/bookbinder/config/validator.rb +30 -0
  21. data/lib/bookbinder/config/yaml_loader.rb +34 -0
  22. data/lib/bookbinder/ingest/git_cloner.rb +0 -1
  23. data/lib/bookbinder/ingest/local_filesystem_cloner.rb +22 -17
  24. data/lib/bookbinder/ingest/missing_working_copy.rb +21 -0
  25. data/lib/bookbinder/{repositories → ingest}/section_repository.rb +3 -4
  26. data/lib/bookbinder/{repositories → ingest}/section_repository_factory.rb +1 -1
  27. data/lib/bookbinder/ingest/working_copy.rb +12 -16
  28. data/lib/bookbinder/preprocessing/copy_to_site_gen_dir.rb +2 -3
  29. data/lib/bookbinder/preprocessing/dita_preprocessor.rb +5 -5
  30. data/lib/bookbinder/preprocessing/preprocessor.rb +1 -1
  31. data/lib/bookbinder/sheller.rb +3 -0
  32. data/lib/bookbinder/streams/colorized_stream.rb +1 -1
  33. data/lib/bookbinder/values/cf_routes.rb +17 -6
  34. data/lib/bookbinder/values/output_locations.rb +1 -12
  35. data/lib/bookbinder/values/section.rb +2 -7
  36. data/master_middleman/bookbinder_helpers.rb +23 -18
  37. data/master_middleman/quicklinks_renderer.rb +1 -0
  38. data/template_app/lib/rack_static.rb +2 -0
  39. data/template_app/lib/vienna_application.rb +2 -0
  40. metadata +51 -52
  41. data/lib/bookbinder.rb +0 -44
  42. data/lib/bookbinder/archive_menu_configuration.rb +0 -34
  43. data/lib/bookbinder/configuration.rb +0 -97
  44. data/lib/bookbinder/configuration_fetcher.rb +0 -59
  45. data/lib/bookbinder/configuration_validator.rb +0 -28
  46. data/lib/bookbinder/remote_yaml_credential_provider.rb +0 -20
  47. data/lib/bookbinder/shell_out.rb +0 -20
  48. data/lib/bookbinder/validation_checkers/archive_menu_checker.rb +0 -31
  49. data/lib/bookbinder/validation_checkers/dita_section_checker.rb +0 -20
  50. data/lib/bookbinder/validation_checkers/duplicate_section_name_checker.rb +0 -25
  51. data/lib/bookbinder/validation_checkers/repository_name_presence_checker.rb +0 -33
  52. data/lib/bookbinder/validation_checkers/required_keys_checker.rb +0 -43
  53. data/lib/bookbinder/yaml_loader.rb +0 -33
@@ -23,7 +23,6 @@ module Bookbinder
23
23
  )
24
24
  WorkingCopy.new(
25
25
  copied_to: copied_to,
26
- directory: destination_dir_name,
27
26
  full_name: source_repo_name,
28
27
  )
29
28
  end
@@ -1,5 +1,7 @@
1
1
  require_relative '../deprecated_logger'
2
+ require_relative 'destination_directory'
2
3
  require_relative 'working_copy'
4
+ require_relative 'missing_working_copy'
3
5
 
4
6
  module Bookbinder
5
7
  module Ingest
@@ -14,38 +16,41 @@ module Bookbinder
14
16
  source_ref: nil,
15
17
  destination_parent_dir: nil,
16
18
  destination_dir_name: nil)
17
- copied_to = copy!(
18
- WorkingCopy.new(repo_dir: user_repo_dir, full_name: source_repo_name),
19
+ copy!(
20
+ source_repo_name,
21
+ Pathname(user_repo_dir).join(source_repo_name.split('/').last),
19
22
  Pathname(destination_parent_dir).join(DestinationDirectory.new(source_repo_name, destination_dir_name))
20
23
  )
21
- WorkingCopy.new(
22
- copied_to: copied_to,
23
- directory: destination_dir_name,
24
- full_name: source_repo_name,
25
- )
26
24
  end
27
25
 
28
26
  private
29
27
 
30
28
  attr_reader :logger, :filesystem, :user_repo_dir
31
29
 
32
- def copy!(source_copy, dest_dir)
33
- source_exists = filesystem.file_exist?(source_copy.path)
30
+ def copy!(source_repo_name, source_dir, dest_dir)
31
+ source_exists = filesystem.file_exist?(source_dir)
34
32
 
35
33
  if source_exists && filesystem.file_exist?(dest_dir)
36
- announce_copy(source_copy)
37
- dest_dir
34
+ announce_copy(source_dir)
35
+ WorkingCopy.new(
36
+ copied_to: dest_dir,
37
+ full_name: source_repo_name,
38
+ )
38
39
  elsif source_exists
39
- announce_copy(source_copy)
40
- filesystem.copy_contents(source_copy.path, dest_dir)
41
- dest_dir
40
+ announce_copy(source_dir)
41
+ filesystem.copy_contents(source_dir, dest_dir)
42
+ WorkingCopy.new(
43
+ copied_to: dest_dir,
44
+ full_name: source_repo_name,
45
+ )
42
46
  else
43
- logger.log ' skipping (not found) '.magenta + source_copy.path.to_s
47
+ logger.log ' skipping (not found) '.magenta + source_dir.to_s
48
+ MissingWorkingCopy.new(source_repo_name)
44
49
  end
45
50
  end
46
51
 
47
- def announce_copy(source_copy)
48
- logger.log ' copying '.yellow + source_copy.path.to_s
52
+ def announce_copy(source_dir)
53
+ logger.log ' copying '.yellow + source_dir.to_s
49
54
  end
50
55
  end
51
56
  end
@@ -0,0 +1,21 @@
1
+ module Bookbinder
2
+ module Ingest
3
+ class MissingWorkingCopy
4
+ def initialize(source_repo_name)
5
+ @source_repo_name = source_repo_name
6
+ end
7
+
8
+ def full_name
9
+ @source_repo_name
10
+ end
11
+
12
+ def path
13
+ Pathname("/this/doesnt/actually/exist/#{SecureRandom.uuid}")
14
+ end
15
+
16
+ def available?
17
+ false
18
+ end
19
+ end
20
+ end
21
+ end
@@ -3,7 +3,7 @@ require_relative '../deprecated_logger'
3
3
  require_relative '../values/section'
4
4
 
5
5
  module Bookbinder
6
- module Repositories
6
+ module Ingest
7
7
  class SectionRepository
8
8
  def initialize(logger, cloner)
9
9
  @logger = logger
@@ -20,11 +20,10 @@ module Bookbinder
20
20
  destination_parent_dir: destination_dir,
21
21
  destination_dir_name: section_config.desired_directory_name)
22
22
  Section.new(
23
- working_copy.copied_to,
23
+ working_copy.path,
24
24
  working_copy.full_name,
25
- working_copy.copied?,
26
25
  destination_dir,
27
- working_copy.directory,
26
+ section_config.desired_directory_name,
28
27
  section_config.subnav_template,
29
28
  section_config.preprocessor_config
30
29
  )
@@ -1,7 +1,7 @@
1
1
  require_relative 'section_repository'
2
2
 
3
3
  module Bookbinder
4
- module Repositories
4
+ module Ingest
5
5
  class SectionRepositoryFactory
6
6
  def initialize(logger)
7
7
  @logger = logger
@@ -1,30 +1,26 @@
1
- require_relative 'destination_directory'
1
+ require_relative '../errors/programmer_mistake'
2
2
 
3
3
  module Bookbinder
4
4
  module Ingest
5
5
  class WorkingCopy
6
- def initialize(repo_dir: nil,
7
- copied_to: nil,
8
- directory: nil,
6
+ def initialize(copied_to: nil,
9
7
  full_name: nil)
10
- @repo_dir = repo_dir
11
- @copied_to = copied_to
12
- @directory = directory
13
- @full_name = full_name
8
+ if [copied_to, full_name].none?
9
+ raise Errors::ProgrammerMistake.new("Must provide copied_to and/or full_name to WorkingCopy.new")
10
+ else
11
+ @copied_to = copied_to
12
+ @full_name = full_name
13
+ end
14
14
  end
15
15
 
16
- attr_reader :copied_to, :full_name
16
+ attr_reader :full_name
17
17
 
18
- def copied?
19
- ! copied_to.nil?
20
- end
21
-
22
- def directory
23
- DestinationDirectory.new(full_name, @directory).to_s
18
+ def available?
19
+ !! @copied_to
24
20
  end
25
21
 
26
22
  def path
27
- Pathname(@repo_dir).join(directory)
23
+ Pathname(@copied_to)
28
24
  end
29
25
  end
30
26
  end
@@ -6,15 +6,14 @@ module Bookbinder
6
6
  end
7
7
 
8
8
  def applicable_to?(section)
9
- section.subnav_template != 'dita_subnav' &&
10
- filesystem.file_exist?(section.path_to_repository)
9
+ filesystem.file_exist?(section.path_to_repository)
11
10
  end
12
11
 
13
12
  def preprocess(sections, output_locations, *_)
14
13
  sections.each do |section|
15
14
  filesystem.copy_contents(
16
15
  section.path_to_repository,
17
- output_locations.source_for_site_generator.join(section.desired_directory)
16
+ output_locations.source_for_site_generator.join(section.destination_directory)
18
17
  )
19
18
  end
20
19
  end
@@ -23,7 +23,7 @@ module Bookbinder
23
23
  command = command_creator.convert_to_html_command(
24
24
  dita_section,
25
25
  dita_flags: dita_flags(options),
26
- write_to: output_locations.html_from_preprocessing_dir.join(dita_section.desired_directory)
26
+ write_to: output_locations.html_from_preprocessing_dir.join(dita_section.destination_directory)
27
27
  )
28
28
  status = sheller.run_command(command, output_streams.to_h)
29
29
  unless status.success?
@@ -33,16 +33,16 @@ module Bookbinder
33
33
  'and that your DITA toolkit is correctly configured.'
34
34
  end
35
35
 
36
- generate_subnav(dita_section.desired_directory,
36
+ generate_subnav(dita_section.destination_directory,
37
37
  output_locations,
38
38
  output_locations.source_for_site_generator.join('subnavs', '_dita_subnav_template.erb'),
39
39
  output_locations.subnavs_for_layout_dir)
40
40
  end
41
41
 
42
42
  dita_sections.each do |dita_section|
43
- html_dir = output_locations.html_from_preprocessing_dir.join(dita_section.desired_directory)
44
- formatted_dir = output_locations.formatted_dir.join(dita_section.desired_directory)
45
- source_for_site_gen_dir = output_locations.source_for_site_generator.join(dita_section.desired_directory)
43
+ html_dir = output_locations.html_from_preprocessing_dir.join(dita_section.destination_directory)
44
+ formatted_dir = output_locations.formatted_dir.join(dita_section.destination_directory)
45
+ source_for_site_gen_dir = output_locations.source_for_site_generator.join(dita_section.destination_directory)
46
46
 
47
47
  dita_formatter.format_html html_dir, formatted_dir
48
48
 
@@ -10,7 +10,7 @@ module Bookbinder
10
10
  @processes = processes
11
11
  end
12
12
 
13
- def preprocess(objs, *args, &block)
13
+ def preprocess(objs, *args)
14
14
  objs.group_by { |obj|
15
15
  processes.detect ->{ NullProcess.new } { |process| process.applicable_to?(obj) }
16
16
  }.each do |process, objs|
@@ -7,6 +7,9 @@ module Bookbinder
7
7
  class DevNull
8
8
  def puts(_)
9
9
  end
10
+
11
+ def <<(_)
12
+ end
10
13
  end
11
14
 
12
15
  def run_command(*command)
@@ -10,7 +10,7 @@ module Bookbinder
10
10
  end
11
11
 
12
12
  def puts(line)
13
- stream << colorizer.colorize(line, color)
13
+ stream.puts(colorizer.colorize(line, color))
14
14
  end
15
15
 
16
16
  private
@@ -5,15 +5,26 @@ module Bookbinder
5
5
  end
6
6
 
7
7
  def apps_by_host_and_domain
8
- @apps_by_host_and_domain ||= Hash[
9
- raw_routes.lines[3..-1].
10
- map { |line| line.split(/\s+/, 3) }.
11
- map { |item| [item[0..1], item[2].split(',').map(&:strip)] }
12
- ]
8
+ @apps_by_host_and_domain ||= data(raw_routes).reduce({}) {|acc, row|
9
+ parsed_row = Hash[headers(raw_routes).zip(row)]
10
+ acc.merge(parsed_row.values_at('host', 'domain') => parse_apps(parsed_row['apps']))
11
+ }
13
12
  end
14
13
 
15
14
  private
16
15
 
17
16
  attr_reader :raw_routes
17
+
18
+ def parse_apps(apps)
19
+ apps.split(',').map(&:strip)
20
+ end
21
+
22
+ def headers(raw)
23
+ raw.lines[2].split(/\s+/)
24
+ end
25
+
26
+ def data(raw)
27
+ raw.lines[3..-1].map {|line| line.split(/\s+/, headers(raw).size)}
28
+ end
18
29
  end
19
- end
30
+ end
@@ -3,18 +3,11 @@ require_relative '../errors/programmer_mistake'
3
3
 
4
4
  module Bookbinder
5
5
  class OutputLocations
6
- attr_reader :layout_repo_dir
7
-
8
6
  include DirectoryHelperMethods
9
7
 
10
- def initialize(final_app_dir: nil,
11
- layout_repo_dir: nil,
12
- context_dir: nil,
13
- local_repo_dir: nil)
8
+ def initialize(final_app_dir: nil, context_dir: nil)
14
9
  @final_app_dir = final_app_dir
15
- @layout_repo_dir = layout_repo_dir
16
10
  @context_dir = context_dir
17
- @local_repo_dir = local_repo_dir
18
11
  end
19
12
 
20
13
  def final_app_dir
@@ -41,10 +34,6 @@ module Bookbinder
41
34
  context_dir.join(output_dir_name)
42
35
  end
43
36
 
44
- def local_repo_dir
45
- Pathname(@local_repo_dir) if @local_repo_dir
46
- end
47
-
48
37
  def preprocessing_home_dir
49
38
  output_dir.join('preprocessing')
50
39
  end
@@ -4,15 +4,10 @@ require_relative '../ingest/destination_directory'
4
4
  module Bookbinder
5
5
  Section = Struct.new(:path_to_repository,
6
6
  :full_name,
7
- :copied,
8
7
  :destination_dir,
9
8
  :desired_directory_name,
10
9
  :subnav_templ,
11
10
  :preprocessor_config) do
12
- def requires_preprocessing?
13
- !preprocessor_config.nil?
14
- end
15
-
16
11
  def path_to_repository
17
12
  Pathname(self[:path_to_repository].to_s)
18
13
  end
@@ -21,12 +16,12 @@ module Bookbinder
21
16
  subnav_templ.sub(/^_/, '').sub(/\.erb$/, '') if subnav_templ
22
17
  end
23
18
 
24
- def desired_directory
19
+ def destination_directory
25
20
  Ingest::DestinationDirectory.new(full_name, desired_directory_name)
26
21
  end
27
22
 
28
23
  def subnav
29
- namespace = desired_directory.to_s.gsub('/', '_')
24
+ namespace = destination_directory.to_s.gsub('/', '_')
30
25
  template = subnav_template || 'default'
31
26
  {namespace => template}
32
27
  end
@@ -27,10 +27,7 @@ module Bookbinder
27
27
  source_ref: 'master',
28
28
  destination_parent_dir: workspace)
29
29
 
30
- snippet, language = code_example_reader.get_snippet_and_language_at(at,
31
- working_copy.copied_to,
32
- working_copy.copied?,
33
- working_copy.full_name)
30
+ snippet, language = code_example_reader.get_snippet_and_language_at(at, working_copy)
34
31
 
35
32
  delimiter = '```'
36
33
 
@@ -38,15 +35,7 @@ module Bookbinder
38
35
  end
39
36
 
40
37
  def yield_for_subnav
41
- if index_subnav
42
- template = current_page.data.index_subnav
43
- else
44
- namespaces = decreasingly_specific_namespaces
45
- template = namespaces.map do |namespace|
46
- config[:subnav_templates][namespace]
47
- end.compact.pop || 'default'
48
- end
49
- partial "subnavs/#{template}"
38
+ partial "subnavs/#{subnav_template_name}"
50
39
  end
51
40
 
52
41
  def yield_for_archive_drop_down_menu
@@ -80,17 +69,33 @@ module Bookbinder
80
69
 
81
70
  private
82
71
 
83
- def index_subnav
84
- return true if current_page.data.index_subnav
72
+ def subnav_template_name
73
+ if current_page.data.index_subnav
74
+ current_page.data.index_subnav
75
+ else
76
+ template_key = decreasingly_specific_namespaces.detect { |ns|
77
+ config[:subnav_templates].has_key?(ns)
78
+ }
79
+ config[:subnav_templates][template_key] || 'default'
80
+ end
85
81
  end
86
82
 
87
83
  def decreasingly_specific_namespaces
88
- page_classes.split(' ')[0...-1].reverse
84
+ page_classes(numeric_prefix: numeric_class_prefix).
85
+ split(' ').reverse.drop(1).
86
+ map {|ns| ns.sub(/^#{numeric_class_prefix}/, '')}
87
+ end
88
+
89
+ def numeric_class_prefix
90
+ 'NUMERIC_CLASS_PREFIX'
89
91
  end
90
92
 
91
93
  def add_ancestors_of(page, ancestors)
92
- return ancestors if !page
93
- add_ancestors_of(page.parent, ancestors << page)
94
+ if page
95
+ add_ancestors_of(page.parent, ancestors + [page])
96
+ else
97
+ ancestors
98
+ end
94
99
  end
95
100
 
96
101
  def make_breadcrumb(page, is_current_page)
@@ -1,3 +1,4 @@
1
+ require 'nokogiri'
1
2
  require 'redcarpet'
2
3
 
3
4
  class QuicklinksRenderer < Redcarpet::Render::Base
@@ -1,3 +1,5 @@
1
+ require 'rack'
2
+
1
3
  class Rack::Static
2
4
  def route_file(path)
3
5
  @urls.kind_of?(Array) && @urls.any? { |url| url.index(path) == 0 }
@@ -1,3 +1,5 @@
1
+ require 'vienna'
2
+
1
3
  class Vienna::Application
2
4
  def initialize(root = 'public')
3
5
  @app = Rack::Builder.new do
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: 3.1.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Grafton
@@ -15,90 +15,90 @@ authors:
15
15
  autorequire:
16
16
  bindir: install_bin
17
17
  cert_chain: []
18
- date: 2015-05-21 00:00:00.000000000 Z
18
+ date: 2015-06-09 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
35
35
  name: ansi
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.4'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.4'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: unf
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.1'
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: '0.1'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: middleman
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.3.5
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: 3.3.5
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: middleman-syntax
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.0'
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: '2.0'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: redcarpet
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: 3.2.3
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: 3.2.3
104
104
  - !ruby/object:Gem::Dependency
@@ -119,140 +119,140 @@ dependencies:
119
119
  name: anemone
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  type: :runtime
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  - !ruby/object:Gem::Dependency
133
133
  name: css_parser
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  type: :runtime
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - '>='
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: puma
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: rack-rewrite
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: therubyracer
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: git
190
190
  requirement: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - ~>
193
193
  - !ruby/object:Gem::Version
194
194
  version: 1.2.8
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: 1.2.8
202
202
  - !ruby/object:Gem::Dependency
203
203
  name: license_finder
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: :development
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: pry-byebug
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: :development
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: rake
232
232
  requirement: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - '>='
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
237
  type: :development
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: '0'
244
244
  - !ruby/object:Gem::Dependency
245
245
  name: rspec
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
  description: A command line utility to be run in Book repositories to stitch together
@@ -265,7 +265,6 @@ extra_rdoc_files: []
265
265
  files:
266
266
  - lib/bookbinder/app_fetcher.rb
267
267
  - lib/bookbinder/archive.rb
268
- - lib/bookbinder/archive_menu_configuration.rb
269
268
  - lib/bookbinder/artifact_namer.rb
270
269
  - lib/bookbinder/cf_command_runner.rb
271
270
  - lib/bookbinder/cli.rb
@@ -279,6 +278,7 @@ files:
279
278
  - lib/bookbinder/commands/bookbinder_command.rb
280
279
  - lib/bookbinder/commands/build_and_push_tarball.rb
281
280
  - lib/bookbinder/commands/chain.rb
281
+ - lib/bookbinder/commands/collection.rb
282
282
  - lib/bookbinder/commands/help.rb
283
283
  - lib/bookbinder/commands/naming.rb
284
284
  - lib/bookbinder/commands/push_from_local.rb
@@ -287,14 +287,22 @@ files:
287
287
  - lib/bookbinder/commands/tag.rb
288
288
  - lib/bookbinder/commands/update_local_doc_repos.rb
289
289
  - lib/bookbinder/commands/version.rb
290
+ - lib/bookbinder/config/archive_menu_configuration.rb
290
291
  - lib/bookbinder/config/aws_credentials.rb
291
292
  - lib/bookbinder/config/bind_config_factory.rb
292
293
  - lib/bookbinder/config/cf_credentials.rb
294
+ - lib/bookbinder/config/checkers/archive_menu_checker.rb
295
+ - lib/bookbinder/config/checkers/dita_section_checker.rb
296
+ - lib/bookbinder/config/checkers/duplicate_section_name_checker.rb
297
+ - lib/bookbinder/config/checkers/repository_name_presence_checker.rb
298
+ - lib/bookbinder/config/checkers/required_keys_checker.rb
299
+ - lib/bookbinder/config/configuration.rb
300
+ - lib/bookbinder/config/fetcher.rb
293
301
  - lib/bookbinder/config/remote_bind_configuration.rb
302
+ - lib/bookbinder/config/remote_yaml_credential_provider.rb
294
303
  - lib/bookbinder/config/section_config.rb
295
- - lib/bookbinder/configuration.rb
296
- - lib/bookbinder/configuration_fetcher.rb
297
- - lib/bookbinder/configuration_validator.rb
304
+ - lib/bookbinder/config/validator.rb
305
+ - lib/bookbinder/config/yaml_loader.rb
298
306
  - lib/bookbinder/css_link_checker.rb
299
307
  - lib/bookbinder/deprecated_logger.rb
300
308
  - lib/bookbinder/directory_helpers.rb
@@ -309,7 +317,10 @@ files:
309
317
  - lib/bookbinder/ingest/destination_directory.rb
310
318
  - lib/bookbinder/ingest/git_cloner.rb
311
319
  - lib/bookbinder/ingest/local_filesystem_cloner.rb
320
+ - lib/bookbinder/ingest/missing_working_copy.rb
312
321
  - lib/bookbinder/ingest/repo_identifier.rb
322
+ - lib/bookbinder/ingest/section_repository.rb
323
+ - lib/bookbinder/ingest/section_repository_factory.rb
313
324
  - lib/bookbinder/ingest/working_copy.rb
314
325
  - lib/bookbinder/local_file_system_accessor.rb
315
326
  - lib/bookbinder/middleman_runner.rb
@@ -318,12 +329,7 @@ files:
318
329
  - lib/bookbinder/preprocessing/dita_preprocessor.rb
319
330
  - lib/bookbinder/preprocessing/preprocessor.rb
320
331
  - lib/bookbinder/pusher.rb
321
- - lib/bookbinder/remote_yaml_credential_provider.rb
322
- - lib/bookbinder/repositories/command_repository.rb
323
- - lib/bookbinder/repositories/section_repository.rb
324
- - lib/bookbinder/repositories/section_repository_factory.rb
325
332
  - lib/bookbinder/server_director.rb
326
- - lib/bookbinder/shell_out.rb
327
333
  - lib/bookbinder/sheller.rb
328
334
  - lib/bookbinder/sieve.rb
329
335
  - lib/bookbinder/sitemap_generator.rb
@@ -333,19 +339,12 @@ files:
333
339
  - lib/bookbinder/subnav_formatter.rb
334
340
  - lib/bookbinder/terminal.rb
335
341
  - lib/bookbinder/time_fetcher.rb
336
- - lib/bookbinder/validation_checkers/archive_menu_checker.rb
337
- - lib/bookbinder/validation_checkers/dita_section_checker.rb
338
- - lib/bookbinder/validation_checkers/duplicate_section_name_checker.rb
339
- - lib/bookbinder/validation_checkers/repository_name_presence_checker.rb
340
- - lib/bookbinder/validation_checkers/required_keys_checker.rb
341
342
  - lib/bookbinder/values/blue_green_app.rb
342
343
  - lib/bookbinder/values/cf_routes.rb
343
344
  - lib/bookbinder/values/output_locations.rb
344
345
  - lib/bookbinder/values/section.rb
345
346
  - lib/bookbinder/values/subnav.rb
346
347
  - lib/bookbinder/values/user_message.rb
347
- - lib/bookbinder/yaml_loader.rb
348
- - lib/bookbinder.rb
349
348
  - template_app/app.rb
350
349
  - template_app/config.ru
351
350
  - template_app/Gemfile
@@ -368,12 +367,12 @@ require_paths:
368
367
  - lib
369
368
  required_ruby_version: !ruby/object:Gem::Requirement
370
369
  requirements:
371
- - - "~>"
370
+ - - ~>
372
371
  - !ruby/object:Gem::Version
373
372
  version: '2.0'
374
373
  required_rubygems_version: !ruby/object:Gem::Requirement
375
374
  requirements:
376
- - - ">="
375
+ - - '>='
377
376
  - !ruby/object:Gem::Version
378
377
  version: '0'
379
378
  requirements: []