playgroundbook 0.3.0 → 0.4.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/.rubocop.yml +110 -0
- data/Changelog.md +4 -0
- data/Gemfile +10 -9
- data/Gemfile.lock +4 -2
- data/Guardfile +2 -2
- data/Rakefile +3 -3
- data/bin/playgroundbook +9 -7
- data/lib/{playgroundbook_lint → linter}/abstract_linter.rb +2 -2
- data/lib/{playgroundbook_lint → linter}/chapter_linter.rb +4 -4
- data/lib/{playgroundbook_lint → linter}/chapter_manifest_linter.rb +5 -5
- data/lib/{playgroundbook_lint → linter}/contents_linter.rb +3 -3
- data/lib/{playgroundbook_lint → linter}/cutscene_page_linter.rb +2 -2
- data/lib/{playgroundbook_lint → linter}/cutscene_page_manifest_linter.rb +2 -2
- data/lib/{playgroundbook_lint → linter}/manifest_linter.rb +5 -5
- data/lib/{playgroundbook_lint → linter}/page_linter.rb +2 -2
- data/lib/{playgroundbook_lint → linter}/page_manifest_linter.rb +3 -3
- data/lib/{playgroundbook_lint → linter}/playgroundbook_lint.rb +6 -6
- data/lib/{playgroundbook_lint → linter}/root_manifest_linter.rb +9 -9
- data/lib/playgroundbook.rb +8 -7
- data/lib/{playgroundbook_renderer → renderer}/chapter_collator.rb +18 -18
- data/lib/renderer/contents_manifest_generator.rb +35 -0
- data/lib/{playgroundbook_renderer → renderer}/glossary_generator.rb +13 -16
- data/lib/{playgroundbook_renderer → renderer}/page_parser.rb +4 -3
- data/lib/{playgroundbook_renderer → renderer}/page_processor.rb +0 -0
- data/lib/{playgroundbook_renderer → renderer}/page_writer.rb +11 -11
- data/lib/{playgroundbook_renderer → renderer}/playgroundbook_renderer.rb +29 -29
- data/lib/version.rb +1 -1
- data/lib/wrapper/markdown_wrapper.rb +58 -0
- data/playground_book_lint.gemspec +14 -14
- data/spec/fixtures/wrapper/destination/swift_at_artsy_1.swift +199 -0
- data/spec/fixtures/wrapper/source/Swift-at-Artsy.playground/Contents.swift +199 -0
- data/spec/fixtures/wrapper/source/Swift-at-Artsy.playground/contents.xcplayground +4 -0
- data/spec/fixtures/wrapper/source/swift_at_artsy_1.md +183 -0
- data/spec/{playground_book_lint → linter}/chapter_linter_spec.rb +5 -5
- data/spec/{playground_book_lint → linter}/chapter_manifest_linter_spec.rb +12 -12
- data/spec/{playground_book_lint → linter}/contents_linter_spec.rb +3 -3
- data/spec/{playground_book_lint → linter}/cutscene_page_linter_spec.rb +2 -2
- data/spec/linter/cutscene_page_manifest_linter_spec.rb +63 -0
- data/spec/linter/manfiest_linter_spec.rb +71 -0
- data/spec/{playground_book_lint → linter}/page_linter_spec.rb +4 -4
- data/spec/{playground_book_lint → linter}/page_manifest_linter_spec.rb +13 -13
- data/spec/{playground_book_lint → linter}/playgroundbook_lint_spec.rb +6 -6
- data/spec/linter/root_manifest_linter_spec.rb +35 -0
- data/spec/renderer/chapter_collator_spec.rb +70 -0
- data/spec/renderer/contents_manfiest_generator_spec.rb +41 -0
- data/spec/renderer/glossary_generator_spec.rb +54 -0
- data/spec/{playgroundbook_renderer_spec → renderer}/page_processor_spec.rb +12 -12
- data/spec/{playgroundbook_renderer_spec → renderer}/page_writer_spec.rb +19 -19
- data/spec/renderer/playgroundbook_renderer_spec.rb +122 -0
- data/spec/spec_helper.rb +38 -38
- data/spec/wrapper/markdown_wrapper_spec.rb +33 -0
- metadata +43 -37
- data/lib/playgroundbook_renderer/contents_manifest_generator.rb +0 -35
- data/spec/playground_book_lint/cutscene_page_manifest_linter_spec.rb +0 -63
- data/spec/playground_book_lint/manfiest_linter_spec.rb +0 -71
- data/spec/playground_book_lint/root_manifest_linter_spec.rb +0 -35
- data/spec/playgroundbook_renderer_spec/chapter_collator_spec.rb +0 -70
- data/spec/playgroundbook_renderer_spec/contents_manfiest_generator_spec.rb +0 -41
- data/spec/playgroundbook_renderer_spec/glossary_generator_spec.rb +0 -52
- data/spec/playgroundbook_renderer_spec/playgroundbook_renderer_spec.rb +0 -122
@@ -1,52 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
module Playgroundbook
|
4
|
-
describe GlossaryGenerator do
|
5
|
-
include FakeFS::SpecHelpers
|
6
|
-
let(:glossary_generator) { GlossaryGenerator.new }
|
7
|
-
let(:glossary) {{
|
8
|
-
'example term' => 'example definition'
|
9
|
-
}}
|
10
|
-
let(:glossary_file_name) { 'Contents/Resources/Glossary.plist' }
|
11
|
-
|
12
|
-
before do
|
13
|
-
FileUtils.mkdir_p('Contents/Resources')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'generates a glossary plist' do
|
17
|
-
glossary_generator.generate!({}, [], glossary)
|
18
|
-
|
19
|
-
expect(File.exist?(glossary_file_name)).to be_truthy
|
20
|
-
end
|
21
|
-
|
22
|
-
context 'glossary plist' do
|
23
|
-
let(:glossary_plist) { Plist.parse_xml(glossary_file_name) }
|
24
|
-
|
25
|
-
it 'has a glossary with correct terms' do
|
26
|
-
glossary_generator.generate!({}, [], glossary)
|
27
|
-
|
28
|
-
expect(glossary_plist['Terms']['example term']['Definition']).to eq('example definition')
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'generates correct first use page references' do
|
32
|
-
glossary_generator.generate!([
|
33
|
-
{
|
34
|
-
page_names: ['Page 1'],
|
35
|
-
page_contents: ["/*: Here's how to use [a thing](glossary://example%20term) */"],
|
36
|
-
},
|
37
|
-
{
|
38
|
-
page_names: ['Should not see this'],
|
39
|
-
page_contents: ["/*: Here's how to use [a thing](glossary://example%20term) even though this shouldn't match' */"],
|
40
|
-
}
|
41
|
-
],
|
42
|
-
['Chapter 1', 'Chapter 2'],
|
43
|
-
glossary)
|
44
|
-
|
45
|
-
expect(glossary_plist['Terms']['example term']['FirstUse']).to eq({
|
46
|
-
'PageReference' => 'Chapter%201/Page%201',
|
47
|
-
'Title' => 'Page 1'
|
48
|
-
})
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,122 +0,0 @@
|
|
1
|
-
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
module Playgroundbook
|
4
|
-
describe Renderer do
|
5
|
-
include FakeFS::SpecHelpers
|
6
|
-
let(:renderer) { Renderer.new(yaml_file_name, contents_manifest_generator, page_parser, chapter_collator, glossary_generator, test_ui) }
|
7
|
-
let(:yaml_file_name) { 'book.yml' }
|
8
|
-
let(:contents_manifest_generator) { double(ContentsManifestGenerator) }
|
9
|
-
let(:page_parser) { double(PageParser) }
|
10
|
-
let(:chapter_collator) { double(ChapterCollator) }
|
11
|
-
let(:glossary_generator) { double(GlossaryGenerator) }
|
12
|
-
let(:test_ui) { Cork::Board.new(silent: true) }
|
13
|
-
|
14
|
-
before do
|
15
|
-
File.open(yaml_file_name, 'w') do |file|
|
16
|
-
file.write(test_book_metadata.to_yaml)
|
17
|
-
end
|
18
|
-
|
19
|
-
allow(contents_manifest_generator).to receive(:generate!)
|
20
|
-
allow(chapter_collator).to receive(:collate!)
|
21
|
-
allow(glossary_generator).to receive(:generate!)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'initializes correctly' do
|
25
|
-
expect(renderer.yaml_file_name) == yaml_file_name
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'explodes when there is no playground' do
|
29
|
-
expect{renderer.render!}.to raise_error
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'with a playground' do
|
33
|
-
before do
|
34
|
-
allow(page_parser).to receive(:parse_chapter_pages)
|
35
|
-
Dir.mkdir('assets')
|
36
|
-
FileUtils.touch('assets/file.png')
|
37
|
-
Dir.mkdir('test_chapter.playground/')
|
38
|
-
File.open('test_chapter.playground/Contents.swift', 'w') do |file|
|
39
|
-
file.write('')
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'creates a directory with book name' do
|
44
|
-
renderer.render!
|
45
|
-
|
46
|
-
expect(Dir.exist?('Testing Book.playgroundbook')).to be_truthy
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'creates a resources folder' do
|
50
|
-
renderer.render!
|
51
|
-
|
52
|
-
expect(Dir.exist?('Testing Book.playgroundbook/Contents/Resources')).to be_truthy
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'copies a resources folder contents' do
|
56
|
-
renderer.render!
|
57
|
-
|
58
|
-
expect(File.exist?('Testing Book.playgroundbook/Contents/Resources/file.png')).to be_truthy
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'within an existing playgroundbook directory' do
|
62
|
-
before do
|
63
|
-
Dir.mkdir('Testing Book.playgroundbook')
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'does not explode when the directory already exists' do
|
67
|
-
expect { renderer.render! }.to_not raise_error
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'creates a Contents directory within the main bundle dir' do
|
71
|
-
renderer.render!
|
72
|
-
|
73
|
-
expect(Dir.exist?('Testing Book.playgroundbook/Contents')).to be_truthy
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'within the Contents directory' do
|
77
|
-
before do
|
78
|
-
Dir.mkdir('Testing Book.playgroundbook/Contents')
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'does not explode when the Contents directory already exists' do
|
82
|
-
expect { renderer.render! }.to_not raise_error
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'renders main manifest' do
|
86
|
-
expect(contents_manifest_generator).to receive(:generate!)
|
87
|
-
|
88
|
-
renderer.render!
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'creates a Chapters directory within the Contents dir' do
|
92
|
-
renderer.render!
|
93
|
-
|
94
|
-
expect(Dir.exist?('Testing Book.playgroundbook/Contents/Chapters')).to be_truthy
|
95
|
-
end
|
96
|
-
|
97
|
-
context 'within the Chapters directory' do
|
98
|
-
before do
|
99
|
-
Dir.mkdir('Testing Book.playgroundbook/Contents/Chapters')
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'does not explode when the Chapters directory already exists' do
|
103
|
-
expect { renderer.render! }.to_not raise_error
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'generates each chapter' do
|
107
|
-
expect(chapter_collator).to receive(:collate!)
|
108
|
-
|
109
|
-
renderer.render!
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'generates a glossary' do
|
116
|
-
expect(glossary_generator).to receive(:generate!)
|
117
|
-
|
118
|
-
renderer.render!
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|