railman 0.6.20 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/lib/railman/cli.rb +7 -0
  4. data/lib/railman/version.rb +1 -1
  5. data/templates/rails_app/.ruby-version +1 -1
  6. data/templates/rails_app/Gemfile +18 -10
  7. data/templates/rails_app/README.md +1 -12
  8. data/templates/rails_app/app/assets/config/manifest.js +3 -0
  9. data/templates/rails_app/app/assets/javascripts/cable.js +13 -0
  10. data/templates/rails_app/app/{jobs → assets/javascripts/channels}/.keep +0 -0
  11. data/templates/rails_app/app/channels/application_cable/channel.rb +4 -0
  12. data/templates/rails_app/app/channels/application_cable/connection.rb +4 -0
  13. data/templates/rails_app/app/javascript/packs/application.js +17 -0
  14. data/templates/rails_app/app/javascript/packs/hello.vue +11 -0
  15. data/templates/rails_app/app/jobs/application_job.rb +2 -0
  16. data/templates/rails_app/app/models/application_record.rb +3 -0
  17. data/templates/rails_app/app/views/layouts/application.html.erb.tt +7 -4
  18. data/templates/rails_app/app/views/layouts/mailer.html.erb +5 -1
  19. data/templates/rails_app/bin/rails +6 -1
  20. data/templates/rails_app/bin/rake +5 -0
  21. data/templates/rails_app/bin/setup +21 -12
  22. data/templates/rails_app/bin/spring +17 -0
  23. data/templates/rails_app/bin/update +28 -0
  24. data/templates/rails_app/bin/webpack +19 -0
  25. data/templates/rails_app/bin/webpack-dev-server +27 -0
  26. data/templates/rails_app/bin/webpack-watcher +10 -0
  27. data/templates/rails_app/bin/yarn +10 -0
  28. data/templates/rails_app/config/application.rb.tt +1 -12
  29. data/templates/rails_app/config/cable.yml.tt +10 -0
  30. data/templates/rails_app/config/database.yml.tt +11 -22
  31. data/templates/rails_app/config/environment.rb +1 -1
  32. data/templates/rails_app/config/environments/development.rb +26 -13
  33. data/templates/rails_app/config/environments/production.rb.tt +40 -21
  34. data/templates/rails_app/config/environments/test.rb +6 -6
  35. data/templates/rails_app/config/initializers/application_controller_renderer.rb +6 -0
  36. data/templates/rails_app/config/initializers/assets.rb +6 -3
  37. data/templates/rails_app/config/initializers/cookies_serializer.rb +2 -0
  38. data/templates/rails_app/config/initializers/new_framework_defaults.rb +25 -0
  39. data/templates/rails_app/config/initializers/wrap_parameters.rb +2 -2
  40. data/templates/rails_app/config/puma.rb +76 -0
  41. data/templates/rails_app/config/secrets.yml +18 -6
  42. data/templates/rails_app/config/server/nginx.conf.tt +1 -1
  43. data/templates/rails_app/config/spring.rb +6 -0
  44. data/templates/rails_app/config/webpack/development.js +30 -0
  45. data/templates/rails_app/config/webpack/production.js +23 -0
  46. data/templates/rails_app/config/webpack/shared.js +80 -0
  47. data/templates/rails_app/db/seeds.rb +3 -3
  48. data/templates/rails_app/package.json.tt +28 -0
  49. data/templates/rails_app/{app/models/.keep → public/apple-touch-icon-precomposed.png} +0 -0
  50. data/templates/rails_app/{vendor/assets/javascripts/.keep → public/apple-touch-icon.png} +0 -0
  51. data/templates/rails_app/public/robots.txt +0 -4
  52. data/templates/rails_app/test/application_system_test_case.rb +5 -0
  53. data/templates/rails_app/{vendor/assets/stylesheets → test/system}/.keep +0 -0
  54. data/templates/rails_app/vendor/.keep +0 -0
  55. metadata +32 -10
  56. data/templates/rails_app/bin/unicorn +0 -16
  57. data/templates/rails_app/bin/unicorn_rails +0 -16
  58. data/templates/rails_app/config/unicorn.rb.tt +0 -50
