sinatra-gen 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +5 -0
- data/README.rdoc +21 -12
- data/Rakefile +2 -2
- data/app_generators/sinatra_app/USAGE +1 -1
- data/app_generators/sinatra_app/sinatra_app_generator.rb +17 -10
- data/app_generators/sinatra_app/templates/test/test_app_bacon.rb.erb +3 -3
- data/app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb +3 -3
- data/app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb +2 -2
- data/app_generators/sinatra_app/templates/test/test_app_spec.rb.erb +3 -3
- data/app_generators/sinatra_app/templates/test/test_helper.rb.erb +48 -11
- data/lib/sinatra-gen.rb +1 -1
- data/sinatra-gen.gemspec +5 -2
- data/test/test_sinatra_app_generator.rb +32 -32
- metadata +13 -3
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.3.0 2009-04-29
|
2
|
+
|
3
|
+
* No longer use deprecated Sinatra::Test - depend on Rack::Test and simple helper
|
4
|
+
* Changed defaults for test framework and views to bacon and haml respectively based on community feedback/usage.
|
5
|
+
|
1
6
|
== 0.2.2 2009-02-10
|
2
7
|
|
3
8
|
* Added --heroku option which creates a heroku app [Thanks to Michael Kohl]
|
data/README.rdoc
CHANGED
@@ -14,11 +14,11 @@ user into any specific frameworks/dev practices.
|
|
14
14
|
|
15
15
|
Run:
|
16
16
|
|
17
|
-
sinatra-gen [appname] [
|
17
|
+
sinatra-gen [appname] [options] [paths]
|
18
18
|
|
19
19
|
e.g.
|
20
20
|
|
21
|
-
sinatra-gen mysinatrapp
|
21
|
+
sinatra-gen mysinatrapp --vendor --init --test=shoulda --views=haml get:/ post:/:id
|
22
22
|
|
23
23
|
=== Actions
|
24
24
|
|
@@ -48,16 +48,25 @@ It will also generate test skeletons in the test framework of your choosing.
|
|
48
48
|
|
49
49
|
(can also be obtained by running sinatra-gen with no arguments):
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
51
|
+
-v, --version Show the sinatra-gen version number and quit.
|
52
|
+
-d, --vendor Extract the latest sinatra to vendor/sinatra
|
53
|
+
--tiny Only create the minimal files.
|
54
|
+
--init Initialize a git repository
|
55
|
+
--heroku Create a Heroku app (also runs 'git init').
|
56
|
+
Optionally, specify the path to the heroku bin
|
57
|
+
--cap Adds config directory with basic capistrano deploy.rb
|
58
|
+
--scripts Install the rubigen scripts (script/generate, script/destroy)
|
59
|
+
--test=test_framework Specify your testing framework (bacon (default)/rspec/spec/shoulda/test)
|
60
|
+
--views=view_framework Specify your view framework (haml (default)/erb/builder)
|
61
|
+
General Options:
|
62
|
+
-h, --help Show this help message and quit.
|
63
|
+
-p, --pretend Run but do not make any changes.
|
64
|
+
-f, --force Overwrite files that already exist.
|
65
|
+
-s, --skip Skip files that already exist.
|
66
|
+
-q, --quiet Suppress normal output.
|
67
|
+
-t, --backtrace Debugging: show backtrace on errors.
|
68
|
+
-c, --svn Modify files with subversion. (Note: svn must be in path)
|
69
|
+
-g, --git Modify files with git. (Note: git must be in path)
|
61
70
|
|
62
71
|
|
63
72
|
The --tiny option will create no directories. Just an app.rb, a Rakefile, and a config.ru (Rackup file)
|
data/Rakefile
CHANGED
@@ -6,11 +6,11 @@ require File.dirname(__FILE__) + '/lib/sinatra-gen'
|
|
6
6
|
$hoe = Hoe.new('sinatra-gen', SinatraGen::VERSION) do |p|
|
7
7
|
p.developer('Aaron Quint', 'aaron@quirkey.com')
|
8
8
|
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
|
9
|
-
p.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
|
10
9
|
p.rubyforge_name = 'quirkey'
|
11
10
|
p.extra_deps = [
|
12
11
|
['rubigen','>= 1.5.2'],
|
13
|
-
['sinatra', '>= 0.9.0']
|
12
|
+
['sinatra', '>= 0.9.0'],
|
13
|
+
['rack-test', '>= 0.1.0']
|
14
14
|
]
|
15
15
|
p.extra_dev_deps = [
|
16
16
|
['newgem', ">= #{::Newgem::VERSION}"]
|
@@ -51,13 +51,17 @@ class SinatraAppGenerator < RubiGen::Base
|
|
51
51
|
m.template 'config.ru.erb', 'config.ru'
|
52
52
|
m.template 'app.rb.erb' , "#{app_name}.rb"
|
53
53
|
m.template 'Rakefile.erb' , 'Rakefile'
|
54
|
-
|
54
|
+
|
55
|
+
test_dir = (tests_are_specs? ? 'spec' : 'test')
|
56
|
+
|
55
57
|
unless tiny
|
56
58
|
BASEDIRS.each { |path| m.directory path }
|
59
|
+
m.directory test_dir
|
57
60
|
m.file 'config.yml', 'config.yml'
|
58
61
|
m.template 'lib/module.rb.erb', "lib/#{app_name}.rb"
|
59
|
-
m.template 'test/test_helper.rb.erb',
|
60
|
-
m.template "test/test_app_#{test_framework}.rb.erb",
|
62
|
+
m.template 'test/test_helper.rb.erb', "#{test_dir}/#{test_dir}_helper.rb"
|
63
|
+
m.template "test/test_app_#{test_framework}.rb.erb",
|
64
|
+
"#{test_dir}/#{(tests_are_specs? ? "#{app_name}_spec" : "test_#{app_name}")}.rb"
|
61
65
|
m.template "views/#{view_framework}_index.erb", "views/index.#{view_framework}"
|
62
66
|
m.template "views/#{view_framework}_layout.erb", "views/layout.#{view_framework}" unless view_framework == 'builder'
|
63
67
|
end
|
@@ -94,7 +98,7 @@ class SinatraAppGenerator < RubiGen::Base
|
|
94
98
|
<<-EOS
|
95
99
|
Creates the skeleton for a new sinatra app
|
96
100
|
|
97
|
-
USAGE: #{spec.name} app_name
|
101
|
+
USAGE: #{spec.name} app_name [options] [paths]
|
98
102
|
EOS
|
99
103
|
end
|
100
104
|
|
@@ -106,12 +110,12 @@ class SinatraAppGenerator < RubiGen::Base
|
|
106
110
|
opts.on("-d", "--vendor", "Extract the latest sinatra to vendor/sinatra") {|o| options[:vendor] = o }
|
107
111
|
opts.on("--tiny", "Only create the minimal files.") {|o| options[:tiny] = o }
|
108
112
|
opts.on("--init", "Initialize a git repository") {|o| options[:init] = o }
|
109
|
-
opts.on("--heroku", "Create a Heroku app (also runs 'git init')
|
113
|
+
opts.on("--heroku", "Create a Heroku app (also runs 'git init').\n Optionally, specify the path to the heroku bin") { |o| options[:heroku] = o }
|
110
114
|
opts.on("--cap", "Adds config directory with basic capistrano deploy.rb") {|o| options[:cap] = o }
|
111
115
|
opts.on("--scripts", "Install the rubigen scripts (script/generate, script/destroy)") {|o| options[:scripts] = o }
|
112
116
|
opts.on("--git /path/to/git", "Specify a different path for 'git'") {|o| options[:git] = o }
|
113
|
-
opts.on("--test=test_framework", String, "Specify your testing framework (
|
114
|
-
opts.on("--views=view_framework", "Specify your view framework (
|
117
|
+
opts.on("--test=test_framework", String, "Specify your testing framework (bacon (default)/rspec/spec/shoulda/test)") {|o| options[:test_framework] = o }
|
118
|
+
opts.on("--views=view_framework", "Specify your view framework (haml (default)/erb/builder)") {|o| options[:view_framework] = o }
|
115
119
|
end
|
116
120
|
|
117
121
|
def extract_options
|
@@ -124,8 +128,8 @@ class SinatraAppGenerator < RubiGen::Base
|
|
124
128
|
self.git = options[:git] || `which git`.strip
|
125
129
|
self.heroku = options[:heroku] ? `which heroku`.strip : false
|
126
130
|
self.git_init = options[:init] || !!heroku || false
|
127
|
-
self.test_framework = options[:test_framework] || '
|
128
|
-
self.view_framework = options[:view_framework] || '
|
131
|
+
self.test_framework = options[:test_framework] || 'bacon'
|
132
|
+
self.view_framework = options[:view_framework] || 'haml'
|
129
133
|
self.install_scripts = options[:scripts] || false
|
130
134
|
end
|
131
135
|
|
@@ -136,12 +140,15 @@ class SinatraAppGenerator < RubiGen::Base
|
|
136
140
|
def parse_actions(*action_args)
|
137
141
|
@actions = action_args.flatten.collect { |a| a.split(':', 2) }
|
138
142
|
end
|
143
|
+
|
144
|
+
def tests_are_specs?
|
145
|
+
['rspec','spec','bacon'].include?(test_framework)
|
146
|
+
end
|
139
147
|
|
140
148
|
# Installation skeleton. Intermediate directories are automatically
|
141
149
|
# created so don't sweat their absence here.
|
142
150
|
BASEDIRS = %w(
|
143
151
|
lib
|
144
|
-
test
|
145
152
|
public
|
146
153
|
views
|
147
154
|
)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe '<%= klass_name %>' do
|
4
4
|
|
@@ -6,14 +6,14 @@ describe '<%= klass_name %>' do
|
|
6
6
|
<% actions.each do |meth, path| %>
|
7
7
|
it 'should <%= meth %> <%= path %>' do
|
8
8
|
<%= meth %> '<%= path %>'
|
9
|
-
should.be.ok
|
9
|
+
last_response.should.be.ok
|
10
10
|
end
|
11
11
|
|
12
12
|
<%- end -%>
|
13
13
|
<%- else -%>
|
14
14
|
it 'should load the index' do
|
15
15
|
get '/'
|
16
|
-
should.be.ok
|
16
|
+
last_response.should.be.ok
|
17
17
|
end
|
18
18
|
<%- end -%>
|
19
19
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe '<%= klass_name %>' do
|
4
4
|
|
@@ -6,14 +6,14 @@ describe '<%= klass_name %>' do
|
|
6
6
|
<% actions.each do |meth, path| %>
|
7
7
|
it 'should <%= meth %> <%= path %>' do
|
8
8
|
<%= meth %> '<%= path %>'
|
9
|
-
|
9
|
+
last_response.should be_ok
|
10
10
|
end
|
11
11
|
|
12
12
|
<%- end -%>
|
13
13
|
<%- else -%>
|
14
14
|
it 'should load the index' do
|
15
15
|
get '/'
|
16
|
-
|
16
|
+
last_response.should be_ok
|
17
17
|
end
|
18
18
|
<%- end -%>
|
19
19
|
end
|
@@ -11,7 +11,7 @@ class <%= klass_name -%>Test < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
should "respond" do
|
14
|
-
assert
|
14
|
+
assert body
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -23,7 +23,7 @@ class <%= klass_name -%>Test < Test::Unit::TestCase
|
|
23
23
|
end
|
24
24
|
|
25
25
|
should "respond" do
|
26
|
-
assert
|
26
|
+
assert body
|
27
27
|
end
|
28
28
|
end
|
29
29
|
<%- end -%>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe '<%= klass_name %>' do
|
4
4
|
|
@@ -6,14 +6,14 @@ describe '<%= klass_name %>' do
|
|
6
6
|
<% actions.each do |meth, path| %>
|
7
7
|
it 'should <%= meth %> <%= path %>' do
|
8
8
|
<%= meth %> '<%= path %>'
|
9
|
-
should.be.ok
|
9
|
+
last_response.should.be.ok
|
10
10
|
end
|
11
11
|
|
12
12
|
<%- end -%>
|
13
13
|
<%- else -%>
|
14
14
|
it 'should load the index' do
|
15
15
|
get '/'
|
16
|
-
should.be.ok
|
16
|
+
last_response.should.be.ok
|
17
17
|
end
|
18
18
|
<%- end -%>
|
19
19
|
|
@@ -1,21 +1,58 @@
|
|
1
1
|
<%- if vendor -%>
|
2
2
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'vendor', 'sinatra', 'lib')
|
3
|
-
require 'sinatra'
|
4
|
-
<%- else -%>
|
5
|
-
require 'sinatra'
|
6
3
|
<%- end -%>
|
7
|
-
|
4
|
+
require 'sinatra'
|
5
|
+
require 'rack/test'
|
6
|
+
|
7
|
+
Sinatra::Default.set(
|
8
|
+
:environment => :test,
|
9
|
+
:run => false,
|
10
|
+
:raise_errors => true,
|
11
|
+
:logging => false
|
12
|
+
)
|
13
|
+
|
14
|
+
require File.join(File.dirname(__FILE__), '..', '<%= app_name %>.rb')
|
15
|
+
|
16
|
+
module TestHelper
|
17
|
+
|
18
|
+
def app
|
19
|
+
# change to your app class if using the 'classy' style
|
20
|
+
Sinatra::Application.new
|
21
|
+
end
|
22
|
+
|
23
|
+
def body
|
24
|
+
last_response.body
|
25
|
+
end
|
26
|
+
|
27
|
+
def status
|
28
|
+
last_response.status
|
29
|
+
end
|
30
|
+
|
31
|
+
include Rack::Test::Methods
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
<%- case test_framework -%>
|
8
36
|
<%- when 'rspec' -%>
|
9
37
|
require 'spec'
|
10
|
-
require '
|
38
|
+
require 'spec/interop/test'
|
39
|
+
|
40
|
+
Spec::Runner.configure do |config|
|
41
|
+
include TestHelper
|
42
|
+
end
|
11
43
|
<%- when 'bacon' -%>
|
12
|
-
require '
|
44
|
+
require 'bacon'
|
45
|
+
|
46
|
+
Bacon::Context.send(:include, TestHelper)
|
13
47
|
<%- when 'spec' -%>
|
14
|
-
require '
|
48
|
+
require 'test/spec'
|
15
49
|
<%- when 'shoulda' -%>
|
16
|
-
require '
|
50
|
+
require 'test/unit'
|
17
51
|
require 'shoulda'
|
52
|
+
|
53
|
+
Test::Unit::TestCase.send(:include, TestHelper)
|
18
54
|
<%- when 'unit' -%>
|
19
|
-
require '
|
20
|
-
|
21
|
-
|
55
|
+
require 'test/unit'
|
56
|
+
|
57
|
+
Test::Unit::TestCase.send(:include, TestHelper)
|
58
|
+
<%- end -%>
|
data/lib/sinatra-gen.rb
CHANGED
data/sinatra-gen.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{sinatra-gen}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.3.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Aaron Quint"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-04-29}
|
10
10
|
s.default_executable = %q{sinatra-gen}
|
11
11
|
s.description = %q{sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework. For more information on sinatra, check out http://sinatrarb.com}
|
12
12
|
s.email = ["aaron@quirkey.com"]
|
@@ -30,17 +30,20 @@ Gem::Specification.new do |s|
|
|
30
30
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
31
31
|
s.add_runtime_dependency(%q<rubigen>, [">= 1.5.2"])
|
32
32
|
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.0"])
|
33
|
+
s.add_runtime_dependency(%q<rack-test>, [">= 0.1.0"])
|
33
34
|
s.add_development_dependency(%q<newgem>, [">= 1.2.3"])
|
34
35
|
s.add_development_dependency(%q<hoe>, [">= 1.8.0"])
|
35
36
|
else
|
36
37
|
s.add_dependency(%q<rubigen>, [">= 1.5.2"])
|
37
38
|
s.add_dependency(%q<sinatra>, [">= 0.9.0"])
|
39
|
+
s.add_dependency(%q<rack-test>, [">= 0.1.0"])
|
38
40
|
s.add_dependency(%q<newgem>, [">= 1.2.3"])
|
39
41
|
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
40
42
|
end
|
41
43
|
else
|
42
44
|
s.add_dependency(%q<rubigen>, [">= 1.5.2"])
|
43
45
|
s.add_dependency(%q<sinatra>, [">= 0.9.0"])
|
46
|
+
s.add_dependency(%q<rack-test>, [">= 0.1.0"])
|
44
47
|
s.add_dependency(%q<newgem>, [">= 1.2.3"])
|
45
48
|
s.add_dependency(%q<hoe>, [">= 1.8.0"])
|
46
49
|
end
|
@@ -13,17 +13,17 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
13
13
|
|
14
14
|
def test_generate_app_without_options
|
15
15
|
run_generator('sinatra_app', [APP_ROOT], sources)
|
16
|
-
assert_basic_paths_and_files
|
17
|
-
assert_generated_file 'views/layout.
|
18
|
-
assert_generated_file 'views/index.
|
19
|
-
assert_generated_file "
|
20
|
-
assert_match(/
|
16
|
+
assert_basic_paths_and_files('spec')
|
17
|
+
assert_generated_file 'views/layout.haml'
|
18
|
+
assert_generated_file 'views/index.haml'
|
19
|
+
assert_generated_file "spec/#{app_name}_spec.rb" do |test_contents|
|
20
|
+
assert_match(/describe/, test_contents)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_generate_app_with_vendor_option
|
25
25
|
run_generator('sinatra_app', [APP_ROOT, '--vendor'], sources)
|
26
|
-
assert_basic_paths_and_files
|
26
|
+
assert_basic_paths_and_files('spec')
|
27
27
|
assert_directory_exists 'vendor/sinatra/lib'
|
28
28
|
end
|
29
29
|
|
@@ -36,13 +36,13 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
36
36
|
|
37
37
|
def test_generate_app_with_init_option
|
38
38
|
run_generator('sinatra_app', [APP_ROOT, '-i'], sources)
|
39
|
-
assert_basic_paths_and_files
|
39
|
+
assert_basic_paths_and_files('spec')
|
40
40
|
assert_directory_exists '.git'
|
41
41
|
end
|
42
42
|
|
43
43
|
def test_generate_app_with_heroku_option
|
44
44
|
run_generator('sinatra_app', [APP_ROOT, '--heroku'], sources)
|
45
|
-
assert_basic_paths_and_files
|
45
|
+
assert_basic_paths_and_files('spec')
|
46
46
|
assert_directory_exists '.git'
|
47
47
|
assert_generated_file '.git/config' do |config_contents|
|
48
48
|
assert_match(/\[remote "heroku"\]/, config_contents)
|
@@ -51,7 +51,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
51
51
|
|
52
52
|
def test_generate_app_with_cap_option
|
53
53
|
run_generator('sinatra_app', [APP_ROOT, '--cap'], sources)
|
54
|
-
assert_basic_paths_and_files
|
54
|
+
assert_basic_paths_and_files('spec')
|
55
55
|
assert_directory_exists 'config'
|
56
56
|
assert_generated_file 'Capfile'
|
57
57
|
assert_generated_file 'config/deploy.rb' do |deploy_contents|
|
@@ -61,31 +61,31 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
61
61
|
|
62
62
|
def test_generate_app_with_rspect_test_option
|
63
63
|
run_generator('sinatra_app', [APP_ROOT, '--test=rspec'], sources)
|
64
|
-
assert_basic_paths_and_files
|
65
|
-
assert_generated_file '
|
66
|
-
assert_match(/
|
64
|
+
assert_basic_paths_and_files('spec')
|
65
|
+
assert_generated_file 'spec/spec_helper.rb' do |helper_contents|
|
66
|
+
assert_match(/spec/, helper_contents)
|
67
67
|
end
|
68
|
-
assert_generated_file "
|
68
|
+
assert_generated_file "spec/#{app_name}_spec.rb" do |test_contents|
|
69
69
|
assert_match(/describe/, test_contents)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
73
|
def test_generate_app_with_spec_test_option
|
74
74
|
run_generator('sinatra_app', [APP_ROOT, '--test=spec'], sources)
|
75
|
-
assert_basic_paths_and_files
|
76
|
-
assert_generated_file '
|
77
|
-
assert_match(/
|
75
|
+
assert_basic_paths_and_files('spec')
|
76
|
+
assert_generated_file 'spec/spec_helper.rb' do |helper_contents|
|
77
|
+
assert_match(/spec/, helper_contents)
|
78
78
|
end
|
79
|
-
assert_generated_file "
|
79
|
+
assert_generated_file "spec/#{app_name}_spec.rb" do |test_contents|
|
80
80
|
assert_match(/describe/, test_contents)
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
84
|
def test_generate_app_with_shoulda_test_option
|
85
85
|
run_generator('sinatra_app', [APP_ROOT, '--test=shoulda'], sources)
|
86
|
-
assert_basic_paths_and_files
|
86
|
+
assert_basic_paths_and_files('test')
|
87
87
|
assert_generated_file 'test/test_helper.rb' do |helper_contents|
|
88
|
-
assert_match(/
|
88
|
+
assert_match(/test\/unit/, helper_contents)
|
89
89
|
assert_match(/shoulda/, helper_contents)
|
90
90
|
end
|
91
91
|
assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
|
@@ -95,9 +95,9 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
95
95
|
|
96
96
|
def test_generate_app_with_test_unit_option
|
97
97
|
run_generator('sinatra_app', [APP_ROOT, '--test=unit'], sources)
|
98
|
-
assert_basic_paths_and_files
|
98
|
+
assert_basic_paths_and_files('test')
|
99
99
|
assert_generated_file 'test/test_helper.rb' do |helper_contents|
|
100
|
-
assert_match(/
|
100
|
+
assert_match(/test\/unit/, helper_contents)
|
101
101
|
end
|
102
102
|
assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
|
103
103
|
assert_match(/def test/, test_contents)
|
@@ -106,18 +106,18 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
106
106
|
|
107
107
|
def test_generate_app_with_test_bacon_option
|
108
108
|
run_generator('sinatra_app', [APP_ROOT, '--test=bacon'], sources)
|
109
|
-
assert_basic_paths_and_files
|
110
|
-
assert_generated_file '
|
111
|
-
assert_match(/
|
109
|
+
assert_basic_paths_and_files('spec')
|
110
|
+
assert_generated_file 'spec/spec_helper.rb' do |helper_contents|
|
111
|
+
assert_match(/bacon/, helper_contents)
|
112
112
|
end
|
113
|
-
assert_generated_file "
|
113
|
+
assert_generated_file "spec/#{app_name}_spec.rb" do |test_contents|
|
114
114
|
assert_match(/describe/, test_contents)
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
118
|
def test_generate_app_with_views_haml_option
|
119
119
|
run_generator('sinatra_app', [APP_ROOT, '--views=erb'], sources)
|
120
|
-
assert_basic_paths_and_files
|
120
|
+
assert_basic_paths_and_files('spec')
|
121
121
|
assert_generated_file "#{app_name}.rb" do |app_contents|
|
122
122
|
assert_match(/erb \:index/, app_contents)
|
123
123
|
end
|
@@ -127,7 +127,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
127
127
|
|
128
128
|
def test_generate_app_with_views_haml_option
|
129
129
|
run_generator('sinatra_app', [APP_ROOT, '--views=haml'], sources)
|
130
|
-
assert_basic_paths_and_files
|
130
|
+
assert_basic_paths_and_files('spec')
|
131
131
|
assert_generated_file "#{app_name}.rb" do |app_contents|
|
132
132
|
assert_match(/haml \:index/, app_contents)
|
133
133
|
end
|
@@ -137,7 +137,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
137
137
|
|
138
138
|
def test_generate_app_with_views_builder_option
|
139
139
|
run_generator('sinatra_app', [APP_ROOT, '--views=builder'], sources)
|
140
|
-
assert_basic_paths_and_files
|
140
|
+
assert_basic_paths_and_files('spec')
|
141
141
|
assert_generated_file "#{app_name}.rb" do |app_contents|
|
142
142
|
assert_match(/builder \:index/, app_contents)
|
143
143
|
end
|
@@ -146,7 +146,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
146
146
|
|
147
147
|
def test_generate_app_with_scripts_option
|
148
148
|
run_generator('sinatra_app', [APP_ROOT, '--scripts'], sources)
|
149
|
-
assert_basic_paths_and_files
|
149
|
+
assert_basic_paths_and_files('spec')
|
150
150
|
assert_directory_exists 'script'
|
151
151
|
assert_generated_file 'script/destroy'
|
152
152
|
assert_generated_file 'script/generate'
|
@@ -154,7 +154,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
154
154
|
|
155
155
|
def test_generate_app_with_actions_and_no_options
|
156
156
|
run_generator('sinatra_app', [APP_ROOT, 'get:/', 'post:/users/:id', 'put:/users/*'], sources)
|
157
|
-
assert_basic_paths_and_files
|
157
|
+
assert_basic_paths_and_files('spec')
|
158
158
|
assert_generated_file "#{app_name}.rb" do |app_contents|
|
159
159
|
assert_match(/get '\/' do/, app_contents)
|
160
160
|
assert_match(/post '\/users\/\:id' do/, app_contents)
|
@@ -175,9 +175,9 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
175
175
|
end
|
176
176
|
|
177
177
|
private
|
178
|
-
def assert_basic_paths_and_files
|
178
|
+
def assert_basic_paths_and_files(spec_or_test = 'spec')
|
179
179
|
assert_directory_exists 'lib'
|
180
|
-
assert_directory_exists
|
180
|
+
assert_directory_exists spec_or_test
|
181
181
|
assert_directory_exists 'public'
|
182
182
|
assert_directory_exists 'views'
|
183
183
|
assert_generated_file 'config.ru'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-gen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Quint
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-04-29 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -32,6 +32,16 @@ dependencies:
|
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.9.0
|
34
34
|
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rack-test
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.1.0
|
44
|
+
version:
|
35
45
|
- !ruby/object:Gem::Dependency
|
36
46
|
name: newgem
|
37
47
|
type: :development
|
@@ -95,7 +105,7 @@ files:
|
|
95
105
|
- sinatra-gen.gemspec
|
96
106
|
has_rdoc: true
|
97
107
|
homepage: http://github.com/quirkey/sinatra-gen
|
98
|
-
post_install_message:
|
108
|
+
post_install_message:
|
99
109
|
rdoc_options:
|
100
110
|
- --main
|
101
111
|
- README.rdoc
|