commit
						f22aa0715e
					
				 84 changed files with 1378 additions and 0 deletions
			
			
		- 
					7.gitattributes
 - 
					35.gitignore
 - 
					1.ruby-version
 - 
					8.vscode/extensions.json
 - 
					5.vscode/settings.json
 - 
					72Gemfile
 - 
					232Gemfile.lock
 - 
					7README.md
 - 
					6Rakefile
 - 
					4app/assets/config/manifest.js
 - 
					0app/assets/images/.keep
 - 
					15app/assets/stylesheets/application.css
 - 
					4app/channels/application_cable/channel.rb
 - 
					4app/channels/application_cable/connection.rb
 - 
					2app/controllers/application_controller.rb
 - 
					0app/controllers/concerns/.keep
 - 
					4app/controllers/welcome_controller.rb
 - 
					2app/helpers/application_helper.rb
 - 
					2app/helpers/articles_helper.rb
 - 
					3app/javascript/application.js
 - 
					9app/javascript/controllers/application.js
 - 
					7app/javascript/controllers/hello_controller.js
 - 
					11app/javascript/controllers/index.js
 - 
					7app/jobs/application_job.rb
 - 
					4app/mailers/application_mailer.rb
 - 
					3app/models/application_record.rb
 - 
					0app/models/concerns/.keep
 - 
					14app/views/layouts/application.html.erb
 - 
					13app/views/layouts/mailer.html.erb
 - 
					1app/views/layouts/mailer.text.erb
 - 
					4app/views/welcome/index.html.erb
 - 
					114bin/bundle
 - 
					4bin/importmap
 - 
					4bin/rails
 - 
					4bin/rake
 - 
					33bin/setup
 - 
					6config.ru
 - 
					23config/application.rb
 - 
					4config/boot.rb
 - 
					10config/cable.yml
 - 
					1config/credentials.yml.enc
 - 
					25config/database.yml
 - 
					5config/environment.rb
 - 
					70config/environments/development.rb
 - 
					93config/environments/production.rb
 - 
					60config/environments/test.rb
 - 
					7config/importmap.rb
 - 
					12config/initializers/assets.rb
 - 
					25config/initializers/content_security_policy.rb
 - 
					8config/initializers/filter_parameter_logging.rb
 - 
					16config/initializers/inflections.rb
 - 
					11config/initializers/permissions_policy.rb
 - 
					33config/locales/en.yml
 - 
					43config/puma.rb
 - 
					3config/routes.rb
 - 
					34config/storage.yml
 - 
					7db/seeds.rb
 - 
					0lib/assets/.keep
 - 
					0lib/tasks/.keep
 - 
					0log/.keep
 - 
					67public/404.html
 - 
					67public/422.html
 - 
					66public/500.html
 - 
					0public/apple-touch-icon-precomposed.png
 - 
					0public/apple-touch-icon.png
 - 
					0public/favicon.ico
 - 
					1public/robots.txt
 - 
					0storage/.keep
 - 
					5test/application_system_test_case.rb
 - 
					11test/channels/application_cable/connection_test.rb
 - 
					0test/controllers/.keep
 - 
					7test/controllers/articles_controller_test.rb
 - 
					0test/fixtures/files/.keep
 - 
					0test/helpers/.keep
 - 
					0test/integration/.keep
 - 
					0test/mailers/.keep
 - 
					0test/models/.keep
 - 
					0test/system/.keep
 - 
					13test/test_helper.rb
 - 
					0tmp/.keep
 - 
					0tmp/pids/.keep
 - 
					0tmp/storage/.keep
 - 
					0vendor/.keep
 - 
					0vendor/javascript/.keep
 
@ -0,0 +1,7 @@ | 
				
			|||
# See https://git-scm.com/docs/gitattributes for more about git attribute files. | 
				
			|||
 | 
				
			|||
# Mark the database schema as having been generated. | 
				
			|||
db/schema.rb linguist-generated | 
				
			|||
 | 
				
			|||
# Mark any vendored files as having been vendored. | 
				
			|||
