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 +5 -0
- data/Rakefile +20 -0
- data/VERSION +1 -0
- data/VERSION.yml +4 -0
- data/bin/sinatra_app +21 -0
- data/lib/generators/sinatra_app/sinatra_app_generator.rb +63 -0
- data/lib/generators/sinatra_app/templates/Rakefile.erb +6 -0
- data/lib/generators/sinatra_app/templates/app.rb.erb +75 -0
- data/lib/generators/sinatra_app/templates/config.ru.erb +11 -0
- data/lib/generators/sinatra_app/templates/features/step_definitions/webrat_steps.rb.erb +156 -0
- data/lib/generators/sinatra_app/templates/features/support/env.rb.erb +56 -0
- data/lib/generators/sinatra_app/templates/features/support/paths.rb.erb +16 -0
- data/lib/generators/sinatra_app/templates/geminstaller.yml.erb +26 -0
- data/lib/generators/sinatra_app/templates/lib/rack_fix.rb.erb +17 -0
- data/lib/generators/sinatra_app/templates/spec/spec_helper.rb.erb +35 -0
- data/sinatra_app_gen.gemspec +59 -0
- metadata +99 -0
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
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,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,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
|
+
|