dvorak 0.0.2 → 0.0.3
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/.gitignore +1 -0
- data/dvorak.gemspec +4 -0
- data/features/pdf_generation.feature +2 -1
- data/features/step_definitions/cli_steps.rb +7 -0
- data/lib/dvorak/pdf_generator.rb +18 -2
- data/lib/dvorak/version.rb +1 -1
- data/spec/lib/dvorak/pdf_generator_spec.rb +45 -8
- data/spec/spec_helper.rb +2 -0
- data/templates/game/cards/actions.yml +4 -2
- data/templates/game/cards/things.yml +4 -1
- metadata +44 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a74b7a76d0b25c86e5b0052343e28db8abef939
|
4
|
+
data.tar.gz: c0122e2ac8662397c83f61f0a081e4d71bee0612
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8100854134bbdebe049a10de12f246b291e642e907b57d443d05fbc2097b22528a3caef1cecdfdb778a378ba10ffa1b53a27d2b69a8366b2d12416c55b3e9f7
|
7
|
+
data.tar.gz: ff65866ad8c85a2bc79447bd60489f1217156469d210ec1e069c23bf82f3f9d877dab8cfd4bdb90761853135e9e977ebb2bea9d003078e33d7c793797c91a33b
|
data/.gitignore
CHANGED
data/dvorak.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency 'thor'
|
22
|
+
spec.add_dependency 'prawn'
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
25
|
spec.add_development_dependency 'rake'
|
@@ -26,4 +27,7 @@ Gem::Specification.new do |spec|
|
|
26
27
|
spec.add_development_dependency 'rspec'
|
27
28
|
spec.add_development_dependency 'cucumber'
|
28
29
|
spec.add_development_dependency 'coveralls'
|
30
|
+
spec.add_development_dependency 'pry'
|
31
|
+
spec.add_development_dependency 'pdf-reader'
|
32
|
+
|
29
33
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../lib/dvorak'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'pdf/reader'
|
4
|
+
require 'pry'
|
3
5
|
|
4
6
|
Given(/^I create a new deck named "(.*?)"$/) do |deck_name|
|
5
7
|
@deck_name = deck_name
|
@@ -26,3 +28,8 @@ end
|
|
26
28
|
Then(/^I should see the file "(.*?)"$/) do |file|
|
27
29
|
expect(@files).to include("#{@deck_name}/#{file}")
|
28
30
|
end
|
31
|
+
|
32
|
+
Then(/^the PDF should have (\d+) pages$/) do |count|
|
33
|
+
reader = PDF::Reader.new("#{@deck_name}/output/cards.pdf")
|
34
|
+
expect(reader.page_count.to_s).to eq count
|
35
|
+
end
|
data/lib/dvorak/pdf_generator.rb
CHANGED
@@ -1,13 +1,29 @@
|
|
1
|
+
require 'prawn'
|
2
|
+
require 'yaml'
|
3
|
+
|
1
4
|
module Dvorak
|
2
5
|
class PDFGenerator
|
3
6
|
attr_reader :result
|
4
7
|
|
5
8
|
def generate
|
6
9
|
if Dir.exist?('cards')
|
7
|
-
|
10
|
+
FileUtils.mkdir_p("output")
|
11
|
+
|
12
|
+
actions = YAML.load_file('cards/actions.yml')
|
13
|
+
things = YAML.load_file('cards/things.yml')
|
14
|
+
|
15
|
+
on_first_page = true
|
16
|
+
Prawn::Document.generate('output/cards.pdf') do
|
17
|
+
(things+actions).each do |action|
|
18
|
+
start_new_page unless on_first_page
|
19
|
+
text_box action['title']
|
20
|
+
on_first_page = false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
8
24
|
@result = 'Success!'
|
9
25
|
else
|
10
|
-
@result = 'Directory `
|
26
|
+
@result = 'Directory `cards` does not exist. Please use `dvorak new GAME_NAME` to create a new project.'
|
11
27
|
exit 1
|
12
28
|
end
|
13
29
|
end
|
data/lib/dvorak/version.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'dvorak/pdf_generator'
|
3
|
+
require 'dvorak/cli'
|
4
|
+
require 'pdf/reader'
|
3
5
|
|
4
6
|
module Dvorak
|
5
7
|
describe 'PDFGenerator' do
|
6
8
|
before do
|
9
|
+
Dvorak::CLI.source_root(File.expand_path('../../../../templates', __FILE__))
|
10
|
+
FileUtils.rm_r('test_game') if Dir.exist?('test_game')
|
7
11
|
@generator = PDFGenerator.new
|
8
12
|
end
|
9
13
|
|
@@ -18,7 +22,7 @@ module Dvorak
|
|
18
22
|
@generator.generate
|
19
23
|
rescue SystemExit
|
20
24
|
end
|
21
|
-
expect(@generator.result).to eq 'Directory `
|
25
|
+
expect(@generator.result).to eq 'Directory `cards` does not exist. Please use `dvorak new GAME_NAME` to create a new project.'
|
22
26
|
end
|
23
27
|
|
24
28
|
it 'exits with non-zero status' do
|
@@ -28,22 +32,55 @@ module Dvorak
|
|
28
32
|
end
|
29
33
|
end
|
30
34
|
|
31
|
-
context '
|
35
|
+
context 'game already created' do
|
32
36
|
before do
|
33
|
-
|
37
|
+
cli = Dvorak::CLI.new
|
38
|
+
cli.new('test_game')
|
39
|
+
Dir.chdir('test_game')
|
34
40
|
end
|
35
41
|
|
36
|
-
|
42
|
+
after do
|
43
|
+
Dir.chdir('..')
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'cards directory is present' do
|
47
|
+
it 'sets result to a success message' do
|
48
|
+
@generator.generate
|
49
|
+
expect(@generator.result).to eq 'Success!'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context 'output directory does not already exist' do
|
54
|
+
it 'creates an output directory' do
|
55
|
+
@generator.generate
|
56
|
+
expect(File.exist?('output')).to be_true
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'output directory already exists' do
|
61
|
+
it 'can run generate multiple times without complaint' do
|
62
|
+
@generator.generate
|
63
|
+
@generator.generate
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'creates a pdf file of the cards' do
|
37
68
|
@generator.generate
|
38
|
-
expect(
|
69
|
+
expect(File.exist?('output/cards.pdf')).to be_true
|
39
70
|
end
|
40
71
|
|
41
|
-
it 'creates
|
42
|
-
expect(Dir).to receive(:mkdir).with("output")
|
72
|
+
it 'creates a PDF with a page for each card in the deck' do
|
43
73
|
@generator.generate
|
74
|
+
reader = PDF::Reader.new("output/cards.pdf")
|
75
|
+
|
76
|
+
expect(reader.pages.map(&:text)).to match_array [
|
77
|
+
'Yolokitten',
|
78
|
+
'Lolcat',
|
79
|
+
'Harmony',
|
80
|
+
'Unity'
|
81
|
+
]
|
44
82
|
end
|
45
83
|
end
|
46
|
-
|
47
84
|
end
|
48
85
|
end
|
49
86
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dvorak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Kelly
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: prawn
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,34 @@ dependencies:
|
|
94
108
|
- - '>='
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pdf-reader
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
97
139
|
description: Create Dvorak deck PDFs using YAML files.
|
98
140
|
email:
|
99
141
|
- polymonic@gmail.com
|