pah 0.0.6 → 0.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca7779b86d6b7f41a01a1e65781bafb4672ab0e7
4
- data.tar.gz: ca2e7f593804f1c6b339bb013a7c5e42e9a21aee
3
+ metadata.gz: a4765a78110c43c30419c4663a9c43c9cb39d0d3
4
+ data.tar.gz: 30acee7235a0f5efccbefa417e24bcd56f86e61c
5
5
  SHA512:
6
- metadata.gz: 9279cc92b0f362be8e3aca6e2ea7d76e974d71c52cafaa1c4979a2c1d7e7ba4986984f40a96a193ff763f2f5df6054b6d44f29a00ca574b35133d8c7192376d7
7
- data.tar.gz: f139d97605b448ff0d14b7d29767af4cfbbd6c95d2932f9d6aa0ce11e64a578e73ccacc9d403ce1053fe634ce2df4b1cbf02ca5c8c2a7d5de75a492f11057611
6
+ metadata.gz: 57e830716b36d43599f7e98d3f4777a2fdea3cf105f7204599de93a829e4b16f7452ca4d4d30e49f9ab7fb971a7d279db72909106b66c1f3cf79d49dca74b4e1
7
+ data.tar.gz: 88ec45c1e765d69e346f620caf9e983d5e09ece3b5da7e8b80f2ff00b483ab2d2ab7645788993ec7aecc85f4c7c6ae9f94f5b9283e211a36631c8bd02dbacc5b
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ pah
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.0.0
data/CHANGELOG.md CHANGED
@@ -1,13 +1,25 @@
1
1
  # Changelog
2
2
 
3
- ## 0.0.7 (unreleased)
3
+ ## 0.0.7 (October 11, 2013)
4
4
 
5
5
  ### features
6
6
 
7
7
  ### improvements
8
8
 
9
+ - use environment variable to define secret_token and secret_key_base
10
+ - complete refactor of Heroku app creation and configuration
11
+ - ask for user credentials before creating the Heroku app
12
+ - set the correct timezone config on heroku after creating the app
13
+ - move RVM config from .rvmrc to .ruby-version and .ruby-gemset files
14
+ - refactor `integration.rake` and `deploy.rake` to handle projects with staging and production apps
15
+
9
16
  ### bug fixes
10
17
 
18
+ - don't break if you choose an already taken name for your Heroku app
19
+ - remove the `root_url` from application.html.haml since there's no default `root_url`
20
+ - remove duplicated gems (foreman and letter_opener) from the default Gemfile
21
+ - remove the deleted shoulda_matcher branch. Locked in 2.4.0 version
22
+
11
23
  ## 0.0.6 (August 16, 2013)
12
24
 
13
25
  ### features
@@ -0,0 +1 @@
1
+ GEMSET
@@ -0,0 +1 @@
1
+ RUBY_VERSION
@@ -25,19 +25,18 @@ gem "rails_12factor", "0.0.2", group: :production
25
25
  # gem 'acts_as_hashed', '1.0.0'
26
26
 
27
27
  group :development do
28
- gem "letter_opener", '1.1.1'
29
28
  gem 'foreman', '0.63.0'
30
29
  gem 'jumpup', '0.0.1'
31
30
  gem 'better_errors', '0.9.0'
32
31
  gem 'binding_of_caller', '0.7.2'
33
32
  gem "letter_opener", '1.1.1'
34
- # gem 'foreman', '0.63.0'
33
+ gem "colored", '1.2', require: false
35
34
  # gem 'guard-rspec', '3.0.2'
36
35
  end
37
36
 
38
37
  group :test do
39
38
  # See https://github.com/thoughtbot/shoulda-matchers/issues/270
40
- gem "shoulda-matchers", github: "thoughtbot/shoulda-matchers" , branch: 'dp-rails-four'
39
+ gem "shoulda-matchers", '2.4.0'
41
40
  gem 'simplecov', '0.7.1', require: false
42
41
  gem 'email_spec', '1.4.0'
43
42
  gem 'capybara', '2.1.0'