@@ -1,4 +1,7 @@
1
1
  Rails.application.configure do
2
+ # Make javascript_pack_tag lookup digest hash to enable long-term caching
3
+ config.x.webpacker[:digesting] = true
4
+
2
5
  # Settings specified here will take precedence over those in config/application.rb.
3
6
 
4
7
  # Code is not reloaded between requests.
@@ -11,18 +14,17 @@ Rails.application.configure do
11
14
  config.eager_load = true
12
15
 
13
16
  # Full error reports are disabled and caching is turned on.
14
- config.consider_all_requests_local = false
17
+ config.consider_all_requests_local = false
15
18
  config.action_controller.perform_caching = true
16
19
 
17
- # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
- # Add `rack-cache` to your Gemfile before enabling this.
19
- # For large-scale production use, consider using a caching reverse proxy like
20
- # NGINX, varnish or squid.
21
- # config.action_dispatch.rack_cache = true
20
+ # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
21
+ # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
22
+ # `config/secrets.yml.key`.
23
+ config.read_encrypted_secrets = true
22
24
 
23
25
  # Disable serving static files from the `/public` folder by default since
24
26
  # Apache or NGINX already handles this.
25
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
27
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
26
28
 
27
29
  # Compress JavaScripts and CSS.
28
30
  config.assets.js_compressor = :uglifier
@@ -31,35 +33,45 @@ Rails.application.configure do
31
33
  # Do not fallback to assets pipeline if a precompiled asset is missed.
32
34
  config.assets.compile = false
33
35
 
34
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
35
- # yet still be able to expire them through the digest params.
36
- config.assets.digest = true
37
-
38
36
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
39
37
 
38
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
39
+ # config.action_controller.asset_host = 'http://assets.example.com'
40
+ unless ENV['RAILS_SERVE_STATIC_FILES'].present?
41
+ config.action_controller.asset_host = "https://#{ENV['CDN_HOST']}"
42
+ end
43
+
40
44
  # Specifies the header that your server uses for sending files.
41
45
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
42
46
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
43
47
 
48
+ # Mount Action Cable outside main process or domain
49
+ # config.action_cable.mount_path = nil
50
+ # config.action_cable.url = 'wss://example.com/cable'
51
+ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
52
+
44
53
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
45
- config.force_ssl = true
54
+ # config.force_ssl = true
46
55
 
47
56
  # Use the lowest log level to ensure availability of diagnostic information
48
57
  # when problems arise.
49
58
  config.log_level = :info
50
59
 
51
60
  # Prepend all log lines with the following tags.
52
- # config.log_tags = [ :subdomain, :uuid ]
53
-
54
- # Use a different logger for distributed setups.
55
- # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
61
+ config.log_tags = [ :request_id ]
56
62
 
57
63
  # Use a different cache store in production.
58
64
  # config.cache_store = :mem_cache_store
59
65
  config.cache_store = :redis_store, "redis://#{ENV.fetch('REDIS_SERVER')}/<%= @config.app_name %>:#{Rails.env}:cache"
60
66
 
61
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
62
- config.action_controller.asset_host = "https://#{ENV['CDN_HOST']}"
67
+ # Use a real queuing backend for Active Job (and separate queues per environment)
68
+ # config.active_job.queue_adapter = :resque
69
+ # config.active_job.queue_name_prefix = "<%= @config.app_name %>_#{Rails.env}"
70
+
71
+ # Use sidekiq as active job backend
72
+ config.active_job.queue_adapter = :sidekiq
73
+
74
+ config.action_mailer.perform_caching = false
63
75
 
64
76
  # Ignore bad email addresses and do not raise email delivery errors.
65
77
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
@@ -75,6 +87,16 @@ Rails.application.configure do
75
87
  # Use default logging formatter so that PID and timestamp are not suppressed.
76
88
  config.log_formatter = ::Logger::Formatter.new
77
89
 
90
+ # Use a different logger for distributed setups.
91
+ # require 'syslog/logger'
92
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
93
+
94
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
95
+ logger = ActiveSupport::Logger.new(STDOUT)
96
+ logger.formatter = config.log_formatter
97
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
98
+ end
99
+
78
100
  # Do not dump schema after migrations.
