bookbindery 4.2.0 → 5.0.0
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 +4 -4
- data/lib/bookbinder/cli.rb +0 -3
- data/lib/bookbinder/code_example_reader.rb +54 -36
- data/lib/bookbinder/commands/bind.rb +42 -69
- data/lib/bookbinder/commands/bind/bind_options.rb +23 -13
- data/lib/bookbinder/commands/bind/directory_preparer.rb +18 -34
- data/lib/bookbinder/commands/collection.rb +40 -8
- data/lib/bookbinder/commands/watch.rb +90 -0
- data/lib/bookbinder/config/configuration.rb +0 -4
- data/lib/bookbinder/ingest/git_accessor.rb +9 -14
- data/lib/bookbinder/ingest/local_filesystem_cloner.rb +7 -7
- data/lib/bookbinder/ingest/missing_working_copy.rb +3 -2
- data/lib/bookbinder/ingest/repo_identifier.rb +1 -1
- data/lib/bookbinder/ingest/section_repository.rb +4 -11
- data/lib/bookbinder/ingest/working_copy.rb +8 -2
- data/lib/bookbinder/local_file_system_accessor.rb +8 -1
- data/lib/bookbinder/middleman_runner.rb +25 -78
- data/lib/bookbinder/preprocessing/preprocessor.rb +5 -5
- data/master_middleman/bookbinder_helpers.rb +14 -5
- data/master_middleman/config.rb +13 -4
- data/master_middleman/{submodule_aware_assets.rb → subdirectory_aware_assets.rb} +7 -5
- metadata +34 -8
- data/lib/bookbinder/config/bind_config_factory.rb +0 -28
- data/lib/bookbinder/config/remote_bind_configuration.rb +0 -44
- data/lib/bookbinder/ingest/section_repository_factory.rb +0 -19
@@ -10,11 +10,11 @@ module Bookbinder
|
|
10
10
|
@processes = processes
|
11
11
|
end
|
12
12
|
|
13
|
-
def preprocess(
|
14
|
-
|
15
|
-
processes.detect ->{ NullProcess.new } { |process| process.applicable_to?(
|
16
|
-
}.each do |process,
|
17
|
-
process.preprocess(
|
13
|
+
def preprocess(sections, *args)
|
14
|
+
sections.group_by { |section|
|
15
|
+
processes.detect ->{ NullProcess.new } { |process| process.applicable_to?(section) }
|
16
|
+
}.each do |process, grouped_sections|
|
17
|
+
process.preprocess(grouped_sections, *args)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'bookbinder/code_example_reader'
|
2
|
+
require 'bookbinder/ingest/cloner_factory'
|
3
|
+
require 'bookbinder/ingest/git_accessor'
|
4
|
+
require 'bookbinder/local_file_system_accessor'
|
1
5
|
require 'date'
|
2
6
|
require_relative 'archive_drop_down_menu'
|
3
7
|
require_relative 'quicklinks_renderer'
|
@@ -17,11 +21,16 @@ module Bookbinder
|
|
17
21
|
module HelperMethods
|
18
22
|
|
19
23
|
def yield_for_code_snippet(from: nil, at: nil)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
24
|
+
cloner_factory = Ingest::ClonerFactory.new({out: $stdout},
|
25
|
+
LocalFileSystemAccessor.new,
|
26
|
+
Ingest::GitAccessor.new)
|
27
|
+
|
28
|
+
cloner = cloner_factory.produce(config[:local_repo_dir])
|
29
|
+
code_example_reader = CodeExampleReader.new({out: $stdout},
|
30
|
+
LocalFileSystemAccessor.new)
|
31
|
+
working_copy = cloner.call(source_repo_name: from,
|
32
|
+
source_ref: 'master',
|
33
|
+
destination_parent_dir: config[:workspace])
|
25
34
|
|
26
35
|
snippet, language = code_example_reader.get_snippet_and_language_at(at, working_copy)
|
27
36
|
|
data/master_middleman/config.rb
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
require 'bookbinder_helpers'
|
2
|
-
require '
|
2
|
+
require 'middleman-syntax'
|
3
|
+
require 'middleman-livereload'
|
4
|
+
require 'subdirectory_aware_assets'
|
5
|
+
|
6
|
+
config = YAML.load_file('bookbinder_config.yml')
|
7
|
+
config.each do |k, v|
|
8
|
+
set k, v
|
9
|
+
end
|
3
10
|
|
4
11
|
set :markdown_engine, :redcarpet
|
5
12
|
set :markdown, :layout_engine => :erb,
|
@@ -14,10 +21,12 @@ set :js_dir, 'javascripts'
|
|
14
21
|
|
15
22
|
set :images_dir, 'images'
|
16
23
|
|
17
|
-
set :relative_links,
|
24
|
+
set :relative_links, false
|
18
25
|
|
19
|
-
activate :
|
26
|
+
activate :subdirectory_aware_assets
|
20
27
|
|
21
28
|
activate :navigation
|
22
29
|
|
23
|
-
activate :syntax
|
30
|
+
activate :syntax
|
31
|
+
|
32
|
+
activate :livereload
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class
|
1
|
+
class SubdirectoryAwareAssets < ::Middleman::Extension
|
2
2
|
def initialize(app, options_hash={}, &block)
|
3
3
|
super
|
4
4
|
|
@@ -9,15 +9,15 @@ class SubmoduleAwareAssets < ::Middleman::Extension
|
|
9
9
|
end
|
10
10
|
|
11
11
|
helpers do
|
12
|
-
def asset_url(path, prefix="")
|
13
|
-
url = super(path, prefix)
|
12
|
+
def asset_url(path, prefix="", options={})
|
13
|
+
url = super(path, prefix, options)
|
14
14
|
|
15
15
|
unless global_asset_at? url
|
16
16
|
current_dir = Pathname('/' + current_resource.destination_path)
|
17
17
|
url = Pathname(url).relative_path_from(current_dir.dirname).to_s
|
18
18
|
end
|
19
19
|
|
20
|
-
# middleman assumes your assets live at the top level, but they may be in the
|
20
|
+
# middleman assumes your assets live at the top level, but they may be in the nested repos instead
|
21
21
|
# here we start at top level and dive down until we find the real asset
|
22
22
|
current_page_path_parts = current_resource.destination_path.split('/')
|
23
23
|
current_page_path_parts.pop
|
@@ -42,4 +42,6 @@ class SubmoduleAwareAssets < ::Middleman::Extension
|
|
42
42
|
|
43
43
|
end
|
44
44
|
|
45
|
-
::Middleman::Extensions.register(:
|
45
|
+
::Middleman::Extensions.register(:subdirectory_aware_assets, SubdirectoryAwareAssets)
|
46
|
+
|
47
|
+
|
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
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Grafton
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: install_bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2015-
|
18
|
+
date: 2015-08-26 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: fog-aws
|
@@ -65,14 +65,28 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.4.0
|
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
|
-
version: 3.
|
75
|
+
version: 3.4.0
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: middleman-livereload
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.4.3
|
83
|
+
type: :runtime
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.4.3
|
76
90
|
- !ruby/object:Gem::Dependency
|
77
91
|
name: middleman-syntax
|
78
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,6 +101,20 @@ dependencies:
|
|
87
101
|
- - ~>
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '2.0'
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rouge
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '!='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.9.1
|
111
|
+
type: :runtime
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '!='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.9.1
|
90
118
|
- !ruby/object:Gem::Dependency
|
91
119
|
name: redcarpet
|
92
120
|
requirement: !ruby/object:Gem::Requirement
|
@@ -284,9 +312,9 @@ files:
|
|
284
312
|
- lib/bookbinder/commands/tag.rb
|
285
313
|
- lib/bookbinder/commands/update_local_doc_repos.rb
|
286
314
|
- lib/bookbinder/commands/version.rb
|
315
|
+
- lib/bookbinder/commands/watch.rb
|
287
316
|
- lib/bookbinder/config/archive_menu_configuration.rb
|
288
317
|
- lib/bookbinder/config/aws_credentials.rb
|
289
|
-
- lib/bookbinder/config/bind_config_factory.rb
|
290
318
|
- lib/bookbinder/config/cf_credentials.rb
|
291
319
|
- lib/bookbinder/config/checkers/archive_menu_checker.rb
|
292
320
|
- lib/bookbinder/config/checkers/dita_section_checker.rb
|
@@ -295,7 +323,6 @@ files:
|
|
295
323
|
- lib/bookbinder/config/checkers/required_keys_checker.rb
|
296
324
|
- lib/bookbinder/config/configuration.rb
|
297
325
|
- lib/bookbinder/config/fetcher.rb
|
298
|
-
- lib/bookbinder/config/remote_bind_configuration.rb
|
299
326
|
- lib/bookbinder/config/remote_yaml_credential_provider.rb
|
300
327
|
- lib/bookbinder/config/section_config.rb
|
301
328
|
- lib/bookbinder/config/validator.rb
|
@@ -326,7 +353,6 @@ files:
|
|
326
353
|
- lib/bookbinder/ingest/missing_working_copy.rb
|
327
354
|
- lib/bookbinder/ingest/repo_identifier.rb
|
328
355
|
- lib/bookbinder/ingest/section_repository.rb
|
329
|
-
- lib/bookbinder/ingest/section_repository_factory.rb
|
330
356
|
- lib/bookbinder/ingest/update_failure.rb
|
331
357
|
- lib/bookbinder/ingest/update_success.rb
|
332
358
|
- lib/bookbinder/ingest/working_copy.rb
|
@@ -360,7 +386,7 @@ files:
|
|
360
386
|
- master_middleman/bookbinder_helpers.rb
|
361
387
|
- master_middleman/config.rb
|
362
388
|
- master_middleman/quicklinks_renderer.rb
|
363
|
-
- master_middleman/
|
389
|
+
- master_middleman/subdirectory_aware_assets.rb
|
364
390
|
- install_bin/bookbinder
|
365
391
|
homepage: https://github.com/pivotal-cf/bookbinder
|
366
392
|
licenses:
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative 'remote_bind_configuration'
|
2
|
-
|
3
|
-
module Bookbinder
|
4
|
-
module Config
|
5
|
-
class BindConfigFactory
|
6
|
-
def initialize(version_control_system, config_fetcher)
|
7
|
-
@version_control_system = version_control_system
|
8
|
-
@config_fetcher = config_fetcher
|
9
|
-
end
|
10
|
-
|
11
|
-
def produce(bind_source)
|
12
|
-
if %w(remote github).include?(bind_source) && config.has_option?('versions')
|
13
|
-
RemoteBindConfiguration.new(version_control_system, config).fetch
|
14
|
-
else
|
15
|
-
config
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def config
|
22
|
-
config_fetcher.fetch_config
|
23
|
-
end
|
24
|
-
|
25
|
-
attr_reader :version_control_system, :config_fetcher
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require_relative '../ingest/destination_directory'
|
3
|
-
|
4
|
-
module Bookbinder
|
5
|
-
module Config
|
6
|
-
class RemoteBindConfiguration
|
7
|
-
VersionUnsupportedError = Class.new(RuntimeError)
|
8
|
-
|
9
|
-
def initialize(version_control_system, base_config)
|
10
|
-
@version_control_system = version_control_system
|
11
|
-
@base_config = base_config
|
12
|
-
end
|
13
|
-
|
14
|
-
def fetch
|
15
|
-
base_config.merge_sections(base_config.versions.flat_map { |version| sections_from(version) })
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
attr_reader :version_control_system, :base_config
|
21
|
-
|
22
|
-
def sections_from(version)
|
23
|
-
sections = Configuration.parse(
|
24
|
-
YAML.load(
|
25
|
-
version_control_system.read_file(
|
26
|
-
'config.yml',
|
27
|
-
from_repo: base_config.book_repo_url,
|
28
|
-
checkout: version
|
29
|
-
)
|
30
|
-
)).sections
|
31
|
-
raise VersionUnsupportedError.new(version) if sections.empty?
|
32
|
-
|
33
|
-
sections.map do |section|
|
34
|
-
section.merge(
|
35
|
-
Config::SectionConfig.new(
|
36
|
-
'repository' => { 'name' => section.repo_name, 'ref' => version },
|
37
|
-
'directory' => File.join(version, section.desired_directory_name)
|
38
|
-
)
|
39
|
-
)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require_relative 'section_repository'
|
2
|
-
|
3
|
-
module Bookbinder
|
4
|
-
module Ingest
|
5
|
-
class SectionRepositoryFactory
|
6
|
-
def initialize(logger)
|
7
|
-
@logger = logger
|
8
|
-
end
|
9
|
-
|
10
|
-
def produce(cloner)
|
11
|
-
SectionRepository.new(logger, cloner)
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
attr_reader :logger
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|