@@ -50,7 +49,7 @@ group :development, :test do
50
49
  gem 'rspec-rails', '2.13.2'
51
50
  gem 'factory_girl_rails', '4.2.1'
52
51
  gem 'pry-rails', '0.3.1'
53
- gem 'dotenv-rails', '0.8.0'
52
+ gem 'dotenv-rails', '0.9.0'
54
53
  gem 'awesome_print', '1.1.0'
55
54
  end
56
55
 
@@ -45,7 +45,7 @@
45
45
  / = link_to "Acesse com Facebook", "/auth/facebook", :id => "facebook-connect"
46
46
 
47
47
  #logo<
48
- = link_to "Logo", root_url
48
+ = link_to "Logo", "/"
49
49
  = render 'flash_messages'
50
50
  %hr
51
51
  #container
@@ -0,0 +1,108 @@
1
+ require 'colored' if Rails.env.development?
2
+
3
+ def run_with_clean_env(command, capture_output=false)
4
+ Bundler.with_clean_env { capture_output ? `#{command}` : sh(command) }
5
+ end
6
+
7
+ def confirm(message)
8
+ print "\n#{message}\nAre you sure? [yN] "
9
+ raise 'Ok. Bye...' unless STDIN.gets.chomp.downcase == 'y'
10
+ end
11
+
12
+ namespace :heroku do
13
+ PRODUCTION_APP = ENV['PRODUCTION_APP'] || ENV['APP']
14
+ STAGING_APP = ENV['STAGING_APP'] || ENV['APP']
15
+
16
+ def has_database?(app)
17
+ database_url = run_with_clean_env("heroku config -s --app #{app} | grep DATABASE_URL", true).strip
18
+ not database_url.blank?
19
+ end
20
+
21
+ def backup(app)
22
+ return unless has_database?(app)
23
+ puts "--> Backing up database via Heroku".magenta
24
+ run_with_clean_env("heroku pgbackups:capture --expire --app #{app}")
25
+ end
26
+
27
+ def migrate(app)
28
+ puts "--> Migrating".magenta
29
+ run_with_clean_env("heroku run rake db:migrate --app #{app}")
30
+ end
31
+
32
+ def seed(app)
33
+ return unless has_database?(app)
34
+ puts "--> Seeding".magenta
35
+ run_with_clean_env("heroku run rake db:seed --app #{app}")
36
+ end
37
+
38
+ def restart(app)
39
+ puts "--> Restarting".magenta
40
+ run_with_clean_env("heroku restart --app #{app}")
41
+ end
42
+
43
+ namespace :deploy do
44
+
45
+ desc "Deploy to staging"
46
+ task :staging do
47
+ APP = STAGING_APP
48
+
49
+ backup(APP) if ENV['SKIP_BACKUP'] != "true"
50
+
51
+ puts "--> Pushing".magenta
52
+ run_with_clean_env("git push git@heroku.com:#{APP}.git HEAD:master --force")
53
+
54
+ migrate(APP)
55
+ seed(APP)
56
+ restart(APP)
57
+ end
58
+
59
+ desc "Deploy to production"
60
+ task :production do
61
+ # This constant is defined to avoid problemd of copying and pasting from one environment to another
62
+ APP = PRODUCTION_APP
63
+
64
+ confirm("Going deploy to production...".red)
65
+
66
+ if ENV['SKIP_TESTS'] != "true"
67
+ puts "--> Running all specs".magenta
68
+ Rake::Task['spec'].invoke
69
+ end
70
+
71
+ print "\nPut #{APP} in maintenance mode? [Yn] ".red
72
+ maintenance = (ENV['MAINTENANCE'] == "true" or (STDIN.gets.chomp.downcase == 'y'))
73
+
74
+ if maintenance
75
+ puts "--> Setting Maintenance on".magenta
76
+ run_with_clean_env("heroku maintenance:on --app #{APP}")
77
+
78
+ puts "--> Restarting".magenta
79
+ run_with_clean_env("heroku restart --app #{APP}")
80
+
81
+ puts "--> Waiting 20 seconds to app come back (in maintenance mode)".magenta
82
+ sleep(20)
83
+ end
84
+
85
+ backup(APP) if ENV['SKIP_BACKUP'] != "true"
86
+
87
+ iso_date = Time.now.strftime('%Y-%m-%dT%H%M%S')
88
+ tag_name = "production-#{iso_date}"
89
+
90
+ puts "--> Tagging as #{tag_name}".magenta
91
+ run_with_clean_env("git tag #{tag_name} master")
92
+
93
+ puts "--> Pushing".magenta
94
+ run_with_clean_env("git push origin #{tag_name}")
95
+ run_with_clean_env("git push git@heroku.com:#{APP}.git #{tag_name}:master --force")
96
+
97
+ migrate(APP)
98
+ seed(APP)
99
+
100
+ if maintenance
101
+ puts "Setting Maintenance off".magenta
102
+ run_with_clean_env("heroku maintenance:off --app #{APP}")
103
+ end
104
+
105
+ restart(APP)
106
+ end
107
+ end
108
+ end
@@ -1,29 +1,48 @@
1
- # encoding: utf-8
1
+ require 'colored' if Rails.env.development?
2
+
3
+ def run_with_clean_env(command, capture_output=false)
4
+ Bundler.with_clean_env { capture_output ? `#{command}` : sh(command) }
5
+ end
2
6
 