79
101
  config.active_record.dump_schema_after_migration = false
80
102
 
@@ -88,7 +110,4 @@ Rails.application.configure do
88
110
  enable_starttls_auto: true
89
111
  }
90
112
  config.action_mailer.default_url_options = { host: ENV['SMTP_DEFAULT_URL'] }
91
-
92
- # Use sidekiq as active job backend
93
- config.active_job.queue_adapter = :sidekiq
94
113
  end
@@ -12,9 +12,11 @@ Rails.application.configure do
12
12
  # preloads Rails for running tests, you may have to set it to true.
13
13
  config.eager_load = false
14
14
 
15
- # Configure static file server for tests with Cache-Control for performance.
16
- config.serve_static_files = true
17
- config.static_cache_control = 'public, max-age=3600'
15
+ # Configure public file server for tests with Cache-Control for performance.
16
+ config.public_file_server.enabled = true
17
+ config.public_file_server.headers = {
18
+ 'Cache-Control' => "public, max-age=#{1.hour.seconds.to_i}"
19
+ }
18
20
 
19
21
  # Show full error reports and disable caching.
20
22
  config.consider_all_requests_local = true
@@ -25,15 +27,13 @@ Rails.application.configure do
25
27
 
26
28
  # Disable request forgery protection in test environment.
27
29
  config.action_controller.allow_forgery_protection = false
30
+ config.action_mailer.perform_caching = false
28
31
 
29
32
  # Tell Action Mailer not to deliver emails to the real world.
30
33
  # The :test delivery method accumulates sent emails in the
31
34
  # ActionMailer::Base.deliveries array.
32
35
  config.action_mailer.delivery_method = :test
33
36
 
34
- # Randomize the order test cases are executed.
35
- config.active_support.test_order = :random
36
-
37
37
  # Print deprecation notices to the stderr.
38
38
  config.active_support.deprecation = :stderr
39
39
 
@@ -0,0 +1,6 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # ApplicationController.renderer.defaults.merge!(
4
+ # http_host: 'example.org',
5
+ # https: false
6
+ # )
@@ -3,9 +3,12 @@
3
3
  # Version of your assets, change this if you want to expire all your assets.
4
4
  Rails.application.config.assets.version = '1.0'
5
5
 
6
- # Add additional assets to the asset load path
6
+ # Add additional assets to the asset load path.
7
7
  # Rails.application.config.assets.paths << Emoji.images_path
8
+ # Add Yarn node_modules folder to the asset load path.
9
+ Rails.application.config.assets.paths << Rails.root.join('node_modules')
8
10
 
9
11
  # Precompile additional assets.
10
- # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11
- # Rails.application.config.assets.precompile += %w( search.js )
12
+ # application.js, application.css, and all non-JS/CSS in the app/assets
13
+ # folder are already added.
14
+ # Rails.application.config.assets.precompile += %w( admin.js admin.css )
@@ -1,3 +1,5 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
+ # Specify a serializer for the signed and encrypted cookie jars.
4
+ # Valid options are :json, :marshal, and :hybrid.
3
5
  Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -0,0 +1,25 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains migration options to ease your Rails 5.0 upgrade.
4
+ #
5
+ # Read the Guide for Upgrading Ruby on Rails for more info on each option.
6
+
7
+ # Enable per-form CSRF tokens. Previous versions had false.
8
+ Rails.application.config.action_controller.per_form_csrf_tokens = true
9
+
10
+ # Enable origin-checking CSRF mitigation. Previous versions had false.
11
+ Rails.application.config.action_controller.forgery_protection_origin_check = true
12
+
13
+ # Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
14
+ # Previous versions had false.
15
+ ActiveSupport.to_time_preserves_timezone = true
16
+
17
+ # Require `belongs_to` associations by default. Previous versions had false.
18
+ Rails.application.config.active_record.belongs_to_required_by_default = true
19
+
20
+ # Configure SSL options to enable HSTS with subdomains. Previous versions had false.
21
+ Rails.application.config.ssl_options = { hsts: { subdomains: true } }
22
+
23
+ # Unknown asset fallback will return the path passed in when the given
24
+ # asset is not present in the asset pipeline.
25
+ Rails.application.config.assets.unknown_asset_fallback = false
@@ -5,10 +5,10 @@
5
5
 
