sinatra-gen 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/Manifest.txt +2 -2
- data/README.rdoc +27 -4
- data/Rakefile +9 -5
- data/app_generators/sinatra_app/sinatra_app_generator.rb +20 -4
- data/app_generators/sinatra_app/templates/bin/app.erb +6 -0
- data/app_generators/sinatra_app/templates/config.ru.erb +3 -3
- data/app_generators/sinatra_app/templates/lib/app.rb.erb +57 -0
- data/app_generators/sinatra_app/templates/test/test_helper.rb.erb +2 -2
- data/lib/sinatra-gen.rb +1 -1
- data/sinatra-gen.gemspec +22 -25
- data/test/test_sinatra_app_generator.rb +35 -9
- metadata +15 -14
- data/app_generators/sinatra_app/templates/app.rb.erb +0 -25
- data/app_generators/sinatra_app/templates/lib/module.rb.erb +0 -3
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 0.4.0 2009-08-13
|
2
|
+
|
3
|
+
* Unless --tiny is specified generate an app that < Sinatra::Application
|
4
|
+
* Added --vegas/--bin option for generating an executable using Vegas
|
5
|
+
* Add --middleware option. e.g --middleware rack/flash,Rack::Cache
|
6
|
+
* Fix deprecations:
|
7
|
+
* Require the view framework as that isn't explicit in sinatra anymore
|
8
|
+
* Fix config.ru deprecations
|
9
|
+
|
1
10
|
== 0.3.0 2009-04-29
|
2
11
|
|
3
12
|
* No longer use deprecated Sinatra::Test - depend on Rack::Test and simple helper
|
data/Manifest.txt
CHANGED
@@ -7,11 +7,11 @@ app_generators/sinatra_app/USAGE
|
|
7
7
|
app_generators/sinatra_app/sinatra_app_generator.rb
|
8
8
|
app_generators/sinatra_app/templates/Capfile
|
9
9
|
app_generators/sinatra_app/templates/Rakefile.erb
|
10
|
-
app_generators/sinatra_app/templates/app.rb.erb
|
11
10
|
app_generators/sinatra_app/templates/config.ru.erb
|
11
|
+
app_generators/sinatra_app/templates/bin/app.erb
|
12
12
|
app_generators/sinatra_app/templates/config.yml
|
13
13
|
app_generators/sinatra_app/templates/config/deploy.rb.erb
|
14
|
-
app_generators/sinatra_app/templates/lib/
|
14
|
+
app_generators/sinatra_app/templates/lib/app.rb.erb
|
15
15
|
app_generators/sinatra_app/templates/test/test_app_bacon.rb.erb
|
16
16
|
app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb
|
17
17
|
app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb
|
data/README.rdoc
CHANGED
@@ -9,7 +9,7 @@ For more information on sinatra, check out http://sinatrarb.com
|
|
9
9
|
|
10
10
|
== SYNOPSIS:
|
11
11
|
|
12
|
-
sinatra-gen has a bunch of different options (based
|
12
|
+
sinatra-gen has a bunch of different options (based looseley on merb-gen) to try to not lock the
|
13
13
|
user into any specific frameworks/dev practices.
|
14
14
|
|
15
15
|
Run:
|
@@ -20,6 +20,8 @@ e.g.
|
|
20
20
|
|
21
21
|
sinatra-gen mysinatrapp --vendor --init --test=shoulda --views=haml get:/ post:/:id
|
22
22
|
|
23
|
+
! Note: As of version 0.4.0 by default the sinatra app is placed in lib/appname.rb and is a subclass of Sinatra::Application. If you want 'classic' style apps (no class/module) use the --tiny option.
|
24
|
+
|
23
25
|
=== Actions
|
24
26
|
|
25
27
|
For even faster app development you specify actions to include in your app when generating.
|
@@ -27,7 +29,7 @@ Actions are written out as
|
|
27
29
|
|
28
30
|
http_method:path
|
29
31
|
|
30
|
-
And are
|
32
|
+
And are separated by spaces. For example:
|
31
33
|
|
32
34
|
get:/ post:/:id put:/update/*
|
33
35
|
|
@@ -44,6 +46,22 @@ Will be added you your app as:
|
|
44
46
|
|
45
47
|
It will also generate test skeletons in the test framework of your choosing.
|
46
48
|
|
49
|
+
=== Middleware
|
50
|
+
|
51
|
+
You can specify middleware to include by passing the filename(s) or class name(s), seperated by commas.
|
52
|
+
|
53
|
+
sinatra-gen myapp --middleware=rack/flash,Rack::Cache
|
54
|
+
|
55
|
+
Will place both the 'require' and 'use' statements in your app.
|
56
|
+
|
57
|
+
require 'rack/flash'
|
58
|
+
require 'rack/cache'
|
59
|
+
|
60
|
+
#...
|
61
|
+
|
62
|
+
use Rack::Flash
|
63
|
+
use Rack::Cache
|
64
|
+
|
47
65
|
=== Options
|
48
66
|
|
49
67
|
(can also be obtained by running sinatra-gen with no arguments):
|
@@ -58,6 +76,8 @@ It will also generate test skeletons in the test framework of your choosing.
|
|
58
76
|
--scripts Install the rubigen scripts (script/generate, script/destroy)
|
59
77
|
--test=test_framework Specify your testing framework (bacon (default)/rspec/spec/shoulda/test)
|
60
78
|
--views=view_framework Specify your view framework (haml (default)/erb/builder)
|
79
|
+
--middleware=rack-middleware Specify Rack Middleware to be required and included (comma delimited)
|
80
|
+
--vegas, --bin=[bin_name] Create an executable bin using Vegas. Pass an optional bin_name
|
61
81
|
General Options:
|
62
82
|
-h, --help Show this help message and quit.
|
63
83
|
-p, --pretend Run but do not make any changes.
|
@@ -78,12 +98,15 @@ Also, thanks to Dr. Nic (http://github.com/drnic) for the Rubigen and Newgem lib
|
|
78
98
|
|
79
99
|
== REQUIREMENTS:
|
80
100
|
|
81
|
-
To use the --vendor option, git must be installed.
|
101
|
+
To use the --vendor option, git must be installed.
|
102
|
+
To use the --bin/vegas option Vegas is required (sudo gem install vegas).
|
103
|
+
To use the --heroku option, a Heroku account and the heroku gem is required (sudo gem install heroku).
|
104
|
+
|
82
105
|
To run the app without using the vendor option, the sinatra gem must be installed.
|
83
106
|
|
84
107
|
== INSTALL:
|
85
108
|
|
86
|
-
sudo gem install
|
109
|
+
sudo gem install sinatra-gen
|
87
110
|
|
88
111
|
You can also install directly from github:
|
89
112
|
|
data/Rakefile
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
-
%w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
|
1
|
+
%w[rubygems rake rake/clean hoe fileutils newgem rubigen].each { |f| require f }
|
2
2
|
require File.dirname(__FILE__) + '/lib/sinatra-gen'
|
3
3
|
|
4
4
|
# Generate all the Rake tasks
|
5
5
|
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
6
|
-
$hoe = Hoe.
|
6
|
+
$hoe = Hoe.spec('sinatra-gen') 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
9
|
p.rubyforge_name = 'quirkey'
|
10
|
+
p.summary = %q{sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework}
|
11
|
+
p.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
|
+
|
13
|
+
p.version = SinatraGen::VERSION
|
10
14
|
p.extra_deps = [
|
11
|
-
['rubigen','
|
12
|
-
['sinatra', '>= 0.9.
|
13
|
-
['rack-test', '>= 0.1
|
15
|
+
['rubigen','=1.5.2'],
|
16
|
+
['sinatra', '>= 0.9.4'],
|
17
|
+
['rack-test', '>= 0.4.1']
|
14
18
|
]
|
15
19
|
p.extra_dev_deps = [
|
16
20
|
['newgem', ">= #{::Newgem::VERSION}"]
|
@@ -28,7 +28,9 @@ class SinatraAppGenerator < RubiGen::Base
|
|
28
28
|
:view_framework,
|
29
29
|
:install_scripts,
|
30
30
|
:cap,
|
31
|
-
:actions
|
31
|
+
:actions,
|
32
|
+
:middleware,
|
33
|
+
:bin_name
|
32
34
|
|
33
35
|
def initialize(runtime_args, runtime_options = {})
|
34
36
|
super
|
@@ -49,7 +51,6 @@ class SinatraAppGenerator < RubiGen::Base
|
|
49
51
|
end
|
50
52
|
|
51
53
|
m.template 'config.ru.erb', 'config.ru'
|
52
|
-
m.template 'app.rb.erb' , "#{app_name}.rb"
|
53
54
|
m.template 'Rakefile.erb' , 'Rakefile'
|
54
55
|
|
55
56
|
test_dir = (tests_are_specs? ? 'spec' : 'test')
|
@@ -58,12 +59,19 @@ class SinatraAppGenerator < RubiGen::Base
|
|
58
59
|
BASEDIRS.each { |path| m.directory path }
|
59
60
|
m.directory test_dir
|
60
61
|
m.file 'config.yml', 'config.yml'
|
61
|
-
m.template 'lib/
|
62
|
+
m.template 'lib/app.rb.erb', "lib/#{app_name}.rb"
|
62
63
|
m.template 'test/test_helper.rb.erb', "#{test_dir}/#{test_dir}_helper.rb"
|
63
64
|
m.template "test/test_app_#{test_framework}.rb.erb",
|
64
65
|
"#{test_dir}/#{(tests_are_specs? ? "#{app_name}_spec" : "test_#{app_name}")}.rb"
|
65
66
|
m.template "views/#{view_framework}_index.erb", "views/index.#{view_framework}"
|
66
67
|
m.template "views/#{view_framework}_layout.erb", "views/layout.#{view_framework}" unless view_framework == 'builder'
|
68
|
+
else
|
69
|
+
m.template "lib/app.rb.erb", "#{app_name}.rb"
|
70
|
+
end
|
71
|
+
|
72
|
+
if options[:bin]
|
73
|
+
m.directory "bin"
|
74
|
+
m.template "bin/app.erb", "bin/#{bin_name}", {:chmod => 0755}
|
67
75
|
end
|
68
76
|
|
69
77
|
if vendor
|
@@ -98,7 +106,7 @@ class SinatraAppGenerator < RubiGen::Base
|
|
98
106
|
<<-EOS
|
99
107
|
Creates the skeleton for a new sinatra app
|
100
108
|
|
101
|
-
USAGE:
|
109
|
+
USAGE: sinatra-gen app_name [options] [paths]
|
102
110
|
EOS
|
103
111
|
end
|
104
112
|
|
@@ -116,6 +124,8 @@ class SinatraAppGenerator < RubiGen::Base
|
|
116
124
|
opts.on("--git /path/to/git", "Specify a different path for 'git'") {|o| options[:git] = o }
|
117
125
|
opts.on("--test=test_framework", String, "Specify your testing framework (bacon (default)/rspec/spec/shoulda/test)") {|o| options[:test_framework] = o }
|
118
126
|
opts.on("--views=view_framework", "Specify your view framework (haml (default)/erb/builder)") {|o| options[:view_framework] = o }
|
127
|
+
opts.on("--middleware=rack-middleware", Array, "Specify Rack Middleware to be required and included (comma delimited)") {|o| options[:middleware] = o }
|
128
|
+
opts.on("--vegas=[bin_name]", "--bin=[bin_name]", "Create an executable bin using Vegas. Pass an optional bin_name") {|o| options[:bin] = true; options[:bin_name] = o }
|
119
129
|
end
|
120
130
|
|
121
131
|
def extract_options
|
@@ -131,12 +141,18 @@ class SinatraAppGenerator < RubiGen::Base
|
|
131
141
|
self.test_framework = options[:test_framework] || 'bacon'
|
132
142
|
self.view_framework = options[:view_framework] || 'haml'
|
133
143
|
self.install_scripts = options[:scripts] || false
|
144
|
+
self.middleware = options[:middleware] ? options[:middleware].reject {|m| m.blank? } : []
|
145
|
+
self.bin_name = options[:bin_name] || app_name
|
134
146
|
end
|
135
147
|
|
136
148
|
def klass_name
|
137
149
|
app_name.classify
|
138
150
|
end
|
139
151
|
|
152
|
+
def app_klass
|
153
|
+
tiny ? "Sinatra::Application" : klass_name
|
154
|
+
end
|
155
|
+
|
140
156
|
def parse_actions(*action_args)
|
141
157
|
@actions = action_args.flatten.collect { |a| a.split(':', 2) }
|
142
158
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# To use with thin
|
2
2
|
# thin start -p PORT -R config.ru
|
3
3
|
|
4
|
-
require File.join(File.dirname(__FILE__), '<%= app_name %>.rb')
|
4
|
+
require File.join(File.dirname(__FILE__), <%- unless tiny -%>'lib', <%- end -%>'<%= app_name %>.rb')
|
5
5
|
|
6
6
|
disable :run
|
7
|
-
set :
|
8
|
-
run
|
7
|
+
set :environment, :production
|
8
|
+
run <%= app_klass -%>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<%- if tiny -%>
|
2
|
+
APP_ROOT = File.expand_path(File.dirname(__FILE__))
|
3
|
+
<%- else -%>
|
4
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
5
|
+
<%- end -%>
|
6
|
+
|
7
|
+
require 'rubygems'
|
8
|
+
<%- if vendor -%>
|
9
|
+
$:.unshift File.join(APP_ROOT, 'vendor', 'sinatra', 'lib')
|
10
|
+
require 'sinatra'
|
11
|
+
<%- else -%>
|
12
|
+
require 'sinatra'
|
13
|
+
<%- end -%>
|
14
|
+
require '<%= view_framework %>'
|
15
|
+
<%- middleware.each do |m| -%>
|
16
|
+
require '<%= m.to_s.underscore %>'
|
17
|
+
<%- end -%>
|
18
|
+
|
19
|
+
<%- if tiny -%>
|
20
|
+
set :root, APP_ROOT
|
21
|
+
|
22
|
+
<%- unless actions.empty? -%>
|
23
|
+
<%- actions.each do |meth, path| -%>
|
24
|
+
<%= meth %> '<%= path %>' do
|
25
|
+
end
|
26
|
+
|
27
|
+
<%- end -%>
|
28
|
+
<%- else -%>
|
29
|
+
get '/' do
|
30
|
+
<%= view_framework -%> :index
|
31
|
+
end
|
32
|
+
<%- end -%>
|
33
|
+
|
34
|
+
<%- else -%>
|
35
|
+
class <%= klass_name -%> < Sinatra::Application
|
36
|
+
|
37
|
+
set :root, APP_ROOT
|
38
|
+
<%- middleware.each do |m| -%>
|
39
|
+
use <%= m.to_s.classify %>
|
40
|
+
<%- end -%>
|
41
|
+
|
42
|
+
<%- unless actions.empty? -%>
|
43
|
+
<%- actions.each do |meth, path| -%>
|
44
|
+
<%= meth %> '<%= path %>' do
|
45
|
+
<%= view_framework -%> :<%= path %>
|
46
|
+
end
|
47
|
+
|
48
|
+
<%- end -%>
|
49
|
+
<%- else -%>
|
50
|
+
get '/' do
|
51
|
+
<%= view_framework -%> :index
|
52
|
+
end
|
53
|
+
<%- end -%>
|
54
|
+
|
55
|
+
end
|
56
|
+
<%- end -%>
|
57
|
+
|
@@ -4,14 +4,14 @@ $:.unshift File.join(File.dirname(__FILE__), '..', 'vendor', 'sinatra', 'lib')
|
|
4
4
|
require 'sinatra'
|
5
5
|
require 'rack/test'
|
6
6
|
|
7
|
-
|
7
|
+
<%= app_klass -%>.set(
|
8
8
|
:environment => :test,
|
9
9
|
:run => false,
|
10
10
|
:raise_errors => true,
|
11
11
|
:logging => false
|
12
12
|
)
|
13
13
|
|
14
|
-
require File.join(File.dirname(__FILE__), '..', '<%= app_name %>.rb')
|
14
|
+
require File.join(File.dirname(__FILE__), '..', <%- unless tiny -%>'lib', <%- end -%>'<%= app_name %>.rb')
|
15
15
|
|
16
16
|
module TestHelper
|
17
17
|
|
data/lib/sinatra-gen.rb
CHANGED
data/sinatra-gen.gemspec
CHANGED
@@ -2,49 +2,46 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{sinatra-gen}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.4.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-08-13}
|
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"]
|
13
13
|
s.executables = ["sinatra-gen"]
|
14
|
-
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt"
|
15
|
-
s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "app_generators/sinatra_app/USAGE", "app_generators/sinatra_app/sinatra_app_generator.rb", "app_generators/sinatra_app/templates/Capfile", "app_generators/sinatra_app/templates/Rakefile.erb", "app_generators/sinatra_app/templates/
|
16
|
-
s.
|
17
|
-
s.homepage = %q{http://github.com/quirkey/sinatra-gen}
|
18
|
-
s.post_install_message = %q{PostInstall.txt}
|
19
|
-
s.rdoc_options = ["--main", "README.rdoc"]
|
14
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "PostInstall.txt"]
|
15
|
+
s.files = ["History.txt", "Manifest.txt", "PostInstall.txt", "README.rdoc", "Rakefile", "app_generators/sinatra_app/USAGE", "app_generators/sinatra_app/sinatra_app_generator.rb", "app_generators/sinatra_app/templates/Capfile", "app_generators/sinatra_app/templates/Rakefile.erb", "app_generators/sinatra_app/templates/config.ru.erb", "app_generators/sinatra_app/templates/bin/app.erb", "app_generators/sinatra_app/templates/config.yml", "app_generators/sinatra_app/templates/config/deploy.rb.erb", "app_generators/sinatra_app/templates/lib/app.rb.erb", "app_generators/sinatra_app/templates/test/test_app_bacon.rb.erb", "app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb", "app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb", "app_generators/sinatra_app/templates/test/test_app_spec.rb.erb", "app_generators/sinatra_app/templates/test/test_app_unit.rb.erb", "app_generators/sinatra_app/templates/test/test_helper.rb.erb", "app_generators/sinatra_app/templates/views/builder_index.erb", "app_generators/sinatra_app/templates/views/erb_index.erb", "app_generators/sinatra_app/templates/views/erb_layout.erb", "app_generators/sinatra_app/templates/views/haml_index.erb", "app_generators/sinatra_app/templates/views/haml_layout.erb", "bin/sinatra-gen", "lib/sinatra-gen.rb", "sinatra-gen.gemspec", "test/test_generator_helper.rb", "test/test_helper.rb", "test/test_sinatra_app_generator.rb"]
|
16
|
+
s.rdoc_options = ["--main", "README.txt"]
|
20
17
|
s.require_paths = ["lib"]
|
21
18
|
s.rubyforge_project = %q{quirkey}
|
22
|
-
s.rubygems_version = %q{1.3.
|
19
|
+
s.rubygems_version = %q{1.3.5}
|
23
20
|
s.summary = %q{sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework}
|
24
21
|
s.test_files = ["test/test_generator_helper.rb", "test/test_helper.rb", "test/test_sinatra_app_generator.rb"]
|
25
22
|
|
26
23
|
if s.respond_to? :specification_version then
|
27
24
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
28
|
-
s.specification_version =
|
25
|
+
s.specification_version = 3
|
29
26
|
|
30
27
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
31
|
-
s.add_runtime_dependency(%q<rubigen>, ["
|
32
|
-
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.
|
33
|
-
s.add_runtime_dependency(%q<rack-test>, [">= 0.1
|
34
|
-
s.add_development_dependency(%q<newgem>, [">= 1.2
|
35
|
-
s.add_development_dependency(%q<hoe>, [">=
|
28
|
+
s.add_runtime_dependency(%q<rubigen>, ["= 1.5.2"])
|
29
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 0.9.4"])
|
30
|
+
s.add_runtime_dependency(%q<rack-test>, [">= 0.4.1"])
|
31
|
+
s.add_development_dependency(%q<newgem>, [">= 1.5.2"])
|
32
|
+
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
36
33
|
else
|
37
|
-
s.add_dependency(%q<rubigen>, ["
|
38
|
-
s.add_dependency(%q<sinatra>, [">= 0.9.
|
39
|
-
s.add_dependency(%q<rack-test>, [">= 0.1
|
40
|
-
s.add_dependency(%q<newgem>, [">= 1.2
|
41
|
-
s.add_dependency(%q<hoe>, [">=
|
34
|
+
s.add_dependency(%q<rubigen>, ["= 1.5.2"])
|
35
|
+
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
36
|
+
s.add_dependency(%q<rack-test>, [">= 0.4.1"])
|
37
|
+
s.add_dependency(%q<newgem>, [">= 1.5.2"])
|
38
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
42
39
|
end
|
43
40
|
else
|
44
|
-
s.add_dependency(%q<rubigen>, ["
|
45
|
-
s.add_dependency(%q<sinatra>, [">= 0.9.
|
46
|
-
s.add_dependency(%q<rack-test>, [">= 0.1
|
47
|
-
s.add_dependency(%q<newgem>, [">= 1.2
|
48
|
-
s.add_dependency(%q<hoe>, [">=
|
41
|
+
s.add_dependency(%q<rubigen>, ["= 1.5.2"])
|
42
|
+
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
43
|
+
s.add_dependency(%q<rack-test>, [">= 0.4.1"])
|
44
|
+
s.add_dependency(%q<newgem>, [">= 1.5.2"])
|
45
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
49
46
|
end
|
50
47
|
end
|
@@ -59,7 +59,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
def
|
62
|
+
def test_generate_app_with_rspec_test_option
|
63
63
|
run_generator('sinatra_app', [APP_ROOT, '--test=rspec'], sources)
|
64
64
|
assert_basic_paths_and_files('spec')
|
65
65
|
assert_generated_file 'spec/spec_helper.rb' do |helper_contents|
|
@@ -115,10 +115,10 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
def
|
118
|
+
def test_generate_app_with_views_erb_option
|
119
119
|
run_generator('sinatra_app', [APP_ROOT, '--views=erb'], sources)
|
120
120
|
assert_basic_paths_and_files('spec')
|
121
|
-
assert_generated_file "
|
121
|
+
assert_generated_file "lib/#{app_name}.rb" do |app_contents|
|
122
122
|
assert_match(/erb \:index/, app_contents)
|
123
123
|
end
|
124
124
|
assert_generated_file 'views/layout.erb'
|
@@ -128,7 +128,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
128
128
|
def test_generate_app_with_views_haml_option
|
129
129
|
run_generator('sinatra_app', [APP_ROOT, '--views=haml'], sources)
|
130
130
|
assert_basic_paths_and_files('spec')
|
131
|
-
assert_generated_file "
|
131
|
+
assert_generated_file "lib/#{app_name}.rb" do |app_contents|
|
132
132
|
assert_match(/haml \:index/, app_contents)
|
133
133
|
end
|
134
134
|
assert_generated_file 'views/layout.haml'
|
@@ -138,7 +138,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
138
138
|
def test_generate_app_with_views_builder_option
|
139
139
|
run_generator('sinatra_app', [APP_ROOT, '--views=builder'], sources)
|
140
140
|
assert_basic_paths_and_files('spec')
|
141
|
-
assert_generated_file "
|
141
|
+
assert_generated_file "lib/#{app_name}.rb" do |app_contents|
|
142
142
|
assert_match(/builder \:index/, app_contents)
|
143
143
|
end
|
144
144
|
assert_generated_file 'views/index.builder'
|
@@ -155,7 +155,7 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
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
157
|
assert_basic_paths_and_files('spec')
|
158
|
-
assert_generated_file "
|
158
|
+
assert_generated_file "lib/#{app_name}.rb" do |app_contents|
|
159
159
|
assert_match(/get '\/' do/, app_contents)
|
160
160
|
assert_match(/post '\/users\/\:id' do/, app_contents)
|
161
161
|
assert_match(/put '\/users\/\*' do/, app_contents)
|
@@ -165,7 +165,6 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
165
165
|
def test_generate_app_with_actions_and_options
|
166
166
|
run_generator('sinatra_app', [APP_ROOT, 'get:/', 'post:/users/:id', '--tiny', 'put:/users/*'], sources)
|
167
167
|
assert_generated_file 'config.ru'
|
168
|
-
assert_generated_file "#{app_name}.rb"
|
169
168
|
assert_generated_file 'Rakefile'
|
170
169
|
assert_generated_file "#{app_name}.rb" do |app_contents|
|
171
170
|
assert_match(/get '\/' do/, app_contents)
|
@@ -174,6 +173,34 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
174
173
|
end
|
175
174
|
end
|
176
175
|
|
176
|
+
def test_generate_app_with_middleware
|
177
|
+
run_generator('sinatra_app', [APP_ROOT, "--middleware", "rack/flash,Rack::Cache"], sources)
|
178
|
+
assert_generated_file 'config.ru'
|
179
|
+
assert_generated_file 'Rakefile'
|
180
|
+
assert_generated_file "lib/#{app_name}.rb" do |app_contents|
|
181
|
+
assert_match(/require \'rack\/flash\'/, app_contents)
|
182
|
+
assert_match(/require \'rack\/cache\'/, app_contents)
|
183
|
+
assert_match(/use Rack::Flash/, app_contents)
|
184
|
+
assert_match(/use Rack::Cache/, app_contents)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
def test_generate_app_with_vegas_and_default_bin
|
189
|
+
run_generator('sinatra_app', [APP_ROOT, '--vegas'], sources)
|
190
|
+
assert_basic_paths_and_files('spec')
|
191
|
+
assert_generated_file "bin/#{app_name}" do |app_contents|
|
192
|
+
assert_match("Vegas::Runner.new(#{app_name.classify}, '#{app_name}')", app_contents)
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_generate_app_with_vegas_and_different_bin_name
|
197
|
+
run_generator('sinatra_app', [APP_ROOT, '--vegas=other_bin'], sources)
|
198
|
+
assert_basic_paths_and_files('spec')
|
199
|
+
assert_generated_file "bin/other_bin" do |app_contents|
|
200
|
+
assert_match("Vegas::Runner.new(#{app_name.classify}, 'other_bin')", app_contents)
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
177
204
|
private
|
178
205
|
def assert_basic_paths_and_files(spec_or_test = 'spec')
|
179
206
|
assert_directory_exists 'lib'
|
@@ -181,10 +208,9 @@ class TestSinatraAppGenerator < Test::Unit::TestCase
|
|
181
208
|
assert_directory_exists 'public'
|
182
209
|
assert_directory_exists 'views'
|
183
210
|
assert_generated_file 'config.ru'
|
184
|
-
assert_generated_file "#{app_name}.rb"
|
185
211
|
assert_generated_file 'Rakefile'
|
186
212
|
assert_generated_file 'config.yml'
|
187
|
-
|
213
|
+
assert_generated_class "lib/#{app_name}"
|
188
214
|
end
|
189
215
|
|
190
216
|
|
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.4.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-08-13 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- - "
|
21
|
+
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 1.5.2
|
24
24
|
version:
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.9.
|
33
|
+
version: 0.9.4
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rack-test
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.1
|
43
|
+
version: 0.4.1
|
44
44
|
version:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: newgem
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.2
|
53
|
+
version: 1.5.2
|
54
54
|
version:
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: hoe
|
@@ -60,7 +60,7 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: 2.3.3
|
64
64
|
version:
|
65
65
|
description: 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
|
66
66
|
email:
|
@@ -73,7 +73,6 @@ extra_rdoc_files:
|
|
73
73
|
- History.txt
|
74
74
|
- Manifest.txt
|
75
75
|
- PostInstall.txt
|
76
|
-
- README.rdoc
|
77
76
|
files:
|
78
77
|
- History.txt
|
79
78
|
- Manifest.txt
|
@@ -84,11 +83,11 @@ files:
|
|
84
83
|
- app_generators/sinatra_app/sinatra_app_generator.rb
|
85
84
|
- app_generators/sinatra_app/templates/Capfile
|
86
85
|
- app_generators/sinatra_app/templates/Rakefile.erb
|
87
|
-
- app_generators/sinatra_app/templates/app.rb.erb
|
88
86
|
- app_generators/sinatra_app/templates/config.ru.erb
|
87
|
+
- app_generators/sinatra_app/templates/bin/app.erb
|
89
88
|
- app_generators/sinatra_app/templates/config.yml
|
90
89
|
- app_generators/sinatra_app/templates/config/deploy.rb.erb
|
91
|
-
- app_generators/sinatra_app/templates/lib/
|
90
|
+
- app_generators/sinatra_app/templates/lib/app.rb.erb
|
92
91
|
- app_generators/sinatra_app/templates/test/test_app_bacon.rb.erb
|
93
92
|
- app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb
|
94
93
|
- app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb
|
@@ -104,11 +103,13 @@ files:
|
|
104
103
|
- lib/sinatra-gen.rb
|
105
104
|
- sinatra-gen.gemspec
|
106
105
|
has_rdoc: true
|
107
|
-
homepage:
|
106
|
+
homepage:
|
107
|
+
licenses: []
|
108
|
+
|
108
109
|
post_install_message:
|
109
110
|
rdoc_options:
|
110
111
|
- --main
|
111
|
-
- README.
|
112
|
+
- README.txt
|
112
113
|
require_paths:
|
113
114
|
- lib
|
114
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -126,9 +127,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
127
|
requirements: []
|
127
128
|
|
128
129
|
rubyforge_project: quirkey
|
129
|
-
rubygems_version: 1.3.
|
130
|
+
rubygems_version: 1.3.5
|
130
131
|
signing_key:
|
131
|
-
specification_version:
|
132
|
+
specification_version: 3
|
132
133
|
summary: sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework
|
133
134
|
test_files:
|
134
135
|
- test/test_generator_helper.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
<%- if vendor -%>
|
3
|
-
$:.unshift File.join(File.dirname(__FILE__), 'vendor', 'sinatra', 'lib')
|
4
|
-
require 'sinatra'
|
5
|
-
<%- else -%>
|
6
|
-
require 'sinatra'
|
7
|
-
<%- end -%>
|
8
|
-
<%- unless tiny -%>
|
9
|
-
require File.join(File.dirname(__FILE__), 'lib', '<%= app_name %>')
|
10
|
-
|
11
|
-
set :public, 'public'
|
12
|
-
set :views, 'views'
|
13
|
-
<%- end -%>
|
14
|
-
|
15
|
-
<%- unless actions.empty? -%>
|
16
|
-
<%- actions.each do |meth, path| -%>
|
17
|
-
<%= meth %> '<%= path %>' do
|
18
|
-
end
|
19
|
-
|
20
|
-
<%- end -%>
|
21
|
-
<%- else -%>
|
22
|
-
get '/' do
|
23
|
-
<%= view_framework -%> :index
|
24
|
-
end
|
25
|
-
<%- end -%>
|