3
7
  namespace :integration do
4
- APP = ENV['APP'] unless defined?(APP)
8
+ APP = ENV['STAGING_APP'] || ENV['APP']
9
+ USER = run_with_clean_env("git config --get user.name", true).strip
5
10
 
6
11
  namespace :heroku do
12
+
13
+ desc "Add Heroku git remotes"
7
14
  task :add_remote do
8
- remote = `git remote |grep heroku`
9
- sh "git remote add heroku git@heroku.com:#{APP}.git" if remote.strip.blank?
15
+ puts "--> Adding Heroku git remotes for app #{APP}".magenta
16
+
17
+ remote = run_with_clean_env("git remote | grep heroku", true).strip
18
+ run_with_clean_env("git remote add heroku git@heroku.com:#{APP}.git") if remote.blank?
10
19
  end
11
20
 
21
+ desc "Check if there's someone else integrating the project"
12
22
  task :check do
13
- var = Bundler.with_clean_env { `heroku config -s --app #{APP}|grep INTEGRATING_BY` }
14
- integrating_by = var.split('=')[1] # Eu sei que é tosco, mas foda-se
15
- user = `whoami`
16
- if !integrating_by.blank? and integrating_by != user
17
- p80 "Project is already being integrated by #{integrating_by}"
23
+ puts "--> Checking if there's already someone integrating to #{APP}".magenta
24
+
25
+ var = run_with_clean_env("heroku config -s --app #{APP} | grep INTEGRATING_BY", true).strip
26
+ integrating_by = var.split('=')[1]
27
+
28
+ integrating_by.strip! unless integrating_by.blank?
29
+
30
+ if integrating_by != USER and not integrating_by.blank?
31
+ puts "--> Project is already being integrated by '#{integrating_by}', halting"
18
32
  exit
19
33
  end
20
34
  end
35
+
36
+ desc "Lock the Heroku integration"
21
37
  task :lock do
22
- user = `whoami`.strip
23
- Bundler.with_clean_env { sh "heroku config:set INTEGRATING_BY=#{user} --app #{APP}" }
38
+ puts "--> Locking Heroku integration for you (#{USER})".magenta
39
+ run_with_clean_env("heroku config:set INTEGRATING_BY='#{USER}' --app #{APP}")
24
40
  end
41
+
42
+ desc "Unlock the Heroku integration"
25
43
  task :unlock do
26
- Bundler.with_clean_env { sh "heroku config:unset INTEGRATING_BY --app #{APP}" }
44
+ puts "--> Unlocking Heroku integration".magenta
45
+ run_with_clean_env("heroku config:unset INTEGRATING_BY --app #{APP}")
27
46
  end
28
47
  end
29
48
  end