6
6
  # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
7
  ActiveSupport.on_load(:action_controller) do
8
- wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
8
+ wrap_parameters format: [:json]
9
9
  end
10
10
 
11
11
  # To enable root element in JSON for ActiveRecord objects.
12
12
  # ActiveSupport.on_load(:active_record) do
13
- # self.include_root_in_json = true
13
+ # self.include_root_in_json = true
14
14
  # end
@@ -0,0 +1,76 @@
1
+ # Puma can serve each request in a thread from an internal thread pool.
2
+ # The `threads` method setting takes two numbers: a minimum and maximum.
3
+ # Any libraries that use thread pools should be configured to match
4
+ # the maximum value specified for Puma. Default is set to 5 threads for minimum
5
+ # and maximum; this matches the default thread size of Active Record.
6
+ #
7
+
8
+ APP_ROOT = File.expand_path('../..', __FILE__)
9
+
10
+ require 'dotenv'
11
+ Dotenv.load
12
+
13
+ threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
14
+ threads threads_count, threads_count
15
+
16
+ environment ENV.fetch("RAILS_ENV") { "development" }
17
+
18
+ if ENV['UNICORN_BEHIND_NGINX']
19
+ bind 'unix:///home/deploy/apps/<%= @config.app_name %>/puma.sock'
20
+
21
+ # Specifies the number of `workers` to boot in clustered mode.
22
+ # Workers are forked webserver processes. If using threads and workers together
23
+ # the concurrency of the application would be max `threads` * `workers`.
24
+ # Workers do not work on JRuby or Windows (both of which do not support
25
+ # processes).
26
+ #
27
+ # Change WEB_CONCURRENCY to match your CPU core count
28
+ workers ENV.fetch("WEB_CONCURRENCY") { 2 }
29
+
30
+ # Use the `preload_app!` method when specifying a `workers` number.
31
+ # This directive tells Puma to first boot the application and load code
32
+ # before forking the application. This takes advantage of Copy On Write
33
+ # process behavior so workers use less memory. If you use this option
34
+ # you need to make sure to reconnect any threads in the `on_worker_boot`
35
+ # block.
36
+ #
37
+ preload_app!
38
+
39
+ # If you are preloading your application and using Active Record, it's
40
+ # recommended that you close any connections to the database before workers
41
+ # are forked to prevent connection leakage.
42
+ #
43
+ #before_fork do
44
+ # ActiveRecord::Base.connection_pool.disconnect!
45
+ # # disconnect from redis?
46
+ #end
47
+
48
+ # The code in the `on_worker_boot` will be called if you are using
49
+ # clustered mode by specifying a number of `workers`. After each worker
50
+ # process is booted, this block will be run. If you are using the `preload_app!`
51
+ # option, you will want to use this block to reconnect to any threads
52
+ # or connections that may have been created at application boot, as Ruby
53
+ # cannot share connections between processes.
54
+ #
55
+ on_worker_boot do
56
+ ActiveRecord::Base.establish_connection
57
+
58
+ # digital ocean:
59
+ #require "active_record"
60
+ #ActiveRecord::Base.connection.disconnect! rescue ActiveRecord::ConnectionNotEstablished
61
+ #ActiveRecord::Base.establish_connection(YAML.load_file("#{app_dir}/config/database.yml")[rails_env])
62
+
63
+ # reconnect to redis?
64
+ end
65
+ else
66
+ port ENV.fetch("PORT") { 3000 }
67
+ end
68
+
69
+ stdout_redirect "#{APP_ROOT}/log/puma.stdout.log", "#{APP_ROOT}/log/puma.stderr.log", true
70
+
71
+ pidfile "#{APP_ROOT}/tmp/pids/puma.pid"
72
+ # state_path "#{APP_ROOT}/tmp/pids/puma.state"
73
+ # activate_control_app
74
+
75
+ # Allow puma to be restarted by `rails restart` command.
76
+ plugin :tmp_restart
@@ -5,16 +5,28 @@
5
5
 
