mvpkit 0.8.1 → 1.0.0

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.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/bin/mvp +0 -1
  4. data/mvpkit.gemspec +71 -50
  5. data/package.json +1 -0
  6. data/project/.babelrc +3 -0
  7. data/project/.env +15 -0
  8. data/project/.gitignore +15 -40
  9. data/project/.iteration +3 -0
  10. data/project/Gemfile +43 -19
  11. data/project/Gemfile.lock +237 -165
  12. data/project/Procfile +2 -1
  13. data/project/README.md +0 -1
  14. data/project/app/assets/config/manifest.js +2 -0
  15. data/project/app/assets/javascripts/application.js +5 -0
  16. data/project/app/assets/javascripts/templates.js.erb +14 -0
  17. data/project/app/assets/stylesheets/application.scss +2 -0
  18. data/project/app/controllers/application_controller.rb +25 -5
  19. data/project/app/helpers/application_helper.rb +17 -4
  20. data/project/app/mailers/application_mailer.rb +5 -0
  21. data/project/app/templates/README.txt +1 -0
  22. data/project/app/templates/examples/template.mustache +1 -0
  23. data/project/app/views/examples/mustache.html.erb +25 -3
  24. data/project/app/views/layouts/_header.html.erb +22 -14
  25. data/project/app/views/layouts/_notifications.html.erb +10 -0
  26. data/project/app/views/layouts/application.html.erb +22 -11
  27. data/project/app/views/layouts/mailer.html.erb +5 -0
  28. data/project/app/views/layouts/mailer.text.erb +1 -0
  29. data/project/app/webpack/javascripts/behaviors/example.js +21 -0
  30. data/project/app/webpack/javascripts/controllers/home.js +15 -0
  31. data/project/app/webpack/javascripts/lib/clientsidevalidations.js +3 -0
  32. data/project/app/webpack/javascripts/lib/selectize.js +1 -0
  33. data/project/app/webpack/javascripts/pack.js +47 -0
  34. data/project/app/webpack/stylesheets/config/variables.scss +41 -0
  35. data/project/app/webpack/stylesheets/init/reset.scss +48 -0
  36. data/project/app/webpack/stylesheets/layout/main.scss +7 -0
  37. data/project/app/webpack/stylesheets/pack.scss +20 -0
  38. data/project/app/webpack/stylesheets/skin/alerts.scss +3 -0
  39. data/project/app/webpack/stylesheets/skin/buttons.scss +38 -0
  40. data/project/app/webpack/stylesheets/skin/hero.scss +45 -0
  41. data/project/app/webpack/stylesheets/skin/images.scss +13 -0
  42. data/project/app/webpack/stylesheets/skin/progress.scss +3 -0
  43. data/project/app/webpack/stylesheets/skin/selectize.scss +30 -0
  44. data/project/{assets/stylesheets/lib → app/webpack/stylesheets/skin}/spacing.scss +0 -2
  45. data/project/app/webpack/stylesheets/skin/tables.scss +10 -0
  46. data/project/app/webpack/stylesheets/skin/treatments.scss +3 -0
  47. data/project/app/webpack/stylesheets/skin/turbolinks.scss +4 -0
  48. data/project/app/webpack/stylesheets/skin/typography.scss +116 -0
  49. data/project/bin/rails +1 -6
  50. data/project/bin/rake +0 -5
  51. data/project/bin/setup +17 -17
  52. data/project/bin/update +29 -0
  53. data/project/config/application.rb +5 -4
  54. data/project/config/boot.rb +1 -1
  55. data/project/config/cable.yml +9 -0
  56. data/project/config/environment.rb +1 -1
  57. data/project/config/environments/development.rb +29 -26
  58. data/project/config/environments/production.rb +32 -19
  59. data/project/config/environments/test.rb +6 -6
  60. data/project/config/initializers/algolia.rb +7 -0
  61. data/project/config/initializers/application_controller_renderer.rb +6 -0
  62. data/project/config/initializers/assets.rb +23 -2
  63. data/project/config/initializers/client_side_validations.rb +20 -0
  64. data/project/config/initializers/cookies_serializer.rb +2 -0
  65. data/project/config/initializers/date_formats.rb +6 -0
  66. data/project/config/initializers/fingerprint.rb +1 -0
  67. data/project/config/initializers/geocoder.rb +9 -0
  68. data/project/config/initializers/new_framework_defaults.rb +23 -0
  69. data/project/config/initializers/rails_admin.rb +13 -7
  70. data/project/config/initializers/sidekiq.rb +19 -0
  71. data/project/config/initializers/simple_form.rb +2 -0
  72. data/project/config/initializers/stripe.rb +8 -0
  73. data/project/config/initializers/wrap_parameters.rb +2 -2
  74. data/project/config/puma.rb +47 -0
  75. data/project/config/routes.rb +4 -2
  76. data/project/config/secrets.yml +17 -3
  77. data/project/config/sidekiq.yml +6 -0
  78. data/project/config/spring.rb +6 -0
  79. data/project/config/stripe/coupons.rb +39 -0
  80. data/project/config/stripe/plans.rb +32 -0
  81. data/project/lib/tasks/heroku.rake +10 -2
  82. data/project/lib/tasks/migrations.rake +3 -0
  83. data/project/package.json +19 -28
  84. data/project/public/favicon.ico +0 -0
  85. data/project/webpack.config.js +62 -53
  86. metadata +70 -49
  87. data/project/app/decorators/.keep +0 -0
  88. data/project/app/mailers/.keep +0 -0
  89. data/project/app/views/layouts/_includes.html.erb +0 -7
  90. data/project/app/views/layouts/modal.html.erb +0 -14
  91. data/project/assets/images/.keep +0 -0
  92. data/project/assets/images/favicon.ico +0 -0
  93. data/project/assets/javascripts/controllers/home.coffee +0 -15
  94. data/project/assets/javascripts/pack.js +0 -9
  95. data/project/assets/stylesheets/config/variables.scss +0 -876
  96. data/project/assets/stylesheets/layout/basic.scss +0 -6
  97. data/project/assets/stylesheets/layout/carousel.scss +0 -127
  98. data/project/assets/stylesheets/layout/cover.scss +0 -129
  99. data/project/assets/stylesheets/skin/style.scss +0 -16
  100. data/project/assets/stylesheets/style.scss +0 -8
  101. data/project/config/initializers/mustache.rb +0 -7
  102. data/project/log/development.log +0 -48216
  103. data/project/log/production.log +0 -0
  104. data/project/public/404.html +0 -67
  105. data/project/public/422.html +0 -67
  106. data/project/public/500.html +0 -66
  107. data/project/public/assets/javascripts/448c34a56d699c29117adc64c43affeb.woff2 +0 -0
  108. data/project/public/assets/javascripts/89889688147bd7575d6327160d64e760.svg +0 -288
  109. data/project/public/assets/javascripts/e18bbf611f2a2e43afc071aa2f4e1512.ttf +0 -0
  110. data/project/public/assets/javascripts/f4769f9bdb7466be65088239c12046d1.eot +0 -0
  111. data/project/public/assets/javascripts/fa2772327f55d8198301fdb8bcfc8158.woff +0 -0
  112. data/project/public/assets/javascripts/pack.js +0 -31367
  113. data/project/public/assets/javascripts/pack.js.map +0 -1
  114. data/project/public/assets/pack.js +0 -17220
  115. data/project/public/assets/style.css +0 -7477
  116. /data/app/views/layouts/{minimum_viable_product → mvp}/_instrumentation.html.erb +0 -0
  117. /data/app/views/layouts/{minimum_viable_product → mvp}/_meta.html.erb +0 -0
  118. /data/app/views/layouts/{minimum_viable_product → mvp}/application.html.erb +0 -0
  119. /data/app/views/{minimum_viable_product → mvp}/styleguide/_example.html.erb +0 -0
  120. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_buttons.html.erb +0 -0
  121. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_forms.html.erb +0 -0
  122. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_header.html.erb +0 -0
  123. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_panels.html.erb +0 -0
  124. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_tables.html.erb +0 -0
  125. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap/_typography.html.erb +0 -0
  126. /data/app/views/{minimum_viable_product → mvp}/styleguide/bootstrap.html.erb +0 -0
  127. /data/app/views/{minimum_viable_product → mvp}/styleguide/elements/_grouping.html.erb +0 -0
  128. /data/app/views/{minimum_viable_product → mvp}/styleguide/elements/partials/_row_groups_of.html.erb +0 -0
  129. /data/app/views/{minimum_viable_product → mvp}/styleguide/index.html.erb +0 -0
  130. /data/app/views/{minimum_viable_product → mvp}/styleguide/layouts/basic.html.erb +0 -0
  131. /data/app/views/{minimum_viable_product → mvp}/styleguide/layouts/carousel.html.erb +0 -0
  132. /data/app/views/{minimum_viable_product → mvp}/styleguide/layouts/cover.html.erb +0 -0
