Skip to content

Commit

Permalink
Require rails_12factor gem only on Heroku
Browse files Browse the repository at this point in the history
In non-Heroku environments, we have found the `rails_12factor` gem
prevents production/staging logs from being generated.
  • Loading branch information
arunagw authored and Dan Croak committed Feb 19, 2014
1 parent c528bb6 commit 705dc7b
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 1 deletion.
5 changes: 5 additions & 0 deletions lib/suspenders/app_builder.rb
Expand Up @@ -147,6 +147,11 @@ def set_ruby_to_version_being_used
create_file '.ruby-version', "#{RUBY_VERSION}#{patchlevel}\n"
end

def setup_heroku_specific_gems
inject_into_file 'Gemfile', "\n\s\sgem 'rails_12factor'",
after: /group :staging, :production do/
end

def enable_database_cleaner
copy_file 'database_cleaner_rspec.rb', 'spec/support/database_cleaner.rb'
end
Expand Down
5 changes: 5 additions & 0 deletions lib/suspenders/generators/app_generator.rb
Expand Up @@ -44,6 +44,11 @@ def suspenders_customization
def customize_gemfile
build :replace_gemfile
build :set_ruby_to_version_being_used

if options[:heroku]
build :setup_heroku_specific_gems
end

bundle_command 'install'
end

Expand Down
1 change: 1 addition & 0 deletions spec/features/heroku_spec.rb
Expand Up @@ -4,6 +4,7 @@
scenario 'Suspend a project with --heroku=true' do
run_suspenders('--heroku=true')

expect(FakeHeroku).to have_gem_included(project_path, 'rails_12factor')
expect(FakeHeroku).to have_created_app_for('staging')
expect(FakeHeroku).to have_created_app_for('production')
expect(FakeHeroku).to have_configured_vars('staging', 'SECRET_KEY_BASE')
Expand Down
6 changes: 6 additions & 0 deletions spec/support/fake_heroku.rb
Expand Up @@ -15,6 +15,12 @@ def self.clear!
FileUtils.rm_rf RECORDER
end

def self.has_gem_included?(project_path, gem_name)
gemfile = File.open(File.join(project_path, 'Gemfile'), 'a')

File.foreach(gemfile).any?{ |line| line.match(/rails_12factor/) }
end

def self.has_created_app_for?(remote_name)
app_name = "#{SuspendersTestHelpers::APP_NAME}-#{remote_name}"
expected_line = "create #{app_name} --remote=#{remote_name}\n"
Expand Down
1 change: 0 additions & 1 deletion templates/Gemfile_clean
Expand Up @@ -46,5 +46,4 @@ end

group :staging, :production do
gem 'newrelic_rpm', '>= 3.6.7'
gem 'rails_12factor'
end

0 comments on commit 705dc7b

Please sign in to comment.