bookbindery 4.1.0 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bookbinder/cf_command_runner.rb +33 -30
  3. data/lib/bookbinder/cli.rb +15 -7
  4. data/lib/bookbinder/code_example_reader.rb +5 -7
  5. data/lib/bookbinder/commands/bind/directory_preparer.rb +1 -1
  6. data/lib/bookbinder/commands/build_and_push_tarball.rb +18 -6
  7. data/lib/bookbinder/commands/collection.rb +16 -21
  8. data/lib/bookbinder/commands/push_from_local.rb +27 -19
  9. data/lib/bookbinder/commands/push_to_prod.rb +30 -34
  10. data/lib/bookbinder/commands/tag.rb +5 -6
  11. data/lib/bookbinder/commands/update_local_doc_repos.rb +0 -1
  12. data/lib/bookbinder/config/cf_credentials.rb +1 -14
  13. data/lib/bookbinder/deploy/app_fetcher.rb +36 -0
  14. data/lib/bookbinder/deploy/archive.rb +102 -0
  15. data/lib/bookbinder/deploy/artifact.rb +26 -0
  16. data/lib/bookbinder/deploy/blue_green_app.rb +29 -0
  17. data/lib/bookbinder/deploy/cf_routes.rb +32 -0
  18. data/lib/bookbinder/deploy/deployment.rb +55 -0
  19. data/lib/bookbinder/deploy/distributor.rb +76 -0
  20. data/lib/bookbinder/deploy/failure.rb +15 -0
  21. data/lib/bookbinder/deploy/pusher.rb +34 -0
  22. data/lib/bookbinder/deploy/success.rb +16 -0
  23. data/lib/bookbinder/ingest/cloner_factory.rb +4 -4
  24. data/lib/bookbinder/ingest/local_filesystem_cloner.rb +5 -6
  25. data/lib/bookbinder/local_file_system_accessor.rb +9 -0
  26. data/lib/bookbinder/{post_production → postprocessing}/sitemap_writer.rb +7 -2
  27. data/lib/bookbinder/preprocessing/{copy_to_site_gen_dir.rb → link_to_site_gen_dir.rb} +2 -2
  28. data/lib/bookbinder/server_director.rb +3 -10
  29. data/lib/bookbinder/sheller.rb +5 -1
  30. data/master_middleman/bookbinder_helpers.rb +4 -12
  31. data/template_app/config.ru +3 -7
  32. data/template_app/rack_app.rb +23 -0
  33. metadata +60 -58
  34. data/lib/bookbinder/app_fetcher.rb +0 -36
  35. data/lib/bookbinder/archive.rb +0 -102
  36. data/lib/bookbinder/artifact_namer.rb +0 -22
  37. data/lib/bookbinder/commands/bookbinder_command.rb +0 -18
  38. data/lib/bookbinder/distributor.rb +0 -80
  39. data/lib/bookbinder/pusher.rb +0 -34
  40. data/lib/bookbinder/time_fetcher.rb +0 -7
  41. data/lib/bookbinder/values/blue_green_app.rb +0 -27
  42. data/lib/bookbinder/values/cf_routes.rb +0 -30