vendor/* linguist-vendored | 
				
			|||
@ -0,0 +1,35 @@ | 
				
			|||
# See https://help.github.com/articles/ignoring-files for more about ignoring files. | 
				
			|||
# | 
				
			|||
# If you find yourself ignoring temporary files generated by your text editor | 
				
			|||
# or operating system, you probably want to add a global ignore instead: | 
				
			|||
#   git config --global core.excludesfile '~/.gitignore_global' | 
				
			|||
 | 
				
			|||
# Ignore bundler config. | 
				
			|||
/.bundle | 
				
			|||
 | 
				
			|||
# Ignore the default SQLite database. | 
				
			|||
/db/*.sqlite3 | 
				
			|||
/db/*.sqlite3-* | 
				
			|||
 | 
				
			|||
# Ignore all logfiles and tempfiles. | 
				
			|||
/log/* | 
				
			|||
/tmp/* | 
				
			|||
!/log/.keep | 
				
			|||
!/tmp/.keep | 
				
			|||
 | 
				
			|||
# Ignore pidfiles, but keep the directory. | 
				
			|||
/tmp/pids/* | 
				
			|||
!/tmp/pids/ | 
				
			|||
!/tmp/pids/.keep | 
				
			|||
 | 
				
			|||
# Ignore uploaded files in development. | 
				
			|||
/storage/* | 
				
			|||
!/storage/.keep | 
				
			|||
/tmp/storage/* | 
				
			|||
!/tmp/storage/ | 
				
			|||
!/tmp/storage/.keep | 
				
			|||
 | 
				
			|||
/public/assets | 
				
			|||
 | 
				
			|||
# Ignore master key for decrypting credentials and more. | 
				
			|||
/config/master.key | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
ruby-3.1.4 | 
				
			|||
@ -0,0 +1,8 @@ | 
				
			|||
{ | 
				
			|||
    "recommendations": [ | 
				
			|||
        "rebornix.ruby", | 
				
			|||
        "bung87.rails", | 
				
			|||
        "aliariff.vscode-erb-beautify", | 
				
			|||
        "yzhang.markdown-all-in-one" | 
				
			|||
    ] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
{ | 
				
			|||
    "emmet.includeLanguages": { | 
				
			|||
        "erb": "html" | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,72 @@ | 
				
			|||
source "https://rubygems.org" | 
				
			|||
git_source(:github) { |repo| "https://github.com/#{repo}.git" } | 
				
			|||
 | 
				
			|||
ruby "3.1.4" | 
				
			|||
 | 
				
			|||
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" | 
				
			|||
gem "rails", "~> 7.0.4", ">= 7.0.4.3" | 
				
			|||
 | 
				
			|||
# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] | 
				
			|||
gem "sprockets-rails" | 
				
			|||
 | 
				
			|||
# Use sqlite3 as the database for Active Record | 
				
			|||
gem "sqlite3", "~> 1.4" | 
				
			|||
 | 
				
			|||
# Use the Puma web server [https://github.com/puma/puma] | 
				
			|||
gem "puma", "~> 5.0" | 
				
			|||
 | 
				
			|||
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails] | 
				
			|||
gem "importmap-rails" | 
				
			|||
 | 
				
			|||
# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev] | 
				
			|||
gem "turbo-rails" | 
				
			|||
 | 
				
			|||
# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev] | 
				
			|||
gem "stimulus-rails" | 
				
			|||
 | 
				
			|||
# Build JSON APIs with ease [https://github.com/rails/jbuilder] | 
				
			|||
gem "jbuilder" | 
				
			|||
 | 
				
			|||
# Use Redis adapter to run Action Cable in production | 
				
			|||
# gem "redis", "~> 4.0" | 
				
			|||
 | 
				
			|||
# Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis] | 
				
			|||
# gem "kredis" | 
				
			|||
 | 
				
			|||
# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword] | 
				
			|||
# gem "bcrypt", "~> 3.1.7" | 
				
			|||
 | 
				
			|||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem | 
				
			|||
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ] | 
				
			|||
 | 
				
			|||
# Reduces boot times through caching; required in config/boot.rb | 
				
			|||
gem "bootsnap", require: false | 
				
			|||
 | 
				
			|||
# Use Sass to process CSS | 
				
			|||
# gem "sassc-rails" | 
				
			|||
 | 
				
			|||
# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] | 
				
			|||
# gem "image_processing", "~> 1.2" | 
				
			|||
 | 
				
			|||
group :development, :test do | 
				
			|||
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem | 
				
			|||
  gem "debug", platforms: %i[ mri mingw x64_mingw ] | 
				
			|||
end | 
				
			|||
 | 
				
			|||
group :development do | 
				
			|||
  # Use console on exceptions pages [https://github.com/rails/web-console] | 
				
			|||
  gem "web-console" | 
				
			|||
 | 
				
			|||
  # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] | 
				
			|||
  # gem "rack-mini-profiler" | 
				
			|||
 | 
				
			|||
  # Speed up commands on slow machines / big apps [https://github.com/rails/spring] | 
				
			|||
  # gem "spring" | 
				
			|||
end | 
				
			|||
 | 
				
			|||
group :test do | 
				
			|||
  # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing] | 
				
			|||
  gem "capybara" | 
				
			|||
  gem "selenium-webdriver" | 
				
			|||
  gem "webdrivers" | 
				
			|||
end | 
				
			|||
@ -0,0 +1,232 @@ | 
				
			|||
GEM | 
				
			|||
  remote: https://rubygems.org/ | 
				
			|||
  specs: | 
				
			|||
    actioncable (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      nio4r (~> 2.0) | 
				
			|||
      websocket-driver (>= 0.6.1) | 
				
			|||
    actionmailbox (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      activejob (= 7.0.5) | 
				
			|||
      activerecord (= 7.0.5) | 
				
			|||
      activestorage (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      mail (>= 2.7.1) | 
				
			|||
      net-imap | 
				
			|||
      net-pop | 
				
			|||
      net-smtp | 
				
			|||
    actionmailer (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      actionview (= 7.0.5) | 
				
			|||
      activejob (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      mail (~> 2.5, >= 2.5.4) | 
				
			|||
      net-imap | 
				
			|||
      net-pop | 
				
			|||
      net-smtp | 
				
			|||
      rails-dom-testing (~> 2.0) | 
				
			|||
    actionpack (7.0.5) | 
				
			|||
      actionview (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      rack (~> 2.0, >= 2.2.4) | 
				
			|||
      rack-test (>= 0.6.3) | 
				
			|||
      rails-dom-testing (~> 2.0) | 
				
			|||
      rails-html-sanitizer (~> 1.0, >= 1.2.0) | 
				
			|||
    actiontext (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      activerecord (= 7.0.5) | 
				
			|||
      activestorage (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      globalid (>= 0.6.0) | 
				
			|||
      nokogiri (>= 1.8.5) | 
				
			|||
    actionview (7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      builder (~> 3.1) | 
				
			|||
      erubi (~> 1.4) | 
				
			|||
      rails-dom-testing (~> 2.0) | 
				
			|||
      rails-html-sanitizer (~> 1.1, >= 1.2.0) | 
				
			|||
    activejob (7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      globalid (>= 0.3.6) | 
				
			|||
    activemodel (7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
    activerecord (7.0.5) | 
				
			|||
      activemodel (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
    activestorage (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      activejob (= 7.0.5) | 
				
			|||
      activerecord (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      marcel (~> 1.0) | 
				
			|||
      mini_mime (>= 1.1.0) | 
				
			|||
    activesupport (7.0.5) | 
				
			|||
      concurrent-ruby (~> 1.0, >= 1.0.2) | 
				
			|||
      i18n (>= 1.6, < 2) | 
				
			|||
      minitest (>= 5.1) | 
				
			|||
      tzinfo (~> 2.0) | 
				
			|||
    addressable (2.8.4) | 
				
			|||
      public_suffix (>= 2.0.2, < 6.0) | 
				
			|||
    bindex (0.8.1) | 
				
			|||
    bootsnap (1.16.0) | 
				
			|||
      msgpack (~> 1.2) | 
				
			|||
    builder (3.2.4) | 
				
			|||
    capybara (3.39.1) | 
				
			|||
      addressable | 
				
			|||
      matrix | 
				
			|||
      mini_mime (>= 0.1.3) | 
				
			|||
      nokogiri (~> 1.8) | 
				
			|||
      rack (>= 1.6.0) | 
				
			|||
      rack-test (>= 0.6.3) | 
				
			|||
      regexp_parser (>= 1.5, < 3.0) | 
				
			|||
      xpath (~> 3.2) | 
				
			|||
    concurrent-ruby (1.2.2) | 
				
			|||
    crass (1.0.6) | 
				
			|||
    date (3.3.3) | 
				
			|||
    debug (1.8.0) | 
				
			|||
      irb (>= 1.5.0) | 
				
			|||
      reline (>= 0.3.1) | 
				
			|||
    erubi (1.12.0) | 
				
			|||
    globalid (1.1.0) | 
				
			|||
      activesupport (>= 5.0) | 
				
			|||
    i18n (1.13.0) | 
				
			|||
      concurrent-ruby (~> 1.0) | 
				
			|||
    importmap-rails (1.1.6) | 
				
			|||
      actionpack (>= 6.0.0) | 
				
			|||
      railties (>= 6.0.0) | 
				
			|||
    io-console (0.6.0) | 
				
			|||
    irb (1.6.4) | 
				
			|||
      reline (>= 0.3.0) | 
				
			|||
    jbuilder (2.11.5) | 
				
			|||
      actionview (>= 5.0.0) | 
				
			|||
      activesupport (>= 5.0.0) | 
				
			|||
    loofah (2.21.3) | 
				
			|||
      crass (~> 1.0.2) | 
				
			|||
      nokogiri (>= 1.12.0) | 
				
			|||
    mail (2.8.1) | 
				
			|||
      mini_mime (>= 0.1.1) | 
				
			|||
      net-imap | 
				
			|||
      net-pop | 
				
			|||
      net-smtp | 
				
			|||
    marcel (1.0.2) | 
				
			|||
    matrix (0.4.2) | 
				
			|||
    method_source (1.0.0) | 
				
			|||
    mini_mime (1.1.2) | 
				
			|||
    minitest (5.18.0) | 
				
			|||
    msgpack (1.7.1) | 
				
			|||
    net-imap (0.3.4) | 
				
			|||
      date | 
				
			|||
      net-protocol | 
				
			|||
    net-pop (0.1.2) | 
				
			|||
      net-protocol | 
				
			|||
    net-protocol (0.2.1) | 
				
			|||
      timeout | 
				
			|||
    net-smtp (0.3.3) | 
				
			|||
      net-protocol | 
				
			|||
    nio4r (2.5.9) | 
				
			|||
    nokogiri (1.15.2-x86_64-linux) | 
				
			|||
      racc (~> 1.4) | 
				
			|||
    public_suffix (5.0.1) | 
				
			|||
    puma (5.6.5) | 
				
			|||
      nio4r (~> 2.0) | 
				
			|||
    racc (1.6.2) | 
				
			|||
    rack (2.2.7) | 
				
			|||
    rack-test (2.1.0) | 
				
			|||
      rack (>= 1.3) | 
				
			|||
    rails (7.0.5) | 
				
			|||
      actioncable (= 7.0.5) | 
				
			|||
      actionmailbox (= 7.0.5) | 
				
			|||
      actionmailer (= 7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      actiontext (= 7.0.5) | 
				
			|||
      actionview (= 7.0.5) | 
				
			|||
      activejob (= 7.0.5) | 
				
			|||
      activemodel (= 7.0.5) | 
				
			|||
      activerecord (= 7.0.5) | 
				
			|||
      activestorage (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      bundler (>= 1.15.0) | 
				
			|||
      railties (= 7.0.5) | 
				
			|||
    rails-dom-testing (2.0.3) | 
				
			|||
      activesupport (>= 4.2.0) | 
				
			|||
      nokogiri (>= 1.6) | 
				
			|||
    rails-html-sanitizer (1.5.0) | 
				
			|||
      loofah (~> 2.19, >= 2.19.1) | 
				
			|||
    railties (7.0.5) | 
				
			|||
      actionpack (= 7.0.5) | 
				
			|||
      activesupport (= 7.0.5) | 
				
			|||
      method_source | 
				
			|||
      rake (>= 12.2) | 
				
			|||
      thor (~> 1.0) | 
				
			|||
      zeitwerk (~> 2.5) | 
				
			|||
    rake (13.0.6) | 
				
			|||
    regexp_parser (2.8.0) | 
				
			|||
    reline (0.3.4) | 
				
			|||
      io-console (~> 0.5) | 
				
			|||
    rexml (3.2.5) | 
				
			|||
    rubyzip (2.3.2) | 
				
			|||
    selenium-webdriver (4.9.1) | 
				
			|||
      rexml (~> 3.2, >= 3.2.5) | 
				
			|||
      rubyzip (>= 1.2.2, < 3.0) | 
				
			|||
      websocket (~> 1.0) | 
				
			|||
    sprockets (4.2.0) | 
				
			|||
      concurrent-ruby (~> 1.0) | 
				
			|||
      rack (>= 2.2.4, < 4) | 
				
			|||
    sprockets-rails (3.4.2) | 
				
			|||
      actionpack (>= 5.2) | 
				
			|||
      activesupport (>= 5.2) | 
				
			|||
      sprockets (>= 3.0.0) | 
				
			|||
    sqlite3 (1.6.3-x86_64-linux) | 
				
			|||
    stimulus-rails (1.2.1) | 
				
			|||
      railties (>= 6.0.0) | 
				
			|||
    thor (1.2.2) | 
				
			|||
    timeout (0.3.2) | 
				
			|||
    turbo-rails (1.4.0) | 
				
			|||
      actionpack (>= 6.0.0) | 
				
			|||
      activejob (>= 6.0.0) | 
				
			|||
      railties (>= 6.0.0) | 
				
			|||
    tzinfo (2.0.6) | 
				
			|||
      concurrent-ruby (~> 1.0) | 
				
			|||
    web-console (4.2.0) | 
				
			|||
      actionview (>= 6.0.0) | 
				
			|||
      activemodel (>= 6.0.0) | 
				
			|||
      bindex (>= 0.4.0) | 
				
			|||
      railties (>= 6.0.0) | 
				
			|||
    webdrivers (5.2.0) | 
				
			|||
      nokogiri (~> 1.6) | 
				
			|||
      rubyzip (>= 1.3.0) | 
				
			|||
      selenium-webdriver (~> 4.0) | 
				
			|||
    websocket (1.2.9) | 
				
			|||
    websocket-driver (0.7.5) | 
				
			|||
      websocket-extensions (>= 0.1.0) | 
				
			|||
    websocket-extensions (0.1.5) | 
				
			|||
    xpath (3.2.0) | 
				
			|||
      nokogiri (~> 1.8) | 
				
			|||
    zeitwerk (2.6.8) | 
				
			|||
 | 
				
			|||
PLATFORMS | 
				
			|||
  x86_64-linux | 
				
			|||
 | 
				
			|||
DEPENDENCIES | 
				
			|||
  bootsnap | 
				
			|||
  capybara | 
				
			|||
  debug | 
				
			|||
  importmap-rails | 
				
			|||
  jbuilder | 
				
			|||
  puma (~> 5.0) | 
				
			|||
  rails (~> 7.0.4, >= 7.0.4.3) | 
				
			|||
  selenium-webdriver | 
				
			|||
  sprockets-rails | 
				
			|||
  sqlite3 (~> 1.4) | 
				
			|||
  stimulus-rails | 
				
			|||
  turbo-rails | 
				
			|||
  tzinfo-data | 
				
			|||
  web-console | 
				
			|||
  webdrivers | 
				
			|||
 | 
				
			|||
RUBY VERSION | 
				
			|||
   ruby 3.1.4p223 | 
				
			|||
 | 
				
			|||
BUNDLED WITH | 
				
			|||
   2.3.26 | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
# Basic Rails | 
				
			|||
 | 
				
			|||
## Featuring | 
				
			|||
 | 
				
			|||
* LXD aware (through remote ssh) | 
				
			|||
* Rails version 7 | 
				
			|||
* Markdown ready | 
				
			|||
@ -0,0 +1,6 @@ | 
				
			|||
# Add your own tasks in files placed in lib/tasks ending in .rake, | 
				
			|||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | 
				
			|||
 | 
				
			|||
require_relative "config/application" | 
				
			|||
 | 
				
			|||
Rails.application.load_tasks | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
//= link_tree ../images
 | 
				
			|||
//= link_directory ../stylesheets .css
 | 
				
			|||
//= link_tree ../../javascript .js
 | 
				
			|||
//= link_tree ../../../vendor/javascript .js
 | 
				
			|||
@ -0,0 +1,15 @@ | 
				
			|||
/* | 
				
			|||
 * This is a manifest file that'll be compiled into application.css, which will include all the files | 
				
			|||
 * listed below. | 
				
			|||
 * | 
				
			|||
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's | 
				
			|||
 * vendor/assets/stylesheets directory can be referenced here using a relative path. | 
				
			|||
 * | 
				
			|||
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the | 
				
			|||
 * compiled file so the styles you add here take precedence over styles defined in any other CSS | 
				
			|||
 * files in this directory. Styles in this file should be added after the last require_* statement. | 
				
			|||
 * It is generally better to create a new file per style scope. | 
				
			|||
 * | 
				
			|||
 *= require_tree . | 
				
			|||
 *= require_self | 
				
			|||
 */ | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