@@ -0,0 +1,116 @@
1
+ @import url('https://fonts.googleapis.com/css?family=Lato:400,900|Open+Sans:400,700');
2
+
3
+ .text-no-underline {
4
+ text-decoration: none !important;
5
+ }
6
+
7
+ .text-underline {
8
+ text-decoration: underline !important;
9
+ }
10
+
11
+ .text-nowrap {
12
+ white-space: nowrap;
13
+ }
14
+
15
+ .text-black {
16
+ color: #000;
17
+ &:hover {
18
+ color: #000;
19
+ }
20
+ }
21
+
22
+ .text-grey {
23
+ color: $color-grey;
24
+ }
25
+
26
+ .text-grey2 {
27
+ color: $color-grey2;
28
+ }
29
+
30
+ .text-grey3 {
31
+ color: $color-grey3;
32
+ }
33
+
34
+ .text-grey4 {
35
+ color: $color-grey4;
36
+ }
37
+
38
+ .text-grey5 {
39
+ color: $color-grey5;
40
+ }
41
+
42
+ .text-grey6 {
43
+ color: $color-grey6;
44
+ }
45
+
46
+ .anchor {
47
+ display: block;
48
+ position: relative;
49
+ top: -70px;
50
+ visibility: hidden;
51
+ }
52
+
53
+ body {
54
+ font-family: 'Open Sans', sans-serif;
55
+ font-size: 14px;
56
+ line-height: 24px;
57
+ }
58
+
59
+ small {
60
+ font-size: 10px;
61
+ line-height: 18px;
62
+ }
63
+
64
+ p.lead {
65
+ font-size: 18px;
66
+ line-height: 24px;
67
+ }
68
+
69
+ h1 {
70
+ font-family: 'Lato', sans-serif;
71
+ font-weight: 800;
72
+ font-size: 52px;
73
+ line-height: 67px;
74
+ // font-size: 40px;
75
+ // line-height: 48px;
76
+ }
77
+
78
+ h2 {
79
+ font-family: 'Lato', sans-serif;
80
+ font-weight: 800;
81
+ font-size: 40px;
82
+ line-height: 48px;
83
+ // font-size: 28px;
84
+ // line-height: 34px;
85
+ }
86
+
87
+ h3 {
88
+ font-family: 'Lato', sans-serif;
89
+ font-weight: 800;
90
+ // font-size: 28px;
91
+ // line-height: 34px;
92
+ font-size: 34px;
93
+ line-height: 42px;
94
+ }
95
+
96
+ h4 {
97
+ font-family: 'Lato', sans-serif;
98
+ font-weight: 900;
99
+ // font-size: 20px;
100
+ // line-height: 26px;
101
+ font-size: 28px;
102
+ line-height: 34px;
103
+ }
104
+
105
+ h5 {
106
+ font-family: 'Lato', sans-serif;
107
+ font-weight: 700;
108
+ text-transform: uppercase;
109
+ font-size: 20px;
110
+ line-height: 26px;
111
+ }
112
+
113
+ h6 {
114
+ font-family: 'Lato', sans-serif;
115
+ font-weight: 700;
116
+ }
data/project/bin/rails CHANGED
@@ -1,9 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- begin
3
- load File.expand_path('../spring', __FILE__)
4
- rescue LoadError => e
5
- raise unless e.message.include?('spring')
6
- end
7
- APP_PATH = File.expand_path('../../config/application', __FILE__)
2
+ APP_PATH = File.expand_path('../config/application', __dir__)
8
3
  require_relative '../config/boot'
