underlay 1.50.1
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 +7 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +87 -0
- data/.ruby-version +1 -0
- data/CONTRIBUTING.md +46 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +218 -0
- data/RELEASING.md +16 -0
- data/Rakefile +10 -0
- data/USAGE +13 -0
- data/bin/rake +18 -0
- data/bin/rspec +18 -0
- data/bin/setup +13 -0
- data/bin/underlay +29 -0
- data/circle.yml +3 -0
- data/lib/underlay/actions.rb +41 -0
- data/lib/underlay/adapters/heroku.rb +133 -0
- data/lib/underlay/app_builder.rb +556 -0
- data/lib/underlay/generators/app_generator.rb +280 -0
- data/lib/underlay/generators/enforce_ssl_generator.rb +14 -0
- data/lib/underlay/generators/initialize_active_job_generator.rb +21 -0
- data/lib/underlay/generators/static_generator.rb +12 -0
- data/lib/underlay/generators/stylesheet_base_generator.rb +36 -0
- data/lib/underlay/version.rb +10 -0
- data/lib/underlay.rb +11 -0
- data/spec/adapters/heroku_spec.rb +78 -0
- data/spec/fakes/bin/heroku +9 -0
- data/spec/fakes/bin/hub +9 -0
- data/spec/features/cli_help_spec.rb +38 -0
- data/spec/features/github_spec.rb +18 -0
- data/spec/features/heroku_spec.rb +72 -0
- data/spec/features/new_project_spec.rb +308 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/support/fake_github.rb +26 -0
- data/spec/support/fake_heroku.rb +58 -0
- data/spec/support/underlay.rb +100 -0
- data/templates/Gemfile.erb +81 -0
- data/templates/Procfile +2 -0
- data/templates/README.md.erb +21 -0
- data/templates/_analytics.html.slim +10 -0
- data/templates/_css_overrides.html.slim +5 -0
- data/templates/_flashes.html.slim +8 -0
- data/templates/_flashes.scss +21 -0
- data/templates/_javascript.html.slim +10 -0
- data/templates/action_mailer.rb +7 -0
- data/templates/active_job.rb +15 -0
- data/templates/app.json.erb +45 -0
- data/templates/application.example.yml +19 -0
- data/templates/application.scss +5 -0
- data/templates/bin_deploy +12 -0
- data/templates/bin_rake +12 -0
- data/templates/bin_setup +31 -0
- data/templates/bin_setup_review_app.erb +22 -0
- data/templates/bin_update +26 -0
- data/templates/browserslist +3 -0
- data/templates/bundler_audit.rake +6 -0
- data/templates/capybara.rb +22 -0
- data/templates/circle.yml.erb +38 -0
- data/templates/config_locales_en.yml.erb +19 -0
- data/templates/database_cleaner_rspec.rb +23 -0
- data/templates/dev.rake +14 -0
- data/templates/dvelp_gitignore +18 -0
- data/templates/dvelp_layout.html.slim +17 -0
- data/templates/errors.rb +36 -0
- data/templates/factories.rb +4 -0
- data/templates/factory_bot_rspec.rb +5 -0
- data/templates/flashes_helper.rb +7 -0
- data/templates/i18n.rb +5 -0
- data/templates/json_encoding.rb +3 -0
- data/templates/lograge.rb +11 -0
- data/templates/postgresql_database.yml.erb +19 -0
- data/templates/puma.rb +14 -0
- data/templates/rack_mini_profiler.rb +7 -0
- data/templates/rails_helper.rb +27 -0
- data/templates/rubocop.yml.erb +85 -0
- data/templates/scss-lint.yml.erb +167 -0
- data/templates/secrets.yml +8 -0
- data/templates/sentry.rb +6 -0
- data/templates/shoulda_matchers_config_rspec.rb +8 -0
- data/templates/sidekiq.yml +3 -0
- data/templates/slim-lint.yml.erb +28 -0
- data/templates/smtp.rb +15 -0
- data/templates/spec_helper.rb +35 -0
- data/underlay.gemspec +33 -0
- metadata +187 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_job/logging'
|
4
|
+
|
5
|
+
ActiveSupport::Notifications.unsubscribe('enqueue.active_job')
|
6
|
+
|
7
|
+
module ActiveJob
|
8
|
+
module Logging
|
9
|
+
class EnqueueLogSubscriber < LogSubscriber
|
10
|
+
define_method :enqueue, instance_method(:enqueue)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
ActiveJob::Logging::EnqueueLogSubscriber.attach_to(:active_job)
|
@@ -0,0 +1,45 @@
|
|
1
|
+
{
|
2
|
+
"name":"<%= app_name.dasherize %>",
|
3
|
+
"scripts":{},
|
4
|
+
"env":{
|
5
|
+
"APPLICATION_HOST":{
|
6
|
+
"required":true
|
7
|
+
},
|
8
|
+
"CAPYBARA_ASSET_HOST":{
|
9
|
+
"required":true
|
10
|
+
},
|
11
|
+
"EMAIL_RECIPIENTS":{
|
12
|
+
"required":true
|
13
|
+
},
|
14
|
+
"GOOGLE_TAG_ID":{
|
15
|
+
"required":true
|
16
|
+
},
|
17
|
+
"HEROKU_APP_NAME": {
|
18
|
+
"required":true
|
19
|
+
},
|
20
|
+
"HEROKU_PARENT_APP_NAME": {
|
21
|
+
"required":true
|
22
|
+
},
|
23
|
+
"RACK_ENV":{
|
24
|
+
"required":true
|
25
|
+
},
|
26
|
+
"SECRET_KEY_BASE":{
|
27
|
+
"generator":"secret"
|
28
|
+
},
|
29
|
+
"SMTP_ADDRESS":{
|
30
|
+
"required":true
|
31
|
+
},
|
32
|
+
"SMTP_DOMAIN":{
|
33
|
+
"required":true
|
34
|
+
},
|
35
|
+
"SMTP_PASSWORD":{
|
36
|
+
"required":true
|
37
|
+
},
|
38
|
+
"SMTP_USERNAME":{
|
39
|
+
"required":true
|
40
|
+
}
|
41
|
+
},
|
42
|
+
"addons":[
|
43
|
+
"heroku-postgresql"
|
44
|
+
]
|
45
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
default: &default
|
2
|
+
ASSET_HOST: 'localhost:3000'
|
3
|
+
APPLICATION_HOST: 'localhost:3000'
|
4
|
+
PORT: '3000'
|
5
|
+
RACK_ENV: 'development'
|
6
|
+
RACK_MINI_PROFILER: '0'
|
7
|
+
SECRET_KEY_BASE: 'development_secret'
|
8
|
+
EXECJS_RUNTIME: 'Node'
|
9
|
+
SMTP_ADDRESS: ''
|
10
|
+
SMTP_DOMAIN: ''
|
11
|
+
SMTP_PASSWORD: ''
|
12
|
+
SMTP_USERNAME: ''
|
13
|
+
WEB_CONCURRENCY: 1
|
14
|
+
|
15
|
+
development:
|
16
|
+
<<: *default
|
17
|
+
|
18
|
+
test:
|
19
|
+
<<: *default
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# Run this script to deploy the app to Heroku.
|
4
|
+
|
5
|
+
set -e
|
6
|
+
|
7
|
+
branch="$(git symbolic-ref HEAD --short)"
|
8
|
+
target="${1:-staging}"
|
9
|
+
|
10
|
+
git push "$target" "$branch:master"
|
11
|
+
heroku run rails db:migrate --exit-code --remote "$target"
|
12
|
+
heroku restart --remote "$target"
|
data/templates/bin_rake
ADDED
data/templates/bin_setup
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
include FileUtils
|
3
|
+
|
4
|
+
require 'pathname'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
|
8
|
+
|
9
|
+
def system!(*args)
|
10
|
+
system(*args) || abort("\n== Command #{args} failed ==")
|
11
|
+
end
|
12
|
+
|
13
|
+
chdir APP_ROOT do
|
14
|
+
puts '== Installing dependencies =='
|
15
|
+
system! 'gem install bundler --conservative'
|
16
|
+
system('bundle check') || system!('bundle install')
|
17
|
+
|
18
|
+
puts "\n== Copying sample files =="
|
19
|
+
unless File.exist?('config/application.yml')
|
20
|
+
system 'cp config/application.example.yml config/application.yml'
|
21
|
+
end
|
22
|
+
|
23
|
+
puts "\n== Preparing database =="
|
24
|
+
system! 'bin/rails db:setup'
|
25
|
+
|
26
|
+
puts "\n== Removing old logs and tempfiles =="
|
27
|
+
system! 'bin/rails log:clear tmp:clear'
|
28
|
+
|
29
|
+
puts "\n== Restarting application server =="
|
30
|
+
system! 'bin/rails restart'
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# Run this script to set up a review app's database and worker dyno
|
4
|
+
|
5
|
+
set -e
|
6
|
+
|
7
|
+
if [ -z "$1" ]; then
|
8
|
+
printf "You must provide a review app (same as the pull request) id.\n"
|
9
|
+
exit 64
|
10
|
+
fi
|
11
|
+
|
12
|
+
PARENT_APP_NAME=<%= app_name.dasherize %>-staging
|
13
|
+
APP_NAME=<%= app_name.dasherize %>-staging-pr-$1
|
14
|
+
|
15
|
+
heroku pg:backups:capture --app $PARENT_APP_NAME
|
16
|
+
|
17
|
+
URL=`heroku pg:backups public-url --app $PARENT_APP_NAME`
|
18
|
+
|
19
|
+
heroku pg:backups restore $URL DATABASE_URL --confirm $APP_NAME --app $APP_NAME
|
20
|
+
heroku run rails db:migrate --exit-code --app $APP_NAME
|
21
|
+
heroku ps:scale worker=1 --app $APP_NAME
|
22
|
+
heroku restart --app $APP_NAME
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
include FileUtils
|
3
|
+
|
4
|
+
require 'pathname'
|
5
|
+
require 'fileutils'
|
6
|
+
|
7
|
+
APP_ROOT = Pathname.new File.expand_path('..', __dir__)
|
8
|
+
|
9
|
+
def system!(*args)
|
10
|
+
system(*args) || abort("\n== Command #{args} failed ==")
|
11
|
+
end
|
12
|
+
|
13
|
+
chdir APP_ROOT do
|
14
|
+
puts '== Installing dependencies =='
|
15
|
+
system! 'gem install bundler --conservative'
|
16
|
+
system('bundle check') || system!('bundle install')
|
17
|
+
|
18
|
+
puts "\n== Updating database =="
|
19
|
+
system! 'bin/rails db:migrate'
|
20
|
+
|
21
|
+
puts "\n== Removing old logs and tempfiles =="
|
22
|
+
system! 'bin/rails log:clear tmp:clear'
|
23
|
+
|
24
|
+
puts "\n== Restarting application server =="
|
25
|
+
system! 'bin/rails restart'
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'capybara/poltergeist'
|
4
|
+
|
5
|
+
Capybara.asset_host = ENV['ASSET_HOST']
|
6
|
+
Capybara.always_include_port = true
|
7
|
+
Capybara.register_driver :poltergeist do |app|
|
8
|
+
options = {
|
9
|
+
timeout: 60,
|
10
|
+
js_errors: false,
|
11
|
+
phantomjs: Phantomjs.path,
|
12
|
+
phantomjs_logger: File.open(File::NULL, 'w'),
|
13
|
+
logger: nil,
|
14
|
+
phantomjs_options:
|
15
|
+
[
|
16
|
+
'--load-images=no',
|
17
|
+
'--ignore-ssl-errors=yes'
|
18
|
+
]
|
19
|
+
}
|
20
|
+
Capybara::Poltergeist::Driver.new(app, options)
|
21
|
+
end
|
22
|
+
Capybara.javascript_driver = :poltergeist
|
@@ -0,0 +1,38 @@
|
|
1
|
+
version: 2
|
2
|
+
jobs:
|
3
|
+
build:
|
4
|
+
working_directory: ~/<%= app_name.dasherize %>
|
5
|
+
docker:
|
6
|
+
- image: circleci/ruby:2.5.1
|
7
|
+
environment:
|
8
|
+
PGHOST: localhost
|
9
|
+
PGUSER: <%= app_name.dasherize %>
|
10
|
+
RAILS_ENV: test
|
11
|
+
- image: postgres:9.5
|
12
|
+
environment:
|
13
|
+
POSTGRES_USER: <%= app_name.dasherize %>
|
14
|
+
POSTGRES_DB: <%= app_name.dasherize %>_test
|
15
|
+
POSTGRES_PASSWORD: ""
|
16
|
+
steps:
|
17
|
+
- checkout
|
18
|
+
|
19
|
+
- type: cache-restore
|
20
|
+
name: Restore bundle cache
|
21
|
+
key: <%= app_name.dasherize %>-{{ checksum "Gemfile.lock" }}
|
22
|
+
|
23
|
+
- run: bundle install --path vendor/bundle
|
24
|
+
|
25
|
+
- type: cache-save
|
26
|
+
name: Store bundle cache
|
27
|
+
key: <%= app_name.dasherize %>-{{ checksum "Gemfile.lock" }}
|
28
|
+
paths:
|
29
|
+
- vendor/bundle
|
30
|
+
|
31
|
+
- run: dockerize -wait tcp://localhost:5432 -timeout 1m
|
32
|
+
|
33
|
+
- run: cp config/application.example.yml config/application.yml
|
34
|
+
|
35
|
+
- run: bundle exec rake db:setup
|
36
|
+
|
37
|
+
- run: bundle exec brakeman --exit-on-warn --quiet -f plain
|
38
|
+
- run: bundle exec rake
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.configure do |config|
|
4
|
+
config.before(:suite) do
|
5
|
+
DatabaseCleaner.clean_with(:deletion)
|
6
|
+
end
|
7
|
+
|
8
|
+
config.before(:each) do
|
9
|
+
DatabaseCleaner.strategy = :transaction
|
10
|
+
end
|
11
|
+
|
12
|
+
config.before(:each, js: true) do
|
13
|
+
DatabaseCleaner.strategy = :deletion
|
14
|
+
end
|
15
|
+
|
16
|
+
config.before(:each) do
|
17
|
+
DatabaseCleaner.start
|
18
|
+
end
|
19
|
+
|
20
|
+
config.after(:each) do
|
21
|
+
DatabaseCleaner.clean
|
22
|
+
end
|
23
|
+
end
|
data/templates/dev.rake
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Rails.env.development? || Rails.env.test?
|
4
|
+
require 'factory_bot'
|
5
|
+
|
6
|
+
namespace :dev do
|
7
|
+
desc 'Sample data for local development environment'
|
8
|
+
task prime: 'db:setup' do
|
9
|
+
include FactoryBot::Syntax::Methods
|
10
|
+
|
11
|
+
# create(:user, email: "user@example.com", password: "password")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
!.keep
|
2
|
+
*.DS_Store
|
3
|
+
*.swo
|
4
|
+
*.swp
|
5
|
+
.byebug_history
|
6
|
+
/.bundle
|
7
|
+
/coverage/*
|
8
|
+
/config/application.yml
|
9
|
+
/db/*.sqlite3
|
10
|
+
/db/*.sqlite3-journal
|
11
|
+
/log/*
|
12
|
+
/node_modules
|
13
|
+
/public/assets
|
14
|
+
/public/packs
|
15
|
+
/public/system
|
16
|
+
/tags
|
17
|
+
/tmp/*
|
18
|
+
/yarn-error.log
|
@@ -0,0 +1,17 @@
|
|
1
|
+
doctype html
|
2
|
+
html lang="#{I18n.locale}"
|
3
|
+
head
|
4
|
+
meta content=("text/html; charset=UTF-8") http-equiv="Content-Type" /
|
5
|
+
meta charset="utf-8" /
|
6
|
+
meta content="NOODP" name="ROBOTS" /
|
7
|
+
meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport" /
|
8
|
+
title= title
|
9
|
+
|
10
|
+
= stylesheet_link_tag :application, media: "all"
|
11
|
+
= csrf_meta_tags
|
12
|
+
|
13
|
+
body class=body_class
|
14
|
+
= render "flashes"
|
15
|
+
= yield
|
16
|
+
= render "javascript"
|
17
|
+
= render "css_overrides"
|
data/templates/errors.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'net/http'
|
4
|
+
require 'net/smtp'
|
5
|
+
|
6
|
+
# Example:
|
7
|
+
# begin
|
8
|
+
# some http call
|
9
|
+
# rescue *HTTP_ERRORS => error
|
10
|
+
# notify_hoptoad error
|
11
|
+
# end
|
12
|
+
|
13
|
+
HTTP_ERRORS = [
|
14
|
+
EOFError,
|
15
|
+
Errno::ECONNRESET,
|
16
|
+
Errno::EINVAL,
|
17
|
+
Net::HTTPBadResponse,
|
18
|
+
Net::HTTPHeaderSyntaxError,
|
19
|
+
Net::ProtocolError,
|
20
|
+
Timeout::Error
|
21
|
+
].freeze
|
22
|
+
|
23
|
+
SMTP_SERVER_ERRORS = [
|
24
|
+
IOError,
|
25
|
+
Net::SMTPAuthenticationError,
|
26
|
+
Net::SMTPServerBusy,
|
27
|
+
Net::SMTPUnknownError,
|
28
|
+
Timeout::Error
|
29
|
+
].freeze
|
30
|
+
|
31
|
+
SMTP_CLIENT_ERRORS = [
|
32
|
+
Net::SMTPFatalError,
|
33
|
+
Net::SMTPSyntaxError
|
34
|
+
].freeze
|
35
|
+
|
36
|
+
SMTP_ERRORS = SMTP_SERVER_ERRORS + SMTP_CLIENT_ERRORS
|
data/templates/i18n.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Rails.application.configure do
|
4
|
+
config.lograge.enabled = Rails.env.production?
|
5
|
+
config.lograge.custom_options = lambda do |event|
|
6
|
+
exceptions = %w[controller action format]
|
7
|
+
{
|
8
|
+
params: event.payload[:params].except(*exceptions)
|
9
|
+
}
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
development: &default
|
2
|
+
adapter: postgresql
|
3
|
+
database: <%= app_name %>_development
|
4
|
+
encoding: utf8
|
5
|
+
min_messages: warning
|
6
|
+
pool: <%%= Integer(ENV.fetch("DB_POOL", 5)) %>
|
7
|
+
reaping_frequency: <%%= Integer(ENV.fetch("DB_REAPING_FREQUENCY", 10)) %>
|
8
|
+
timeout: 5000
|
9
|
+
|
10
|
+
test:
|
11
|
+
<<: *default
|
12
|
+
database: <%= app_name %>_test
|
13
|
+
|
14
|
+
production: &deploy
|
15
|
+
encoding: utf8
|
16
|
+
min_messages: warning
|
17
|
+
pool: <%%= [Integer(ENV.fetch("MAX_THREADS", 5)), Integer(ENV.fetch("DB_POOL", 5))].max %>
|
18
|
+
timeout: 5000
|
19
|
+
url: <%%= ENV.fetch("DATABASE_URL", "") %>
|
data/templates/puma.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
workers Integer(ENV.fetch('WEB_CONCURRENCY', 2))
|
4
|
+
threads_count = Integer(ENV.fetch('MAX_THREADS', 2))
|
5
|
+
threads(threads_count, threads_count)
|
6
|
+
|
7
|
+
preload_app!
|
8
|
+
|
9
|
+
rackup DefaultRackup
|
10
|
+
environment ENV.fetch('RACK_ENV', 'development')
|
11
|
+
|
12
|
+
on_worker_boot do
|
13
|
+
ActiveRecord::Base.establish_connection
|
14
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
ENV['RACK_ENV'] = 'test'
|
4
|
+
|
5
|
+
require 'spec_helper'
|
6
|
+
|
7
|
+
require File.expand_path('../config/environment', __dir__)
|
8
|
+
abort('DATABASE_URL environment variable is set') if ENV['DATABASE_URL']
|
9
|
+
|
10
|
+
require 'rspec/rails'
|
11
|
+
|
12
|
+
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each do |file|
|
13
|
+
require file
|
14
|
+
end
|
15
|
+
|
16
|
+
module Features
|
17
|
+
include Formulaic::Dsl
|
18
|
+
end
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
config.include Features, type: :feature
|
22
|
+
config.infer_base_class_for_anonymous_controllers = false
|
23
|
+
config.infer_spec_type_from_file_location!
|
24
|
+
config.use_transactional_fixtures = false
|
25
|
+
end
|
26
|
+
|
27
|
+
ActiveRecord::Migration.maintain_test_schema!
|
@@ -0,0 +1,85 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- 'bin/*'
|
4
|
+
|
5
|
+
Metrics/LineLength:
|
6
|
+
Max: 80
|
7
|
+
Exclude:
|
8
|
+
- 'db/schema.rb'
|
9
|
+
|
10
|
+
Metrics/MethodLength:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Rails:
|
14
|
+
Enabled: true
|
15
|
+
|
16
|
+
Style/AlignParameters:
|
17
|
+
EnforcedStyle: with_fixed_indentation
|
18
|
+
|
19
|
+
Style/BlockComments:
|
20
|
+
Exclude:
|
21
|
+
- 'spec/spec_helper.rb'
|
22
|
+
|
23
|
+
Metrics/BlockLength:
|
24
|
+
Exclude:
|
25
|
+
- 'app/admin/*'
|
26
|
+
- 'config/environments/*'
|
27
|
+
- 'spec/**/*'
|
28
|
+
|
29
|
+
Style/Documentation:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
Style/EmptyLinesAroundBlockBody:
|
33
|
+
Exclude:
|
34
|
+
- 'db/schema.rb'
|
35
|
+
|
36
|
+
Style/ExtraSpacing:
|
37
|
+
Exclude:
|
38
|
+
- 'bin/*'
|
39
|
+
- 'db/schema.rb'
|
40
|
+
|
41
|
+
Style/FirstParameterIndentation:
|
42
|
+
EnforcedStyle: consistent
|
43
|
+
|
44
|
+
Style/FrozenStringLiteralComment:
|
45
|
+
Exclude:
|
46
|
+
- 'bin/*'
|
47
|
+
- 'db/schema.rb'
|
48
|
+
|
49
|
+
Style/GuardClause:
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
Style/HashSyntax:
|
53
|
+
Exclude:
|
54
|
+
- 'Rakefile'
|
55
|
+
- 'lib/tasks/*.rake'
|
56
|
+
|
57
|
+
Style/IfUnlessModifier:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
Style/IndentArray:
|
61
|
+
EnforcedStyle: consistent
|
62
|
+
|
63
|
+
Style/MultilineMethodCallIndentation:
|
64
|
+
EnforcedStyle: indented
|
65
|
+
|
66
|
+
Style/NumericLiterals:
|
67
|
+
Exclude:
|
68
|
+
- 'db/schema.rb'
|
69
|
+
|
70
|
+
Style/PercentLiteralDelimiters:
|
71
|
+
PreferredDelimiters:
|
72
|
+
'%': ()
|
73
|
+
'%i': '[]'
|
74
|
+
'%q': ()
|
75
|
+
'%Q': ()
|
76
|
+
'%r': '{}'
|
77
|
+
'%s': ()
|
78
|
+
'%w': '[]'
|
79
|
+
'%W': '[]'
|
80
|
+
'%x': ()
|
81
|
+
|
82
|
+
Style/StringLiterals:
|
83
|
+
Exclude:
|
84
|
+
- 'bin/*'
|
85
|
+
- 'db/schema.rb'
|