module ApplicationCable | 
				
			|||
  class Channel < ActionCable::Channel::Base | 
				
			|||
  end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
module ApplicationCable | 
				
			|||
  class Connection < ActionCable::Connection::Base | 
				
			|||
  end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
class ApplicationController < ActionController::Base | 
				
			|||
end | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
class WelcomeController < ApplicationController | 
				
			|||
  def index | 
				
			|||
  end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
module ApplicationHelper | 
				
			|||
end | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
module ArticlesHelper | 
				
			|||
end | 
				
			|||
@ -0,0 +1,3 @@ | 
				
			|||
// Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
 | 
				
			|||
import "@hotwired/turbo-rails" | 
				
			|||
import "controllers" | 
				
			|||
@ -0,0 +1,9 @@ | 
				
			|||
import { Application } from "@hotwired/stimulus" | 
				
			|||
 | 
				
			|||
const application = Application.start() | 
				
			|||
 | 
				
			|||
// Configure Stimulus development experience
 | 
				
			|||
application.debug = false | 
				
			|||
window.Stimulus   = application | 
				
			|||
 | 
				
			|||
export { application } | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
import { Controller } from "@hotwired/stimulus" | 
				
			|||
 | 
				
			|||
export default class extends Controller { | 
				
			|||
  connect() { | 
				
			|||
    this.element.textContent = "Hello World!" | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,11 @@ | 
				
			|||
// Import and register all your controllers from the importmap under controllers/*
 | 
				
			|||
 | 
				
			|||
import { application } from "controllers/application" | 
				
			|||
 | 
				
			|||
// Eager load all controllers defined in the import map under controllers/**/*_controller
 | 
				
			|||
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading" | 
				
			|||
eagerLoadControllersFrom("controllers", application) | 
				
			|||
 | 
				
			|||
// Lazy load controllers as they appear in the DOM (remember not to preload controllers in import map!)
 | 
				
			|||
// import { lazyLoadControllersFrom } from "@hotwired/stimulus-loading"
 | 
				
			|||
// lazyLoadControllersFrom("controllers", application)
 | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
class ApplicationJob < ActiveJob::Base | 
				
			|||
  # Automatically retry jobs that encountered a deadlock | 
				
			|||
  # retry_on ActiveRecord::Deadlocked | 
				
			|||
 | 
				
			|||
  # Most jobs are safe to ignore if the underlying records are no longer available | 
				
			|||
  # discard_on ActiveJob::DeserializationError | 
				
			|||
end | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
class ApplicationMailer < ActionMailer::Base | 
				
			|||
  default from: "from@example.com" | 
				
			|||
  layout "mailer" | 
				
			|||
end | 
				
			|||
@ -0,0 +1,3 @@ | 
				
			|||
class ApplicationRecord < ActiveRecord::Base | 
				
			|||
  primary_abstract_class | 
				
			|||
end | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
<!DOCTYPE html> | 
				
			|||
<html> | 
				
			|||
  <head> | 
				
			|||
    <title>Basic Rails</title> | 
				
			|||
    <meta name="viewport" content="width=device-width,initial-scale=1"> | 
				
			|||
    <%= csrf_meta_tags %> | 
				
			|||
    <%= csp_meta_tag %> | 
				
			|||
    <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %> | 
				
			|||
    <%= javascript_importmap_tags %> | 
				
			|||
  </head> | 
				
			|||
  <body> | 
				
			|||
    <%= yield %> | 
				
			|||
  </body> | 
				
			|||
</html> | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
<!DOCTYPE html> | 
				
			|||
<html> | 
				
			|||
  <head> | 
				
			|||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 
				
			|||
    <style> | 
				
			|||
      /* Email styles need to be inline */ | 
				
			|||
    </style> | 
				
			|||
  </head> | 
				
			|||
 | 
				
			|||
  <body> | 
				
			|||
    <%= yield %> | 
				
			|||
  </body> | 
				
			|||
</html> | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
<%= yield %> | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
<h1>Welcome Aboard</h1> | 
				
			|||
<ul> | 
				
			|||
  <li>Rails 7</li> | 
				
			|||
</ul> | 
				
			|||
@ -0,0 +1,114 @@ | 
				
			|||
#!/usr/bin/env ruby | 
				
			|||
# frozen_string_literal: true | 
				
			|||
 | 
				
			|||
# | 
				
			|||
# This file was generated by Bundler. | 
				
			|||
# | 
				
			|||
# The application 'bundle' is installed as part of a gem, and | 
				
			|||
# this file is here to facilitate running it. | 
				
			|||
# | 
				
			|||
 | 
				
			|||
require "rubygems" | 
				
			|||
 | 
				
			|||
m = Module.new do | 
				
			|||
  module_function | 
				
			|||
 | 
				
			|||
  def invoked_as_script? | 
				
			|||
    File.expand_path($0) == File.expand_path(__FILE__) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def env_var_version | 
				
			|||
    ENV["BUNDLER_VERSION"] | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def cli_arg_version | 
				
			|||
    return unless invoked_as_script? # don't want to hijack other binstubs | 
				
			|||
    return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update` | 
				
			|||
    bundler_version = nil | 
				
			|||
    update_index = nil | 
				
			|||
    ARGV.each_with_index do |a, i| | 
				
			|||
      if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN | 
				
			|||
        bundler_version = a | 
				
			|||
      end | 
				
			|||
      next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/ | 
				
			|||
      bundler_version = $1 | 
				
			|||
      update_index = i | 
				
			|||
    end | 
				
			|||
    bundler_version | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def gemfile | 
				
			|||
    gemfile = ENV["BUNDLE_GEMFILE"] | 
				
			|||
    return gemfile if gemfile && !gemfile.empty? | 
				
			|||
 | 
				
			|||
    File.expand_path("../Gemfile", __dir__) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def lockfile | 
				
			|||
    lockfile = | 
				
			|||
      case File.basename(gemfile) | 
				
			|||
      when "gems.rb" then gemfile.sub(/\.rb$/, gemfile) | 
				
			|||
      else "#{gemfile}.lock" | 
				
			|||
      end | 
				
			|||
    File.expand_path(lockfile) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def lockfile_version | 
				
			|||
    return unless File.file?(lockfile) | 
				
			|||
    lockfile_contents = File.read(lockfile) | 
				
			|||
    return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ | 
				
			|||
    Regexp.last_match(1) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def bundler_requirement | 
				
			|||
    @bundler_requirement ||= | 
				
			|||
      env_var_version || cli_arg_version || | 
				
			|||
        bundler_requirement_for(lockfile_version) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def bundler_requirement_for(version) | 
				
			|||
    return "#{Gem::Requirement.default}.a" unless version | 
				
			|||
 | 
				
			|||
    bundler_gem_version = Gem::Version.new(version) | 
				
			|||
 | 
				
			|||
    requirement = bundler_gem_version.approximate_recommendation | 
				
			|||
 | 
				
			|||
    return requirement unless Gem.rubygems_version < Gem::Version.new("2.7.0") | 
				
			|||
 | 
				
			|||
    requirement += ".a" if bundler_gem_version.prerelease? | 
				
			|||
 | 
				
			|||
    requirement | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def load_bundler! | 
				
			|||
    ENV["BUNDLE_GEMFILE"] ||= gemfile | 
				
			|||
 | 
				
			|||
    activate_bundler | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def activate_bundler | 
				
			|||
    gem_error = activation_error_handling do | 
				
			|||
      gem "bundler", bundler_requirement | 
				
			|||
    end | 
				
			|||
    return if gem_error.nil? | 
				
			|||
    require_error = activation_error_handling do | 
				
			|||
      require "bundler/version" | 
				
			|||
    end | 
				
			|||
    return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION)) | 
				
			|||
    warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`" | 
				
			|||
    exit 42 | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  def activation_error_handling | 
				
			|||
    yield | 
				
			|||
    nil | 
				
			|||
  rescue StandardError, LoadError => e | 
				
			|||
    e | 
				
			|||
  end | 
				
			|||
end | 
				
			|||
 | 
				
			|||
m.load_bundler! | 
				
			|||
 | 
				
			|||
if m.invoked_as_script? | 
				
			|||
  load Gem.bin_path("bundler", "bundle") | 
				
			|||
end | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
#!/usr/bin/env ruby | 
				
			|||
 | 
				
			|||
require_relative "../config/application" | 
				
			|||
require "importmap/commands" | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
#!/usr/bin/env ruby | 
				
			|||
APP_PATH = File.expand_path("../config/application", __dir__) | 
				
			|||
require_relative "../config/boot" | 
				
			|||
require "rails/commands" | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
#!/usr/bin/env ruby | 
				
			|||
require_relative "../config/boot" | 
				
			|||
require "rake" | 
				
			|||
Rake.application.run | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
#!/usr/bin/env ruby | 
				
			|||
require "fileutils" | 
				
			|||
 | 
				
			|||
# path to your application root. | 
				
			|||
APP_ROOT = File.expand_path("..", __dir__) | 
				
			|||
 | 
				
			|||
def system!(*args) | 
				
			|||
  system(*args) || abort("\n== Command #{args} failed ==") | 
				
			|||
end | 
				
			|||
 | 
				
			|||
FileUtils.chdir APP_ROOT do | 
				
			|||
  # This script is a way to set up or update your development environment automatically. | 
				
			|||
  # This script is idempotent, so that you can run it at any time and get an expectable outcome. | 
				
			|||
  # Add necessary setup steps to this file. | 
				
			|||
 | 
				
			|||
  puts "== Installing dependencies ==" | 
				
			|||
  system! "gem install bundler --conservative" | 
				
			|||
  system("bundle check") || system!("bundle install") | 
				
			|||
 | 
				
			|||
  # puts "\n== Copying sample files ==" | 
				
			|||
  # unless File.exist?("config/database.yml") | 
				
			|||
  #   FileUtils.cp "config/database.yml.sample", "config/database.yml" | 
				
			|||
  # end | 
				
			|||
 | 
				
			|||
  puts "\n== Preparing database ==" | 
				
			|||
  system! "bin/rails db:prepare" | 
				
			|||
 | 
				
			|||
  puts "\n== Removing old logs and tempfiles ==" | 
				
			|||
  system! "bin/rails log:clear tmp:clear" | 
				
			|||
 | 
				
			|||
  puts "\n== Restarting application server ==" | 
				
			|||
  system! "bin/rails restart" | 
				
			|||
end | 
				
			|||
@ -0,0 +1,6 @@ | 
				
			|||
# This file is used by Rack-based servers to start the application. | 
				
			|||
 | 
				
			|||
require_relative "config/environment" | 
				
			|||
 | 
				
			|||
run Rails.application | 
				
			|||
Rails.application.load_server | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
require_relative "boot" | 
				
			|||
 | 
				
			|||
require "rails/all" | 
				
			|||
 | 
				
			|||
# Require the gems listed in Gemfile, including any gems | 
				
			|||
# you've limited to :test, :development, or :production. | 
				
			|||
Bundler.require(*Rails.groups) | 
				
			|||
 | 
				
			|||
module Blog | 
				
			|||
  class Application < Rails::Application | 
				
			|||
    # Initialize configuration defaults for originally generated Rails version. | 
				
			|||
    config.load_defaults 7.0 | 
				
			|||
 | 
				
			|||
    # Configuration for the application, engines, and railties goes here. | 
				
			|||
    # | 
				
			|||
    # These settings can be overridden in specific environments using the files | 
				
			|||
    # in config/environments, which are processed later. | 
				
			|||
    # | 
				
			|||
    # config.time_zone = "Central Time (US & Canada)" | 
				
			|||
    # config.eager_load_paths << Rails.root.join("extras") | 
				
			|||
 | 
				
			|||
  end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,4 @@ | 
				
			|||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) | 
				
