bookbindery 2.1.4 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e569c8b49b909c17b4b30acd65b3986b07ab304b
4
- data.tar.gz: a55e74657a1f9e2e12c13de88fb9ae7e53d069d2
3
+ metadata.gz: 86f65f7bef679ee010fe1e1e48699f25c8a52459
4
+ data.tar.gz: 36903b0839abb3d2d34de78b685497900920572a
5
5
  SHA512:
6
- metadata.gz: 19a3737931f428d599b991f09422bb307fb4749aa28729dcf8139a89e3b175c583497cafa28a0c68fcdd26baf0421318b05840d30d8dd16d4d29a9d7aab26b60
7
- data.tar.gz: b3e5e09c41cf9db7dae8b231176b1ede5efa7a1e41c2472d01511ff54c44fb80be9a4540d6aee995df113151c944651577ca7d1c6c5e4363032738ba196f67fc
6
+ metadata.gz: 642e96e2a97bddd0492c9eac223d1b0b07db5bf5897f5926a25029c4246de28c26cb6bf9f6cf4066a2344b9faa6e99403d22825aeaa6ef2057d82c4c30adc99e
7
+ data.tar.gz: 6710d7e2f7a298e5c7dd94ae5ad74684389e5426b1abd2a0dd9bfbc4f1222c3dd26d9aae71a1912e2aa0d52b604fc65e1c6ef628bc3ad6b3d2fa943f532b014b
@@ -21,9 +21,8 @@ module Bookbinder
21
21
  version_control_system,
22
22
  file_system_accessor,
23
23
  static_site_generator,
24
- sitemap_generator,
24
+ sitemap_writer,
25
25
  final_app_directory,
26
- server_director,
27
26
  context_dir,
28
27
  dita_preprocessor,
29
28
  cloner_factory,
@@ -35,9 +34,8 @@ module Bookbinder
35
34
  @version_control_system = version_control_system
36
35
  @file_system_accessor = file_system_accessor
37
36
  @static_site_generator = static_site_generator
38
- @sitemap_generator = sitemap_generator
37
+ @sitemap_writer = sitemap_writer
39
38
  @final_app_directory = final_app_directory
40
- @server_director = server_director
41
39
  @context_dir = context_dir
42
40
  @dita_preprocessor = dita_preprocessor
43
41
  @cloner_factory = cloner_factory
@@ -62,7 +60,7 @@ module Bookbinder
62
60
 
63
61
  @section_repository = Repositories::SectionRepository.new(logger)
64
62
  @gem_root = File.expand_path('../../../../', __FILE__)
65
- publisher = Publisher.new(logger, sitemap_generator, static_site_generator, server_director, file_system_accessor)
63
+ publisher = Publisher.new(logger, sitemap_writer, static_site_generator, file_system_accessor)
66
64
 
67
65
  bind_source, *options = cli_arguments
68
66
 
@@ -121,8 +119,7 @@ module Bookbinder
121
119
  :file_system_accessor,
122
120
  :static_site_generator,
123
121
  :final_app_directory,
124
- :sitemap_generator,
125
- :server_director,
122
+ :sitemap_writer,
126
123
  :context_dir,
127
124
  :dita_preprocessor,
128
125
  :cloner_factory,
@@ -22,10 +22,10 @@ module Bookbinder
22
22
 
23
23
  dita_formatter.format_html dita_section.html_from_dita_section_dir, dita_section.formatted_section_dir
24
24
 
25
- copy_images(dita_section)
25
+ copy_images(dita_section.path_to_local_repo, dita_section.formatted_section_dir)
26
26
 
27
- local_fs_accessor.copy_contents(dita_section.formatted_section_dir,
28
- dita_section.section_source_for_site_generator)
27
+ local_fs_accessor.copy_contents(dita_section.formatted_section_dir,
28
+ dita_section.section_source_for_site_generator)
29
29
  end
30
30
 
31
31
  private
@@ -50,15 +50,15 @@ module Bookbinder
50
50
  to: File.join(subnavs_dir, "dita_subnav.erb")
51
51
  end
52
52
 
