sinatra-gen 0.1.0

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.
data/History.txt ADDED
@@ -0,0 +1,5 @@
1
+ == 0.1.0 2008-12-13
2
+
3
+ * 1 major enhancement:
4
+ * Initial release
5
+ * See README.rdoc for more info
data/Manifest.txt ADDED
@@ -0,0 +1,23 @@
1
+ History.txt
2
+ Manifest.txt
3
+ PostInstall.txt
4
+ README.rdoc
5
+ Rakefile
6
+ app_generators/sinatra_app/USAGE
7
+ app_generators/sinatra_app/sinatra_app_generator.rb
8
+ app_generators/sinatra_app/templates/Rakefile.erb
9
+ app_generators/sinatra_app/templates/app.rb.erb
10
+ app_generators/sinatra_app/templates/config.ru.erb
11
+ app_generators/sinatra_app/templates/lib/module.rb.erb
12
+ app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb
13
+ app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb
14
+ app_generators/sinatra_app/templates/test/test_app_spec.rb.erb
15
+ app_generators/sinatra_app/templates/test/test_app_unit.rb.erb
16
+ app_generators/sinatra_app/templates/test/test_helper.rb.erb
17
+ app_generators/sinatra_app/templates/views/builder_index.erb
18
+ app_generators/sinatra_app/templates/views/erb_index.erb
19
+ app_generators/sinatra_app/templates/views/erb_layout.erb
20
+ app_generators/sinatra_app/templates/views/haml_index.erb
21
+ app_generators/sinatra_app/templates/views/haml_layout.erb
22
+ bin/sinatra-gen
23
+ lib/sinatra-gen.rb
data/PostInstall.txt ADDED
@@ -0,0 +1,2 @@
1
+ For information about sinatra-gen and its options run:
2
+ sinatra-gen
data/README.rdoc ADDED
@@ -0,0 +1,48 @@
1
+ = sinatra-gen
2
+
3
+ http://github.com/quirkey/sinatra-gen
4
+
5
+ == DESCRIPTION:
6
+
7
+ sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework.
8
+ For more information on sinatra, check out http://sinatra.rubyforge.org
9
+
10
+ == SYNOPSIS:
11
+
12
+ sinatra-gen has a bunch of different options (based loosley on merb-gen) to try to not lock the
13
+ user into any specific frameworks/dev practices.
14
+
15
+ Run:
16
+
17
+ sinatra-gen [appname] [options]
18
+
19
+ e.g.
20
+
21
+ sinatra-gen mysinatrapp --vendor -i --test=shoulda --views=haml
22
+
23
+ Options (can also be obtained by running sinatra-gen with no arguments):
24
+
25
+ -v, --version Show the sinatra-gen version number and quit.
26
+ -d, --vendor Extract the latest sinatra to vendor/sinatra
27
+ -t, --tiny Only create the minimal files.
28
+ -s, --scripts Install the rubigen scripts (script/generate, script/destroy)
29
+ -i, --init Initialize a git repository
30
+ --git /path/to/git Specify a different path for 'git'
31
+ --test=test_framework Specify your testing framework (unit (default)/rspec/spec/shoulda)
32
+ --views=view_framework Specify your view framework (erb (default)/haml/builder)
33
+
34
+ The --tiny option will create no directories. Just an app.rb, a Rakefile, and a config.ru (Rackup file)
35
+
36
+ == ACKNOWLEDGEMENTS:
37
+
38
+ Big props to the Sinatra developers (http://github.com/bmizerany/sinatra/).
39
+ Also, thanks to Dr. Nic (http://github.com/drnic) for the Rubigen and Newgem libraries
40
+
41
+ == REQUIREMENTS:
42
+
43
+ To use the --vendor option, git must be installed.
44
+ To run the app without using the vendor option, the sinatra gem must be installed.
45
+
46
+ == INSTALL:
47
+
48
+ sudo gem install sintra-gen
data/Rakefile ADDED
@@ -0,0 +1,28 @@
1
+ %w[rubygems rake rake/clean fileutils newgem rubigen].each { |f| require f }
2
+ require File.dirname(__FILE__) + '/lib/sinatra-gen'
3
+
4
+ # Generate all the Rake tasks
5
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
6
+ $hoe = Hoe.new('sinatra-gen', SinatraGen::VERSION) do |p|
7
+ p.developer('Aaron Quint', 'aaron@quirkey.com')
8
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
9
+ p.post_install_message = 'PostInstall.txt'
10
+ p.rubyforge_name = "quirkey"
11
+ p.extra_deps = [
12
+ ['rubigen','>= 1.3.3'],
13
+ ]
14
+ p.extra_dev_deps = [
15
+ ['newgem', ">= #{::Newgem::VERSION}"]
16
+ ]
17
+
18
+ p.clean_globs |= %w[**/.DS_Store tmp *.log]
19
+ path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
20
+ p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
21
+ p.rsync_args = '-av --delete --ignore-errors'
22
+ end
23
+
24
+ require 'newgem/tasks' # load /tasks/*.rake
25
+ Dir['tasks/**/*.rake'].each { |t| load t }
26
+
27
+ # TODO - want other tests/tasks run by default? Add them to the list
28
+ # task :default => [:spec, :features]
@@ -0,0 +1,8 @@
1
+ Description:
2
+
3
+ sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework.
4
+ For more information on sinatra, check out http://sinatra.rubyforge.org
5
+
6
+ Usage:
7
+
8
+ sinatra-gen [appname] [options]
@@ -0,0 +1,105 @@
1
+ class SinatraAppGenerator < RubiGen::Base
2
+
3
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
4
+ Config::CONFIG['ruby_install_name'])
5
+
6
+ default_options :author => nil
7
+
8
+ attr_accessor :app_name, :vendor, :tiny, :git, :git_init, :test_framework, :view_framework, :install_scripts
9
+
10
+ def initialize(runtime_args, runtime_options = {})
11
+ super
12
+ usage if args.empty?
13
+ @destination_root = File.expand_path(args.shift)
14
+ self.app_name = base_name
15
+ extract_options
16
+ end
17
+
18
+ def manifest
19
+ record do |m|
20
+ # Ensure appropriate folder(s) exists
21
+ m.directory ''
22
+
23
+ if git_init
24
+ `cd #{@destination_root} && #{git} init`
25
+ end
26
+
27
+ m.template 'config.ru.erb', 'config.ru'
28
+ m.template 'app.rb.erb' , 'app.rb'
29
+ m.template 'Rakefile.erb' , 'Rakefile'
30
+
31
+ unless tiny
32
+ BASEDIRS.each { |path| m.directory path }
33
+ m.template 'lib/module.rb.erb', "lib/#{app_name}.rb"
34
+ m.template 'test/test_helper.rb.erb', 'test/test_helper.rb'
35
+ m.template "test/test_app_#{test_framework}.rb.erb", "test/test_#{app_name}.rb"
36
+ m.template "views/#{view_framework}_index.erb", "views/index.#{view_framework}"
37
+ m.template "views/#{view_framework}_layout.erb", "views/layout.#{view_framework}" unless view_framework == 'builder'
38
+ end
39
+
40
+ if vendor
41
+ m.directory 'vendor'
42
+ if git_init || File.exists?(File.join(@destination_root, '.git'))
43
+ command = "cd #{@destination_root} && #{git} submodule add git://github.com/bmizerany/sinatra.git vendor/sinatra"
44
+ else
45
+ command = "cd #{@destination_root} && #{git} clone git://github.com/bmizerany/sinatra.git vendor/sinatra"
46
+ end
47
+ `#{command}`
48
+ end
49
+
50
+ if install_scripts
51
+ m.dependency "install_rubigen_scripts", [destination_root, 'sinatra-gen'], :shebang => options[:shebang], :collision => :force
52
+ end
53
+ end
54
+ end
55
+
56
+ protected
57
+ def banner
58
+ <<-EOS
59
+ Creates the skeleton for a new sinatra app
60
+
61
+ USAGE: #{spec.name} app_name
62
+ EOS
63
+ end
64
+
65
+ def add_options!(opts)
66
+ opts.separator ''
67
+ opts.separator 'Options:'
68
+
69
+ opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
70
+ opts.on("-d", "--vendor", "Extract the latest sinatra to vendor/sinatra") {|o| options[:vendor] = o }
71
+ opts.on("-t", "--tiny", "Only create the minimal files.") {|o| options[:tiny] = o }
72
+ opts.on("-i", "--init", "Initialize a git repository") {|o| options[:init] = o }
73
+ opts.on("-s", "--scripts", "Install the rubigen scripts (script/generate, script/destroy)") {|o| options[:scripts] = o }
74
+ opts.on("--git /path/to/git", "Specify a different path for 'git'") {|o| options[:git] = o }
75
+ opts.on("--test=test_framework", String, "Specify your testing framework (unit (default)/rspec/spec/shoulda)") {|o| options[:test_framework] = o }
76
+ opts.on("--views=view_framework", "Specify your view framework (erb (default)/haml/builder)") {|o| options[:view_framework] = o }
77
+ end
78
+
79
+ def extract_options
80
+ # for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
81
+ # Templates can access these value via the attr_reader-generated methods, but not the
82
+ # raw instance variable value.
83
+ self.vendor = options[:vendor]
84
+ self.tiny = options[:tiny]
85
+ self.git = options[:git] || `which git`.strip
86
+ self.git_init = options[:init]
87
+ self.test_framework = options[:test_framework] || 'unit'
88
+ self.view_framework = options[:view_framework] || 'erb'
89
+ self.install_scripts = options[:scripts] || false
90
+ end
91
+
92
+ def klass_name
93
+ app_name.classify
94
+ end
95
+
96
+
97
+ # Installation skeleton. Intermediate directories are automatically
98
+ # created so don't sweat their absence here.
99
+ BASEDIRS = %w(
100
+ lib
101
+ test
102
+ public
103
+ views
104
+ )
105
+ end
@@ -0,0 +1,4 @@
1
+ namespace :<%= app_name %> do
2
+
3
+
4
+ end
@@ -0,0 +1,17 @@
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
+ get '/' do
16
+ <%= view_framework -%> :index
17
+ end
@@ -0,0 +1,8 @@
1
+ # To use with thin
2
+ # thin start -p PORT -R config.ru
3
+
4
+ require File.join(File.dirname(__FILE__), 'app.rb')
5
+
6
+ disable :run
7
+ set :env, :production
8
+ run Sinatra.application
@@ -0,0 +1,3 @@
1
+ module <%= klass_name %>
2
+
3
+ end
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+
3
+ describe '<%= klass_name %>' do
4
+
5
+ it 'should load the index' do
6
+ get_it '/'
7
+ @response.should be_ok
8
+ end
9
+
10
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class <%= klass_name -%>Test < Test::Unit::TestCase
4
+
5
+ context "<%= klass_name -%>" do
6
+ context "getting the index" do
7
+ setup do
8
+ get_it '/'
9
+ end
10
+
11
+ should "respond" do
12
+ assert @response.body
13
+ end
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+
3
+ describe '<%= klass_name %>' do
4
+
5
+ it 'should load the index' do
6
+ get_it '/'
7
+ should.be.ok
8
+ end
9
+
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ class <%= klass_name -%>Test < Test::Unit::TestCase
4
+
5
+ def test_my_default
6
+ get_it '/'
7
+ end
8
+
9
+ end
@@ -0,0 +1,20 @@
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
+ <%- case test_framework -%>
9
+ <%- when 'rspec' -%>
10
+ require 'spec'
11
+ require 'sinatra/test/rspec'
12
+ <%- when 'spec' -%>
13
+ require 'sinatra/test/spec'
14
+ <%- when 'shoulda' -%>
15
+ require 'sinatra/test/unit'
16
+ require 'shoulda'
17
+ <%- when 'unit' -%>
18
+ require 'sinatra/test/unit'
19
+ <%- end -%>
20
+ require File.join(File.dirname(__FILE__), '..', 'app.rb')
@@ -0,0 +1,4 @@
1
+ xml.instruct!
2
+ xml.app do
3
+ xml.data { xml.cdata! "Default sinatra-gen index. Generated at <%= Time.now %>" }
4
+ end
@@ -0,0 +1,2 @@
1
+ <p>Hello!</p>
2
+ <p>Default sinatra-gen index (generated at <%= Time.now %>)</p>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+
8
+ <title><%= app_name %></title>
9
+
10
+ </head>
11
+
12
+ <body>
13
+ <%%= yield %>
14
+ </body>
15
+ </html>
@@ -0,0 +1,2 @@
1
+ %p Hello!
2
+ %p Default sinatra-gen index (generated at <%= Time.now %>)
@@ -0,0 +1,6 @@
1
+ %html{:xmlns=> "http://www.w3.org/1999/xhtml", 'xml:lang' => "en", :lang => "en"}
2
+ %head
3
+ %meta{'http-equiv' => "Content-Type", 'content' => "text/html; charset=utf-8"}
4
+ %title <%= app_name %>
5
+ %body
6
+ = yield
data/bin/sinatra-gen ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'rubigen'
5
+
6
+ if %w(-v --version).include? ARGV.first
7
+ require 'sinatra-gen'
8
+ puts "#{File.basename($0)} #{SinatraGen::VERSION}"
9
+ exit(0)
10
+ end
11
+
12
+ require 'rubigen/scripts/generate'
13
+ source = RubiGen::PathSource.new(:application,
14
+ File.join(File.dirname(__FILE__), "../app_generators"))
15
+ RubiGen::Base.reset_sources
16
+ RubiGen::Base.append_sources source
17
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'sinatra_app')
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ module SinatraGen
5
+ VERSION = '0.1.0'
6
+ end
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
@@ -0,0 +1,3 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/sinatra-gen'
@@ -0,0 +1,163 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+ class TestSinatraAppGenerator < Test::Unit::TestCase
4
+ include RubiGen::GeneratorTestHelper
5
+
6
+ def setup
7
+ bare_setup
8
+ end
9
+
10
+ def teardown
11
+ bare_teardown
12
+ end
13
+
14
+ # Some generator-related assertions:
15
+ # assert_generated_file(name, &block) # block passed the file contents
16
+ # assert_directory_exists(name)
17
+ # assert_generated_class(name, &block)
18
+ # assert_generated_module(name, &block)
19
+ # assert_generated_test_for(name, &block)
20
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
21
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
22
+ #
23
+ # Other helper methods are:
24
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
25
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
26
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
27
+
28
+ def test_generate_app_without_options
29
+ run_generator('sinatra_app', [APP_ROOT], sources)
30
+ assert_basic_paths_and_files
31
+ assert_generated_file 'views/layout.erb'
32
+ assert_generated_file 'views/index.erb'
33
+ assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
34
+ assert_match(/def test/, test_contents)
35
+ end
36
+ end
37
+
38
+ def test_generate_app_with_vendor_option
39
+ run_generator('sinatra_app', [APP_ROOT, '--vendor'], sources)
40
+ assert_basic_paths_and_files
41
+ assert_directory_exists 'vendor/sinatra/lib'
42
+ end
43
+
44
+ def test_generate_app_with_tiny_option
45
+ run_generator('sinatra_app', [APP_ROOT, '--tiny'], sources)
46
+ assert_generated_file 'config.ru'
47
+ assert_generated_file 'app.rb'
48
+ assert_generated_file 'Rakefile'
49
+ end
50
+
51
+ def test_generate_app_with_init_option
52
+ run_generator('sinatra_app', [APP_ROOT, '-i'], sources)
53
+ assert_basic_paths_and_files
54
+ assert_directory_exists '.git'
55
+ end
56
+
57
+ def test_generate_app_with_rspect_test_option
58
+ run_generator('sinatra_app', [APP_ROOT, '--test=rspec'], sources)
59
+ assert_basic_paths_and_files
60
+ assert_generated_file 'test/test_helper.rb' do |helper_contents|
61
+ assert_match(/sinatra\/test\/rspec/, helper_contents)
62
+ end
63
+ assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
64
+ assert_match(/describe/, test_contents)
65
+ end
66
+ end
67
+
68
+ def test_generate_app_with_spec_test_option
69
+ run_generator('sinatra_app', [APP_ROOT, '--test=spec'], sources)
70
+ assert_basic_paths_and_files
71
+ assert_generated_file 'test/test_helper.rb' do |helper_contents|
72
+ assert_match(/sinatra\/test\/spec/, helper_contents)
73
+ end
74
+ assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
75
+ assert_match(/describe/, test_contents)
76
+ end
77
+ end
78
+
79
+ def test_generate_app_with_shoulda_test_option
80
+ run_generator('sinatra_app', [APP_ROOT, '--test=shoulda'], sources)
81
+ assert_basic_paths_and_files
82
+ assert_generated_file 'test/test_helper.rb' do |helper_contents|
83
+ assert_match(/sinatra\/test\/unit/, helper_contents)
84
+ assert_match(/shoulda/, helper_contents)
85
+ end
86
+ assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
87
+ assert_match(/context/, test_contents)
88
+ end
89
+ end
90
+
91
+ def test_generate_app_with_test_unit_option
92
+ run_generator('sinatra_app', [APP_ROOT, '--test=unit'], sources)
93
+ assert_basic_paths_and_files
94
+ assert_generated_file 'test/test_helper.rb' do |helper_contents|
95
+ assert_match(/sinatra\/test\/unit/, helper_contents)
96
+ end
97
+ assert_generated_file "test/test_#{app_name}.rb" do |test_contents|
98
+ assert_match(/def test/, test_contents)
99
+ end
100
+ end
101
+
102
+ def test_generate_app_with_views_haml_option
103
+ run_generator('sinatra_app', [APP_ROOT, '--views=erb'], sources)
104
+ assert_basic_paths_and_files
105
+ assert_generated_file 'app.rb' do |app_contents|
106
+ assert_match(/erb \:index/, app_contents)
107
+ end
108
+ assert_generated_file 'views/layout.erb'
109
+ assert_generated_file 'views/index.erb'
110
+ end
111
+
112
+ def test_generate_app_with_views_haml_option
113
+ run_generator('sinatra_app', [APP_ROOT, '--views=haml'], sources)
114
+ assert_basic_paths_and_files
115
+ assert_generated_file 'app.rb' do |app_contents|
116
+ assert_match(/haml \:index/, app_contents)
117
+ end
118
+ assert_generated_file 'views/layout.haml'
119
+ assert_generated_file 'views/index.haml'
120
+ end
121
+
122
+ def test_generate_app_with_views_builder_option
123
+ run_generator('sinatra_app', [APP_ROOT, '--views=builder'], sources)
124
+ assert_basic_paths_and_files
125
+ assert_generated_file 'app.rb' do |app_contents|
126
+ assert_match(/builder \:index/, app_contents)
127
+ end
128
+ assert_generated_file 'views/index.builder'
129
+ end
130
+
131
+ def test_generate_app_with_scripts_option
132
+ run_generator('sinatra_app', [APP_ROOT, '--scripts'], sources)
133
+ assert_basic_paths_and_files
134
+ assert_directory_exists 'script'
135
+ assert_generated_file 'script/destroy'
136
+ assert_generated_file 'script/generate'
137
+ end
138
+
139
+ private
140
+ def assert_basic_paths_and_files
141
+ assert_directory_exists 'lib'
142
+ assert_directory_exists 'test'
143
+ assert_directory_exists 'public'
144
+ assert_directory_exists 'views'
145
+ assert_generated_file 'config.ru'
146
+ assert_generated_file 'app.rb'
147
+ assert_generated_file 'Rakefile'
148
+ assert_generated_module "lib/#{app_name}"
149
+ end
150
+
151
+
152
+ def sources
153
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))]
154
+ end
155
+
156
+ def app_name
157
+ File.basename(APP_ROOT)
158
+ end
159
+
160
+ def generator_path
161
+ "app_generators"
162
+ end
163
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sinatra-gen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Quint
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-13 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubigen
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.3.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: newgem
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.0
44
+ version:
45
+ 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://sinatra.rubyforge.org
46
+ email:
47
+ - aaron@quirkey.com
48
+ executables:
49
+ - sinatra-gen
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - PostInstall.txt
56
+ - README.rdoc
57
+ files:
58
+ - History.txt
59
+ - Manifest.txt
60
+ - PostInstall.txt
61
+ - README.rdoc
62
+ - Rakefile
63
+ - app_generators/sinatra_app/USAGE
64
+ - app_generators/sinatra_app/sinatra_app_generator.rb
65
+ - app_generators/sinatra_app/templates/Rakefile.erb
66
+ - app_generators/sinatra_app/templates/app.rb.erb
67
+ - app_generators/sinatra_app/templates/config.ru.erb
68
+ - app_generators/sinatra_app/templates/lib/module.rb.erb
69
+ - app_generators/sinatra_app/templates/test/test_app_rspec.rb.erb
70
+ - app_generators/sinatra_app/templates/test/test_app_shoulda.rb.erb
71
+ - app_generators/sinatra_app/templates/test/test_app_spec.rb.erb
72
+ - app_generators/sinatra_app/templates/test/test_app_unit.rb.erb
73
+ - app_generators/sinatra_app/templates/test/test_helper.rb.erb
74
+ - app_generators/sinatra_app/templates/views/builder_index.erb
75
+ - app_generators/sinatra_app/templates/views/erb_index.erb
76
+ - app_generators/sinatra_app/templates/views/erb_layout.erb
77
+ - app_generators/sinatra_app/templates/views/haml_index.erb
78
+ - app_generators/sinatra_app/templates/views/haml_layout.erb
79
+ - bin/sinatra-gen
80
+ - lib/sinatra-gen.rb
81
+ has_rdoc: true
82
+ homepage: http://github.com/quirkey/sinatra-gen
83
+ post_install_message: PostInstall.txt
84
+ rdoc_options:
85
+ - --main
86
+ - README.rdoc
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ version:
101
+ requirements: []
102
+
103
+ rubyforge_project: quirkey
104
+ rubygems_version: 1.3.1
105
+ signing_key:
106
+ specification_version: 2
107
+ summary: sinatra-gen generates a common file structure and basic app files for a web app utilizing the sinatra framework
108
+ test_files:
109
+ - test/test_generator_helper.rb
110
+ - test/test_helper.rb
111
+ - test/test_sinatra_app_generator.rb