			|||
 | 
				
			|||
require "bundler/setup" # Set up gems listed in the Gemfile. | 
				
			|||
require "bootsnap/setup" # Speed up boot time by caching expensive operations. | 
				
			|||
@ -0,0 +1,10 @@ | 
				
			|||
development: | 
				
			|||
  adapter: async | 
				
			|||
 | 
				
			|||
test: | 
				
			|||
  adapter: test | 
				
			|||
 | 
				
			|||
production: | 
				
			|||
  adapter: redis | 
				
			|||
  url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> | 
				
			|||
  channel_prefix: blog_production | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
5C1qSkbpL3Ob1EMxtbSq5Uh5fCt4FUnhDKavga1clTQIyOb1wpigr549KL2ZAHgkLZi/zkcvI9+P2VSzZsZRr4/Ee0OE1Uw/HUTGpCEM6HgcdP8mknaiM1tic66Ib/Y1u1TyilqQw74n/05Sa4nc2KG3iSwcRejcRduQTZPujcqRWTurCi7+39GfLO2pNWDcWhS/j3JgmXUg1CUQyKeAasDIVRHCyKq15t4HRHMfiHI0MmA4HUudOdEdP8iRqhfENtzqRgk94lFc7XUMcrIA++Vs+NOPSXbo+MLezLp0kGqQt9JMdDm+xZlbBaZUJdWBxfKFtMWRmb18MwwPSqZiF90niCmAK/kt2mIDZVZdIEKsiASXREJTrXTLvWhZu0R28+KLMmFO41NKzR7rnOOjL23nbWtIvixgw2MY--7Lu0otgpXegPds+U--MkdXaQCI+h8z/lb8ZHShWg== | 
				
