make_it_so 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +26 -0
- data/lib/generators/gosu_app_generator.rb +80 -0
- data/lib/make_it_so/command_line_interface.rb +7 -0
- data/lib/make_it_so/version.rb +1 -1
- data/lib/make_it_so.rb +1 -0
- data/make_it_so.gemspec +1 -0
- data/spec/features/user_generates_gosu_spec.rb +84 -0
- data/spec/features/user_generates_sinatra_spec.rb +0 -13
- data/spec/support/make_it_so_spec_helpers.rb +13 -0
- data/templates/gosu/.gitignore +0 -0
- data/templates/gosu/.rspec +1 -0
- data/templates/gosu/Gemfile +5 -0
- data/templates/gosu/app.rb +22 -0
- data/templates/gosu/lib/bounding_box.rb +21 -0
- data/templates/gosu/lib/keys.rb +7 -0
- data/templates/gosu/readme.md +3 -0
- data/templates/gosu/spec/spec_helper.rb +4 -0
- data/templates/rails/spec/features/user_signs_out_spec.rb +1 -1
- metadata +28 -4
- data/app.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc65d3862d2185b0170c51918ddd28fd7b487615
|
4
|
+
data.tar.gz: 2b9dde02bb189631381b824662003403a72dc4f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bee10cbbbb3c8dd0eb04ec351d9fd78f6442573f250f475bca512ca16ea0af5a9d589ff47e5aa590b45307c8eb9d04ec664cdd39fa276997809bb5f30c9b4263
|
7
|
+
data.tar.gz: 0d36d9ded514a38a977930c9bcafb2062e134b475140162d52ef8cbbbd23748a6f59078abd3b656546d38e40a1a93270196a51cca1c91307bf36dc2e87a10b1d
|
data/README.md
CHANGED
@@ -54,6 +54,32 @@ make_it_so sinatra <app_name>
|
|
54
54
|
|
55
55
|
By default, the generator, will create a sinatra root complete with an RSpec configuration.
|
56
56
|
|
57
|
+
### Gosu
|
58
|
+
|
59
|
+
In the terminal, run:
|
60
|
+
```no-highlight
|
61
|
+
make_it_so gosu <app_name>
|
62
|
+
```
|
63
|
+
|
64
|
+
By default, the generator, will create a gosu template complete with an RSpec configuration.
|
65
|
+
|
66
|
+
The tree structure looks like:
|
67
|
+
|
68
|
+
```no-highlight
|
69
|
+
GosuGame
|
70
|
+
├── Gemfile
|
71
|
+
├── README.md
|
72
|
+
├── game.rb
|
73
|
+
├── img
|
74
|
+
├── lib
|
75
|
+
│ ├── bounding_box.rb
|
76
|
+
│ └── keys.rb
|
77
|
+
└── spec
|
78
|
+
└── spec_helper.rb
|
79
|
+
```
|
80
|
+
|
81
|
+
To learn more about Gosu development [read through this tutorial](https://github.com/SpencerCDixon/Gosu-Tutorial)
|
82
|
+
|
57
83
|
## Contributing
|
58
84
|
|
59
85
|
1. Fork it ( https://github.com/[my-github-username]/make_it_so/fork )
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module MakeItSo
|
2
|
+
class GosuAppGenerator < Thor::Group
|
3
|
+
include Thor::Actions
|
4
|
+
|
5
|
+
desc "Creates a new Gosu game"
|
6
|
+
argument :name,
|
7
|
+
type: :string,
|
8
|
+
desc: "The name of the new application"
|
9
|
+
|
10
|
+
class_option :rspec,
|
11
|
+
type: :boolean,
|
12
|
+
default: true,
|
13
|
+
desc: 'install rspec'
|
14
|
+
|
15
|
+
def directories
|
16
|
+
[
|
17
|
+
'lib',
|
18
|
+
'spec',
|
19
|
+
'img'
|
20
|
+
].each do |dir|
|
21
|
+
empty_directory File.join(app_path, dir)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def app_file
|
26
|
+
file_path = 'app.rb'
|
27
|
+
template(file_path, File.join(app_path, file_path))
|
28
|
+
end
|
29
|
+
|
30
|
+
def readme
|
31
|
+
file_path = 'README.md'
|
32
|
+
template(file_path, File.join(app_path, file_path))
|
33
|
+
end
|
34
|
+
|
35
|
+
def lib
|
36
|
+
[
|
37
|
+
'lib/keys.rb',
|
38
|
+
'lib/bounding_box.rb'
|
39
|
+
].each do |file_path|
|
40
|
+
template(file_path, File.join(app_path, file_path))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def gemfile
|
45
|
+
file_path = 'Gemfile'
|
46
|
+
template(file_path, File.join(app_path, file_path))
|
47
|
+
end
|
48
|
+
|
49
|
+
def gitignore
|
50
|
+
file_path = '.gitignore'
|
51
|
+
template(file_path, File.join(app_path, file_path))
|
52
|
+
end
|
53
|
+
|
54
|
+
def rspec
|
55
|
+
if options.rspec?
|
56
|
+
spec_helper = 'spec/spec_helper.rb'
|
57
|
+
template(spec_helper, File.join(app_path, spec_helper))
|
58
|
+
|
59
|
+
dot_rspec = '.rspec'
|
60
|
+
template(dot_rspec, File.join(app_path, dot_rspec))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.source_root
|
65
|
+
template_path = File.join(
|
66
|
+
File.dirname(__FILE__),
|
67
|
+
"..",
|
68
|
+
"..",
|
69
|
+
"templates",
|
70
|
+
"gosu")
|
71
|
+
|
72
|
+
File.expand_path(template_path)
|
73
|
+
end
|
74
|
+
|
75
|
+
protected
|
76
|
+
def app_path
|
77
|
+
name
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -15,5 +15,12 @@ module MakeItSo
|
|
15
15
|
puts "#{args.first}"
|
16
16
|
MakeItSo::SinatraAppGenerator.start(args)
|
17
17
|
end
|
18
|
+
|
19
|
+
desc "gosu <app_name>",
|
20
|
+
"generates a gosu game template"
|
21
|
+
def gosu(*args)
|
22
|
+
puts "#{args.first}"
|
23
|
+
MakeItSo::GosuAppGenerator.start(args)
|
24
|
+
end
|
18
25
|
end
|
19
26
|
end
|
data/lib/make_it_so/version.rb
CHANGED
data/lib/make_it_so.rb
CHANGED
data/make_it_so.gemspec
CHANGED
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'user generates gosu app' do
|
4
|
+
def app_name
|
5
|
+
'dummy_gosu'
|
6
|
+
end
|
7
|
+
|
8
|
+
def app_path
|
9
|
+
join_paths(tmp_path, app_name)
|
10
|
+
end
|
11
|
+
|
12
|
+
before(:all) do
|
13
|
+
make_it_so!("gosu #{app_path}")
|
14
|
+
end
|
15
|
+
|
16
|
+
scenario 'includes gosu in the app.rb file' do
|
17
|
+
expect(FileTest.exists?(join_paths(app_path, 'app.rb'))).
|
18
|
+
to be(true)
|
19
|
+
end
|
20
|
+
|
21
|
+
scenario 'creates a lib directory' do
|
22
|
+
expect(has_dir?('lib')).to be(true)
|
23
|
+
end
|
24
|
+
|
25
|
+
scenario 'creates a img directory' do
|
26
|
+
expect(has_dir?('img')).to be(true)
|
27
|
+
end
|
28
|
+
|
29
|
+
scenario 'creates a README' do
|
30
|
+
expect(has_file?('README.md')).to be(true)
|
31
|
+
end
|
32
|
+
|
33
|
+
scenario 'creates a lib/keys module' do
|
34
|
+
expect(has_file?('lib/keys.rb')).to be(true)
|
35
|
+
end
|
36
|
+
|
37
|
+
scenario 'creates bounding box' do
|
38
|
+
expect(has_file?('lib/bounding_box.rb')).to be(true)
|
39
|
+
end
|
40
|
+
|
41
|
+
scenario '.gitignore' do
|
42
|
+
expect(has_file?('.gitignore')).to be(true)
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'Gemfile' do
|
46
|
+
scenario 'includes a Gemfile' do
|
47
|
+
expect(has_file?('Gemfile')).to be(true)
|
48
|
+
end
|
49
|
+
|
50
|
+
scenario 'includes gosu in the Gemfile' do
|
51
|
+
expect(in_gemfile?('gosu')).
|
52
|
+
to be(true)
|
53
|
+
end
|
54
|
+
|
55
|
+
scenario 'includes pry in the Gemfile' do
|
56
|
+
expect(in_gemfile?('pry')).
|
57
|
+
to be(true)
|
58
|
+
end
|
59
|
+
|
60
|
+
scenario 'includes rspec in the Gemfile' do
|
61
|
+
expect(in_gemfile?('rspec')).
|
62
|
+
to be(true)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context 'rspec' do
|
67
|
+
scenario 'creates a spec_helper' do
|
68
|
+
expect(has_file?('spec/spec_helper.rb')).to be(true)
|
69
|
+
end
|
70
|
+
|
71
|
+
scenario 'creates a .rspec file' do
|
72
|
+
expect(has_file?('.rspec')).to be(true)
|
73
|
+
end
|
74
|
+
|
75
|
+
scenario 'creates a spec directory' do
|
76
|
+
expect(has_dir?('spec')).to be(true)
|
77
|
+
end
|
78
|
+
|
79
|
+
scenario 'includes rspec as a dependency' do
|
80
|
+
expect(in_gemfile?('rspec')).to be(true)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
@@ -100,17 +100,4 @@ describe 'user generates sinatra app' do
|
|
100
100
|
expect(in_gemfile?('launchy')).to be(true)
|
101
101
|
end
|
102
102
|
end
|
103
|
-
|
104
|
-
def has_dir?(relative_path)
|
105
|
-
File.directory?(join_paths(app_path, relative_path))
|
106
|
-
end
|
107
|
-
|
108
|
-
def has_file?(relative_path)
|
109
|
-
FileTest.exists?(join_paths(app_path, relative_path))
|
110
|
-
end
|
111
|
-
|
112
|
-
def in_gemfile?(gem_name)
|
113
|
-
File.read(join_paths(app_path, 'Gemfile')).
|
114
|
-
match(/gem.*#{Regexp.escape(gem_name)}/).present?
|
115
|
-
end
|
116
103
|
end
|
@@ -31,6 +31,19 @@ module MakeItSoSpecHelpers
|
|
31
31
|
def join_paths(*paths)
|
32
32
|
File.join(*paths)
|
33
33
|
end
|
34
|
+
|
35
|
+
def has_dir?(relative_path)
|
36
|
+
File.directory?(join_paths(app_path, relative_path))
|
37
|
+
end
|
38
|
+
|
39
|
+
def has_file?(relative_path)
|
40
|
+
FileTest.exists?(join_paths(app_path, relative_path))
|
41
|
+
end
|
42
|
+
|
43
|
+
def in_gemfile?(gem_name)
|
44
|
+
File.read(join_paths(app_path, 'Gemfile')).
|
45
|
+
match(/gem.*#{Regexp.escape(gem_name)}/).present?
|
46
|
+
end
|
34
47
|
end
|
35
48
|
|
36
49
|
RSpec.configure do |config|
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'gosu'
|
2
|
+
require_relative 'lib/keys'
|
3
|
+
|
4
|
+
class Game < Gosu::Window
|
5
|
+
include Keys
|
6
|
+
SCREEN_HEIGHT = 1000
|
7
|
+
SCREEN_WIDTH = 1000
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
super(SCREEN_WIDTH, SCREEN_HEIGHT, false)
|
11
|
+
end
|
12
|
+
|
13
|
+
def draw
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
def update
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Game.new.show
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class BoundingBox
|
2
|
+
attr_reader :left, :bottom, :width, :height, :right, :top
|
3
|
+
|
4
|
+
def initialize(left, bottom, width, height)
|
5
|
+
@left = left
|
6
|
+
@bottom = bottom
|
7
|
+
@width = width
|
8
|
+
@height = height
|
9
|
+
@right = @left + @width
|
10
|
+
@top = @bottom + @height
|
11
|
+
end
|
12
|
+
|
13
|
+
def collide?(x, y)
|
14
|
+
x >= left && x <= right && y >= bottom && y <= top
|
15
|
+
end
|
16
|
+
|
17
|
+
def intersects?(box)
|
18
|
+
self.right > box.left && self.bottom < box.top && self.left < box.right && self.top > box.bottom
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
@@ -6,7 +6,7 @@ feature 'user signs out', %Q{
|
|
6
6
|
So that my identity is forgotten about on the machine I'm using
|
7
7
|
} do
|
8
8
|
# Acceptance Criteria
|
9
|
-
# * If I'm signed in,
|
9
|
+
# * If I'm signed in, I have an option to sign out
|
10
10
|
# * When I opt to sign out, I get a confirmation that my identity has been
|
11
11
|
# forgotten on the machine I'm using
|
12
12
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: make_it_so
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Pickett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
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'
|
111
125
|
description: Generate ruby gems, sinatra apps, and rails apps
|
112
126
|
email:
|
113
127
|
- dan.pickett@launchacademy.com
|
@@ -123,7 +137,6 @@ files:
|
|
123
137
|
- LICENSE.txt
|
124
138
|
- README.md
|
125
139
|
- Rakefile
|
126
|
-
- app.rb
|
127
140
|
- bin/make_it_so
|
128
141
|
- gemfiles/rails_4_0.gemfile
|
129
142
|
- gemfiles/rails_4_0.gemfile.lock
|
@@ -131,6 +144,7 @@ files:
|
|
131
144
|
- gemfiles/rails_4_1.gemfile.lock
|
132
145
|
- gemfiles/rails_4_2.gemfile
|
133
146
|
- gemfiles/rails_4_2.gemfile.lock
|
147
|
+
- lib/generators/gosu_app_generator.rb
|
134
148
|
- lib/generators/rails_app_generator.rb
|
135
149
|
- lib/generators/sinatra_app_generator.rb
|
136
150
|
- lib/make_it_so.rb
|
@@ -141,11 +155,20 @@ files:
|
|
141
155
|
- make_it_so.gemspec
|
142
156
|
- snippets/rails/application_generator.rb
|
143
157
|
- snippets/rails/user_factory.rb
|
158
|
+
- spec/features/user_generates_gosu_spec.rb
|
144
159
|
- spec/features/user_generates_rails_spec.rb
|
145
160
|
- spec/features/user_generates_sinatra_spec.rb
|
146
161
|
- spec/spec_helper.rb
|
147
162
|
- spec/support/make_it_so_spec_helpers.rb
|
148
163
|
- templates/.gitkeep
|
164
|
+
- templates/gosu/.gitignore
|
165
|
+
- templates/gosu/.rspec
|
166
|
+
- templates/gosu/Gemfile
|
167
|
+
- templates/gosu/app.rb
|
168
|
+
- templates/gosu/lib/bounding_box.rb
|
169
|
+
- templates/gosu/lib/keys.rb
|
170
|
+
- templates/gosu/readme.md
|
171
|
+
- templates/gosu/spec/spec_helper.rb
|
149
172
|
- templates/rails/.gitkeep
|
150
173
|
- templates/rails/app/controllers/application_controller.rb
|
151
174
|
- templates/rails/app/controllers/homes_controller.rb
|
@@ -185,11 +208,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
208
|
version: '0'
|
186
209
|
requirements: []
|
187
210
|
rubyforge_project:
|
188
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.4.5
|
189
212
|
signing_key:
|
190
213
|
specification_version: 4
|
191
214
|
summary: An application generator for all things ruby
|
192
215
|
test_files:
|
216
|
+
- spec/features/user_generates_gosu_spec.rb
|
193
217
|
- spec/features/user_generates_rails_spec.rb
|
194
218
|
- spec/features/user_generates_sinatra_spec.rb
|
195
219
|
- spec/spec_helper.rb
|
data/app.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'sinatra'
|
2
|
-
require 'sinatra/reloader'
|
3
|
-
|
4
|
-
configure :development, :test do
|
5
|
-
require 'pry'
|
6
|
-
end
|
7
|
-
|
8
|
-
configure do
|
9
|
-
set :views, 'app/views'
|
10
|
-
end
|
11
|
-
|
12
|
-
Dir[File.join(File.dirname(__FILE__), 'lib', '**', '*.rb')].each do |file|
|
13
|
-
require file
|
14
|
-
also_reload file
|
15
|
-
end
|
16
|
-
|
17
|
-
get '/' do
|
18
|
-
@title = "Hello World"
|
19
|
-
erb :index
|
20
|
-
end
|