From 3be9110339cdcd17bab304603ba7baa536ac9113 Mon Sep 17 00:00:00 2001 From: Olaide Ojewale Date: Thu, 25 Feb 2016 11:38:18 +0100 Subject: [PATCH] Switched server to Puma. Add puma config file and Procfile. --- Gemfile | 3 ++- Gemfile.lock | 12 ++-------- Procfile | 1 + config/puma.rb | 13 ++++++++++ spec/rails_helper.rb | 57 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 Procfile create mode 100644 config/puma.rb create mode 100644 spec/rails_helper.rb diff --git a/Gemfile b/Gemfile index 5bec39b..53d3e72 100644 --- a/Gemfile +++ b/Gemfile @@ -12,10 +12,11 @@ gem "omniauth-google-oauth2" gem 'figaro' gem 'ancestry' gem 'will_paginate' +gem "puma" # gem 'kaminari' gem "active_model_serializers", github: "rails-api/active_model_serializers" gem "jwt" -gem 'unicorn-rails' +# gem 'unicorn-rails' gem 'rack-cors' diff --git a/Gemfile.lock b/Gemfile.lock index e653c0b..052bde7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -65,7 +65,6 @@ GEM i18n (0.7.0) json (1.8.3) jwt (1.5.1) - kgio (2.10.0) loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.3) @@ -107,6 +106,7 @@ GEM pry (>= 0.9.10, < 0.11.0) pry-rails (0.3.4) pry (>= 0.9.10) + puma (2.16.0) rack (1.6.4) rack-cors (0.4.0) rack-test (0.6.3) @@ -138,7 +138,6 @@ GEM activesupport (= 4.2.5) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) - raindrops (0.15.0) rake (10.5.0) rspec-core (3.4.2) rspec-support (~> 3.4.0) @@ -171,13 +170,6 @@ GEM thread_safe (0.3.5) tzinfo (1.2.2) thread_safe (~> 0.1) - unicorn (5.0.1) - kgio (~> 2.6) - rack - raindrops (~> 0.7) - unicorn-rails (2.2.0) - rack - unicorn will_paginate (3.1.0) PLATFORMS @@ -195,13 +187,13 @@ DEPENDENCIES pg pry-nav pry-rails + puma rack-cors rails (= 4.2.5) rails-api rspec-rails spring sqlite3 - unicorn-rails will_paginate BUNDLED WITH diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..528ca4b --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: bundle exec puma -C config/puma.rb \ No newline at end of file diff --git a/config/puma.rb b/config/puma.rb new file mode 100644 index 0000000..df9083a --- /dev/null +++ b/config/puma.rb @@ -0,0 +1,13 @@ +workers Integer(ENV['WEB_CONCURRENCY'] || 2) +threads_count = Integer(ENV['MAX_THREADS'] || 5) +threads threads_count, threads_count + +preload_app! + +rackup DefaultRackup +port ENV['PORT'] || 3000 +environment ENV['RACK_ENV'] || 'development' + +on_worker_boot do + ActiveRecord::Base.establish_connection +end \ No newline at end of file diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb new file mode 100644 index 0000000..4383429 --- /dev/null +++ b/spec/rails_helper.rb @@ -0,0 +1,57 @@ +# This file is copied to spec/ when you run 'rails generate rspec:install' +ENV['RAILS_ENV'] ||= 'test' +require File.expand_path('../../config/environment', __FILE__) +# Prevent database truncation if the environment is production +abort("The Rails environment is running in production mode!") if Rails.env.production? +require 'spec_helper' +require 'rspec/rails' +# Add additional requires below this line. Rails is not loaded until this point! + +# Requires supporting ruby files with custom matchers and macros, etc, in +# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are +# run as spec files by default. This means that files in spec/support that end +# in _spec.rb will both be required and run as specs, causing the specs to be +# run twice. It is recommended that you do not name files matching this glob to +# end with _spec.rb. You can configure this pattern with the --pattern +# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. +# +# The following line is provided for convenience purposes. It has the downside +# of increasing the boot-up time by auto-requiring all files in the support +# directory. Alternatively, in the individual `*_spec.rb` files, manually +# require only the support files necessary. +# +Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } + +# Checks for pending migration and applies them before tests are run. +# If you are not using ActiveRecord, you can remove this line. +ActiveRecord::Migration.maintain_test_schema! + +RSpec.configure do |config| + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true + + # RSpec Rails can automatically mix in different behaviours to your tests + # based on their file location, for example enabling you to call `get` and + # `post` in specs under `spec/controllers`. + # + # You can disable this behaviour by removing the line below, and instead + # explicitly tag your specs with their type, e.g.: + # + # RSpec.describe UsersController, :type => :controller do + # # ... + # end + # + # The different available types are documented in the features, such as in + # https://relishapp.com/rspec/rspec-rails/docs + config.infer_spec_type_from_file_location! + + # Filter lines from Rails gems in backtraces. + config.filter_rails_from_backtrace! + # arbitrary gems may also be filtered via: + # config.filter_gems_from_backtrace("gem name") +end