			|||
@ -0,0 +1,25 @@ | 
				
			|||
# SQLite. Versions 3.8.0 and up are supported. | 
				
			|||
#   gem install sqlite3 | 
				
			|||
# | 
				
			|||
#   Ensure the SQLite 3 gem is defined in your Gemfile | 
				
			|||
#   gem "sqlite3" | 
				
			|||
# | 
				
			|||
default: &default | 
				
			|||
  adapter: sqlite3 | 
				
			|||
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> | 
				
			|||
  timeout: 5000 | 
				
			|||
 | 
				
			|||
development: | 
				
			|||
  <<: *default | 
				
			|||
  database: db/development.sqlite3 | 
				
			|||
 | 
				
			|||
# Warning: The database defined as "test" will be erased and | 
				
			|||
# re-generated from your development database when you run "rake". | 
				
			|||
# Do not set this db to the same as development or production. | 
				
			|||
test: | 
				
			|||
  <<: *default | 
				
			|||
  database: db/test.sqlite3 | 
				
			|||
 | 
				
			|||
production: | 
				
			|||
  <<: *default | 
				
			|||
  database: db/production.sqlite3 | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
# Load the Rails application. | 
				
			|||
require_relative "application" | 
				
			|||
 | 
				
			|||
# Initialize the Rails application. | 
				
			|||
Rails.application.initialize! | 
				
			|||
@ -0,0 +1,70 @@ | 
				
			|||
require "active_support/core_ext/integer/time" | 
				
			|||
 | 
				
			|||
Rails.application.configure do | 
				
			|||
  # Settings specified here will take precedence over those in config/application.rb. | 
				
			|||
 | 
				
			|||
  # In the development environment your application's code is reloaded any time | 
				
			|||
  # it changes. This slows down response time but is perfect for development | 
				
			|||
  # since you don't have to restart the web server when you make code changes. | 
				
			|||
  config.cache_classes = false | 
				
			|||
 | 
				
			|||
  # Do not eager load code on boot. | 
				
			|||
  config.eager_load = false | 
				
			|||
 | 
				
			|||
  # Show full error reports. | 
				
			|||
  config.consider_all_requests_local = true | 
				
			|||
 | 
				
			|||
  # Enable server timing | 
				
			|||
  config.server_timing = true | 
				
			|||
 | 
				
			|||
  # Enable/disable caching. By default caching is disabled. | 
				
			|||
  # Run rails dev:cache to toggle caching. | 
				
			|||
  if Rails.root.join("tmp/caching-dev.txt").exist? | 
				
			|||
    config.action_controller.perform_caching = true | 
				
			|||
    config.action_controller.enable_fragment_cache_logging = true | 
				
			|||
 | 
				
			|||
    config.cache_store = :memory_store | 
				
			|||
    config.public_file_server.headers = { | 
				
			|||
      "Cache-Control" => "public, max-age=#{2.days.to_i}" | 
				
			|||
    } | 
				
			|||
  else | 
				
			|||
    config.action_controller.perform_caching = false | 
				
			|||
 | 
				
			|||
    config.cache_store = :null_store | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  # Store uploaded files on the local file system (see config/storage.yml for options). | 
				
			|||
  config.active_storage.service = :local | 
				
			|||
 | 
				
			|||
  # Don't care if the mailer can't send. | 
				
			|||
  config.action_mailer.raise_delivery_errors = false | 
				
			|||
 | 
				
			|||
  config.action_mailer.perform_caching = false | 
				
			|||
 | 
				
			|||
  # Print deprecation notices to the Rails logger. | 
				
			|||
  config.active_support.deprecation = :log | 
				
			|||
 | 
				
			|||
  # Raise exceptions for disallowed deprecations. | 
				
			|||
  config.active_support.disallowed_deprecation = :raise | 
				
			|||
 | 
				
			|||
  # Tell Active Support which deprecation messages to disallow. | 
				
			|||
  config.active_support.disallowed_deprecation_warnings = [] | 
				
			|||
 | 
				
			|||
  # Raise an error on page load if there are pending migrations. | 
				
			|||
  config.active_record.migration_error = :page_load | 
				
			|||
 | 
				
			|||
  # Highlight code that triggered database queries in logs. | 
				
			|||
  config.active_record.verbose_query_logs = true | 
				
			|||
 | 
				
			|||
  # Suppress logger output for asset requests. | 
				
			|||
  config.assets.quiet = true | 
				
			|||
 | 
				
			|||
  # Raises error for missing translations. | 
				
			|||
  # config.i18n.raise_on_missing_translations = true | 
				
			|||
 | 
				
			|||
  # Annotate rendered view with file names. | 
				
			|||
  # config.action_view.annotate_rendered_view_with_filenames = true | 
				
			|||
 | 
				
			|||
  # Uncomment if you wish to allow Action Cable access from any origin. | 
				
			|||
  # config.action_cable.disable_request_forgery_protection = true | 
				
			|||
end | 
				
			|||
@ -0,0 +1,93 @@ | 
				
			|||
require "active_support/core_ext/integer/time" | 
				
			|||
 | 
				
			|||
Rails.application.configure do | 
				
			|||
  # Settings specified here will take precedence over those in config/application.rb. | 
				
			|||
 | 
				
			|||
  # Code is not reloaded between requests. | 
				
			|||
  config.cache_classes = true | 
				
			|||
 | 
				
			|||
  # Eager load code on boot. This eager loads most of Rails and | 
				
			|||
  # your application in memory, allowing both threaded web servers | 
				
			|||
  # and those relying on copy on write to perform better. | 
				
			|||
  # Rake tasks automatically ignore this option for performance. | 
				
			|||
  config.eager_load = true | 
				
			|||
 | 
				
			|||
  # Full error reports are disabled and caching is turned on. | 
				
			|||
  config.consider_all_requests_local       = false | 
				
			|||
  config.action_controller.perform_caching = true | 
				
			|||
 | 
				
			|||
  # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] | 
				
			|||
  # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). | 
				
			|||
  # config.require_master_key = true | 
				
			|||
 | 
				
			|||
  # Disable serving static files from the `/public` folder by default since | 
				
			|||
  # Apache or NGINX already handles this. | 
				
			|||
  config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? | 
				
			|||
 | 
				
			|||
  # Compress CSS using a preprocessor. | 
				
			|||
  # config.assets.css_compressor = :sass | 
				
			|||
 | 
				
			|||
  # Do not fallback to assets pipeline if a precompiled asset is missed. | 
				
			|||
  config.assets.compile = false | 
				
			|||
 | 
				
			|||
  # Enable serving of images, stylesheets, and JavaScripts from an asset server. | 
				
			|||
  # config.asset_host = "http://assets.example.com" | 
				
			|||
 | 
				
			|||
  # Specifies the header that your server uses for sending files. | 
				
			|||
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache | 
				
			|||
  # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX | 
				
			|||
 | 
				
			|||
  # Store uploaded files on the local file system (see config/storage.yml for options). | 
				
			|||
  config.active_storage.service = :local | 
				
			|||
 | 
				
			|||
  # Mount Action Cable outside main process or domain. | 
				