@@ -0,0 +1,76 @@
1
+ require_relative '../cf_command_runner'
2
+ require_relative '../ingest/destination_directory'
3
+ require_relative '../sheller'
4
+ require_relative 'app_fetcher'
5
+ require_relative 'archive'
6
+ require_relative 'artifact'
7
+ require_relative 'pusher'
8
+
9
+ module Bookbinder
10
+ module Deploy
11
+ class Distributor
12
+ EXPIRATION_HOURS = 2
13
+
14
+ def self.build(streams, archive, deployment)
15
+ cf_command_runner = CfCommandRunner.new(streams, Sheller.new, deployment.cf_credentials, deployment.artifact_full_path)
16
+ cf_app_fetcher = AppFetcher.new(deployment.flat_routes, cf_command_runner)
17
+ pusher = Pusher.new(cf_command_runner, cf_app_fetcher)
18
+ new(streams, archive, pusher, deployment)
19
+ end
20
+
21
+ def initialize(streams, archive, pusher, deployment)
22
+ @streams = streams
23
+ @archive = archive
24
+ @pusher = pusher
25
+ @deployment = deployment
26
+ end
27
+
28
+ def distribute
29
+ push_app
30
+ nil
31
+ rescue => e
32
+ streams[:err].puts(<<-ERROR.chomp)
33
+ [ERROR] #{e.message}
34
+ [DEBUG INFO]
35
+ CF organization: #{cf_credentials.organization}
36
+ CF space: #{cf_credentials.space}
37
+ CF account: #{cf_credentials.username}
38
+ routes: #{cf_credentials.routes}
39
+ ERROR
40
+ raise
41
+ ensure
42
+ upload_trace
43
+ end
44
+
45
+ private
46
+
47
+ attr_reader :archive, :deployment, :pusher, :streams
48
+
49
+ def push_app
50
+ pusher.push(deployment.app_dir)
51
+ end
52
+
53
+ def upload_trace
54
+ uploaded_file = archive.upload_file(deployment.green_builds_bucket, deployment.artifact_filename, deployment.artifact_full_path)
55
+ log_success(
56
+ ["Your cf trace file is available at: #{uploaded_file.url(Time.now.to_i + EXPIRATION_HOURS*60*60)}",
57
+ "This URL will expire in #{EXPIRATION_HOURS} hours, so if you need to share it, make sure to save a copy now."]
58
+ )
59
+ rescue Errno::ENOENT
60
+ log_error("Could not find CF trace file: #{deployment.artifact_full_path}")
61
+ end
62
+
63
+ def cf_credentials
64
+ deployment.cf_credentials
65
+ end
66
+
67
+ def log_success(message)
68
+ streams[:success].puts(message)
69
+ end
70
+
71
+ def log_error(message)
72
+ streams[:err].puts(message)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,15 @@
1
+ module Bookbinder
2
+ module Deploy
3
+ class Failure
4
+ attr_reader :reason
5
+
6
+ def initialize(reason)
7
+ @reason = reason
8
+ end
9
+
10
+ def success?
11
+ false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,34 @@
1
+ module Bookbinder
2
+ module Deploy
3
+ class Pusher
4
+ def initialize(cf_cli, app_fetcher)
5
+ @cf_cli = cf_cli
6
+ @app_fetcher = app_fetcher
7
+ end
8
+
9
+ def push(app_dir)
10
+ Dir.chdir(app_dir) do
11
+ cf_cli.login
12
+
13
+ old_app = app_fetcher.fetch_current_app
14
+
15
+ if old_app
16
+ new_app = old_app.with_flipped_name
17
+ cf_cli.start(new_app)
18
+ cf_cli.push(new_app)
19
+ cf_cli.map_routes(new_app)
20
+ cf_cli.takedown_old_target_app(old_app)
21
+ else
22
+ new_app = cf_cli.new_app
23
+ cf_cli.push(new_app)
24
+ cf_cli.map_routes(new_app)
25
+ end
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ attr_reader :cf_cli, :app_fetcher
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ module Bookbinder
2
+ module Deploy
3
+ class Success
4
+ attr_reader :reason
5
+
6
+ def initialize(reason)
7
+ @reason = reason
8
+ end
9
+
10
+ def success?
11
+ true
12
+ end
13
+ end
14
+ end
15
+ end
16
+
@@ -4,15 +4,15 @@ require_relative 'local_filesystem_cloner'
4
4
  module Bookbinder
5
5
  module Ingest
6
6
  class ClonerFactory
7
- def initialize(logger, filesystem, version_control_system)
8
- @logger = logger
7
+ def initialize(streams, filesystem, version_control_system)
8
+ @streams = streams
9
9
  @filesystem = filesystem
10
10
  @version_control_system = version_control_system
11
11
  end
12
12
 
13
13
  def produce(user_repo_dir)
14
14
  if user_repo_dir
15
- LocalFilesystemCloner.new(logger, filesystem, user_repo_dir)
15
+ LocalFilesystemCloner.new(streams, filesystem, user_repo_dir)
16
16
  else
17
17
  GitCloner.new(version_control_system)
18
18
  end
@@ -20,7 +20,7 @@ module Bookbinder
20
20
 
21
21
  private
22
22
 
23
- attr_reader :logger, :filesystem, :version_control_system
23
+ attr_reader :streams, :filesystem, :version_control_system
24
24
  end
25
25
  end
26
26
  end
@@ -1,4 +1,3 @@
1
- require_relative '../deprecated_logger'
2
1
  require_relative 'destination_directory'
3
2
  require_relative 'working_copy'
4
3
  require_relative 'missing_working_copy'
@@ -6,8 +5,8 @@ require_relative 'missing_working_copy'
6
5
  module Bookbinder