9
4
  require 'rails/commands'
data/project/bin/rake CHANGED
@@ -1,9 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- begin
3
- load File.expand_path('../spring', __FILE__)
4
- rescue LoadError => e
5
- raise unless e.message.include?('spring')
6
- end
7
2
  require_relative '../config/boot'
8
3
  require 'rake'
9
4
  Rake.application.run
data/project/bin/setup CHANGED
@@ -1,32 +1,32 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'pathname'
3
+ require 'fileutils'
4
+ include FileUtils
3
5
 
4
6
  # path to your application root.
5
- APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
7
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
6
8
 
7
- Dir.chdir APP_ROOT do
8
- # This script is a starting point to setup your application.
9
- # Add necessary setup steps to this file:
9
+ def system!(*args)
10
+ system(*args) || abort("\n== Command #{args} failed ==")
11
+ end
10
12
 
11
- puts "== Installing dependencies =="
12
- system "gem install bundler --conservative"
13
- system "bundle check || bundle install"
13
+ chdir APP_ROOT do
14
+ puts '== Installing dependencies =='
15
+ system! 'gem install bundler --conservative'
16
+ system('bundle check') || system!('bundle install')
17
+ system('npm install')
14
18
 
15
19
  # puts "\n== Copying sample files =="
16
- # unless File.exist?("config/database.yml")
17
- # system "cp config/database.yml.sample config/database.yml"
20
+ # unless File.exist?('config/database.yml')
21
+ # cp 'config/database.yml.sample', 'config/database.yml'
18
22
  # end
