openhood-sinatra_app_gen 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ require "rubygems"
2
+ require "rake"
3
+
4
+ begin
5
+ require "jeweler"
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "sinatra_app_gen"
8
+ gem.summary = "Creates a new Sinatra / Sequel / rspec / cucumber app."
9
+ gem.description = "Our default app template"
10
+ gem.email = "team@openhood.com"
11
+ gem.homepage = "http://github.com/openhood/sinatra_app_gen"
12
+ gem.authors = ["Jonathan Tron", "Joseph Halter"]
13
+ gem.add_dependency "rspec", "~> 1.2.6"
14
+ gem.add_dependency "cucumber", "~> 0.3.97"
15
+ gem.add_dependency "sequel", ">= 3.2.0"
16
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
+ end
18
+ rescue LoadError
19
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
20
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
data/VERSION.yml ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ :patch: 1
3
+ :major: 0
4
+ :minor: 0
data/bin/sinatra_app ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rubygems"
4
+ require "rubigen"
5
+ require "digest/sha1"
6
+
7
+ if %w(-v --version).include? ARGV.first
8
+ require File.dirname(__FILE__) + "/../lib/newgem"
9
+ puts "#{File.basename($0)} #{Newgem::VERSION}"
10
+ exit(0)
11
+ end
12
+
13
+ require "rubigen/scripts/generate"
14
+
15
+ require "pp"
16
+ RubiGen::Base.use_application_sources! :rubygems
17
+ RubiGen::Base.prepend_sources(*[
18
+ RubiGen::PathSource.new(:app, File.join(File.dirname(__FILE__), "..", "lib/generators"))
19
+ ])
20
+
21
+ RubiGen::Scripts::Generate.new.run(ARGV, :generator => "sinatra_app", :backtrace => false)
@@ -0,0 +1,63 @@
1
+ class SinatraAppGenerator < RubiGen::Base
2
+ DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
3
+ Config::CONFIG['ruby_install_name'])
4
+
5
+ attr_reader :name
6
+
7
+ def initialize(runtime_args, runtime_options = {})
8
+ super
9
+ usage if args.empty?
10
+ @destination_root = File.expand_path(args.shift)
11
+ @name = base_name
12
+ end
13
+
14
+ def template(m, filename)
15
+ m.template "#{filename}.erb", filename
16
+ end
17
+
18
+ def manifest
19
+ record do |m|
20
+ # Ensure appropriate folder(s) exists
21
+ m.directory ''
22
+ BASEDIRS.each { |path| m.directory path }
23
+
24
+ # root
25
+ template m, "app.rb"
26
+ template m, "config.ru"
27
+ template m, "geminstaller.yml"
28
+ template m, "Rakefile"
29
+
30
+ # cucumber
31
+ m.directory "features/support"
32
+ m.directory "features/step_definitions"
33
+ template m, "features/support/env.rb"
34
+ template m, "features/support/paths.rb"
35
+ template m, "features/step_definitions/webrat_steps.rb"
36
+
37
+ # rspec
38
+ m.directory "spec"
39
+ template m, "spec/spec_helper.rb"
40
+
41
+ # lib
42
+ m.directory "lib"
43
+ template m, "lib/rack_fix.rb"
44
+ end
45
+ end
46
+
47
+ protected
48
+ def banner
49
+ <<-EOS
50
+ Creates a new Sinatra / Sequel / rspec / cucumber app.
51
+
52
+ USAGE: #{spec.name} module_name
53
+
54
+ EOS
55
+ end
56
+
57
+ # Installation skeleton. Intermediate directories are automatically
58
+ # created so don't sweat their absence here.
59
+ BASEDIRS = %w(
60
+ lib
61
+ spec
62
+ )
63
+ end
@@ -0,0 +1,6 @@
1
+ require "sinatra_rake_tasks"
2
+ OpenHood::Rake::SpecTask.new
3
+ OpenHood::Rake::CucumberTask.new
4
+ OpenHood::Rake::SequelTask.new
5
+ OpenHood::Rake::CITask.new
6
+ OpenHood::Rake::ConsoleTask.new
@@ -0,0 +1,75 @@
1
+ require "rubygems"
2
+ require "openssl" # let this here or Sequel causes Thin to crash later on...
3
+ require "yaml"
4
+ require "yajl"
5
+ require "logger"
6
+ require "haml"
7
+ require "sequel"
8
+ require "sequel/extensions/blank"
9
+ require "sinatra/base"
10
+ require "sinatra/async"
11
+ require "sinatra/respond_to"
12
+ require "rack-flash"
13
+ require "string_cleaner"
14
+ require "lib/rack_fix" # until rack escape UTF-8 as expected
15
+
16
+ module <%= name.camelize %>
17
+ class App < Sinatra::Base
18
+
19
+ def self.base_path
20
+ File.dirname(__FILE__)
21
+ end
22
+
23
+ # load environment config
24
+ def self.config
25
+ @@config ||= begin
26
+ filename = File.join(File.dirname(__FILE__), "config", "#{environment}.yml")
27
+ File.exists?(filename) ? YAML.load_file(filename) : {:db => {:uri => "sqlite:/"}}
28
+ end
29
+ end
30
+
31
+ configure do
32
+ set :static, true
33
+ set :public, File.join(base_path, "public")
34
+ set :views, File.join(base_path, "views")
35
+ enable :logging
36
+ enable :sessions
37
+
38
+ # setup logger and connect to db
39
+ FileUtils.mkdir_p File.join(base_path, "log")
40
+ logger = Logger.new(File.join(base_path, "log", "#{environment}.log"))
41
+ logger.level = production? ? Logger::ERROR : Logger::DEBUG
42
+ Sequel.connect(config[:db][:uri], :loggers => [logger])
43
+
44
+ # load models
45
+ Dir.glob(File.join(base_path, "models", "*.rb")).each do |m|
46
+ require m
47
+ end
48
+
49
+ # load helpers
50
+ Dir.glob(File.join(base_path, "helpers", "*.rb")).each do |h|
51
+ require h
52
+ end
53
+ helpers do
54
+ alias_method :h, :escape_html
55
+ def config
56
+ <%= name.camelize %>::App.config
57
+ end
58
+ end
59
+
60
+ use Rack::Session::Cookie
61
+ use Rack::Flash
62
+ end
63
+
64
+ # load fake controllers
65
+ Dir.glob(File.join(base_path, "controllers", "*.rb")).each do |c|
66
+ require c
67
+ end
68
+
69
+ end
70
+ end
71
+
72
+ # define default port if launched directly via "ruby app.rb"
73
+ if $0 == __FILE__
74
+ <%= name.camelize %>::App.run! :host => "localhost", :port => 4567
75
+ end
@@ -0,0 +1,11 @@
1
+ require "rubygems"
2
+ require "app"
3
+
4
+ # log for passenger
5
+ FileUtils.mkdir_p "log" unless File.exists?("log")
6
+ log = File.new("log/sinatra.log", "a+")
7
+ $stdout.reopen(log)
8
+ $stderr.reopen(log)
9
+
10
+ # run the server
11
+ run <%= name.camelize %>::App
@@ -0,0 +1,156 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
2
+
3
+ Given /^I am on (.+)$/ do |page_name|
4
+ visit path_to(page_name)
5
+ end
6
+
7
+ When /^I visit "([^\"]+)"$/ do |page_name|
8
+ visit path_to(page_name)
9
+ end
10
+
11
+ When /^I go to (.+)$/ do |page_name|
12
+ visit path_to(page_name)
13
+ end
14
+
15
+ When /^I press "([^\"]*)"$/ do |button|
16
+ click_button(button)
17
+ end
18
+
19
+ When /^I follow "([^\"]*)"$/ do |link|
20
+ click_link(link)
21
+ end
22
+
23
+ When /^I submit form "([^\"]*)"$/ do |form|
24
+ submit_form(form)
25
+ end
26
+
27
+ When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
28
+ fill_in(field, :with => value)
29
+ end
30
+
31
+ When /^I select "([^\"]*)" from "([^\"]*)"$/ do |value, field|
32
+ select(value, :from => field)
33
+ end
34
+
35
+ # Use this step in conjunction with Rail's datetime_select helper. For example:
36
+ # When I select "December 25, 2008 10:00" as the date and time
37
+ When /^I select "([^\"]*)" as the date and time$/ do |time|
38
+ select_datetime(time)
39
+ end
40
+
41
+ # Use this step when using multiple datetime_select helpers on a page or
42
+ # you want to specify which datetime to select. Given the following view:
43
+ # <%%= f.label :preferred %><br />
44
+ # <%%= f.datetime_select :preferred %>
45
+ # <%%= f.label :alternative %><br />
46
+ # <%%= f.datetime_select :alternative %>
47
+ # The following steps would fill out the form:
48
+ # When I select "November 23, 2004 11:20" as the "Preferred" data and time
49
+ # And I select "November 25, 2004 10:30" as the "Alternative" data and time
50
+ When /^I select "([^\"]*)" as the "([^\"]*)" date and time$/ do |datetime, datetime_label|
51
+ select_datetime(datetime, :from => datetime_label)
52
+ end
53
+
54
+ # Use this step in conjuction with Rail's time_select helper. For example:
55
+ # When I select "2:20PM" as the time
56
+ # Note: Rail's default time helper provides 24-hour time-- not 12 hour time. Webrat
57
+ # will convert the 2:20PM to 14:20 and then select it.
58
+ When /^I select "([^\"]*)" as the time$/ do |time|
59
+ select_time(time)
60
+ end
61
+
62
+ # Use this step when using multiple time_select helpers on a page or you want to
63
+ # specify the name of the time on the form. For example:
64
+ # When I select "7:30AM" as the "Gym" time
65
+ When /^I select "([^\"]*)" as the "([^\"]*)" time$/ do |time, time_label|
66
+ select_time(time, :from => time_label)
67
+ end
68
+
69
+ # Use this step in conjuction with Rail's date_select helper. For example:
70
+ # When I select "February 20, 1981" as the date
71
+ When /^I select "([^\"]*)" as the date$/ do |date|
72
+ select_date(date)
73
+ end
74
+
75
+ # Use this step when using multiple date_select helpers on one page or
76
+ # you want to specify the name of the date on the form. For example:
77
+ # When I select "April 26, 1982" as the "Date of Birth" date
78
+ When /^I select "([^\"]*)" as the "([^\"]*)" date$/ do |date, date_label|
79
+ select_date(date, :from => date_label)
80
+ end
81
+
82
+ When /^I check "([^\"]*)"$/ do |field|
83
+ check(field)
84
+ end
85
+
86
+ When /^I uncheck "([^\"]*)"$/ do |field|
87
+ uncheck(field)
88
+ end
89
+
90
+ When /^I choose "([^\"]*)"$/ do |field|
91
+ choose(field)
92
+ end
93
+
94
+ When /^I attach the file at "([^\"]*)" to "([^\"]*)"$/ do |filename, field|
95
+ path = File.join(Rails.root, "features", "fixtures", filename)
96
+ attach_file(field, path)
97
+ end
98
+
99
+ Then /^I should see "([^\"]*)"$/ do |text|
100
+ response.body.should =~ /#{Regexp.escape(text)}/m
101
+ end
102
+
103
+ Then /^I should not see "([^\"]*)"$/ do |text|
104
+ response.body.should_not =~ /#{Regexp.escape(text)}/m
105
+ end
106
+
107
+ Then /^the "([^\"]*)" checkbox should be checked$/ do |label|
108
+ field_labeled(label).should be_checked
109
+ end
110
+
111
+ Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
112
+ field_labeled(label).should_not be_checked
113
+ end
114
+
115
+ Then /^the "([^\"]*)" item from "([^\"]*)" should be selected$/ do |item, label|
116
+ field_locate(label).should have_tag("option[selected]", item)
117
+ end
118
+
119
+ Then /^the "([^\"]*)" field should contain "([^\"]*)"$/ do |field, value|
120
+ field_labeled(field).value.should =~ /#{value}/
121
+ end
122
+
123
+ Then /^the "([^\"]*)" field should not contain "([^\"]*)"$/ do |field, value|
124
+ field_labeled(field).value.should_not =~ /#{value}/
125
+ end
126
+
127
+ Then /^I should see a link to (.+)$/ do |page|
128
+ response.should have_tag("a[href=?]", path_to(page))
129
+ end
130
+
131
+ Then /^I should see a form with (delete|post|put|get) method to (.+)$/ do |method, page|
132
+ if ["delete", "put", "post"].include?(method)
133
+ form_tag = "form[method=post][action=?]"
134
+ else
135
+ form_tag = "form[method=get][action=?]"
136
+ end
137
+
138
+ response.body.should have_tag(form_tag, path_to(page)) do
139
+ if ["delete", "put"].include?(method)
140
+ with_tag("input[type=hidden][name=_method][value=?]", method)
141
+ else
142
+ without_tag("input[type=hidden][name=_method][value=?]", "delete")
143
+ without_tag("input[type=hidden][name=_method][value=?]", "put")
144
+ end
145
+ end
146
+ end
147
+
148
+ Then /^I should see a select with :$/ do |select_table|
149
+ select_table.hashes.each do |hash|
150
+ response.should have_tag("option", hash["display"])
151
+ end
152
+ end
153
+
154
+ Then /^I should be on (.+)$/ do |page_name|
155
+ URI.parse(current_url).path.should == path_to(page_name)
156
+ end
@@ -0,0 +1,56 @@
1
+ ENV["RACK_ENV"] = "test"
2
+
3
+ gem "rspec", "~> 1.2.0"
4
+ gem "rack-test", ">= 0.4.0"
5
+ gem "webrat", ">= 0.5.0"
6
+
7
+ # Load app
8
+ app_file = File.join(File.dirname(__FILE__), *%w[.. .. app.rb])
9
+ require app_file
10
+
11
+ require "spec/expectations"
12
+ require "rack/test"
13
+ require "webrat"
14
+ require "sequel/extensions/migration"
15
+
16
+ # Webrat setup
17
+ Webrat.configure do |config|
18
+ config.mode = :rack
19
+ end
20
+
21
+ # Set the Sinatra environment
22
+ <%= name.camelize %>::App.configure do |c|
23
+ c.set :environment, :test
24
+ c.disable :run
25
+ c.enable :raise_errors
26
+ c.disable :logging
27
+ end
28
+
29
+ class <%= name.camelize %>World
30
+ include Rack::Test::Methods
31
+ include Webrat::Methods
32
+ include Webrat::Matchers
33
+
34
+ Webrat::Methods.delegate_to_session :response
35
+
36
+ def app
37
+ <%= name.camelize %>::App
38
+ end
39
+ end
40
+
41
+ # Cucumber world setup
42
+ World { <%= name.camelize %>World.new }
43
+
44
+ Before do
45
+ Sequel::Model.db.tables.each do |table_name|
46
+ Sequel::Model.db.drop_table table_name
47
+ end
48
+ dirname = File.join(File.dirname(__FILE__), "..", "..", "migrations")
49
+ Sequel::Migrator.apply(Sequel::Model.db, dirname) if File.directory?(dirname)
50
+ end
51
+
52
+ After do
53
+ Sequel::Model.db.tables.each do |table_name|
54
+ Sequel::Model.db["TRUNCATE #{table_name}"]
55
+ end
56
+ end
@@ -0,0 +1,16 @@
1
+ module NavigationHelpers
2
+ def path_to(page_name)
3
+ case page_name
4
+ when /the home page/i
5
+ "/"
6
+ else
7
+ if page_name.include? "/"
8
+ page_name # page_name is already a path
9
+ else
10
+ raise "Can't find mapping from \"#{page_name}\" to a path."
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ World(NavigationHelpers)
@@ -0,0 +1,26 @@
1
+ defaults:
2
+ install_options: --no-ri --no-rdoc
3
+ gems:
4
+ - name: thin
5
+ - name: sinatra
6
+ version: ">= 0.9.4"
7
+ - name: haml
8
+ version: ">= 2.2.2"
9
+ - name: yajl-ruby
10
+ - name: raggi-async_sinatra
11
+ - name: kamk-pg
12
+ - name: sequel
13
+ - name: cucumber
14
+ verison: ">= 0.3.98"
15
+ - name: rack-test
16
+ version: ">= 0.4.1"
17
+ - name: webrat
18
+ version: ">= 0.5.0"
19
+ - name: rspec
20
+ - name: openhood-rspec_sequel_matchers
21
+ - name: nakajima-rack-flash
22
+ - name: test-unit
23
+ version: "~> 1.2.3"
24
+ - name: JosephHalter-string_cleaner
25
+ - name: openhood-sinatra_rake_tasks
26
+ - name: cehoffman-sinatra-respond_to
@@ -0,0 +1,17 @@
1
+ # Override escape to use bytesize for multibyte char compatibility
2
+ # Use the unicode modifier when matching a UTF-8 String on Ruby >= 1.9
3
+ module Rack
4
+ module Utils
5
+ def escape(s)
6
+ regexp = case
7
+ when s.respond_to?(:encoding) && s.encoding === Encoding.find('UTF-8')
8
+ /([^ a-zA-Z0-9_.-]+)/u
9
+ else
10
+ /([^ a-zA-Z0-9_.-]+)/n
11
+ end
12
+ s.to_s.gsub(regexp) {
13
+ '%'+$1.unpack('H2'*bytesize($1)).join('%').upcase
14
+ }.tr(' ', '+')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,35 @@
1
+ ENV["RACK_ENV"] = "test"
2
+
3
+ # Load the Sinatra app
4
+ require File.join(File.dirname(__FILE__), "..", "app")
5
+
6
+ # Load the testing libraries
7
+ require "spec"
8
+ require "sequel/extensions/migration"
9
+ require "rspec_sequel_matchers"
10
+
11
+ # Set the Sinatra environment
12
+ <%= name.camelize %>::App.configure do |c|
13
+ c.set :environment, :test
14
+ c.disable :run
15
+ c.enable :raise_errors
16
+ c.disable :logging
17
+ end
18
+
19
+ Spec::Runner.configure do |config|
20
+ config.include(RspecSequel::Matchers)
21
+
22
+ config.before(:suite) do
23
+ Sequel::Model.db.tables.each do |table_name|
24
+ Sequel::Model.db.drop_table table_name
25
+ end
26
+ dirname = File.join(File.dirname(__FILE__), "..", "migrations")
27
+ Sequel::Migrator.apply(Sequel::Model.db, dirname) if File.directory?(dirname)
28
+ end
29
+
30
+ config.after(:each) do
31
+ Sequel::Model.db.tables.each do |table_name|
32
+ Sequel::Model.db["TRUNCATE #{table_name}"]
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,59 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{sinatra_app_gen}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Jonathan Tron", "Joseph Halter"]
12
+ s.date = %q{2009-08-27}
13
+ s.default_executable = %q{sinatra_app}
14
+ s.description = %q{Our default app template}
15
+ s.email = %q{team@openhood.com}
16
+ s.executables = ["sinatra_app"]
17
+ s.files = [
18
+ ".gitignore",
19
+ "Rakefile",
20
+ "VERSION",
21
+ "VERSION.yml",
22
+ "bin/sinatra_app",
23
+ "lib/generators/sinatra_app/sinatra_app_generator.rb",
24
+ "lib/generators/sinatra_app/templates/Rakefile.erb",
25
+ "lib/generators/sinatra_app/templates/app.rb.erb",
26
+ "lib/generators/sinatra_app/templates/config.ru.erb",
27
+ "lib/generators/sinatra_app/templates/features/step_definitions/webrat_steps.rb.erb",
28
+ "lib/generators/sinatra_app/templates/features/support/env.rb.erb",
29
+ "lib/generators/sinatra_app/templates/features/support/paths.rb.erb",
30
+ "lib/generators/sinatra_app/templates/geminstaller.yml.erb",
31
+ "lib/generators/sinatra_app/templates/lib/rack_fix.rb.erb",
32
+ "lib/generators/sinatra_app/templates/spec/spec_helper.rb.erb",
33
+ "sinatra_app_gen.gemspec"
34
+ ]
35
+ s.homepage = %q{http://github.com/openhood/sinatra_app_gen}
36
+ s.rdoc_options = ["--charset=UTF-8"]
37
+ s.require_paths = ["lib"]
38
+ s.rubygems_version = %q{1.3.4}
39
+ s.summary = %q{Creates a new Sinatra / Sequel / rspec / cucumber app.}
40
+
41
+ if s.respond_to? :specification_version then
42
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
43
+ s.specification_version = 3
44
+
45
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
46
+ s.add_runtime_dependency(%q<rspec>, ["~> 1.2.6"])
47
+ s.add_runtime_dependency(%q<cucumber>, ["~> 0.3.97"])
48
+ s.add_runtime_dependency(%q<sequel>, [">= 3.2.0"])
49
+ else
50
+ s.add_dependency(%q<rspec>, ["~> 1.2.6"])
51
+ s.add_dependency(%q<cucumber>, ["~> 0.3.97"])
52
+ s.add_dependency(%q<sequel>, [">= 3.2.0"])
53
+ end
54
+ else
55
+ s.add_dependency(%q<rspec>, ["~> 1.2.6"])
56
+ s.add_dependency(%q<cucumber>, ["~> 0.3.97"])
57
+ s.add_dependency(%q<sequel>, [">= 3.2.0"])
58
+ end
59
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: openhood-sinatra_app_gen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jonathan Tron
8
+ - Joseph Halter
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-08-27 00:00:00 -07:00
14
+ default_executable: sinatra_app
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rspec
18
+ type: :runtime
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 1.2.6
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: cucumber
28
+ type: :runtime
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 0.3.97
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: sequel
38
+ type: :runtime
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 3.2.0
45
+ version:
46
+ description: Our default app template
47
+ email: team@openhood.com
48
+ executables:
49
+ - sinatra_app
50
+ extensions: []
51
+
52
+ extra_rdoc_files: []
53
+
54
+ files:
55
+ - .gitignore
56
+ - Rakefile
57
+ - VERSION
58
+ - VERSION.yml
59
+ - bin/sinatra_app
60
+ - lib/generators/sinatra_app/sinatra_app_generator.rb
61
+ - lib/generators/sinatra_app/templates/Rakefile.erb
62
+ - lib/generators/sinatra_app/templates/app.rb.erb
63
+ - lib/generators/sinatra_app/templates/config.ru.erb
64
+ - lib/generators/sinatra_app/templates/features/step_definitions/webrat_steps.rb.erb
65
+ - lib/generators/sinatra_app/templates/features/support/env.rb.erb
66
+ - lib/generators/sinatra_app/templates/features/support/paths.rb.erb
67
+ - lib/generators/sinatra_app/templates/geminstaller.yml.erb
68
+ - lib/generators/sinatra_app/templates/lib/rack_fix.rb.erb
69
+ - lib/generators/sinatra_app/templates/spec/spec_helper.rb.erb
70
+ - sinatra_app_gen.gemspec
71
+ has_rdoc: false
72
+ homepage: http://github.com/openhood/sinatra_app_gen
73
+ licenses:
74
+ post_install_message:
75
+ rdoc_options:
76
+ - --charset=UTF-8
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ version:
91
+ requirements: []
92
+
93
+ rubyforge_project:
94
+ rubygems_version: 1.3.5
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: Creates a new Sinatra / Sequel / rspec / cucumber app.
98
+ test_files: []
99
+