			|||
  # config.action_cable.mount_path = nil | 
				
			|||
  # config.action_cable.url = "wss://example.com/cable" | 
				
			|||
  # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] | 
				
			|||
 | 
				
			|||
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | 
				
			|||
  # config.force_ssl = true | 
				
			|||
 | 
				
			|||
  # Include generic and useful information about system operation, but avoid logging too much | 
				
			|||
  # information to avoid inadvertent exposure of personally identifiable information (PII). | 
				
			|||
  config.log_level = :info | 
				
			|||
 | 
				
			|||
  # Prepend all log lines with the following tags. | 
				
			|||
  config.log_tags = [ :request_id ] | 
				
			|||
 | 
				
			|||
  # Use a different cache store in production. | 
				
			|||
  # config.cache_store = :mem_cache_store | 
				
			|||
 | 
				
			|||
  # Use a real queuing backend for Active Job (and separate queues per environment). | 
				
			|||
  # config.active_job.queue_adapter     = :resque | 
				
			|||
  # config.active_job.queue_name_prefix = "blog_production" | 
				
			|||
 | 
				
			|||
  config.action_mailer.perform_caching = false | 
				
			|||
 | 
				
			|||
  # Ignore bad email addresses and do not raise email delivery errors. | 
				
			|||
  # Set this to true and configure the email server for immediate delivery to raise delivery errors. | 
				
			|||
  # config.action_mailer.raise_delivery_errors = false | 
				
			|||
 | 
				
			|||
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | 
				
			|||
  # the I18n.default_locale when a translation cannot be found). | 
				
			|||
  config.i18n.fallbacks = true | 
				
			|||
 | 
				
			|||
  # Don't log any deprecations. | 
				
			|||
  config.active_support.report_deprecations = false | 
				
			|||
 | 
				
			|||
  # Use default logging formatter so that PID and timestamp are not suppressed. | 
				
			|||
  config.log_formatter = ::Logger::Formatter.new | 
				
			|||
 | 
				
			|||
  # Use a different logger for distributed setups. | 
				
			|||
  # require "syslog/logger" | 
				
			|||
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") | 
				
			|||
 | 
				
			|||
  if ENV["RAILS_LOG_TO_STDOUT"].present? | 
				
			|||
    logger           = ActiveSupport::Logger.new(STDOUT) | 
				
			|||
    logger.formatter = config.log_formatter | 
				
			|||
    config.logger    = ActiveSupport::TaggedLogging.new(logger) | 
				
			|||
  end | 
				
			|||
 | 
				
			|||
  # Do not dump schema after migrations. | 
				
			|||
  config.active_record.dump_schema_after_migration = false | 
				
			|||
end | 
				
			|||
@ -0,0 +1,60 @@ | 
				
			|||
require "active_support/core_ext/integer/time" | 
				
			|||
 | 
				
			|||
# The test environment is used exclusively to run your application's | 
				
			|||
# test suite. You never need to work with it otherwise. Remember that | 
				
			|||
# your test database is "scratch space" for the test suite and is wiped | 
				
			|||
# and recreated between test runs. Don't rely on the data there! | 
				
			|||
 | 
				
			|||
Rails.application.configure do | 
				
			|||
  # Settings specified here will take precedence over those in config/application.rb. | 
				
			|||
 | 
				
			|||
  # Turn false under Spring and add config.action_view.cache_template_loading = true. | 
				
			|||
  config.cache_classes = true | 
				
			|||
 | 
				
			|||
  # Eager loading loads your whole application. When running a single test locally, | 
				
			|||
  # this probably isn't necessary. It's a good idea to do in a continuous integration | 
				
			|||
  # system, or in some way before deploying your code. | 
				
			|||
  config.eager_load = ENV["CI"].present? | 
				
			|||
 | 
				
			|||
  # Configure public file server for tests with Cache-Control for performance. | 
				
			|||
  config.public_file_server.enabled = true | 
				
			|||
  config.public_file_server.headers = { | 
				
			|||
    "Cache-Control" => "public, max-age=#{1.hour.to_i}" | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  # Show full error reports and disable caching. | 
				
			|||
  config.consider_all_requests_local       = true | 
				
			|||
  config.action_controller.perform_caching = false | 
				
			|||
  config.cache_store = :null_store | 
				
			|||
 | 
				
			|||
  # Raise exceptions instead of rendering exception templates. | 
				
			|||
  config.action_dispatch.show_exceptions = false | 
				
			|||
 | 
				
			|||
  # Disable request forgery protection in test environment. | 
				
			|||
  config.action_controller.allow_forgery_protection = false | 
				
			|||
 | 
				
			|||
  # Store uploaded files on the local file system in a temporary directory. | 
				
			|||
  config.active_storage.service = :test | 
				
			|||
 | 
				
			|||
  config.action_mailer.perform_caching = false | 
				
			|||
 | 
				
			|||
  # Tell Action Mailer not to deliver emails to the real world. | 
				
			|||
  # The :test delivery method accumulates sent emails in the | 
				
			|||
  # ActionMailer::Base.deliveries array. | 
				
			|||
  config.action_mailer.delivery_method = :test | 
				
			|||
 | 
				
			|||
  # Print deprecation notices to the stderr. | 
				
			|||
  config.active_support.deprecation = :stderr | 
				
			|||
 | 
				
			|||
  # Raise exceptions for disallowed deprecations. | 
				
			|||
  config.active_support.disallowed_deprecation = :raise | 
				
			|||
 | 
				
			|||
  # Tell Active Support which deprecation messages to disallow. | 
				
			|||
  config.active_support.disallowed_deprecation_warnings = [] | 
				
			|||
 | 
				
			|||
  # Raises error for missing translations. | 
				
			|||
  # config.i18n.raise_on_missing_translations = true | 
				
			|||
 | 
				
			|||
  # Annotate rendered view with file names. | 
				
			|||
  # config.action_view.annotate_rendered_view_with_filenames = true | 
				
			|||
end | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
# Pin npm packages by running ./bin/importmap | 
				
			|||
 | 
				
			|||
pin "application", preload: true | 
				
			|||
pin "@hotwired/turbo-rails", to: "turbo.min.js", preload: true | 
				
			|||
pin "@hotwired/stimulus", to: "stimulus.min.js", preload: true | 
				
			|||
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js", preload: true | 
				
			|||
pin_all_from "app/javascript/controllers", under: "controllers" | 
				
			|||
@ -0,0 +1,12 @@ | 
				
			|||
# Be sure to restart your server when you modify this file. | 
				
			|||
 | 
				
			|||
# Version of your assets, change this if you want to expire all your assets. | 
				
			|||
Rails.application.config.assets.version = "1.0" | 
				
			|||
 | 
				
			|||
# Add additional assets to the asset load path. | 
				
			|||
# Rails.application.config.assets.paths << Emoji.images_path | 
				
			|||
 | 
				
			|||
# Precompile additional assets. | 
				
			|||
# application.js, application.css, and all non-JS/CSS in the app/assets | 
				
			|||
# folder are already added. | 
				
			|||
# Rails.application.config.assets.precompile += %w( admin.js admin.css ) | 
				
			|||
@ -0,0 +1,25 @@ | 
				
			|||
# Be sure to restart your server when you modify this file. | 
				
			|||
 | 
				
			|||
# Define an application-wide content security policy. | 
				
			|||
# See the Securing Rails Applications Guide for more information: | 
				
			|||
# https://guides.rubyonrails.org/security.html#content-security-policy-header | 
				
			|||
 | 
				
			|||
# Rails.application.configure do | 
				
			|||
#   config.content_security_policy do |policy| | 
				
			|||
#     policy.default_src :self, :https | 
				
			|||
#     policy.font_src    :self, :https, :data | 
				
			|||
#     policy.img_src     :self, :https, :data | 
				
			|||
#     policy.object_src  :none | 
				
			|||
#     policy.script_src  :self, :https | 
				
			|||
#     policy.style_src   :self, :https | 
				
			|||
#     # Specify URI for violation reports | 
				
			|||
#     # policy.report_uri "/csp-violation-report-endpoint" | 
				
			|||
#   end | 
				
			|||
# | 
				
			|||
#   # Generate session nonces for permitted importmap and inline scripts | 
				
			|||
#   config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } | 
				
			|||
#   config.content_security_policy_nonce_directives = %w(script-src) | 
				
			|||
# | 
				
			|||
#   # Report violations without enforcing the policy. | 
				
			|||
#   # config.content_security_policy_report_only = true | 
				
			|||
# end | 
				
			|||
@ -0,0 +1,8 @@ | 
				
			|||
# Be sure to restart your server when you modify this file. | 
				
			|||
 | 
				
			|||
# Configure parameters to be filtered from the log file. Use this to limit dissemination of | 
				
			|||
# sensitive information. See the ActiveSupport::ParameterFilter documentation for supported | 
				
			|||
# notations and behaviors. | 
				
			|||
Rails.application.config.filter_parameters += [ | 
				
			|||
  :passw, :secret, :token, :_key, :crypt, :salt, :certificate, :otp, :ssn | 
				
			|||
] | 
				
			|||
@ -0,0 +1,16 @@ | 
				
			|||
# Be sure to restart your server when you modify this file. | 
				
			|||
 | 
				
			|||
# Add new inflection rules using the following format. Inflections | 
				
			|||
# are locale specific, and you may define rules for as many different | 
				
			|||
# locales as you wish. All of these examples are active by default: | 
				
			|||
# ActiveSupport::Inflector.inflections(:en) do |inflect| | 
				
			|||
#   inflect.plural /^(ox)$/i, "\\1en" | 
				
			|||
#   inflect.singular /^(ox)en/i, "\\1" | 
				
			|||
#   inflect.irregular "person", "people" | 
				
			|||
#   inflect.uncountable %w( fish sheep ) | 
				
			|||
# end | 
				
			|||
 | 
				
			|||
# These inflection rules are supported but not enabled by default: | 
				
			|||
# ActiveSupport::Inflector.inflections(:en) do |inflect| | 
				
			|||
#   inflect.acronym "RESTful" | 
				
			|||
# end | 
				
			|||
@ -0,0 +1,11 @@ | 
				
			|||
# Define an application-wide HTTP permissions policy. For further | 
				
			|||
# information see https://developers.google.com/web/updates/2018/06/feature-policy | 
				
			|||
# | 
				
			|||
# Rails.application.config.permissions_policy do |f| | 
				
			|||
#   f.camera      :none | 
				
			|||
#   f.gyroscope   :none | 
				
			|||
#   f.microphone  :none | 
				
			|||
#   f.usb         :none | 
				
			|||
#   f.fullscreen  :self | 
				
			|||
#   f.payment     :self, "https://secure.example.com" | 
				
			|||
# end | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
# Files in the config/locales directory are used for internationalization | 
				
			|||
# and are automatically loaded by Rails. If you want to use locales other | 
				
			|||
# than English, add the necessary files in this directory. | 
				
			|||
# | 
				
			|||
# To use the locales, use `I18n.t`: | 
				
			|||
# | 
				
			|||
#     I18n.t "hello" | 
				
			|||
# | 
				
			|||
# In views, this is aliased to just `t`: | 
				
			|||
# | 
				
			|||
#     <%= t("hello") %> | 
				
			|||
# | 
				
			|||
# To use a different locale, set it with `I18n.locale`: | 
				
			|||
# | 
				
			|||
#     I18n.locale = :es | 
				
			|||
# | 
				
			|||
# This would use the information in config/locales/es.yml. | 
				
			|||
# | 
				
			|||
# The following keys must be escaped otherwise they will not be retrieved by | 
				
			|||
# the default I18n backend: | 
				
			|||
# | 
				
			|||
# true, false, on, off, yes, no | 
				
			|||
# | 
				
			|||
# Instead, surround them with single quotes. | 
				
			|||
# | 
				
			|||
# en: | 
				
			|||
#   "true": "foo" | 
				
			|||
# | 
				
			|||
# To learn more, please read the Rails Internationalization guide | 
				
			|||
# available at https://guides.rubyonrails.org/i18n.html. | 
				
			|||
 | 
				
			|||
en: | 
				
			|||
  hello: "Hello world" | 
				
			|||
@ -0,0 +1,43 @@ | 
				
			|||
# Puma can serve each request in a thread from an internal thread pool. | 
				
			|||
# The `threads` method setting takes two numbers: a minimum and maximum. | 
				
			|||
# Any libraries that use thread pools should be configured to match | 
				
			|||
# the maximum value specified for Puma. Default is set to 5 threads for minimum | 
				
			|||
# and maximum; this matches the default thread size of Active Record. | 
				
			|||
# | 
				
			|||
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 } | 
				