19
23
 
20
24
  puts "\n== Preparing database =="
21
- system "bin/rake db:setup"
25
+ system! 'bin/rails db:setup'
22
26
 
23
27
  puts "\n== Removing old logs and tempfiles =="
24
- system "rm -f log/*"
25
- system "rm -rf tmp/cache"
26
-
27
- puts "\n== Installing Node Modules =="
28
- system "npm install"
28
+ system! 'bin/rails log:clear tmp:clear'
29
29
 
30
- puts "\n== Creating .env =="
31
- system "touch .env"
30
+ puts "\n== Restarting application server =="
31
+ system! 'bin/rails restart'
32
32
  end
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+ require 'fileutils'
4
+ include FileUtils
5
+
6
+ # path to your application root.
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
+ # This script is a way to update your development environment automatically.
15
+ # Add necessary update steps to this file.
16
+
17
+ puts '== Installing dependencies =='
18
+ system! 'gem install bundler --conservative'
19
+ system('bundle check') || system!('bundle install')
20
+
21
+ puts "\n== Updating database =="
22
+ system! 'bin/rails db:migrate'
23
+
24
+ puts "\n== Removing old logs and tempfiles =="
25
+ system! 'bin/rails log:clear tmp:clear'
26
+
27
+ puts "\n== Restarting application server =="
28
+ system! 'bin/rails restart'
29
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ require_relative 'boot'
2
2
 
3
3
  require 'rails/all'
4
4
 
@@ -8,7 +8,8 @@ Bundler.require(*Rails.groups)
8
8
 
