(simple installation example)
rails new seatruck -d postgresql -T -B
cd seatruck
rvm --ruby-version use 2.3.1@seatruck --create
gem 'slim-rails'
gem 'responders'
gem 'active_model_serializers'
gem 'oj'
gem 'oj_mimic_json'
cd config
cp database.yml database_sample.yml
/config/database.yml
group :test, :development do
gem 'byebug', platform: :mri
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'pry-rails'
gem 'pry-byebug'
# for API testing
gem 'json_spec'
end
group :development do
gem 'spring'
gem 'spring-commands-rspec'
end
group :test do
gem 'shoulda-matchers', require: false
gem 'capybara'
gem 'launchy'
gem 'poltergeist'
gem 'database_cleaner'
end
group :test, :development do
gem 'rails-controller-testing'
end
gem install bundler --no-ri --no-rdoc
bundler
rails generate rspec:install
--color
--require spec_helper
--format doc
require 'shoulda/matchers'
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
#config.include Devise::TestHelpers, type: :controller
#config.extend ControllerMacros, type: :controller
#config.include ControllerMacros, type: :controller
#config.include OmniauthMacros
...
RSpec.configure do |config|
[:controller, :view, :request].each do |type|
config.include ::Rails::Controller::Testing::TestProcess, type: type
config.include ::Rails::Controller::Testing::TemplateAssertions, type: type
config.include ::Rails::Controller::Testing::Integration, type: type
end
config.include FactoryGirl::Syntax::Methods
config.include AcceptanceMacros, type: :feature
#config.include OmniauthMacros, type: :feature
#config.include Devise::Test::ControllerHelpers, type: :controller
Shoulda::Matchers.configure do |config|
config.integrate do |with|
with.test_framework :rspec
with.library :rails
end
end
config.generators do |g|
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
request_specs: false,
controller_specs: true
g.fixture_replacement :factory_girl, dir: 'spec/factories'
end
require 'rails_helper'
require 'capybara/poltergeist'
# require 'capybara/rspec'
RSpec.configure do |config|
# Capybara.javascript_driver = :webkit
Capybara.javascript_driver = :poltergeist
# Capybara.javascript_driver = :selenium
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, js_errors: false)
end
#config.include AcceptanceMacros, type: :feature
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
config.before(:each, js: true) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each, sphinx: true) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
config.use_transactional_fixtures = false
end
git init
git add .
git ci -m init project
git remote add origin git@github.com:khovanov/seatruck.git
git push -u origin master
rails g controller welcome index
root 'welcome#index'
rails g scaffold Port title:string 'lat:decimal{13,10}' 'lng:decimal{13,10}'
rake db:setup
rails g scaffold Cargo title:string port:references open_date:date capacity:integer
rails g scaffold Vessel title:string hold_capacity:integer
rails g scaffold Position vessel:references port:references open_date:date
rails g serializer cargo
rails g serializer port
rails g serializer position
rails g serializer vessel
ruby '2.3.1'