7
6
  module Ingest
8
7
  class LocalFilesystemCloner
9
- def initialize(logger, filesystem, user_repo_dir)
10
- @logger = logger
8
+ def initialize(streams, filesystem, user_repo_dir)
9
+ @streams = streams
11
10
  @user_repo_dir = user_repo_dir
12
11
  @filesystem = filesystem
13
12
  end
@@ -25,7 +24,7 @@ module Bookbinder
25
24
 
26
25
  private
27
26
 
28
- attr_reader :logger, :filesystem, :user_repo_dir
27
+ attr_reader :streams, :filesystem, :user_repo_dir
29
28
 
30
29
  def copy!(source_repo_name, source_dir, dest_dir)
31
30
  source_exists = filesystem.file_exist?(source_dir)
@@ -44,13 +43,13 @@ module Bookbinder
44
43
  full_name: source_repo_name,
45
44
  )
46
45
  else
47
- logger.log ' skipping (not found) '.magenta + source_dir.to_s
46
+ streams[:out].puts " skipping (not found) #{source_dir}"
48
47
  MissingWorkingCopy.new(source_repo_name)
49
48
  end
50
49
  end
51
50
 
52
51
  def announce_copy(source_dir)
53
- logger.log ' copying '.yellow + source_dir.to_s
52
+ streams[:out].puts " copying #{source_dir}"
54
53
  end
55
54
  end
56
55
  end
@@ -24,6 +24,10 @@ module Bookbinder
24
24
  File.read(path)
25
25
  end
26
26
 
27
+ def empty_directory(path)
28
+ FileUtils.rm_rf(File.join(path, '.'))
29
+ end
30
+
27
31
  def remove_directory(path)
28
32
  FileUtils.rm_rf(path)
29
33
  end
@@ -48,6 +52,11 @@ module Bookbinder
48
52
  copy file, extended_dest
49
53
  end
50
54
 
55
+ def link_creating_intermediate_dirs(src, dst)
56
+ FileUtils.mkdir_p(File.dirname(dst))
57
+ File.symlink(src, dst)
58
+ end
59
+
51
60
  def rename_file(path, new_name)
52
61
  new_path = File.expand_path File.join path, '..', new_name
53
62
  File.rename(path, new_path)
@@ -1,13 +1,18 @@
1
1
  require_relative '../server_director'
2
2
  require_relative '../spider'
3
+ require_relative '../../../template_app/rack_app'
3
4
 
4
5
  module Bookbinder
5
- module PostProduction
6
+ module Postprocessing
6
7
  class SitemapWriter
7
8
  def self.build(logger, final_app_directory, port)
8
9
  new(
9
10
  Spider.new(app_dir: final_app_directory),
10
- ServerDirector.new(directory: final_app_directory, port: port)
11
+ ServerDirector.new(
12
+ app: RackApp.new(Pathname('redirects.rb')).app,
13
+ directory: final_app_directory,
14
+ port: port
15
+ )
11
16
  )
12
17
  end
13
18
 
@@ -1,6 +1,6 @@
1
1
  module Bookbinder
2
2
  module Preprocessing
3
- class CopyToSiteGenDir
3
+ class LinkToSiteGenDir
4
4
  def initialize(filesystem)
5
5
  @filesystem = filesystem
6
6
  end
@@ -11,7 +11,7 @@ module Bookbinder
11
11
 
12
12
  def preprocess(sections, output_locations, *_)
13
13
  sections.each do |section|
