bookbindery 2.1.4 → 2.1.5

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 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: []