@@ -38,6 +57,6 @@ INTEGRATION_TASKS = %w(
38
57
  spec
39
58
  integration:coverage_verify
40
59
  integration:finish
41
- heroku:deploy
60
+ heroku:deploy:staging
42
61
  integration:heroku:unlock
43
62
  )
@@ -2,7 +2,9 @@
2
2
 
3
3
  if ENV['coverage'] == 'on'
4
4
  require 'simplecov'
5
- SimpleCov.start 'rails'
5
+ SimpleCov.start 'rails' do
6
+ minimum_coverage 100
7
+ end
6
8
  end
7
9
 
8
10
  ENV["RAILS_ENV"] ||= 'test'
@@ -6,20 +6,11 @@ copy_static_file 'app/views/application/_error_messages.html.haml'
6
6
  copy_static_file 'app/views/application/_flash_messages.html.haml'
7
7
  copy_static_file 'config/unicorn.rb'
8
8
  copy_static_file 'Procfile'
9
- copy_static_file "lib/tasks/integration.rake"
10
-
11
9
  copy_static_file 'config/locales/pt-BR.yml'
12
-
13
- gsub_file 'lib/tasks/integration.rake', /PROJECT/, @app_name
14
-
15
10
  copy_static_file '.gitignore'
16
11
 
17
- create_file ".env" do
18
- <<-EOF
19
- export PRODUCTION_APP=#{@app_name}
20
- export STAGING_APP=#{@app_name}-staging
21
- EOF
22
- end
12
+ create_file ".env"
13
+ append_to_file '.env', "APP: #{@app_name}\n"
23
14
 
24
15
  git :add => '.'
25
16
  git :commit => "-aqm 'Add default stuff.'"
@@ -1,58 +1,126 @@
1
- say "Configuring Heroku application...".magenta
1
+ class HerokuApp < Rails::Generators::AppGenerator
2
+ DEFAULT_ADDONS = %w(pgbackups:auto-month loggly:mole sendgrid:starter)
2
3
 
3
- if would_you_like? "Create Heroku apps?".red
4
- config = {}
5
- heroku_name = @app_name.gsub('_','')
6
- new_heroku_name = ask "What do you want to call your app? (#{heroku_name})", :red
7
- heroku_name = new_heroku_name.present? ? new_heroku_name : heroku_name
8
- config['staging'] = would_you_like? "Create staging app? (#{heroku_name}-staging.heroku.com) [y,n]".red
9
- config['deploy'] = would_you_like? "Deploy immediately?".red
10
- config['domain'] = ask_unless_test "Add custom domain(customdomain.com) or leave blank".red
4
+ attr_reader :name, :description
11
5
 
12
- say "Creating Heroku app '#{heroku_name}.herokuapp.com'".magenta
13
- created = system("heroku create #{heroku_name}")
14
- unless created
15
- puts "Heroku app already exists, halting"
16
- exit
6
+ def initialize(name, description, staging=false)
7
+ @name = name
8
+ @description = description
9
+
10
+ create
11
+ add_secret_token
12
+ add_timezone_config
13
+ add_addons
14
+
15
+ unless staging
16
+ add_heroku_git_remote
17
+ check_canonical_domain
18
+ check_collaborators
19
+ end
17
20
  end
18
21
 
19
- if config['staging']
20
- staging_name = ask_unless_test "What do you want to call your staging app?".red
21
- staging_name = "#{heroku_name}-staging"
22
- say "Creating staging Heroku app '#{staging_name}.herokuapp.com'".magenta
23
- system("heroku create #{staging_name}")
24
- say "Add git remote heroku for Heroku deploy.".magenta
25
- git :remote => "add heroku git@heroku.com:#{heroku_name}.git"
22
+ def create
23
+ created = false
24
+ default = @name
25
+
26
+ while not created do
27
+ @name = ask "What do you want to call your Heroku #{description}? (#{default})", :red
28
+ @name = @name.present? ? name : default
29
+
30
+ say "Creating Heroku app '#{name}.herokuapp.com'".magenta
31
+ created = system "heroku create #{name}"
32
+
33
+ unless created
34
+ puts "Heroku '#{name}' app already exists or could not be created, please provide a new name"
35
+ end
36
+ end
37
+
38
+ @app
26
39
  end