14
- filesystem.copy_contents(
14
+ filesystem.link_creating_intermediate_dirs(
15
15
  section.path_to_repository,
16
16
  output_locations.source_for_site_generator.join(section.destination_directory)
17
17
  )
@@ -1,10 +1,9 @@
1
1
  require 'puma'
2
- require 'rack/rewrite'
3
- require 'vienna'
4
2
 
5
3
  module Bookbinder
6
4
  class ServerDirector
7
- def initialize(directory: nil, port: 41722)
5
+ def initialize(app: app, directory: nil, port: 41722)
6
+ @app = app
8
7
  @directory = directory
9
8
  @port = port
10
9
  end
@@ -26,12 +25,6 @@ module Bookbinder
26
25
 
27
26
  private
28
27
 
29
- def app
30
- if File.exists?('redirects.rb')
31
- Rack::Rewrite.new(Vienna) { eval(File.read('redirects.rb')) }
32
- else
33
- Vienna
34
- end
35
- end
28
+ attr_reader :app
36
29
  end
37
30
  end
@@ -43,6 +43,10 @@ module Bookbinder
43
43
  exit_status
44
44
  end
45
45
 
46
- attr_reader :view_updater
46
+ def get_stdout(command)
47
+ out = StringIO.new
48
+ run_command(command, out: out)
49
+ out.tap(&:rewind).read.chomp
50
+ end
47
51
  end
48
52
  end
@@ -17,15 +17,11 @@ module Bookbinder
17
17
  module HelperMethods
18
18
 
19
19
  def yield_for_code_snippet(from: nil, at: nil)
20
- git_accessor = config[:git_accessor]
21
- cloner = config[:cloner]
22
- attributes = {'repository' => {'name' => from}}
23
- workspace = config[:workspace]
24
- code_example_reader = CodeExampleReader.new(bookbinder_logger)
20
+ code_example_reader = CodeExampleReader.new(out: $stdout)
25
21
 
26
- working_copy = cloner.call(source_repo_name: from,
27
- source_ref: 'master',
28
- destination_parent_dir: workspace)
22
+ working_copy = config[:cloner].call(source_repo_name: from,
23
+ source_ref: 'master',
24
+ destination_parent_dir: config[:workspace])
29
25
 
30
26
  snippet, language = code_example_reader.get_snippet_and_language_at(at, working_copy)
31
27
 
@@ -104,10 +100,6 @@ module Bookbinder
104
100
  end
105
101
  content_tag :li, link, :class => css_class
106
102
  end
107
-
108
- def bookbinder_logger
109
- DeprecatedLogger.new
110
- end
111
103
  end
112
104
  end
113
105
  end
@@ -1,9 +1,5 @@
1
+ require 'pathname'
1
2
  require 'vienna'
2
-
3
- if File.exists?('redirects.rb')
4
- require 'rack/rewrite'
5
- use(Rack::Rewrite) { eval File.read('redirects.rb') }
6
- end
7
-
3
+ require './rack_app'
8
4
  require './app'
9
- run Vienna
5
+ run Bookbinder::RackApp.new(Pathname('redirects.rb')).app
@@ -0,0 +1,23 @@
1
+ require 'rack/rewrite'
2
+ require 'vienna'
3
+
4
+ module Bookbinder
5
+ class RackApp
6
+ def initialize(redirect_pathname)
7
+ @redirect_pathname = redirect_pathname
8
+ end
9
+
10
+ def app
11
+ if redirect_pathname.exist?
12
+ p = redirect_pathname
13
+ Rack::Rewrite.new(Vienna) { eval(p.read) }
14
+ else
15
+ Vienna
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ attr_reader :redirect_pathname
22
+ end
23
+ 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: 4.1.0
4
+ version: 4.1.1
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-07-01 00:00:00.000000000 Z
18
+ date: 2015-07-30 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
- version: 0.0.6
26
+ version: 0.7.1
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
- version: 0.0.6
33
+ version: 0.7.1
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
@@ -263,19 +263,16 @@ executables:
263
263
  extensions: []
264
264
  extra_rdoc_files: []
265
265
  files:
266
- - lib/bookbinder/app_fetcher.rb
267
- - lib/bookbinder/archive.rb
268
- - lib/bookbinder/artifact_namer.rb
266
+ - install_bin/bookbinder
269
267
  - lib/bookbinder/cf_command_runner.rb
270
268
  - lib/bookbinder/cli.rb
271
269
  - lib/bookbinder/code_example_reader.rb
272
270
  - lib/bookbinder/colorizer.rb
273
271
  - lib/bookbinder/command_runner.rb
274
272
  - lib/bookbinder/command_validator.rb
273
+ - lib/bookbinder/commands/bind.rb
275
274
  - lib/bookbinder/commands/bind/bind_options.rb
276
275
  - lib/bookbinder/commands/bind/directory_preparer.rb
277
- - lib/bookbinder/commands/bind.rb
278
- - lib/bookbinder/commands/bookbinder_command.rb
279
276
  - lib/bookbinder/commands/build_and_push_tarball.rb
280
277
  - lib/bookbinder/commands/chain.rb
281
278
  - lib/bookbinder/commands/collection.rb
@@ -305,9 +302,18 @@ files:
305
302
  - lib/bookbinder/config/validator.rb
306
303
  - lib/bookbinder/config/yaml_loader.rb
307
304
  - lib/bookbinder/css_link_checker.rb
305
+ - lib/bookbinder/deploy/app_fetcher.rb
306
+ - lib/bookbinder/deploy/archive.rb
307
+ - lib/bookbinder/deploy/artifact.rb
308
+ - lib/bookbinder/deploy/blue_green_app.rb
309
+ - lib/bookbinder/deploy/cf_routes.rb
310
+ - lib/bookbinder/deploy/deployment.rb
311
+ - lib/bookbinder/deploy/distributor.rb
312
+ - lib/bookbinder/deploy/failure.rb
313
+ - lib/bookbinder/deploy/pusher.rb
314
+ - lib/bookbinder/deploy/success.rb
308
315
  - lib/bookbinder/deprecated_logger.rb
309
316
  - lib/bookbinder/directory_helpers.rb
310
- - lib/bookbinder/distributor.rb
311
317
  - lib/bookbinder/dita_command_creator.rb
312
318
  - lib/bookbinder/dita_html_to_middleman_formatter.rb
313
319
  - lib/bookbinder/errors/cli_error.rb
@@ -327,11 +333,10 @@ files:
327
333
  - lib/bookbinder/ingest/working_copy.rb
328
334
  - lib/bookbinder/local_file_system_accessor.rb
329
335
  - lib/bookbinder/middleman_runner.rb
330
- - lib/bookbinder/post_production/sitemap_writer.rb
331
- - lib/bookbinder/preprocessing/copy_to_site_gen_dir.rb
336
+ - lib/bookbinder/postprocessing/sitemap_writer.rb
332
337
  - lib/bookbinder/preprocessing/dita_preprocessor.rb
338
+ - lib/bookbinder/preprocessing/link_to_site_gen_dir.rb
333
339
  - lib/bookbinder/preprocessing/preprocessor.rb
334
- - lib/bookbinder/pusher.rb
335
340
  - lib/bookbinder/server_director.rb
336
341
  - lib/bookbinder/sheller.rb
337
342
  - lib/bookbinder/sieve.rb
@@ -341,25 +346,22 @@ files:
341
346
  - lib/bookbinder/streams/colorized_stream.rb
342
347
  - lib/bookbinder/subnav_formatter.rb
343
348
  - lib/bookbinder/terminal.rb
344
- - lib/bookbinder/time_fetcher.rb
345
- - lib/bookbinder/values/blue_green_app.rb
346
- - lib/bookbinder/values/cf_routes.rb
347
349
  - lib/bookbinder/values/output_locations.rb
348
350
  - lib/bookbinder/values/section.rb
349
351
  - lib/bookbinder/values/subnav.rb
350
352
  - lib/bookbinder/values/user_message.rb
351
- - template_app/app.rb
352
- - template_app/config.ru
353
- - template_app/Gemfile
354
- - template_app/Gemfile.lock
355
- - template_app/lib/rack_static.rb
356
- - template_app/lib/vienna_application.rb
357
353
  - master_middleman/archive_drop_down_menu.rb
358
354
  - master_middleman/bookbinder_helpers.rb
359
355
  - master_middleman/config.rb
360
356
  - master_middleman/quicklinks_renderer.rb
361
357
  - master_middleman/submodule_aware_assets.rb
362
- - install_bin/bookbinder
358
+ - template_app/Gemfile
359
+ - template_app/Gemfile.lock
360
+ - template_app/app.rb
361
+ - template_app/config.ru
362
+ - template_app/lib/rack_static.rb
363
+ - template_app/lib/vienna_application.rb
364
+ - template_app/rack_app.rb
363
365
  homepage: https://github.com/pivotal-cf/bookbinder
364
366
  licenses:
365
367
  - MIT
@@ -370,17 +372,17 @@ require_paths:
370
372
  - lib
371
373
  required_ruby_version: !ruby/object:Gem::Requirement
372
374
  requirements:
373
- - - ~>
375
+ - - "~>"
374
376
  - !ruby/object:Gem::Version
375
377
  version: '2.0'
376
378
  required_rubygems_version: !ruby/object:Gem::Requirement
377
379
  requirements:
378
- - - '>='
380
+ - - ">="
379
381
  - !ruby/object:Gem::Version
380
382
  version: '0'
381
383
  requirements: []
382
384
  rubyforge_project:
383
- rubygems_version: 2.0.14
385
+ rubygems_version: 2.4.5
384
386
  signing_key:
385
387
  specification_version: 4
386
388
  summary: Markdown to Rackup application documentation generator