			|||
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count } | 
				
			|||
threads min_threads_count, max_threads_count | 
				
			|||
 | 
				
			|||
# Specifies the `worker_timeout` threshold that Puma will use to wait before | 
				
			|||
# terminating a worker in development environments. | 
				
			|||
# | 
				
			|||
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development" | 
				
			|||
 | 
				
			|||
# Specifies the `port` that Puma will listen on to receive requests; default is 3000. | 
				
			|||
# | 
				
			|||
port ENV.fetch("PORT") { 3000 } | 
				
			|||
 | 
				
			|||
# Specifies the `environment` that Puma will run in. | 
				
			|||
# | 
				
			|||
environment ENV.fetch("RAILS_ENV") { "development" } | 
				
			|||
 | 
				
			|||
# Specifies the `pidfile` that Puma will use. | 
				
			|||
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" } | 
				
			|||
 | 
				
			|||
# Specifies the number of `workers` to boot in clustered mode. | 
				
			|||
# Workers are forked web server processes. If using threads and workers together | 
				
			|||
# the concurrency of the application would be max `threads` * `workers`. | 
				
			|||
# Workers do not work on JRuby or Windows (both of which do not support | 
				
			|||
# processes). | 
				
			|||
# | 
				
			|||
# workers ENV.fetch("WEB_CONCURRENCY") { 2 } | 
				
			|||
 | 
				
			|||
# Use the `preload_app!` method when specifying a `workers` number. | 
				
			|||
# This directive tells Puma to first boot the application and load code | 
				
			|||
# before forking the application. This takes advantage of Copy On Write | 
				
			|||
# process behavior so workers use less memory. | 
				
			|||
# | 
				
			|||
# preload_app! | 
				
			|||
 | 
				
			|||
# Allow puma to be restarted by `bin/rails restart` command. | 
				
			|||
plugin :tmp_restart | 
				
			|||
@ -0,0 +1,3 @@ | 
				
			|||
Rails.application.routes.draw do | 
				
			|||
  root "welcome#index" | 
				
			|||
end | 
				
			|||
@ -0,0 +1,34 @@ | 
				
			|||
test: | 
				
			|||
  service: Disk | 
				
			|||
  root: <%= Rails.root.join("tmp/storage") %> | 
				
			|||
 | 
				
			|||
local: | 
				
			|||
  service: Disk | 
				
			|||
  root: <%= Rails.root.join("storage") %> | 
				
			|||
 | 
				
			|||
# Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) | 
				
			|||
# amazon: | 
				
			|||
#   service: S3 | 
				
			|||
#   access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> | 
				
			|||
#   secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> | 
				
			|||
#   region: us-east-1 | 
				
			|||
#   bucket: your_own_bucket-<%= Rails.env %> | 
				
			|||
 | 
				
			|||
# Remember not to checkin your GCS keyfile to a repository | 
				
			|||
# google: | 
				
			|||
#   service: GCS | 
				
			|||
#   project: your_project | 
				
			|||
#   credentials: <%= Rails.root.join("path/to/gcs.keyfile") %> | 
				
			|||
#   bucket: your_own_bucket-<%= Rails.env %> | 
				
			|||
 | 
				
			|||
# Use bin/rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key) | 
				
			|||
# microsoft: | 
				
			|||
#   service: AzureStorage | 
				
			|||
#   storage_account_name: your_account_name | 
				
			|||
#   storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %> | 
				
			|||
#   container: your_container_name-<%= Rails.env %> | 
				
			|||
 | 
				
			|||
# mirror: | 
				
			|||
#   service: Mirror | 
				
			|||
#   primary: local | 
				
			|||
#   mirrors: [ amazon, google, microsoft ] | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
# This file should contain all the record creation needed to seed the database with its default values. | 
				
			|||
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). | 
				
			|||
# | 
				
			|||
# Examples: | 
				
			|||
# | 
				
			|||
#   movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }]) | 
				
			|||
#   Character.create(name: "Luke", movie: movies.first) | 
				
			|||
@ -0,0 +1,67 @@ | 
				
			|||
<!DOCTYPE html> | 
				
			|||
<html> | 
				
			|||