53
- def copy_images(dita_section)
53
+ def copy_images(src, dest)
54
54
  image_paths = ACCEPTED_IMAGE_FORMATS.map do |format|
55
- local_fs_accessor.find_files_with_ext(format, dita_section.path_to_local_repo)
55
+ local_fs_accessor.find_files_with_ext(format, src)
56
56
  end.flatten
57
57
 
58
58
  image_paths.each do |image_path|
59
59
  local_fs_accessor.copy_including_intermediate_dirs(image_path,
60
- dita_section.path_to_local_repo,
61
- dita_section.section_source_for_site_generator)
60
+ src,
61
+ dest)
62
62
  end
63
63
  end
64
64
 
@@ -94,8 +94,9 @@ module Bookbinder
94
94
  @logger.log ' copying '.yellow + path_to_local_repo
95
95
  destination = File.join(destination_dir, directory)
96
96
 
97
- unless destination.include?(path_to_local_repo)
97
+ if !destination.include?(path_to_local_repo) && !File.exists?(destination)
98
98
  FileUtils.mkdir_p(destination)
99
+
99
100
  FileUtils.cp_r(File.join(path_to_local_repo, '.'), destination)
100
101
  end
101
102
 
@@ -44,7 +44,7 @@ module Bookbinder
44
44
  FileUtils.mkdir_p(dest)
45
45
  end
46
46
 
47
- contents = Dir.glob File.join(src, '**/*')
47
+ contents = Dir.glob File.join(src, '**')
48
48
  contents.each do |dir|
49
49
  FileUtils.cp_r dir, dest
50
50
  end
@@ -62,7 +62,7 @@ module Bookbinder
62
62
  end
63
63
 
64
64
  def find_files_with_ext(ext, path)
65
- Dir[File.join path, '**/*'].select { |file| File.basename(file).include?(".#{ext}") }
65
+ Dir[File.join path, "**/*.#{ext}"]
66
66
  end
67
67
 
68
68
  def relative_path_from(src, target)
@@ -0,0 +1,32 @@
1
+ require_relative '../server_director'
2
+ require_relative '../spider'
3
+
4
+ module Bookbinder
5
+ module PostProduction
6
+ class SitemapWriter
7
+ def self.build(logger, final_app_directory, port)
8
+ new(
9
+ Spider.new(logger, app_dir: final_app_directory),
10
+ ServerDirector.new(logger, directory: final_app_directory, port: port)
11
+ )
12
+ end
13
+
14
+ def initialize(spider, server_director)
15
+ @spider = spider
16
+ @server_director = server_director
17
+ end
18
+
19
+ def write(host_for_sitemap)
20
+ server_director.use_server { |port|
21
+ spider.generate_sitemap(host_for_sitemap, port)
22
+ }.tap do |sitemap|
23
+ File.write(sitemap.to_path, sitemap.to_xml)
24
+ end
25
+ end
26
+
27
+ private
28
+
29
+ attr_reader :server_director, :spider
30
+ end
31
+ end
32
+ end
@@ -2,17 +2,15 @@ require 'middleman-syntax'
2
2
  require_relative 'deprecated_logger'
3
3
  require_relative 'directory_helpers'
4
4
  require_relative 'repositories/section_repository'
5
- require_relative 'server_director'
6
5
 
7
6
  module Bookbinder
8
7
  class Publisher
9
8
  include DirectoryHelperMethods
10
9
 
11
- def initialize(logger, spider, static_site_generator, server_director, file_system_accessor)
10
+ def initialize(logger, sitemap_writer, static_site_generator, file_system_accessor)
12
11
  @logger = logger
13
- @spider = spider
12
+ @sitemap_writer = sitemap_writer
14
13
  @static_site_generator = static_site_generator
15
- @server_director = server_director
16
14
  @file_system_accessor = file_system_accessor
17
15
  end
18
16
 
@@ -29,21 +27,20 @@ module Bookbinder
29
27
  host_for_sitemap = publish_config.fetch(:host_for_sitemap)
30
28
 
31
29
  generate_site(cli_options, output_paths, publish_config, master_dir, workspace_dir, subnavs, build_directory, public_directory)
32
- generate_sitemap(host_for_sitemap, @spider)
30
+ result = generate_sitemap(host_for_sitemap)
33
31
 