27
40
 
28
- unless config['domain'].blank?
29
- run "heroku domains:add #{config['domain']}"
41
+ def add_addons
42
+ DEFAULT_ADDONS.each { |addon| add_heroku_addon(addon) }
30
43
  end
31
44
 
32
- colaborators = ask_unless_test "Add collaborators? Type the email's separated by comma.".red
45
+ def add_secret_token
46
+ say "Creating SECRET_TOKEN for Heroku '#{name}.herokuapp.com'".magenta
47
+ system "heroku config:set SECRET_TOKEN=#{SecureRandom::hex(60)} --app #{name}"
48
+ end
33
49
 
34
- if colaborators
35
- colaborators.split(",").map(&:strip).each do |email|
36
- run "heroku sharing:add #{email}"
37
- end
50
+ def add_heroku_git_remote
51
+ say "Adding Heroku git remote for deploy to '#{name}'.".magenta
52
+ git remote: "add heroku git@heroku.com:#{name}.git"
38
53
  end
39
54
 
40
- say "Adding heroku addon [PG Backups]...".magenta
41
- run "heroku addons:add pgbackups:plus"
55
+ def add_heroku_addon(addon)
56
+ say "Adding heroku addon [#{addon}] to '#{name}'.".magenta
57
+ system "heroku addons:add #{addon} --app #{name}"
58
+ end
42
59
 
43
- say "Adding heroku addon [Loggly]...".magenta
44
- run "heroku addons:add loggly:mole"
60
+ def add_canonical_domain(domain)
61
+ system "heroku domains:add #{domain} --app #{name}"
62
+ end
45
63
 
46
- sendgrid = yes? "Add sendgrid:starter addon? [yN]".red
64
+ def add_collaborator(email)
65
+ system "heroku sharing:add #{email} --app #{name}"
66
+ end
47
67
 
48
- if sendgrid
49
- say "Adding heroku addon [Sendgrid]...".magenta
50
- run "heroku addons:add sendgrid:starter"
68
+ def add_timezone_config
69
+ say "Adding timezone config on Heroku".magenta
70
+ system "heroku config:set TZ=America/Sao_Paulo --app #{name}"
51
71
  end
52
72
 
53
- if config['deploy']
73
+ def open
54
74
  say "Pushing application to heroku...".magenta
55
- git :push => "heroku master" if config['deploy']
75
+ git push: "heroku master"
76
+
77
+ system "heroku open --app #{name}"
78
+ end
79
+
80
+ private
81
+ def check_canonical_domain
82
+ domain = ask "Add custom domain (customdomain.com) or leave blank:".red
83
+ add_canonical_domain(domain) unless domain.blank?
84
+ end
85
+
86
+ def check_collaborators
87
+ collaborators = ask "Add collaborators? Type the email's separated by comma (,):".red
88
+
89
+ if collaborators.present?
90
+ collaborators.split(",").map(&:strip).each { |email| add_collaborator(email) }
91
+ end
92
+ end
93
+ end
94
+
95
+ say "Configuring Heroku application...".magenta
96
+ if would_you_like? "Create Heroku apps?".red
97
+
98
+ say "Refreshing Heroku user credentials".magenta
99
+ unless system "heroku auth:login"
100
+ puts "Could not login to Heroku, halting"
101
+ exit
102
+ end
103
+
104
+ config = {}
105
+ config['staging'] = would_you_like? "Create staging app?".red
106
+ config['deploy'] = would_you_like? "Deploy immediately?".red
107
+
108
+ production_app = HerokuApp.new(@app_name.gsub('_',''), "app")
109
+ staging_app = HerokuApp.new("#{production_app.name}-staging", "staging app", true) if config['staging']
110
+
111
+ if config['staging'] && staging_app.name.present?
112
+ append_to_file '.env', "STAGING_APP: #{staging_app.name}\n"
113
+ append_to_file '.env', "PRODUCTION_APP: #{production_app.name}\n"
114
+
115
+ git add: '.env'
116
+ git commit: "-qm 'Adding STAGING_APP and PRODUCTION_APP configs.'"
117
+ else
118
+ # The STAGING_APP is the default integration destination
119
+ append_to_file '.env', "STAGING_APP: #{production_app.name}\n"
120
+
121
+ git add: '.env'
122
+ git commit: "-qm 'Adding STAGING_APP config.'"
56
123
  end
