hazel 0.0.5 → 0.0.6
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/Gemfile +4 -3
- data/Gemfile.lock +13 -3
- data/lib/hazel/cli.rb +19 -8
- data/lib/hazel/version.rb +1 -1
- data/lib/templates/Capfile +3 -0
- data/lib/templates/Gemfile +10 -3
- data/lib/templates/Rakefile +0 -8
- data/lib/templates/app.rb +0 -3
- data/lib/templates/config/deploy.rb +87 -0
- data/lib/templates/config/deploy/production.rb +3 -0
- data/lib/templates/views/welcome.erb +2 -2
- data/spec/hazel/cli_spec.rb +15 -0
- data/spec/hazel/version_spec.rb +27 -0
- metadata +41 -11
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,11 +1,21 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
hazel (0.0.6)
|
5
|
+
thor (~> 0.16)
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: http://rubygems.org/
|
3
9
|
specs:
|
4
|
-
|
10
|
+
minitest (4.2.0)
|
11
|
+
rake (0.9.2.2)
|
12
|
+
thor (0.16.0)
|
5
13
|
|
6
14
|
PLATFORMS
|
7
15
|
ruby
|
8
16
|
|
9
17
|
DEPENDENCIES
|
10
|
-
bundler (~> 1.
|
11
|
-
|
18
|
+
bundler (~> 1.2)
|
19
|
+
hazel!
|
20
|
+
minitest (~> 4.2)
|
21
|
+
rake (~> 0.9)
|
data/lib/hazel/cli.rb
CHANGED
@@ -10,6 +10,7 @@ module Hazel
|
|
10
10
|
|
11
11
|
desc "Creates a new Sinatra application"
|
12
12
|
argument :name, :type => :string, :desc => "The name of the new application"
|
13
|
+
class_option :capistrano, :type => :boolean, :desc => "Include Capistrano configuration"
|
13
14
|
class_option :database, :aliases => "-d", :default => "sqlite", :desc => "The type of database to use"
|
14
15
|
class_option :no_database, :type => :boolean, :desc => "Exclude all database configuration files"
|
15
16
|
class_option :redis, :type => :boolean, :desc => "Include Redis configuration"
|
@@ -82,6 +83,15 @@ module Hazel
|
|
82
83
|
copy_file "README.md", File.join(@app_path, "README.md")
|
83
84
|
end
|
84
85
|
|
86
|
+
def create_capistrano_config
|
87
|
+
if @capistrano
|
88
|
+
copy_file "Capfile", File.join(@app_path, "Capfile")
|
89
|
+
empty_directory File.join(@app_path, 'config/deploy')
|
90
|
+
template "config/deploy.rb", File.join(@app_path, "config/deploy.rb")
|
91
|
+
template "config/deploy/production.rb", File.join(@app_path, "config/deploy/production.rb")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
85
95
|
def create_db_config
|
86
96
|
template("config/db.yml", File.join(@app_path, "config/db.yml")) unless @no_database
|
87
97
|
end
|
@@ -101,22 +111,23 @@ module Hazel
|
|
101
111
|
def create_rvm_gemset
|
102
112
|
if @rvm_gemset
|
103
113
|
rvm_path = File.expand_path(ENV['rvm_path'] || '~/.rvm')
|
104
|
-
$LOAD_PATH.unshift File.join(rvm_path, 'lib')
|
105
114
|
require 'rvm'
|
106
115
|
|
107
|
-
|
108
|
-
data = "rvm --create use #{rvm_ruby}"
|
116
|
+
rvm_env = RVM::Environment.new(ENV['RUBY_VERSION'])
|
109
117
|
|
110
|
-
|
111
|
-
|
118
|
+
rvm_env.gemset_create(@app_path)
|
119
|
+
rvm_env.gemset_use(@app_path)
|
120
|
+
|
121
|
+
gemset = "#{ENV['RUBY_VERSION']}@#{@app_path}"
|
112
122
|
|
113
|
-
|
123
|
+
create_file(File.join(@app_path, '.rvmrc'), "rvm use #{gemset}")
|
124
|
+
run("rvm rvmrc trust #{@app_path}")
|
114
125
|
|
115
126
|
unless @no_bundle_install
|
116
127
|
rvm_env.chdir(@app_path) do
|
117
|
-
say_status :installing, "All dependencies into #{
|
128
|
+
say_status :installing, "All dependencies into #{gemset}"
|
118
129
|
rvm_env.system "gem install bundler"
|
119
|
-
rvm_env.
|
130
|
+
rvm_env.run_command 'bundle install'
|
120
131
|
end
|
121
132
|
|
122
133
|
@no_bundle_install = true
|
data/lib/hazel/version.rb
CHANGED
data/lib/templates/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source :rubygems
|
2
2
|
|
3
3
|
# App Stack
|
4
|
-
gem "sinatra", "~> 1.3
|
4
|
+
gem "sinatra", "~> 1.3"
|
5
5
|
|
6
6
|
<% unless @no_database -%>
|
7
7
|
# Database Stack
|
@@ -25,10 +25,17 @@ gem "mongodb_model", "~> 2.1"
|
|
25
25
|
gem "hiredis", "~> 0.4"
|
26
26
|
gem "redis", "~> 3.0", :require => ["redis/connection/hiredis", "redis"]
|
27
27
|
gem "fakeredis", "~> 0.4"
|
28
|
-
<% end -%>
|
29
28
|
|
29
|
+
<% end -%>
|
30
30
|
group :development do
|
31
31
|
gem "rake", "~> 0.9"
|
32
|
-
gem "minitest", "~>
|
32
|
+
gem "minitest", "~> 4.2"
|
33
33
|
gem "rack-test", "~> 0.6"
|
34
|
+
<% if @capistrano -%>
|
35
|
+
gem "capistrano", "~> 2.13"
|
36
|
+
gem "capistrano-ext", "~> 1.2"
|
37
|
+
<% if @rvm_gemset -%>
|
38
|
+
gem "rvm-capistrano", "~> 1.2"
|
39
|
+
<% end -%>
|
40
|
+
<% end -%>
|
34
41
|
end
|
data/lib/templates/Rakefile
CHANGED
@@ -7,14 +7,6 @@ Rake::TestTask.new(:spec) do |t|
|
|
7
7
|
t.ruby_opts = ['-rubygems'] if defined? Gem
|
8
8
|
end
|
9
9
|
|
10
|
-
task :kicker do
|
11
|
-
exec 'kicker -r ruby -e "clear && bundle exec rake" spec lib'
|
12
|
-
end
|
13
|
-
|
14
|
-
task :sass do
|
15
|
-
exec 'sass --watch --scss --style compressed sass/main.scss:public/stylesheets/main.css'
|
16
|
-
end
|
17
|
-
|
18
10
|
<% unless @no_database -%>
|
19
11
|
namespace :db do
|
20
12
|
desc "Run all migrations in db/migrate"
|
data/lib/templates/app.rb
CHANGED
@@ -0,0 +1,87 @@
|
|
1
|
+
<% if @rvm_gemset -%>
|
2
|
+
require "rvm/capistrano"
|
3
|
+
|
4
|
+
set :rvm_ruby_string, "ruby-1.9.3"
|
5
|
+
set :rvm_type, :system
|
6
|
+
|
7
|
+
<% end -%>
|
8
|
+
require "bundler/capistrano"
|
9
|
+
require "capistrano/ext/multistage"
|
10
|
+
|
11
|
+
#############################################################
|
12
|
+
# Stages
|
13
|
+
#############################################################
|
14
|
+
|
15
|
+
set :default_stage, "production"
|
16
|
+
set :stages, %w(production)
|
17
|
+
|
18
|
+
#############################################################
|
19
|
+
# Application
|
20
|
+
#############################################################
|
21
|
+
|
22
|
+
set :application, "<%= @name %>"
|
23
|
+
set :deploy_to, "/var/www/apps/#{application}"
|
24
|
+
set :keep_releases, 2
|
25
|
+
|
26
|
+
after "deploy:update", "deploy:cleanup"
|
27
|
+
|
28
|
+
#############################################################
|
29
|
+
# Settings
|
30
|
+
#############################################################
|
31
|
+
|
32
|
+
set :user, "deploy"
|
33
|
+
set :use_sudo, false
|
34
|
+
|
35
|
+
ssh_options[:forward_agent] = true
|
36
|
+
|
37
|
+
#############################################################
|
38
|
+
# Git
|
39
|
+
#############################################################
|
40
|
+
|
41
|
+
set :scm, :git
|
42
|
+
set :deploy_via, :remote_cache
|
43
|
+
|
44
|
+
set :repository, "git@github.com:/GITHUB_USER/#{application}.git"
|
45
|
+
|
46
|
+
namespace :deploy do
|
47
|
+
task :set_branch do
|
48
|
+
set(:branch) { Capistrano::CLI.ui.ask("Branch to deploy (or press ENTER to deploy from master): ") }
|
49
|
+
|
50
|
+
if branch.empty?
|
51
|
+
set :branch, "master"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
before "deploy:update" , "deploy:set_branch"
|
56
|
+
end
|
57
|
+
|
58
|
+
<% if @rvm_gemset -%>
|
59
|
+
#############################################################
|
60
|
+
# RVM
|
61
|
+
#############################################################
|
62
|
+
|
63
|
+
after "deploy", "rvm:trust_rvmrc"
|
64
|
+
|
65
|
+
namespace :rvm do
|
66
|
+
task :trust_rvmrc do
|
67
|
+
run "rvm rvmrc trust #{current_release}"
|
68
|
+
run "rvm rvmrc trust /var/www/apps/#{application}/current"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
<% end -%>
|
73
|
+
#############################################################
|
74
|
+
# Passenger
|
75
|
+
#############################################################
|
76
|
+
|
77
|
+
namespace :deploy do
|
78
|
+
task :start do
|
79
|
+
end
|
80
|
+
|
81
|
+
task :stop do
|
82
|
+
end
|
83
|
+
|
84
|
+
task :restart, :roles => :app, :except => { :no_release => true } do
|
85
|
+
run "touch #{File.join(current_path,'tmp','restart.txt')}"
|
86
|
+
end
|
87
|
+
end
|
@@ -9,8 +9,8 @@
|
|
9
9
|
<div class="sidebar">
|
10
10
|
<h3>Environment</h3>
|
11
11
|
<ul>
|
12
|
-
<li><b>Ruby:</b> <%=
|
13
|
-
<li><b>Environment:</b> <%=
|
12
|
+
<li><b>Ruby:</b> <%= RUBY_VERSION %></li>
|
13
|
+
<li><b>Environment:</b> <%= ENV["RACK_ENV"] %></li>
|
14
14
|
<li><b>Server:</b> <%= @env["SERVER_SOFTWARE"] %></li>
|
15
15
|
<li><b>Port:</b> <%= @env["SERVER_PORT"] %></li>
|
16
16
|
</ul>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'fakefs'
|
2
|
+
require_relative "../spec_helper"
|
3
|
+
require_relative "../../lib/hazel/cli"
|
4
|
+
|
5
|
+
describe Hazel::VERSION do
|
6
|
+
subject { Hazel::CLI }
|
7
|
+
|
8
|
+
describe "source_root" do
|
9
|
+
it "should return with a full path" do
|
10
|
+
pwd = File.dirname(__FILE__)
|
11
|
+
template_path = pwd.sub 'spec/hazel', 'lib/templates'
|
12
|
+
subject.source_root.must_equal template_path
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
require_relative "../../lib/hazel/version"
|
3
|
+
|
4
|
+
describe Hazel::VERSION do
|
5
|
+
subject { Hazel::VERSION }
|
6
|
+
|
7
|
+
let(:major) { subject::MAJOR }
|
8
|
+
let(:minor) { subject::MINOR }
|
9
|
+
let(:tiny) { subject::TINY }
|
10
|
+
let(:string) { subject::STRING }
|
11
|
+
|
12
|
+
it "should have a major version" do
|
13
|
+
major.must_be_kind_of Fixnum
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should have a minor version" do
|
17
|
+
minor.must_be_kind_of Fixnum
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should have a tiny version" do
|
21
|
+
tiny.must_be_kind_of Fixnum
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should have a string representation of the version number" do
|
25
|
+
string.must_equal "#{major}.#{minor}.#{tiny}"
|
26
|
+
end
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hazel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,30 +9,56 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: '0.16'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.16'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: bundler
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version: '1.
|
37
|
+
version: '1.2'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.2'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: minitest
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '4.2'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.2'
|
36
62
|
description: Hazel is a generator for Sinatra apps, heavily based on snfn
|
37
63
|
email: peter@c7.se
|
38
64
|
executables:
|
@@ -44,7 +70,10 @@ files:
|
|
44
70
|
- lib/hazel/cli.rb
|
45
71
|
- lib/hazel/version.rb
|
46
72
|
- lib/templates/app.rb
|
73
|
+
- lib/templates/Capfile
|
47
74
|
- lib/templates/config/db.yml
|
75
|
+
- lib/templates/config/deploy/production.rb
|
76
|
+
- lib/templates/config/deploy.rb
|
48
77
|
- lib/templates/config/initializers/database.rb
|
49
78
|
- lib/templates/config/initializers/redis.rb
|
50
79
|
- lib/templates/config/redis.yml
|
@@ -62,6 +91,8 @@ files:
|
|
62
91
|
- lib/templates/views/welcome.erb
|
63
92
|
- lib/templates/public/images/.gitkeep
|
64
93
|
- lib/templates/public/javascripts/.gitkeep
|
94
|
+
- spec/hazel/cli_spec.rb
|
95
|
+
- spec/hazel/version_spec.rb
|
65
96
|
- spec/spec_helper.rb
|
66
97
|
- spec/string_extension_spec.rb
|
67
98
|
- Gemfile
|
@@ -69,8 +100,7 @@ files:
|
|
69
100
|
- MIT-LICENSE
|
70
101
|
- README.md
|
71
102
|
- Rakefile
|
72
|
-
-
|
73
|
-
YmluL2hhemVs
|
103
|
+
- bin/hazel
|
74
104
|
homepage: http://c7.github.com/hazel/
|
75
105
|
licenses:
|
76
106
|
- MIT-LICENSE
|
@@ -92,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
122
|
version: '0'
|
93
123
|
requirements: []
|
94
124
|
rubyforge_project:
|
95
|
-
rubygems_version: 1.8.
|
125
|
+
rubygems_version: 1.8.24
|
96
126
|
signing_key:
|
97
127
|
specification_version: 3
|
98
128
|
summary: A simple Sinatra app generator.
|