34
32
  @logger.log "Bookbinder bound your book into #{final_app_dir.to_s.green}"
35
33
 
36
- !@spider.has_broken_links?
34
+ !result.has_broken_links?
37
35
  end
38
36
 
39
37
  private
40
38
 
41
- attr_reader :section_repository, :logger, :file_system_accessor
39
+ attr_reader :section_repository, :logger, :file_system_accessor, :sitemap_writer
42
40
 
43
- def generate_sitemap(host_for_sitemap, spider)
41
+ def generate_sitemap(host_for_sitemap)
44
42
  raise "Your public host must be a single String." unless host_for_sitemap.is_a?(String)
45
-
46
- @server_director.use_server { |port| spider.generate_sitemap host_for_sitemap, port }
43
+ sitemap_writer.write(host_for_sitemap)
47
44
  end
48
45
 
49
46
  def generate_site(cli_options, output_paths, publish_config, middleman_dir, workspace_dir, subnavs, build_dir, public_dir)
@@ -10,7 +10,7 @@ require_relative '../ingest/cloner_factory'
10
10
  require_relative '../dita_to_html_converter'
11
11
  require_relative '../local_file_system_accessor'
12
12
  require_relative '../middleman_runner'
13
- require_relative '../spider'
13
+ require_relative '../post_production/sitemap_writer'
14
14
  require_relative '../subnav_formatter'
15
15
  require_relative '../yaml_loader'
16
16
  require_relative '../config/bind_config_factory'
@@ -78,9 +78,8 @@ module Bookbinder
78
78
  version_control_system,
79
79
  local_file_system_accessor,
80
80
  middleman_runner,
81
- spider,
81
+ PostProduction::SitemapWriter.build(logger, final_app_directory, sitemap_port),
82
82
  final_app_directory,
83
- server_director,
84
83
  File.absolute_path('.'),
85
84
  dita_preprocessor,
86
85
  Ingest::ClonerFactory.new(logger, version_control_system),
@@ -103,17 +102,6 @@ module Bookbinder
103
102
  )
104
103
  end
105
104
 
106
- def spider
107
- @spider ||= Spider.new(logger, app_dir: final_app_directory)
108
- end
109
-
110
- def server_director
111
- @server_director ||= ServerDirector.new(
112
- logger,
113
- directory: final_app_directory
114
- )
115
- end
116
-
117
105
  def middleman_runner
118
106
  @middleman_runner ||= MiddlemanRunner.new(logger, version_control_system)
119
107
  end
@@ -170,6 +158,10 @@ module Bookbinder
170
158
  def bind_config_factory
171
159
  @bind_config_factory ||= Config::BindConfigFactory.new(logger, version_control_system, configuration_fetcher)
172
160
  end
161
+
162
+ def sitemap_port
163
+ 41722
164
+ end
173
165
  end
174
166
  end
175
167
  end
@@ -10,16 +10,18 @@ module Bookbinder
10
10
 
11
11
  def use_server
12
12
  Dir.chdir(@directory) do
13
+ result = nil
13
14
  POpen4::popen4("puma -p #{@port}") do |stdout, stderr, stdin, pid|
14
15
  begin
15
16
  wait_for_server(stdout)
16
17
  consume_stream_in_separate_thread(stdout)
17
18
  consume_stream_in_separate_thread(stderr)
18
- yield @port
19
+ result = yield @port
19
20
  ensure
20
21
  stop_server(pid)
21
22
  end
22
23
  end
24
+ result
23
25
  end
24
26
  end
25
27
 
@@ -2,8 +2,8 @@ require 'nokogiri'
2
2
 
3
3
  module Bookbinder
4
4
  class SitemapGenerator
5
- def generate(links, sitemap_file)
6
- builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
5
+ def generate(links)
6
+ Nokogiri::XML::Builder.new(encoding: 'UTF-8') { |xml|
7
7
  xml.urlset('xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9') {
8
8
  links.each do |link|
9
9
  xml.url {
@@ -12,8 +12,7 @@ module Bookbinder
12
12
  }
13
13
  end
14
14
  }
15
- end
16
- File.write(sitemap_file, builder.to_xml)
15
+ }.to_xml
17
16
  end