6
6
  # Make sure the secret is at least 30 characters and all random,
7
7
  # no regular words or you'll be exposed to dictionary attacks.
8
- # You can use `rake secret` to generate a secure secret key.
8
+ # You can use `rails secret` to generate a secure secret key.
9
9
 
10
10
  # Make sure the secrets in this file are kept private
11
11
  # if you're sharing your code publicly.
12
12
 
13
- development:
14
- secret_key_base: <%= ENV["SECRET_TOKEN"] %>
13
+ # Shared secrets are available across all environments.
15
14
 
16
- test:
15
+ shared:
17
16
  secret_key_base: <%= ENV["SECRET_TOKEN"] %>
18
17
 
19
- production:
20
- secret_key_base: <%= ENV["SECRET_TOKEN"] %>
18
+ # Environmental secrets are only available for that specific environment.
19
+
20
+ #development:
21
+ # secret_key_base: <%= ENV["SECRET_TOKEN"] %>
22
+
23
+ #test:
24
+ # secret_key_base: <%= ENV["SECRET_TOKEN"] %>
25
+
26
+ # Do not keep production secrets in the unencrypted secrets file.
27
+ # Instead, either read values from the environment.
28
+ # Or, use `bin/rails secrets:setup` to configure encrypted secrets
29
+ # and move the `production:` environment over there.
30
+
31
+ # production:
32
+ # secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -1,5 +1,5 @@
1
1
  upstream <%= @config.app_name %> {
2
- server unix:/tmp/unicorn.<%= @config.app_name %>.sock fail_timeout=0;
2
+ server unix:///home/deploy/apps/<%= @config.app_name %>/puma.sock fail_timeout=0;
3
3
  }
4
4
 