57
- run "heroku open" if config['deploy']
124
+
125
+ production_app.open if config['deploy']
58
126
  end
@@ -1,7 +1,9 @@
1
1
  puts "Setting up Integration... ".magenta
2
+
2
3
  copy_static_file 'lib/tasks/integration.rake'
3
- copy_static_file 'lib/tasks/tasks.rake'
4
- git :add => 'lib/tasks/integration.rake lib/tasks/tasks.rake'
5
- git :commit => "-qm 'Adding integration'"
4
+ copy_static_file 'lib/tasks/deploy.rake'
5
+
6
+ git :add => 'lib/tasks/integration.rake lib/tasks/deploy.rake'
7
+ git :commit => "-qm 'Adding integration tasks.'"
6
8
 
7
9
  puts "\n"
@@ -31,12 +31,15 @@ run "gem install bundler --no-ri --no-rdoc"
31
31
  # Install all other gems needed from Gemfile
32
32
  run "bundle install"
33
33
 
34
- copy_static_file '.rvmrc'
35
- gsub_file '.rvmrc', /PROJECT/, gemset_name
36
- gsub_file '.rvmrc', /RUBYVERSION/, desired_ruby
34
+ copy_static_file '.ruby-version'
35
+ gsub_file '.ruby-version', /RUBY_VERSION/, desired_ruby
37
36
 
38
- git :add => '.rvmrc'
39
- git :commit => "-qm 'Adding .rvmrc.'"
37
+ copy_static_file '.ruby-gemset'
38
+ gsub_file '.ruby-gemset', /GEMSET/, gemset_name
39
+
40
+ git :add => '.ruby-version'
41
+ git :add => '.ruby-gemset'
42
+ git :commit => "-qm 'Adding RVM config files.'"
40
43
 
41
44
  git :add => 'Gemfile.lock'
42
45
  git :commit => "-qm 'Adding Gemfile.lock.'"
@@ -0,0 +1,14 @@
1
+ puts "Replacing secret token with environment variable...".magenta
2
+
3
+ in_root do
4
+ append_to_file '.env', "SECRET_TOKEN: #{SecureRandom::hex(60)}\n"
5
+
6
+ gsub_file 'config/initializers/secret_token.rb', /config.secret_token = '(.*?)'/, "config.secret_token = ENV['SECRET_TOKEN']"
7
+ gsub_file 'config/initializers/secret_token.rb', /config.secret_key_base = '(.*?)'/, "config.secret_key_base = ENV['SECRET_TOKEN']"
8
+ end
9
+
10
+ git :add => 'config/initializers/secret_token.rb'
11
+ git :add => '.env'
12
+ git :commit => "-qm 'Replace secret token with environment variable.'"
13
+
14
+ puts "\n"
data/lib/pah/template.rb CHANGED
@@ -57,6 +57,7 @@ apply_n :rspec
57
57
  apply_n :default
58
58
  apply_n :stylesheets
59
59
  apply_n :secure_headers
60
+ apply_n :secret_token
60
61
  apply_n :omniauth
61
62
  apply_n :capybara
62
63
  apply_n :generators
data/lib/pah/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pah
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pah
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - HE:labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-16 00:00:00.000000000 Z
11
+ date: 2013-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,7 +90,8 @@ extensions: []
90
90
  extra_rdoc_files: []
91
91
  files:
92
92
  - .gitignore
93
- - .rvmrc
93
+ - .ruby-gemset
94
+ - .ruby-version
94
95
  - CHANGELOG.md
95
96
  - CONTRIBUTING.md
96
97
  - Gemfile
@@ -99,7 +100,8 @@ files:
99
100
  - Rakefile
100
101
  - bin/pah
101
102
  - lib/pah/files/.gitignore
