playgroundbook 0.2.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 +7 -0
- data/.gitignore +50 -0
- data/.rspec +2 -0
- data/.rubocop.yml +2 -0
- data/.ruby-version +1 -0
- data/Changelog.md +17 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +103 -0
- data/Guardfile +14 -0
- data/LICENSE +21 -0
- data/README.md +92 -0
- data/Rakefile +8 -0
- data/bin/playgroundbook +22 -0
- data/lib/playgroundbook.rb +9 -0
- data/lib/playgroundbook_lint/abstract_linter.rb +23 -0
- data/lib/playgroundbook_lint/chapter_linter.rb +34 -0
- data/lib/playgroundbook_lint/chapter_manifest_linter.rb +43 -0
- data/lib/playgroundbook_lint/contents_linter.rb +20 -0
- data/lib/playgroundbook_lint/cutscene_page_linter.rb +17 -0
- data/lib/playgroundbook_lint/cutscene_page_manifest_linter.rb +18 -0
- data/lib/playgroundbook_lint/manifest_linter.rb +39 -0
- data/lib/playgroundbook_lint/page_linter.rb +23 -0
- data/lib/playgroundbook_lint/page_manifest_linter.rb +18 -0
- data/lib/playgroundbook_lint/playgroundbook_lint.rb +31 -0
- data/lib/playgroundbook_lint/root_manifest_linter.rb +36 -0
- data/lib/playgroundbook_renderer/chapter_collator.rb +77 -0
- data/lib/playgroundbook_renderer/contents_manifest_generator.rb +33 -0
- data/lib/playgroundbook_renderer/page_writer.rb +34 -0
- data/lib/playgroundbook_renderer/playgroundbook_renderer.rb +75 -0
- data/lib/version.rb +3 -0
- data/playground_book_lint.gemspec +21 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Manifest.plist +15 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page1.playgroundpage/Contents.swift +8 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page1.playgroundpage/Manifest.plist +12 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page2.playgroundpage/Contents.swift +8 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page2.playgroundpage/Manifest.plist +12 -0
- data/spec/fixtures/Starter.playgroundbook/Contents/Manifest.plist +20 -0
- data/spec/fixtures/assets/file.jpeg +0 -0
- data/spec/fixtures/book.yml +5 -0
- data/spec/fixtures/test_chapter.playground/Contents.swift +17 -0
- data/spec/fixtures/test_chapter.playground/contents.xcplayground +4 -0
- data/spec/playground_book_lint/chapter_linter_spec.rb +30 -0
- data/spec/playground_book_lint/chapter_manifest_linter_spec.rb +40 -0
- data/spec/playground_book_lint/contents_linter_spec.rb +18 -0
- data/spec/playground_book_lint/cutscene_page_linter_spec.rb +14 -0
- data/spec/playground_book_lint/cutscene_page_manifest_linter_spec.rb +63 -0
- data/spec/playground_book_lint/manfiest_linter_spec.rb +71 -0
- data/spec/playground_book_lint/page_linter_spec.rb +19 -0
- data/spec/playground_book_lint/page_manifest_linter_spec.rb +43 -0
- data/spec/playground_book_lint/playgroundbook_lint_spec.rb +38 -0
- data/spec/playground_book_lint/root_manifest_linter_spec.rb +35 -0
- data/spec/playgroundbook_renderer_spec/chapter_collator_spec.rb +70 -0
- data/spec/playgroundbook_renderer_spec/contents_manfiest_generator_spec.rb +37 -0
- data/spec/playgroundbook_renderer_spec/page_writer_spec.rb +57 -0
- data/spec/playgroundbook_renderer_spec/playgroundbook_renderer_spec.rb +112 -0
- data/spec/spec_helper.rb +75 -0
- metadata +141 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Playgroundbook
|
4
|
+
describe Linter do
|
5
|
+
let(:linter) { Linter.new(test_playground_book, contents_linter) }
|
6
|
+
let(:contents_linter) { double(ContentsLinter) }
|
7
|
+
|
8
|
+
it 'initializes correctly' do
|
9
|
+
expect(linter.playground_file_name) == test_playground_book
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'exits on lint failure' do
|
13
|
+
allow(linter).to receive(:contents_dir_exists?)
|
14
|
+
.and_return(false)
|
15
|
+
|
16
|
+
expect { linter.lint }.to raise_error(SystemExit)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'fails when file does not exist' do
|
20
|
+
allow(linter).to receive(:contents_dir_exists?)
|
21
|
+
.and_return(false)
|
22
|
+
allow(linter).to receive(:fail_lint)
|
23
|
+
.with('No Contents directory')
|
24
|
+
.and_raise(SystemExit)
|
25
|
+
|
26
|
+
expect { linter.lint }.to raise_error(SystemExit)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'lints' do
|
30
|
+
allow(linter).to receive(:contents_dir_exists?)
|
31
|
+
.and_return(true)
|
32
|
+
allow(contents_linter).to receive(:lint)
|
33
|
+
expect(Dir).to receive(:chdir).with(test_playground_book)
|
34
|
+
|
35
|
+
linter.lint
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Playgroundbook
|
4
|
+
describe RootManifestLinter do
|
5
|
+
include FakeFS::SpecHelpers
|
6
|
+
let(:root_manifest_linter) { RootManifestLinter.new(chapter_linter) }
|
7
|
+
let(:chapter_linter) { double(ChapterLinter) }
|
8
|
+
|
9
|
+
it 'fails if Chapters directory does not exist' do
|
10
|
+
expect { root_manifest_linter.lint }.to raise_error(SystemExit)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'fails if manfiest does not include Chapters' do
|
14
|
+
FakeFS do
|
15
|
+
Dir.mkdir('Chapters')
|
16
|
+
plist = { 'Name' => 'Test' }.to_plist
|
17
|
+
File.open('Manifest.plist', 'w') { |f| f.write(plist) }
|
18
|
+
|
19
|
+
expect { root_manifest_linter.lint }.to raise_error(SystemExit)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'calls through to lint each chapter' do
|
24
|
+
FakeFS do
|
25
|
+
plist = { 'Chapters' => ['test_chapter_name'], 'Name' => 'Test' }.to_plist
|
26
|
+
File.open('Manifest.plist', 'w') { |f| f.write(plist) }
|
27
|
+
Dir.mkdir('Chapters')
|
28
|
+
|
29
|
+
expect(chapter_linter).to receive(:lint).with('test_chapter_name')
|
30
|
+
|
31
|
+
expect { root_manifest_linter.lint }.to_not raise_error
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Playgroundbook
|
4
|
+
describe ChapterCollator do
|
5
|
+
include FakeFS::SpecHelpers
|
6
|
+
let(:collator) { ChapterCollator.new(page_writer, test_ui) }
|
7
|
+
let(:page_writer) { double(PageWriter) }
|
8
|
+
let(:test_ui) { Cork::Board.new(silent: true) }
|
9
|
+
let(:chapter_contents) { test_chapter_contents }
|
10
|
+
let(:chapter_name) { 'test_chapter' }
|
11
|
+
|
12
|
+
before do
|
13
|
+
allow(page_writer).to receive(:write_page!)
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'creates a chapter manifest' do
|
17
|
+
collator.collate!(chapter_name, chapter_contents, [])
|
18
|
+
|
19
|
+
expect(File.exist?("#{chapter_name}.playgroundchapter/#{ManifestFileName}")).to be_truthy
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'the chapter manifest' do
|
23
|
+
before do
|
24
|
+
collator.collate!(chapter_name, chapter_contents, ['UIKit'])
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'has the correct name' do
|
28
|
+
expect(get_manifest("#{chapter_name}.playgroundchapter/#{ManifestFileName}")['Name']).to eq(chapter_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'has the correct pages' do
|
32
|
+
expect(get_manifest("#{chapter_name}.playgroundchapter/#{ManifestFileName}")['Pages']).to eq([
|
33
|
+
'Page 1.playgroundpage',
|
34
|
+
'Page 2.playgroundpage',
|
35
|
+
])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'calls the page_writer for each page' do
|
40
|
+
expect(page_writer).to receive(:write_page!).with("Page 1", "Page 1.playgroundpage", [], "str = \"Yo, it's page 1.\"\nsharedFunc()")
|
41
|
+
expect(page_writer).to receive(:write_page!).with("Page 2", "Page 2.playgroundpage", [], "str = \"Page 2 awww yeah.\"\nsharedFunc()")
|
42
|
+
|
43
|
+
collator.collate!(chapter_name, chapter_contents, [])
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'does not explode if a Source directory already exists' do
|
47
|
+
expect{ collator.collate!(chapter_name, chapter_contents, []) }.to_not raise_error
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'having colated' do
|
51
|
+
before do
|
52
|
+
collator.collate!(chapter_name, chapter_contents, [])
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'creates a Source directory if one does not exist' do
|
56
|
+
expect(Dir.exist?("#{chapter_name}.playgroundchapter/#{SharedSourcesDirectoryName}")).to be_truthy
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'Sources folder' do
|
60
|
+
it 'has a Preamble.swift file' do
|
61
|
+
expect(File.exist?("#{chapter_name}.playgroundchapter/#{SharedSourcesDirectoryName}/#{PreambleFileName}")).to be_truthy
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'has the correct preamble contents' do
|
65
|
+
expect(File.read("#{chapter_name}.playgroundchapter/#{SharedSourcesDirectoryName}/#{PreambleFileName}")).to eq("import UIKit\n\nvar str = \"Hello, playground\"\n\nfunc sharedFunc() {\n print(\"This should be accessible to all pages.\")\n}")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Playgroundbook
|
4
|
+
describe ContentsManifestGenerator do
|
5
|
+
include FakeFS::SpecHelpers
|
6
|
+
let(:generator) { ContentsManifestGenerator.new(test_ui) }
|
7
|
+
let(:test_ui) { Cork::Board.new(silent: true) }
|
8
|
+
|
9
|
+
it 'creates the manifest file' do
|
10
|
+
generator.generate!(test_book_metadata)
|
11
|
+
|
12
|
+
expect(File.exist?('Manifest.plist')).to be_truthy
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'the manifest file' do
|
16
|
+
before do
|
17
|
+
generator.generate!(test_book_metadata)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'has a book name' do
|
21
|
+
expect(get_manifest['Name']).to eq('Testing Book')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has an identifier' do
|
25
|
+
expect(get_manifest['ContentIdentifier']).to eq('com.ashfurrow.testing')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'has a deployment target' do
|
29
|
+
expect(get_manifest['DeploymentTarget']).to eq('ios10.0')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'has chapters specified' do
|
33
|
+
expect(get_manifest['Chapters']).to eq(['test_chapter.playgroundchapter'])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
module Playgroundbook
|
4
|
+
describe PageWriter do
|
5
|
+
include FakeFS::SpecHelpers
|
6
|
+
let(:page_writer) { PageWriter.new(test_ui) }
|
7
|
+
let(:test_ui) { Cork::Board.new(silent: true) }
|
8
|
+
let(:page_name) { 'test page name' }
|
9
|
+
let(:page_dir_name) { 'test page name.playgroundpage' }
|
10
|
+
let(:page_contents) { "// Some swift goes here." }
|
11
|
+
let(:generated_page_contesnts) { "//#-hidden-code\nimport UIKit\n//#-end-hidden-code\n// Some swift goes here." }
|
12
|
+
|
13
|
+
context 'with a pre-existing page directory' do
|
14
|
+
before do
|
15
|
+
Dir.mkdir(page_dir_name)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'does not explode' do
|
19
|
+
expect{ page_writer.write_page!(page_name, page_dir_name, ['UIKit'], page_contents) }.to_not raise_error
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'as a consequence of writing rendering' do
|
24
|
+
before do
|
25
|
+
page_writer.write_page!(page_name, page_dir_name, ['UIKit'], page_contents)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'creates a directory' do
|
29
|
+
expect(Dir.exist?(page_dir_name)).to be_truthy
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'writes a manifest' do
|
33
|
+
expect(Dir.exist?(page_dir_name)).to be_truthy
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'writes a Contents.swift file' do
|
37
|
+
expect(File.exist?("#{page_dir_name}/Contents.swift")).to be_truthy
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'has correct Contents.swift contents' do
|
41
|
+
expect(File.read("#{page_dir_name}/Contents.swift")).to eq(generated_page_contesnts)
|
42
|
+
end
|
43
|
+
|
44
|
+
context 'the manifest' do
|
45
|
+
let(:manifest) { get_manifest("#{page_dir_name}/#{MANIFEST_FILE_NAME}") }
|
46
|
+
|
47
|
+
it 'has a name' do
|
48
|
+
expect(manifest['Name']).to eq(page_name)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'has a LiveViewMode' do
|
52
|
+
expect(manifest['LiveViewMode']).to eq('HiddenByDefault')
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,112 @@
|
|
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, chapter_collator, test_ui) }
|
7
|
+
let(:yaml_file_name) { 'book.yml' }
|
8
|
+
let(:contents_manifest_generator) { double(ContentsManifestGenerator) }
|
9
|
+
let(:chapter_collator) { double(ChapterCollator) }
|
10
|
+
let(:test_ui) { Cork::Board.new(silent: true) }
|
11
|
+
|
12
|
+
before do
|
13
|
+
File.open(yaml_file_name, 'w') do |file|
|
14
|
+
file.write(test_book_metadata.to_yaml)
|
15
|
+
end
|
16
|
+
|
17
|
+
allow(contents_manifest_generator).to receive(:generate!)
|
18
|
+
allow(chapter_collator).to receive(:collate!)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'initializes correctly' do
|
22
|
+
expect(renderer.yaml_file_name) == yaml_file_name
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'explodes when there is no playground' do
|
26
|
+
expect{renderer.render!}.to raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'with a playground' do
|
30
|
+
before do
|
31
|
+
Dir.mkdir('assets')
|
32
|
+
FileUtils.touch('assets/file.png')
|
33
|
+
Dir.mkdir('test_chapter.playground/')
|
34
|
+
File.open('test_chapter.playground/Contents.swift', 'w') do |file|
|
35
|
+
file.write('')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'creates a directory with book name' do
|
40
|
+
renderer.render!
|
41
|
+
|
42
|
+
expect(Dir.exist?('Testing Book.playgroundbook')).to be_truthy
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'creates a resources folder' do
|
46
|
+
renderer.render!
|
47
|
+
|
48
|
+
expect(Dir.exist?('Testing Book.playgroundbook/Contents/Resources')).to be_truthy
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'copies a resources folder contents' do
|
52
|
+
renderer.render!
|
53
|
+
|
54
|
+
expect(File.exist?('Testing Book.playgroundbook/Contents/Resources/file.png')).to be_truthy
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'within an existing playgroundbook directory' do
|
58
|
+
before do
|
59
|
+
Dir.mkdir('Testing Book.playgroundbook')
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'does not explode when the directory already exists' do
|
63
|
+
expect { renderer.render! }.to_not raise_error
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'creates a Contents directory within the main bundle dir' do
|
67
|
+
renderer.render!
|
68
|
+
|
69
|
+
expect(Dir.exist?('Testing Book.playgroundbook/Contents')).to be_truthy
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'within the Contents directory' do
|
73
|
+
before do
|
74
|
+
Dir.mkdir('Testing Book.playgroundbook/Contents')
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'does not explode when the Contents directory already exists' do
|
78
|
+
expect { renderer.render! }.to_not raise_error
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'renders main manifest' do
|
82
|
+
expect(contents_manifest_generator).to receive(:generate!)
|
83
|
+
|
84
|
+
renderer.render!
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'creates a Chapters directory within the Contents dir' do
|
88
|
+
renderer.render!
|
89
|
+
|
90
|
+
expect(Dir.exist?('Testing Book.playgroundbook/Contents/Chapters')).to be_truthy
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'within the Chapters directory' do
|
94
|
+
before do
|
95
|
+
Dir.mkdir('Testing Book.playgroundbook/Contents/Chapters')
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'does not explode when the Chapters directory already exists' do
|
99
|
+
expect { renderer.render! }.to_not raise_error
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'generates each chapter' do
|
103
|
+
expect(chapter_collator).to receive(:collate!)
|
104
|
+
|
105
|
+
renderer.render!
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'cork'
|
3
|
+
require 'rspec'
|
4
|
+
require 'plist'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'fakefs/spec_helpers'
|
7
|
+
|
8
|
+
ROOT = Pathname.new(File.expand_path('../../', __FILE__))
|
9
|
+
$LOAD_PATH.unshift((ROOT + 'lib').to_s)
|
10
|
+
$LOAD_PATH.unshift((ROOT + 'spec').to_s)
|
11
|
+
|
12
|
+
require 'playgroundbook'
|
13
|
+
require 'playgroundbook_lint/abstract_linter'
|
14
|
+
require 'playgroundbook_lint/chapter_linter'
|
15
|
+
require 'playgroundbook_lint/chapter_manifest_linter'
|
16
|
+
require 'playgroundbook_lint/contents_linter'
|
17
|
+
require 'playgroundbook_lint/manifest_linter'
|
18
|
+
require 'playgroundbook_lint/page_linter'
|
19
|
+
require 'playgroundbook_lint/page_manifest_linter'
|
20
|
+
require 'playgroundbook_lint/cutscene_page_linter'
|
21
|
+
require 'playgroundbook_lint/cutscene_page_manifest_linter'
|
22
|
+
require 'playgroundbook_lint/root_manifest_linter'
|
23
|
+
|
24
|
+
require 'playgroundbook_renderer/contents_manifest_generator'
|
25
|
+
require 'playgroundbook_renderer/chapter_collator'
|
26
|
+
require 'playgroundbook_renderer/page_writer'
|
27
|
+
|
28
|
+
RSpec.configure do |config|
|
29
|
+
config.color = true
|
30
|
+
|
31
|
+
config.order = :random
|
32
|
+
Kernel.srand config.seed
|
33
|
+
end
|
34
|
+
RSpec::Expectations.configuration.on_potential_false_positives = :nothing
|
35
|
+
|
36
|
+
Playgroundbook::AbstractLinter.ui = Cork::Board.new(silent: true)
|
37
|
+
|
38
|
+
def test_playground_book
|
39
|
+
'spec/fixtures/Starter.playgroundbook'
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_book_metadata
|
43
|
+
{
|
44
|
+
'name' => 'Testing Book',
|
45
|
+
'chapters' => ['test_chapter'],
|
46
|
+
'identifier' => 'com.ashfurrow.testing',
|
47
|
+
'resources' => 'assets',
|
48
|
+
}
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_manifest(file_name = Playgroundbook::ManifestFileName)
|
52
|
+
Plist.parse_xml(file_name)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_chapter_contents
|
56
|
+
<<-EOSwift
|
57
|
+
import UIKit
|
58
|
+
|
59
|
+
var str = "Hello, playground"
|
60
|
+
|
61
|
+
func sharedFunc() {
|
62
|
+
print("This should be accessible to all pages.")
|
63
|
+
}
|
64
|
+
|
65
|
+
//// Page 1
|
66
|
+
|
67
|
+
str = "Yo, it's page 1."
|
68
|
+
sharedFunc()
|
69
|
+
|
70
|
+
//// Page 2
|
71
|
+
|
72
|
+
str = "Page 2 awww yeah."
|
73
|
+
sharedFunc()
|
74
|
+
EOSwift
|
75
|
+
end
|
metadata
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: playgroundbook
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ash Furrow
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: plist
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: colored
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: cork
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.1'
|
55
|
+
description: Tooks for Swift Playground books on iOS, a renderer and a linter.
|
56
|
+
email: ash@ashfurrow.com
|
57
|
+
executables:
|
58
|
+
- playgroundbook
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- ".rspec"
|
64
|
+
- ".rubocop.yml"
|
65
|
+
- ".ruby-version"
|
66
|
+
- Changelog.md
|
67
|
+
- Gemfile
|
68
|
+
- Gemfile.lock
|
69
|
+
- Guardfile
|
70
|
+
- LICENSE
|
71
|
+
- README.md
|
72
|
+
- Rakefile
|
73
|
+
- bin/playgroundbook
|
74
|
+
- lib/playgroundbook.rb
|
75
|
+
- lib/playgroundbook_lint/abstract_linter.rb
|
76
|
+
- lib/playgroundbook_lint/chapter_linter.rb
|
77
|
+
- lib/playgroundbook_lint/chapter_manifest_linter.rb
|
78
|
+
- lib/playgroundbook_lint/contents_linter.rb
|
79
|
+
- lib/playgroundbook_lint/cutscene_page_linter.rb
|
80
|
+
- lib/playgroundbook_lint/cutscene_page_manifest_linter.rb
|
81
|
+
- lib/playgroundbook_lint/manifest_linter.rb
|
82
|
+
- lib/playgroundbook_lint/page_linter.rb
|
83
|
+
- lib/playgroundbook_lint/page_manifest_linter.rb
|
84
|
+
- lib/playgroundbook_lint/playgroundbook_lint.rb
|
85
|
+
- lib/playgroundbook_lint/root_manifest_linter.rb
|
86
|
+
- lib/playgroundbook_renderer/chapter_collator.rb
|
87
|
+
- lib/playgroundbook_renderer/contents_manifest_generator.rb
|
88
|
+
- lib/playgroundbook_renderer/page_writer.rb
|
89
|
+
- lib/playgroundbook_renderer/playgroundbook_renderer.rb
|
90
|
+
- lib/version.rb
|
91
|
+
- playground_book_lint.gemspec
|
92
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Manifest.plist
|
93
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page1.playgroundpage/Contents.swift
|
94
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page1.playgroundpage/Manifest.plist
|
95
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page2.playgroundpage/Contents.swift
|
96
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Chapters/Chapter1.playgroundchapter/Pages/Page2.playgroundpage/Manifest.plist
|
97
|
+
- spec/fixtures/Starter.playgroundbook/Contents/Manifest.plist
|
98
|
+
- spec/fixtures/assets/file.jpeg
|
99
|
+
- spec/fixtures/book.yml
|
100
|
+
- spec/fixtures/test_chapter.playground/Contents.swift
|
101
|
+
- spec/fixtures/test_chapter.playground/contents.xcplayground
|
102
|
+
- spec/playground_book_lint/chapter_linter_spec.rb
|
103
|
+
- spec/playground_book_lint/chapter_manifest_linter_spec.rb
|
104
|
+
- spec/playground_book_lint/contents_linter_spec.rb
|
105
|
+
- spec/playground_book_lint/cutscene_page_linter_spec.rb
|
106
|
+
- spec/playground_book_lint/cutscene_page_manifest_linter_spec.rb
|
107
|
+
- spec/playground_book_lint/manfiest_linter_spec.rb
|
108
|
+
- spec/playground_book_lint/page_linter_spec.rb
|
109
|
+
- spec/playground_book_lint/page_manifest_linter_spec.rb
|
110
|
+
- spec/playground_book_lint/playgroundbook_lint_spec.rb
|
111
|
+
- spec/playground_book_lint/root_manifest_linter_spec.rb
|
112
|
+
- spec/playgroundbook_renderer_spec/chapter_collator_spec.rb
|
113
|
+
- spec/playgroundbook_renderer_spec/contents_manfiest_generator_spec.rb
|
114
|
+
- spec/playgroundbook_renderer_spec/page_writer_spec.rb
|
115
|
+
- spec/playgroundbook_renderer_spec/playgroundbook_renderer_spec.rb
|
116
|
+
- spec/spec_helper.rb
|
117
|
+
homepage: https://github.com/ashfurrow/playground-book-lint
|
118
|
+
licenses:
|
119
|
+
- MIT
|
120
|
+
metadata: {}
|
121
|
+
post_install_message:
|
122
|
+
rdoc_options: []
|
123
|
+
require_paths:
|
124
|
+
- lib
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
requirements: []
|
136
|
+
rubyforge_project:
|
137
|
+
rubygems_version: 2.2.2
|
138
|
+
signing_key:
|
139
|
+
specification_version: 4
|
140
|
+
summary: Lints/renders Swift Playground books.
|
141
|
+
test_files: []
|