18
17
  end
19
18
  end
@@ -7,6 +7,26 @@ require_relative 'sitemap_generator'
7
7
 
8
8
  module Bookbinder
9
9
  class Spider
10
+ class Result
11
+ def initialize(broken_links, sitemap, app_dir)
12
+ @broken_links = broken_links
13
+ @sitemap = sitemap
14
+ @app_dir = app_dir
15
+ end
16
+
17
+ def has_broken_links?
18
+ @broken_links.any? { |link| !link.include?('#') }
19
+ end
20
+
21
+ def to_xml
22
+ @sitemap
23
+ end
24
+
25
+ def to_path
26
+ Pathname(@app_dir).join('public/sitemap.xml')
27
+ end
28
+ end
29
+
10
30
  def initialize(logger, app_dir: nil)
11
31
  @logger = logger
12
32
  @app_dir = app_dir || raise('Spiders must be initialized with an app directory.')
@@ -18,16 +38,12 @@ module Bookbinder
18
38
 
19
39
  sieve = Sieve.new domain: "http://#{temp_host}"
20
40
  links = crawl_from "http://#{temp_host}/index.html", sieve
21
- @broken_links, working_links = links
22
-
23
- announce_broken_links @broken_links
41
+ broken_links, working_links = links
24
42
 
25
- write_sitemap(target_host, temp_host, working_links)
26
- working_links
27
- end
43
+ announce_broken_links broken_links
28
44
 
29
- def has_broken_links?
30
- @broken_links.any? { |link| !link.include?('#') } if @broken_links
45
+ sitemap_links = substitute_hostname(temp_host, target_host, working_links)
46
+ Result.new(broken_links, SitemapGenerator.new.generate(sitemap_links), @app_dir)
31
47
  end
32
48
 
33
49
  def self.prepend_location(location, url)
@@ -36,12 +52,6 @@ module Bookbinder
36
52
 
37
53
  private
38
54
 
39
- def write_sitemap(host, port, working_links)
40
- sitemap_file = File.join(@app_dir, 'public', 'sitemap.xml')
41
- sitemap_links = substitute_hostname(host, port, working_links)
42
- SitemapGenerator.new.generate(sitemap_links, sitemap_file)
43
- end
44
-
45
55
  def announce_broken_links(broken_links)
46
56
  if broken_links.any?
47
57
  @logger.error "\nFound #{broken_links.count} broken links!"
@@ -84,7 +94,7 @@ module Bookbinder
84
94
  anemone.focus_crawl { |page| page.links.reject { |link| link.to_s.match(/%23/) } }
85
95
  end
86
96
 
87
- def substitute_hostname(target_host, temp_host, links)
97
+ def substitute_hostname(temp_host, target_host, links)
88
98
  links.map { |l| l.gsub(/#{Regexp.escape(temp_host)}/, target_host) }
89
99
  end
90
100
  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.1.4
4
+ version: 2.1.5
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-03-16 00:00:00.000000000 Z
18
+ date: 2015-03-17 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
@@ -355,6 +355,7 @@ files:
355
355
  - lib/bookbinder/local_file_system_accessor.rb
356
356
  - lib/bookbinder/middleman_runner.rb
357
357
  - lib/bookbinder/pdf_generator.rb
358
+ - lib/bookbinder/post_production/sitemap_writer.rb
358
359
  - lib/bookbinder/publisher.rb
359
360
  - lib/bookbinder/pusher.rb
360
361
  - lib/bookbinder/remote_dita_section_gatherer.rb
@@ -403,12 +404,12 @@ require_paths:
403
404
  - lib
404
405
  required_ruby_version: !ruby/object:Gem::Requirement
405
406
  requirements:
406
- - - '>='
407
+ - - ">="
407
408
  - !ruby/object:Gem::Version
408
409
  version: '0'
409
410
  required_rubygems_version: !ruby/object:Gem::Requirement
410
411
  requirements:
411
- - - '>='
412
+ - - ">="
412
413
  - !ruby/object:Gem::Version
413
414
  version: '0'
414
415
  requirements: []