9
9
  module Project
10
10
  class Application < Rails::Application
11
- config.autoload_paths += %W(#{Rails.root}/lib)
11
+ # config.middleware.use Rack::Static, :urls => ["/javascripts", "/stylesheets", "/images", "/assets"], :root => "public"
12
+
12
13
  config.active_record.raise_in_transactional_callbacks = true
13
14
  config.generators do |g|
14
15
  g.helper false
@@ -21,8 +22,8 @@ module Project
21
22
  g.stylesheets false
22
23
  g.test_framework false
23
24
  end
24
-
25
- config.assets.paths << Rails.root.join('node_modules')
25
+ config.exceptions_app = self.routes
26
+ config.paths["app/views"].unshift("#{Rails.root}/app/templates")
26
27
 
27
28
  _host = ENV['HOST_DOMAIN'] || "localhost"
28
29
  _port = ENV['HOST_PORT'] || "3000"
@@ -1,3 +1,3 @@
1
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
1
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
2
 
3
3
  require 'bundler/setup' # Set up gems listed in the Gemfile.
@@ -0,0 +1,9 @@
1
+ development:
2
+ adapter: async
3
+
4
+ test:
5
+ adapter: async
6
+
7
+ production:
8
+ adapter: redis
9
+ url: redis://localhost:6379/1
@@ -1,5 +1,5 @@
1
1
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
2
+ require_relative 'application'
3
3
 
4
4
  # Initialize the Rails application.
5
5
  Rails.application.initialize!
@@ -1,3 +1,7 @@
1
+ if defined? BetterErrors
2
+ BetterErrors.editor = "atm://open?url=file://%{file}&line=%{line}"
3
+ end
4
+
1
5
  Rails.application.configure do
2
6
  # Settings specified here will take precedence over those in config/application.rb.
3
7
 
@@ -9,12 +13,25 @@ Rails.application.configure do
9
13
  # Do not eager load code on boot.
10
14
  config.eager_load = false
11
15
 
12
- # Show full error reports and disable caching.
13
- config.consider_all_requests_local = true
14
- config.action_controller.perform_caching = false
16
+ # Show full error reports.
17
+ config.consider_all_requests_local = true
18
+
19
+ # Enable/disable caching. By default caching is disabled.
20
+ if Rails.root.join('tmp/caching-dev.txt').exist?
21
+ config.action_controller.perform_caching = true
22
+
23
+ config.cache_store = :memory_store
24
+ config.public_file_server.headers = {
25
+ 'Cache-Control' => 'public, max-age=172800'
26
+ }
27
+ else
28
+ config.action_controller.perform_caching = false
29
+
30
+ config.cache_store = :null_store
31
+ end
15
32
 
16
33
  # Don't care if the mailer can't send.
17
- config.action_mailer.raise_delivery_errors = false
34
+ # config.action_mailer.raise_delivery_errors = false
18
35
  if ENV['DELIVER_MAIL']=='true'
19
36
  puts
20
37
  puts
@@ -28,40 +45,26 @@ Rails.application.configure do
28
45
  config.action_mailer.delivery_method = :letter_opener
29
46
  end
30
47
 
48
+ config.action_mailer.perform_caching = false
49
+
31
50
  # Print deprecation notices to the Rails logger.
32
51
  config.active_support.deprecation = :log
33
52
 
34
53
  # Raise an error on page load if there are pending migrations.
35
54
  config.active_record.migration_error = :page_load
36
55
 
37
- # Disable serving static files from the `/public` folder by default since
38
- # Apache or NGINX already handles this.
39
- config.serve_static_files = true
40
-
41
- # Compress JavaScripts and CSS.
42
- # config.assets.js_compressor = :uglifier
43
- # config.assets.css_compressor = :sass
44
-
45
- # Do not fallback to assets pipeline if a precompiled asset is missed.
46
- config.assets.compile = true
47
-
48
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
49
- # yet still be able to expire them through the digest params.
50
- config.assets.digest = true
51
-
52
56
  # Debug mode disables concatenation and preprocessing of assets.
53
57
  # This option may cause significant delays in view rendering with a large
54
58
  # number of complex assets.
55
59
  config.assets.debug = true
56
60
 
57
- # Rails assets are so noisy. Quiet them down.
58
- config.assets.quiet = true
59
-
60
- # Adds additional error checking when serving assets at runtime.
61
- # Checks for improperly declared sprockets dependencies.
62
- # Raises helpful error messages.
63
- config.assets.raise_runtime_errors = true
61
+ # Suppress logger output for asset requests.
62
+ config.assets.quiet = false
64
63
 
65
64
  # Raises error for missing translations
66
65
  # config.action_view.raise_on_missing_translations = true
66
+
67
+ # Use an evented file watcher to asynchronously detect changes in source code,
68
+ # routes, locales, etc. This feature depends on the listen gem.
69
+ # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
67
70
  end
@@ -14,52 +14,55 @@ Rails.application.configure do
14
14
  config.consider_all_requests_local = false
15
15
  config.action_controller.perform_caching = true
16
16
 
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
22
-
23
17
  # Disable serving static files from the `/public` folder by default since
24
18
  # Apache or NGINX already handles this.
25
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
19
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
26
20
 
27
21
  # Compress JavaScripts and CSS.
28
- config.assets.js_compressor = :uglifier
22
+ # config.assets.js_compressor = :uglifier
29
23
  # config.assets.css_compressor = :sass
30
24
 
31
25
  # Do not fallback to assets pipeline if a precompiled asset is missed.
32
26
  config.assets.compile = false
33
27
 
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
28
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
39
29
 
30
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
31
+ # config.action_controller.asset_host = 'http://assets.example.com'
32
+
40
33
  # Specifies the header that your server uses for sending files.
41
34
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
42
35
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
43
36
 
37
+ # Mount Action Cable outside main process or domain
38
+ # config.action_cable.mount_path = nil
39
+ # config.action_cable.url = 'wss://example.com/cable'
40
+ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
41
+
44
42
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
45
- # set FORCE_SSL=true in your .env
43
+ # config.force_ssl = true
46
44
 
47
45
  # Use the lowest log level to ensure availability of diagnostic information
48
46
  # when problems arise.
49
47
  config.log_level = :debug
50
48
 
51
49
  # 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)
50
+ config.log_tags = [ :request_id ]
56
51
 
57
52
  # Use a different cache store in production.
58
53
  # config.cache_store = :mem_cache_store
54
+ if ENV["MEMCACHEDCLOUD_SERVERS"]
55
+ config.cache_store = :dalli_store, ENV["MEMCACHEDCLOUD_SERVERS"].split(','), { :username => ENV["MEMCACHEDCLOUD_USERNAME"], :password => ENV["MEMCACHEDCLOUD_PASSWORD"] }
56
+ end
59
57
 
60
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
61
- # config.action_controller.asset_host = 'http://assets.example.com'
58
+ # Use a real queuing backend for Active Job (and separate queues per environment)
59
+ # config.active_job.queue_adapter = :resque
60
+ # config.active_job.queue_name_prefix = "__PROJECT_NAME_SLUG___#{Rails.env}"
61
+ config.action_mailer.perform_caching = false
62
62
 
63
+ # Ignore bad email addresses and do not raise email delivery errors.
64
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
65
+ # config.action_mailer.raise_delivery_errors = false
63
66
  # Ignore bad email addresses and do not raise email delivery errors.
64
67
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
65
68
  # config.action_mailer.raise_delivery_errors = false
@@ -88,6 +91,16 @@ Rails.application.configure do
88
91
  # Use default logging formatter so that PID and timestamp are not suppressed.
89
92
  config.log_formatter = ::Logger::Formatter.new
90
93
 
94
+ # Use a different logger for distributed setups.
95
+ # require 'syslog/logger'
96
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
97
+
98
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
99
+ logger = ActiveSupport::Logger.new(STDOUT)
100
+ logger.formatter = config.log_formatter
101
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
102
+ end
103
+
91
104
  # Do not dump schema after migrations.
92
105
  config.active_record.dump_schema_after_migration = false
93
106
  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=3600'
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,7 @@
1
+ if ENV['ALGOLA_APP_ID']
2
+ AlgoliaSearch.configuration = {
3
+ application_id: ENV['ALGOLA_APP_ID'],
4
+ api_key: ENV['ALGOLA_API_KEY'],
5
+ pagination_backend: :kaminari
6
+ }
7
+ end
@@ -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
+ # )
@@ -1,11 +1,32 @@
1
1
  # Be sure to restart your server when you modify this file.
2
+ # ExecJS.runtime = ExecJS::Runtimes::Node
2
3
 
3
4
  # Version of your assets, change this if you want to expire all your assets.
4
5
  Rails.application.config.assets.version = '1.0'
5
6
 
6
7
  # Add additional assets to the asset load path
7
- Rails.application.config.assets.paths << Rails.root.join('public', 'assets', 'javascripts')
8
+ Rails.application.config.assets.paths += [
9
+ Rails.root.join('public', 'assets', 'javascripts'),
10
+ Rails.root.join('node_modules')
11
+ ]
12
+
13
+ # Rails.application.config.assets.digest = true
14
+ # Rails.application.config.assets.enabled = true
15
+ Rails.application.config.assets.initialize_on_precompile = true
8
16
 
9
17
  # Precompile additional assets.
10
18
  # 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 )
19
+
20
+ # Extended control, from http://9elements.com/io/babel-rails-5-and-sprockets-4/
21
+ # Rails.application.config.assets.configure do |env|
22
+ # Sprockets::Commoner::Processor.configure(env,
23
+ # # include, exclude, and babel_exclude patterns can be path prefixes or regexes.
24
+ # # Explicitely list paths to include. The default is `[env.root]`
25
+ # include: ['app/assets/javascripts/subdirectory'],
26
+ # # List files to ignore and not process require calls or apply any Babel transforms to. Default is ['vendor/bundle'].
27
+ # exclude: ['vendor/bundle', /ignored/],
28
+ # # Anything listed in babel_exclude has its require calls resolved, but no transforms listed in .babelrcs applied.
29
+ # # Default is [/node_modules/]
30
+ # babel_exclude: [/node_modules/]
31
+ # )
32
+ # end
@@ -0,0 +1,20 @@
1
+ # ClientSideValidations Initializer
2
+
3
+ # Disabled validators
4
+ # ClientSideValidations::Config.disabled_validators = []
5
+
6
+ # Uncomment to validate number format with current I18n locale
7
+ # ClientSideValidations::Config.number_format_with_locale = true
8
+
9
+ # Uncomment the following block if you want each input field to have the validation messages attached.
10
+ #
11
+ # Note: client_side_validation requires the error to be encapsulated within
12
+ # <label for="#{instance.send(:tag_id)}" class="message"></label>
13
+ #
14
+ # ActionView::Base.field_error_proc = proc do |html_tag, instance|
15
+ # if html_tag =~ /^<label/
16
+ # %(<div class="field_with_errors">#{html_tag}</div>).html_safe
17
+ # else
18
+ # %(<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>).html_safe
19
+ # end
20
+ # end
@@ -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,6 @@
1
+ Time::DATE_FORMATS[:date_short] = '%m/%d/%Y'
2
+ Time::DATE_FORMATS[:month_and_year] = '%B %Y'
3
+ Time::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") }
4
+
5
+ Date::DATE_FORMATS[:month_and_year] = '%B %Y'
6
+ Date::DATE_FORMATS[:short_ordinal] = ->(date) { date.strftime("%B #{date.day.ordinalize}") }
@@ -0,0 +1 @@
1
+ ASSET_FINGERPRINT = "b7cfa8d0071066f66c2f"
@@ -0,0 +1,9 @@
1
+ Geocoder.configure(
2
+ :lookup => :google,
3
+ # :ip_lookup => :maxmind,
4
+ :logger => Logger.new(STDOUT, Logger::FATAL)
5
+
6
+ # calculation options
7
+ # :units => :mi, # :km for kilometers or :mi for miles
8
+ # :distances => :linear # :spherical or :linear
9
+ )
@@ -0,0 +1,23 @@
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
+ # Once upgraded flip defaults one by one to migrate to the new default.
6
+ #
7
+ # Read the Guide for Upgrading Ruby on Rails for more info on each option.
8
+
9
+ # Enable per-form CSRF tokens. Previous versions had false.
10
+ Rails.application.config.action_controller.per_form_csrf_tokens = false
11
+
12
+ # Enable origin-checking CSRF mitigation. Previous versions had false.
13
+ Rails.application.config.action_controller.forgery_protection_origin_check = false
14
+
15
+ # Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
16
+ # Previous versions had false.
17
+ ActiveSupport.to_time_preserves_timezone = false
18
+
19
+ # Require `belongs_to` associations by default. Previous versions had false.
20
+ Rails.application.config.active_record.belongs_to_required_by_default = false
21
+
22
+ # Do not halt callback chains when a callback returns false. Previous versions had true.
23
+ ActiveSupport.halt_callback_chains_on_return_false = true
@@ -1,11 +1,5 @@
1
1
  RailsAdmin.config do |config|
2
- config.authorize_with do
3
- if ENV["ADMIN_USER"] && ENV["ADMIN_PASSWORD"]
4
- authenticate_or_request_with_http_basic('Site Message') do |username, password|
5
- username == ENV["ADMIN_USER"] && password == ENV["ADMIN_PASSWORD"]
6
- end
7
- end
8
- end
2
+
9
3
  ### Popular gems integration
10
4
 
11
5
  ## == Devise ==
@@ -19,12 +13,24 @@ RailsAdmin.config do |config|
19
13
 
20
14
  ## == Pundit ==
21
15
  # config.authorize_with :pundit
16
+ config.authorize_with do
17
+ admin = begin
18
+ !!User.find(session[:user_id]).try(:is_admin)
19
+ rescue
20
+ false
21
+ end
22
+ redirect_to "/" unless admin
23
+ end
22
24
 
23
25
  ## == PaperTrail ==
24
26
  # config.audit_with :paper_trail, 'User', 'PaperTrail::Version' # PaperTrail >= 3.0.0
25
27
 
26
28
  ### More at https://github.com/sferik/rails_admin/wiki/Base-configuration
27
29
 
30
+ ## == Gravatar integration ==
31
+ ## To disable Gravatar integration in Navigation Bar set to false
32
+ # config.show_gravatar true
33
+
28
34
  config.actions do
29
35
  dashboard # mandatory
30
36
  index # mandatory
@@ -0,0 +1,19 @@
1
+ # url = URI.parse(ENV["OPENREDIS_URL"] || "redis://127.0.0.1:6379")
2
+
3
+ Sidekiq.configure_server do |config|
4
+ config.redis = { url: ENV["REDIS_URL"],
5
+ namespace: '___PROJECT_NAME_SLUG___sidekiq' }
6
+ end
7
+
8
+ Sidekiq.configure_client do |config|
9
+ config.redis = { url: ENV["REDIS_URL"],
10
+ namespace: '___PROJECT_NAME_SLUG___sidekiq' }
11
+ end
12
+
13
+ # Perform Sidekiq jobs immediately in development,
14
+ # so you don't have to run a separate process.
15
+ # You'll also benefit from code reloading.
16
+ if ENV['RESQUE'] == "inline"
17
+ require 'sidekiq/testing'
18
+ Sidekiq::Testing.inline!
19
+ end