dvorak 0.0.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5ae32ee6e3ece5ff0e2496c7aade5447558f7400
4
+ data.tar.gz: 973482274832da346470d9120b2ec170174f9eee
5
+ SHA512:
6
+ metadata.gz: 5de3e2b5978e6fff58e9db419a3fd008dc2c8666c478b1d6eed749266f4d3c52e76aa888b2a61c8cc362ecb3d06993db176bccde1c220fa1590e0dfdd9c11661
7
+ data.tar.gz: 27628b295717f1667805aebb33ec5644b2c1d62df16d0bb50053d803cadb59d2cfc61d52171097702ea2bcd2a731ce8a7db20807d65a9fe597548817a2f1c100
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ test_game
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in dvorak.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Brian Kelly
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,28 @@
1
+ [![Codeship Status for spilth/dvorak](https://www.codeship.io/projects/afb20380-7a33-0131-d6d5-1a6931038de8/status)](https://www.codeship.io/projects/14173) [![Code Climate](https://codeclimate.com/github/spilth/dvorak.png)](https://codeclimate.com/github/spilth/dvorak) [![Coverage Status](https://coveralls.io/repos/spilth/dvorak/badge.png)](https://coveralls.io/r/spilth/dvorak) [![Dependency Status](https://gemnasium.com/spilth/dvorak.png)](https://gemnasium.com/spilth/dvorak) [![Gem Version](https://badge.fury.io/rb/dvorak.png)](http://badge.fury.io/rb/dvorak)
2
+
3
+ # Dvorak
4
+
5
+ Create Dvorak decks using YAML files. Generates PDFs of cards and rules.
6
+
7
+ ## Installation
8
+
9
+ Install it with:
10
+
11
+ $ gem install dvorak
12
+
13
+ ## Usage
14
+
15
+ $ dvorak new mad_world
16
+ $ cd mad_world
17
+
18
+ Edit the files in your project directory, then do:
19
+
20
+ $ dvorak generate # Well, eventually...
21
+
22
+ ## Contributing
23
+
24
+ 1. Fork it
25
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
27
+ 4. Push to the branch (`git push origin my-new-feature`)
28
+ 5. Create new Pull Request
@@ -0,0 +1,13 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ require 'cucumber'
4
+ require 'cucumber/rake/task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ Cucumber::Rake::Task.new(:features) do |t|
9
+ t.cucumber_opts = "features --format pretty"
10
+ end
11
+
12
+ task :default => [:features, :spec]
13
+
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require "pathname"
3
+ bin_file = Pathname.new(__FILE__).realpath
4
+ $:.unshift File.expand_path("../../lib", bin_file)
5
+
6
+ require 'dvorak'
7
+ Dvorak::CLI.source_root(File.expand_path('../../templates', bin_file))
8
+ Dvorak::CLI.start(ARGV)
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'dvorak/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "dvorak"
8
+ spec.version = Dvorak::VERSION
9
+ spec.authors = ["Brian Kelly"]
10
+ spec.email = ["polymonic@gmail.com"]
11
+ spec.description = %q{Create Dvorak deck PDFs using YAML files.}
12
+ spec.summary = %q{Dvorak decks with Ruby!}
13
+ spec.homepage = "https://github.com/spilth/dvorak"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'thor'
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency 'rake'
25
+
26
+ spec.add_development_dependency 'rspec'
27
+ spec.add_development_dependency 'cucumber'
28
+ spec.add_development_dependency 'coveralls'
29
+ end
@@ -0,0 +1,11 @@
1
+ Feature: New Deck
2
+
3
+ Scenario: Create a new deck
4
+ Given I create a new deck named "test_game"
5
+ When I list the directories in my project
6
+ Then I should see the directory "cards"
7
+ And I should see the file "rules.md"
8
+ And I should see the file "cards/things.yml"
9
+ And I should see the file "cards/actions.yml"
10
+
11
+
@@ -0,0 +1,9 @@
1
+ Feature: PDF Generation
2
+
3
+ Scenario: Generating a PDF
4
+ Given I create a new deck named "test_game"
5
+ When I generate the deck
6
+ And I list the directories in my project
7
+ Then I should see the directory "output"
8
+ #And I should see the file "output/cards.pdf"
9
+
@@ -0,0 +1,28 @@
1
+ require File.dirname(__FILE__) + '/../../lib/dvorak'
2
+ require 'fileutils'
3
+
4
+ Given(/^I create a new deck named "(.*?)"$/) do |deck_name|
5
+ @deck_name = deck_name
6
+ Dvorak::CLI.source_root(File.expand_path('../../../templates', __FILE__))
7
+ FileUtils.rm_r(@deck_name) if Dir.exist?(@deck_name)
8
+ @cli = Dvorak::CLI.new
9
+ @cli.new(@deck_name)
10
+ end
11
+
12
+ When(/^I list the directories in my project$/) do
13
+ @files = Dir.glob("#{@deck_name}/**/*")
14
+ end
15
+
16
+ When(/^I generate the deck$/) do
17
+ Dir.chdir(@deck_name)
18
+ @cli.generate
19
+ Dir.chdir("..")
20
+ end
21
+
22
+ Then(/^I should see the directory "(.*?)"$/) do |directory|
23
+ expect(@files).to include("#{@deck_name}/#{directory}")
24
+ end
25
+
26
+ Then(/^I should see the file "(.*?)"$/) do |file|
27
+ expect(@files).to include("#{@deck_name}/#{file}")
28
+ end
@@ -0,0 +1,6 @@
1
+ require 'dvorak/cli'
2
+ require 'dvorak/version'
3
+ require 'dvorak/pdf_generator'
4
+
5
+ module Dvorak
6
+ end
@@ -0,0 +1,20 @@
1
+ require 'thor'
2
+ require 'dvorak/pdf_generator'
3
+
4
+ module Dvorak
5
+ class CLI < Thor
6
+ include Thor::Actions
7
+
8
+ desc 'new GAME_NAME', 'Sets up a project directory for your game.'
9
+ def new(name)
10
+ @name = Thor::Util.snake_case(name)
11
+ directory(:game, @name)
12
+ end
13
+
14
+ desc 'generate', 'Turns your project into PDFs (not yet, though!)'
15
+ def generate
16
+ generator = Dvorak::PDFGenerator.new
17
+ generator.generate
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module Dvorak
2
+ class PDFGenerator
3
+ attr_reader :result
4
+
5
+ def generate
6
+ if Dir.exist?('cards')
7
+ Dir.mkdir("output")
8
+ @result = 'Success!'
9
+ else
10
+ @result = 'Directory `game` does not exist. Please us `dvorak new GAME_NAME` to create a new project.'
11
+ exit 1
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module Dvorak
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'dvorak/cli'
3
+
4
+ module Dvorak
5
+ describe 'CLI' do
6
+ describe 'new' do
7
+ it 'creates a directory with the same name as the game' do
8
+ cli = Dvorak::CLI.new
9
+ expect(cli).to receive(:directory).with(:game, 'mad_world')
10
+ cli.new('mad_world')
11
+ end
12
+ end
13
+
14
+ describe 'generate' do
15
+ it 'creates a PDF generator and calls generate on it' do
16
+ generator = double(:generator)
17
+ expect(Dvorak::PDFGenerator).to receive(:new) { generator }
18
+ expect(generator).to receive(:generate)
19
+ cli = Dvorak::CLI.new
20
+ cli.generate
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+ require 'dvorak/pdf_generator'
3
+
4
+ module Dvorak
5
+ describe 'PDFGenerator' do
6
+ before do
7
+ @generator = PDFGenerator.new
8
+ end
9
+
10
+ describe '#generate' do
11
+ context 'cards directory is not present' do
12
+ before do
13
+ Dir.stub(:exist?).with('cards') { false }
14
+ end
15
+
16
+ it 'sets results to an error message' do
17
+ begin
18
+ @generator.generate
19
+ rescue SystemExit
20
+ end
21
+ expect(@generator.result).to eq 'Directory `game` does not exist. Please us `dvorak new GAME_NAME` to create a new project.'
22
+ end
23
+
24
+ it 'exits with non-zero status' do
25
+ expect{
26
+ @generator.generate
27
+ }.to raise_error SystemExit
28
+ end
29
+ end
30
+
31
+ context 'cards directory is present' do
32
+ before do
33
+ Dir.stub(:exist?).with('cards') { true }
34
+ end
35
+
36
+ it 'sets result to a succes message' do
37
+ @generator.generate
38
+ expect(@generator.result).to eq 'Success!'
39
+ end
40
+
41
+ it 'creates an output directory' do
42
+ expect(Dir).to receive(:mkdir).with("output")
43
+ @generator.generate
44
+ end
45
+ end
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,14 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ RSpec.configure do |config|
5
+ config.treat_symbols_as_metadata_keys_with_true_values = true
6
+ config.run_all_when_everything_filtered = true
7
+ config.filter_run :focus
8
+
9
+ # Run specs in random order to surface order dependencies. If you find an
10
+ # order dependency and want to debug it, you can fix the order by providing
11
+ # the seed, which is printed after each run.
12
+ # --seed 1234
13
+ config.order = 'random'
14
+ end
@@ -0,0 +1,2 @@
1
+ output
2
+
@@ -0,0 +1,4 @@
1
+ -
2
+ title: Example Action
3
+ type: Action
4
+
@@ -0,0 +1,3 @@
1
+ -
2
+ title: Example Thing
3
+ type: Thing
@@ -0,0 +1,3 @@
1
+ # Rules
2
+
3
+ These are the rules.
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dvorak
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Brian Kelly
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: cucumber
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Create Dvorak deck PDFs using YAML files.
98
+ email:
99
+ - polymonic@gmail.com
100
+ executables:
101
+ - dvorak
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - .gitignore
106
+ - .rspec
107
+ - Gemfile
108
+ - LICENSE.txt
109
+ - README.md
110
+ - Rakefile
111
+ - bin/dvorak
112
+ - dvorak.gemspec
113
+ - features/new_deck.feature
114
+ - features/pdf_generation.feature
115
+ - features/step_definitions/cli_steps.rb
116
+ - lib/dvorak.rb
117
+ - lib/dvorak/cli.rb
118
+ - lib/dvorak/pdf_generator.rb
119
+ - lib/dvorak/version.rb
120
+ - spec/lib/dvorak/cli_spec.rb
121
+ - spec/lib/dvorak/pdf_generator_spec.rb
122
+ - spec/spec_helper.rb
123
+ - templates/game/.gitignore
124
+ - templates/game/cards/actions.yml
125
+ - templates/game/cards/things.yml
126
+ - templates/game/rules.md
127
+ homepage: https://github.com/spilth/dvorak
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - '>='
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.1.11
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: Dvorak decks with Ruby!
151
+ test_files:
152
+ - features/new_deck.feature
153
+ - features/pdf_generation.feature
154
+ - features/step_definitions/cli_steps.rb
155
+ - spec/lib/dvorak/cli_spec.rb
156
+ - spec/lib/dvorak/pdf_generator_spec.rb
157
+ - spec/spec_helper.rb