102
- - lib/pah/files/.rvmrc
103
+ - lib/pah/files/.ruby-gemset
104
+ - lib/pah/files/.ruby-version
103
105
  - lib/pah/files/Gemfile
104
106
  - lib/pah/files/Procfile
105
107
  - lib/pah/files/app/assets/stylesheets/application.css.scss
@@ -111,8 +113,8 @@ files:
111
113
  - lib/pah/files/config/initializers/omniauth.rb
112
114
  - lib/pah/files/config/locales/pt-BR.yml
113
115
  - lib/pah/files/config/unicorn.rb
116
+ - lib/pah/files/lib/tasks/deploy.rake
114
117
  - lib/pah/files/lib/tasks/integration.rake
115
- - lib/pah/files/lib/tasks/tasks.rake
116
118
  - lib/pah/files/spec/acceptance/dummy_spec.rb
117
119
  - lib/pah/files/spec/spec_helper.rb
118
120
  - lib/pah/files/spec/support/README
@@ -144,6 +146,7 @@ files:
144
146
  - lib/pah/partials/_omniauth.rb
145
147
  - lib/pah/partials/_rspec.rb
146
148
  - lib/pah/partials/_rvm.rb
149
+ - lib/pah/partials/_secret_token.rb
147
150
  - lib/pah/partials/_secure_headers.rb
148
151
  - lib/pah/partials/_stylesheets.rb
149
152
  - lib/pah/partials/_unicorn.rb
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 2.0.0@pah --create
data/lib/pah/files/.rvmrc DELETED
@@ -1,50 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
- # development environment upon cd'ing into the directory
5
-
6
- # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
- # Only full ruby name is supported here, for short names use:
8
- # echo "rvm use 1.9.2" > .rvmrc
9
- environment_id="RUBYVERSION@PROJECT"
10
-
11
- # Uncomment the following lines if you want to verify rvm version per project
12
- rvmrc_rvm_version="1.14.3 ()" # 1.10.1 seams as a safe start
13
- eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
- echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
- return 1
16
- }
17
-
18
- # First we attempt to load the desired environment directly from the environment
19
- # file. This is very fast and efficient compared to running through the entire
20
- # CLI and selector. If you want feedback on which environment was used then
21
- # insert the word 'use' after --create as this triggers verbose mode.
22
- if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
- && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
- then
25
- \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
- [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
27
- \. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
28
- else
29
- # If the environment file has not yet been created, use the RVM CLI to select.
30
- rvm --create "$environment_id" || {
31
- echo "Failed to create RVM environment '${environment_id}'."
32
- return 1
33
- }
34
- fi
35
-
36
- # If you use bundler, this might be useful to you:
37
- # if [[ -s Gemfile ]] && {
38
- # ! builtin command -v bundle >/dev/null ||
39
- # builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
40
- # }
41
- # then
42
- # printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
43
- # gem install bundler
44
- # fi
45
- # if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
46
- # then
47
- # bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
48
- # fi
49
-
50
- export APP='PROJECT'
@@ -1,28 +0,0 @@
1
- namespace :heroku do
2
- APP = ENV['APP'] unless defined?(APP)
3
-
4
- def run(*cmd)
5
- system(*cmd)
6
- raise "Command #{cmd.inspect} failed!" unless $?.success?
7
- end
8
-
9
- def confirm(message)
10
- print "\n#{message}\nAre you sure? [yN] "
11
- raise 'Aborted' unless STDIN.gets.chomp.downcase == 'y'
12
- end
13
-
14
- desc "Deploy app to Heroku"
15
- task :deploy do
16
- puts "-----> Pushing..."
17
- run "git push git@heroku.com:#{APP}.git HEAD:master -f"
18
-
19
- puts "-----> Migrating..."
20
- Bundler.with_clean_env { run "heroku run rake db:migrate --app #{APP}" }
21
-
22
- puts "-----> Seeding..."
23
- Bundler.with_clean_env { run "heroku run rake db:seed --app #{APP}" }
24
-
25
- puts "-----> Restarting..."
26
- Bundler.with_clean_env { run "heroku restart --app #{APP}" }
27
- end
28
- end