5
5
  server {
@@ -0,0 +1,6 @@
1
+ %w(
2
+ .ruby-version
3
+ .rbenv-vars
4
+ tmp/restart.txt
5
+ tmp/caching-dev.txt
6
+ ).each { |path| Spring.watch(path) }
@@ -0,0 +1,30 @@
1
+ // Note: You must restart bin/webpack-watcher for changes to take effect
2
+
3
+ const webpack = require('webpack')
4
+ const merge = require('webpack-merge')
5
+
6
+ const sharedConfig = require('./shared.js')
7
+
8
+ module.exports = merge(sharedConfig.config, {
9
+ devtool: 'sourcemap',
10
+
11
+ stats: {
12
+ errorDetails: true
13
+ },
14
+
15
+ devServer: {
16
+ stats: {
17
+ warnings: false
18
+ }
19
+ },
20
+
21
+ output: {
22
+ pathinfo: true
23
+ },
24
+
25
+ plugins: [
26
+ new webpack.LoaderOptionsPlugin({
27
+ debug: true
28
+ })
29
+ ]
30
+ })
@@ -0,0 +1,23 @@
1
+ // Note: You must restart bin/webpack-watcher for changes to take effect
2
+
3
+ const webpack = require('webpack')
4
+ const merge = require('webpack-merge')
5
+ const CompressionPlugin = require('compression-webpack-plugin')
6
+
7
+ const sharedConfig = require('./shared.js')
8
+
9
+ module.exports = merge(sharedConfig.config, {
10
+ output: { filename: '[name]-[chunkhash].js' },
11
+
12
+ plugins: [
13
+ new webpack.LoaderOptionsPlugin({
14
+ minimize: true
15
+ }),
16
+ new webpack.optimize.UglifyJsPlugin(),
17
+ new CompressionPlugin({
18
+ asset: '[path].gz[query]',
19
+ algorithm: 'gzip',
20
+ test: /\.js$/
21
+ })
22
+ ]
23
+ })
@@ -0,0 +1,80 @@
1
+ // Note: You must restart bin/webpack-watcher for changes to take effect
2
+
3
+ const webpack = require('webpack')
4
+ const path = require('path')
5
+ const process = require('process')
6
+ const glob = require('glob')
7
+ const extname = require('path-complete-extname')
8
+
9
+ let distDir = process.env.WEBPACK_DIST_DIR
10
+
11
+ if (distDir === undefined) {
12
+ distDir = 'packs'
13
+ }
14
+
15
+ const config = {
16
+ entry: glob.sync(path.join('app', 'javascript', 'packs', '*.js*')).reduce(
17
+ (map, entry) => {
18
+ const basename = path.basename(entry, extname(entry))
19
+ const localMap = map
20
+ localMap[basename] = path.resolve(entry)
21
+ return localMap
22
+ }, {}
23
+ ),
24
+
25
+ output: { filename: '[name].js', path: path.resolve('public', distDir) },
26
+
27
+ module: {
28
+ rules: [
29
+ {
30
+ test: /.vue$/, loader: 'vue-loader',
31
+ options: {
32
+ loaders: { 'scss': 'vue-style-loader!css-loader!sass-loader', 'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax'}
33
+ }
34
+ },
35
+ { test: /.png$/, loader: 'url-loader?mimetype=image/png'},
36
+ { test: /\.coffee(\.erb)?$/, loader: 'coffee-loader' },
37
+ {
38
+ test: /\.js(\.erb)?$/,
39
+ exclude: /node_modules/,
40
+ loader: 'babel-loader',
41
+ options: {
42
+ presets: [
43
+ ['env', { modules: false }]
44
+ ]
45
+ }
46
+ },
47
+ {
48
+ test: /\.erb$/,
49
+ enforce: 'pre',
50
+ exclude: /node_modules/,
51
+ loader: 'rails-erb-loader',
52
+ options: {
53
+ runner: 'DISABLE_SPRING=1 bin/rails runner'
54
+ }
55
+ }
56
+ ]
57
+ },
58
+
59
+ plugins: [
60
+ new webpack.EnvironmentPlugin(Object.keys(process.env))
61
+ ],
62
+
63
+ resolve: {
64
+ alias: { 'vue$':'vue/dist/vue.esm.js' },
65
+ extensions: ['.js', '.coffee'],
66
+ modules: [
67
+ path.resolve('app/javascript'),
68
+ path.resolve('node_modules')
69
+ ]
70
+ },
71
+
72
+ resolveLoader: {
73
+ modules: [path.resolve('node_modules')]
74
+ }
75
+ }
76
+
77
+ module.exports = {
78
+ distDir,
79
+ config
80
+ }
@@ -1,7 +1,7 @@
1
1
  # This file should contain all the record creation needed to seed the database with its default values.
2
- # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
2
+ # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
3
3
  #
4
4
  # Examples:
5
5
  #
6
- # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
- # Mayor.create(name: 'Emanuel', city: cities.first)
6
+ # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
7
+ # Character.create(name: 'Luke', movie: movies.first)
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "<%= @config.app_name %>",
3
+ "private": true,
4
+ "dependencies": {
5
+ "axios": "^0.15.3",
6
+ "babel-core": "^6.23.1",
7
+ "babel-loader": "^6.3.2",
8
+ "babel-preset-env": "^1.1.11",
9
+ "coffee-loader": "^0.7.3",
10
+ "coffee-script": "^1.12.4",
11
+ "compression-webpack-plugin": "^0.3.2",
12
+ "css-loader": "^0.26.2",
13
+ "glob": "^7.1.1",
14
+ "node-sass": "^4.5.0",
15
+ "path-complete-extname": "^0.1.0",
16
+ "rails-erb-loader": "^3.2.0",
17
+ "sass-loader": "^6.0.2",
18
+ "url-loader": "^0.5.8",
19
+ "vue": "^2.2.1",
20
+ "vue-loader": "^11.1.3",
21
+ "vue-template-compiler": "^2.2.1",
22
+ "webpack": "^2.2.1",
23
+ "webpack-merge": "^3.0.0"
24
+ },
25
+ "devDependencies": {
26
+ "webpack-dev-server": "^2.4.1"
27
+ }
28
+ }
@@ -1,5 +1 @@
1
1
  # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2
- #
3
- # To ban all spiders from the entire site uncomment the next two lines:
4
- # User-agent: *
5
- # Disallow: /
@@ -0,0 +1,5 @@
1
+ require "test_helper"
2
+
3
+ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
4
+ driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
5
+ end
File without changes