<head> | 
				
			|||
  <title>The page you were looking for doesn't exist (404)</title> | 
				
			|||
  <meta name="viewport" content="width=device-width,initial-scale=1"> | 
				
			|||
  <style> | 
				
			|||
  .rails-default-error-page { | 
				
			|||
    background-color: #EFEFEF; | 
				
			|||
    color: #2E2F30; | 
				
			|||
    text-align: center; | 
				
			|||
    font-family: arial, sans-serif; | 
				
			|||
    margin: 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog { | 
				
			|||
    width: 95%; | 
				
			|||
    max-width: 33em; | 
				
			|||
    margin: 4em auto 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > div { | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #BBB; | 
				
			|||
    border-top: #B00100 solid 4px; | 
				
			|||
    border-top-left-radius: 9px; | 
				
			|||
    border-top-right-radius: 9px; | 
				
			|||
    background-color: white; | 
				
			|||
    padding: 7px 12% 0; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page h1 { | 
				
			|||
    font-size: 100%; | 
				
			|||
    color: #730E15; | 
				
			|||
    line-height: 1.5em; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > p { | 
				
			|||
    margin: 0 0 1em; | 
				
			|||
    padding: 1em; | 
				
			|||
    background-color: #F7F7F7; | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #999; | 
				
			|||
    border-bottom-left-radius: 4px; | 
				
			|||
    border-bottom-right-radius: 4px; | 
				
			|||
    border-top-color: #DADADA; | 
				
			|||
    color: #666; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
  </style> | 
				
			|||
</head> | 
				
			|||
 | 
				
			|||
<body class="rails-default-error-page"> | 
				
			|||
  <!-- This file lives in public/404.html --> | 
				
			|||
  <div class="dialog"> | 
				
			|||
    <div> | 
				
			|||
      <h1>The page you were looking for doesn't exist.</h1> | 
				
			|||
      <p>You may have mistyped the address or the page may have moved.</p> | 
				
			|||
    </div> | 
				
			|||
    <p>If you are the application owner check the logs for more information.</p> | 
				
			|||
  </div> | 
				
			|||
</body> | 
				
			|||
</html> | 
				
			|||
@ -0,0 +1,67 @@ | 
				
			|||
<!DOCTYPE html> | 
				
			|||
<html> | 
				
			|||
<head> | 
				
			|||
  <title>The change you wanted was rejected (422)</title> | 
				
			|||
  <meta name="viewport" content="width=device-width,initial-scale=1"> | 
				
			|||
  <style> | 
				
			|||
  .rails-default-error-page { | 
				
			|||
    background-color: #EFEFEF; | 
				
			|||
    color: #2E2F30; | 
				
			|||
    text-align: center; | 
				
			|||
    font-family: arial, sans-serif; | 
				
			|||
    margin: 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog { | 
				
			|||
    width: 95%; | 
				
			|||
    max-width: 33em; | 
				
			|||
    margin: 4em auto 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > div { | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #BBB; | 
				
			|||
    border-top: #B00100 solid 4px; | 
				
			|||
    border-top-left-radius: 9px; | 
				
			|||
    border-top-right-radius: 9px; | 
				
			|||
    background-color: white; | 
				
			|||
    padding: 7px 12% 0; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page h1 { | 
				
			|||
    font-size: 100%; | 
				
			|||
    color: #730E15; | 
				
			|||
    line-height: 1.5em; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > p { | 
				
			|||
    margin: 0 0 1em; | 
				
			|||
    padding: 1em; | 
				
			|||
    background-color: #F7F7F7; | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #999; | 
				
			|||
    border-bottom-left-radius: 4px; | 
				
			|||
    border-bottom-right-radius: 4px; | 
				
			|||
    border-top-color: #DADADA; | 
				
			|||
    color: #666; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
  </style> | 
				
			|||
</head> | 
				
			|||
 | 
				
			|||
<body class="rails-default-error-page"> | 
				
			|||
  <!-- This file lives in public/422.html --> | 
				
			|||
  <div class="dialog"> | 
				
			|||
    <div> | 
				
			|||
      <h1>The change you wanted was rejected.</h1> | 
				
			|||
      <p>Maybe you tried to change something you didn't have access to.</p> | 
				
			|||
    </div> | 
				
			|||
    <p>If you are the application owner check the logs for more information.</p> | 
				
			|||
  </div> | 
				
			|||
</body> | 
				
			|||
</html> | 
				
			|||
@ -0,0 +1,66 @@ | 
				
			|||
<!DOCTYPE html> | 
				
			|||
<html> | 
				
			|||
<head> | 
				
			|||
  <title>We're sorry, but something went wrong (500)</title> | 
				
			|||
  <meta name="viewport" content="width=device-width,initial-scale=1"> | 
				
			|||
  <style> | 
				
			|||
  .rails-default-error-page { | 
				
			|||
    background-color: #EFEFEF; | 
				
			|||
    color: #2E2F30; | 
				
			|||
    text-align: center; | 
				
			|||
    font-family: arial, sans-serif; | 
				
			|||
    margin: 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog { | 
				
			|||
    width: 95%; | 
				
			|||
    max-width: 33em; | 
				
			|||
    margin: 4em auto 0; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > div { | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #BBB; | 
				
			|||
    border-top: #B00100 solid 4px; | 
				
			|||
    border-top-left-radius: 9px; | 
				
			|||
    border-top-right-radius: 9px; | 
				
			|||
    background-color: white; | 
				
			|||
    padding: 7px 12% 0; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page h1 { | 
				
			|||
    font-size: 100%; | 
				
			|||
    color: #730E15; | 
				
			|||
    line-height: 1.5em; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .rails-default-error-page div.dialog > p { | 
				
			|||
    margin: 0 0 1em; | 
				
			|||
    padding: 1em; | 
				
			|||
    background-color: #F7F7F7; | 
				
			|||
    border: 1px solid #CCC; | 
				
			|||
    border-right-color: #999; | 
				
			|||
    border-left-color: #999; | 
				
			|||
    border-bottom-color: #999; | 
				
			|||
    border-bottom-left-radius: 4px; | 
				
			|||
    border-bottom-right-radius: 4px; | 
				
			|||
    border-top-color: #DADADA; | 
				
			|||
    color: #666; | 
				
			|||
    box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | 
				
			|||
  } | 
				
			|||
  </style> | 
				
			|||
</head> | 
				
			|||
 | 
				
			|||
<body class="rails-default-error-page"> | 
				
			|||
  <!-- This file lives in public/500.html --> | 
				
			|||
  <div class="dialog"> | 
				
			|||
    <div> | 
				
			|||
      <h1>We're sorry, but something went wrong.</h1> | 
				
			|||
    </div> | 
				
			|||
    <p>If you are the application owner check the logs for more information.</p> | 
				
			|||
  </div> | 
				
			|||
</body> | 
				
			|||
</html> | 
				
			|||
@ -0,0 +1 @@ | 
				
			|||
# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
require "test_helper" | 
				
			|||
 | 
				
			|||
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase | 
				
			|||
  driven_by :selenium, using: :chrome, screen_size: [1400, 1400] | 
				
			|||
end | 
				
			|||
@ -0,0 +1,11 @@ | 
				
			|||
require "test_helper" | 
				
			|||
 | 
				
			|||
class ApplicationCable::ConnectionTest < ActionCable::Connection::TestCase | 
				
			|||
  # test "connects with cookies" do | 
				
			|||
  #   cookies.signed[:user_id] = 42 | 
				
			|||
  # | 
				
			|||
  #   connect | 
				
			|||
  # | 
				
			|||
  #   assert_equal connection.user_id, "42" | 
				
			|||
  # end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
require "test_helper" | 
				
			|||
 | 
				
			|||
class ArticlesControllerTest < ActionDispatch::IntegrationTest | 
				
			|||
  # test "the truth" do | 
				
			|||
  #   assert true | 
				
			|||
  # end | 
				
			|||
end | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
ENV["RAILS_ENV"] ||= "test" | 
				
			|||
require_relative "../config/environment" | 
				
			|||
require "rails/test_help" | 
				
			|||
 | 
				
			|||
class ActiveSupport::TestCase | 
				
			|||
  # Run tests in parallel with specified workers | 
				
			|||
  parallelize(workers: :number_of_processors) | 
				
			|||
 | 
				
			|||
  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. | 
				
			|||
  fixtures :all | 
				
			|||
 | 
				
			|||
  # Add more helper methods to be used by all tests here... | 
				
			|||
end | 
				
			|||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue