sinatra_bootstrap 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -27,6 +27,8 @@ hold your application.
27
27
  The `rackup` variant will also generate a `config.ru` file suitable for
28
28
  deploying your application on a Rack-based server.
29
29
 
30
+ The optional `pow` variant may be added to generate a `tmp/always_restart.txt` to configure pow.cx to restart the server after each request.
31
+
30
32
  ### Heroku
31
33
 
32
34
  take_the_stage heroku
@@ -9,10 +9,18 @@ module SinatraBootstrap
9
9
  end
10
10
 
11
11
  desc 'sinatra', 'Installs Gemfile and main.rb'
12
- method_option :rackup, :type => :boolean, :desc => 'Create a config.ru file', :default => false
12
+ method_option :pow,
13
+ :type => :boolean,
14
+ :default => false,
15
+ :desc => 'Create a tmp/always_restart.txt for pow'
16
+ method_option :rackup,
17
+ :type => :boolean,
18
+ :default => false,
19
+ :desc => 'Create a config.ru file'
13
20
  def sinatra
14
21
  copy_file 'Gemfile-bare', 'Gemfile'
15
22
  copy_file 'config.ru' if options[:rackup]
23
+ always_restart if options[:pow]
16
24
  copy_file 'main.rb'
17
25
  say 'Simple startup:'
18
26
  say ' bundle install'
@@ -20,15 +28,27 @@ module SinatraBootstrap
20
28
  end
21
29
 
22
30
  desc 'heroku', 'Install base files for running Sinatra on Heroku'
31
+ method_option :pow,
32
+ :type => :boolean,
33
+ :default => false,
34
+ :desc => 'Create a tmp/always_restart.txt for pow'
23
35
  def heroku
24
36
  copy_file 'Gemfile-heroku', 'Gemfile'
25
37
  copy_file 'config.ru'
26
38
  copy_file 'Procfile'
27
39
  copy_file 'main.rb'
40
+ always_restart if options[:pow]
28
41
  say 'Simple development startup:'
29
42
  say ' bundle install'
30
43
  say ' foreman start'
31
44
  end
32
- end
33
45
 
46
+ no_tasks do
47
+ def always_restart
48
+ Dir::mkdir("tmp") unless File.exists?("tmp")
49
+ FileUtils.touch File.join 'tmp', 'always_restart.txt'
50
+ end
51
+ end
52
+
53
+ end
34
54
  end
@@ -66,6 +66,17 @@ describe SinatraBootstrap::Stage do
66
66
  end
67
67
  end
68
68
  end
69
+
70
+ context "with --pow" do
71
+ let(:sinatra) { described_class .start ['sinatra', '--pow'] }
72
+
73
+ it "creates tmp/always_restart.txt" do
74
+ in_tmpdir do
75
+ capture(:stdout) { sinatra }
76
+ File.exists?('tmp/always_restart.txt').should be_true
77
+ end
78
+ end
79
+ end
69
80
  end
70
81
 
71
82
  describe "#heroku" do
@@ -117,5 +128,16 @@ describe SinatraBootstrap::Stage do
117
128
  File.exists?('Procfile').should be_true
118
129
  end
119
130
  end
131
+
132
+ context "with --pow" do
133
+ let(:sinatra) { described_class .start ['heroku', '--pow'] }
134
+
135
+ it "creates tmp/always_restart.txt" do
136
+ in_tmpdir do
137
+ capture(:stdout) { sinatra }
138
+ File.exists?('tmp/always_restart.txt').should be_true
139
+ end
140
+ end
141
+ end
120
142
  end
121
143
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-25 00:00:00.000000000 Z
12
+ date: 2012-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70305607699660 !ruby/object:Gem::Requirement
16
+ requirement: &70265417658000 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.14'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70305607699660
24
+ version_requirements: *70265417658000
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70305607698320 !ruby/object:Gem::Requirement
27
+ requirement: &70265417657400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.9'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70305607698320
35
+ version_requirements: *70265417657400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70305607697240 !ruby/object:Gem::Requirement
38
+ requirement: &70265417656800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '2.9'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70305607697240
46
+ version_requirements: *70265417656800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70305607696720 !ruby/object:Gem::Requirement
49
+ requirement: &70265417656220 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.6'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70305607696720
57
+ version_requirements: *70265417656220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70305607696160 !ruby/object:Gem::Requirement
60
+ requirement: &70265417655660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '1.0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70305607696160
68
+ version_requirements: *70265417655660
69
69
  description: Quick Sinatra app setup
70
70
  email: ryan@coshx.com
71
71
  executables: