Compare commits
No commits in common. "main" and "c5b9fe77a8a0e1c2e6a051b700c5a5d4b98ff6fb" have entirely different histories.
main
...
c5b9fe77a8
|
@ -33,4 +33,3 @@
|
||||||
|
|
||||||
# Ignore master key for decrypting credentials and more.
|
# Ignore master key for decrypting credentials and more.
|
||||||
/config/master.key
|
/config/master.key
|
||||||
/node_modules/
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
|
||||||
<profile version="1.0">
|
|
||||||
<option name="myName" value="Project Default" />
|
|
||||||
<inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
|
|
||||||
</profile>
|
|
||||||
</component>
|
|
|
@ -26,83 +26,82 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/public/system" />
|
<excludeFolder url="file://$MODULE_DIR$/public/system" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/components" />
|
<excludeFolder url="file://$MODULE_DIR$/components" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="rbenv: 3.1.2" jdkType="RUBY_SDK" />
|
<orderEntry type="jdk" jdkName="rbenv: 3.0.2" jdkType="RUBY_SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actioncable (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actioncable (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionmailbox (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actionmailbox (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionmailer (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actionmailer (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionpack (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actionpack (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actiontext (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actiontext (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionview (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="actionview (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activejob (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="activejob (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activemodel (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="activemodel (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activerecord (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="activerecord (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activestorage (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="activestorage (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activesupport (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="activesupport (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.8.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.8.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bindex (v0.8.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="bindex (v0.8.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bootsnap (v1.12.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="bootsnap (v1.9.4, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="builder (v3.2.4, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.3.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.2.22, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="capybara (v3.37.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="capybara (v3.36.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="childprocess (v4.1.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="childprocess (v4.1.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.10, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.9, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="crass (v1.0.6, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="debug (v1.5.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="debug (v1.4.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="digest (v3.1.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="digest (v3.1.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="erubi (v1.10.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="erubi (v1.10.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="globalid (v1.0.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="globalid (v1.0.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.10.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.11, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="importmap-rails (v1.1.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="importmap-rails (v1.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="io-console (v0.5.11, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="io-console (v0.5.11, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="irb (v1.4.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="io-wait (v0.2.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="jbuilder (v2.11.5, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="irb (v1.4.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="loofah (v2.18.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="jbuilder (v2.11.5, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="loofah (v2.13.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="marcel (v1.0.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="mail (v2.7.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="matrix (v0.4.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="marcel (v1.0.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="matrix (v0.4.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="method_source (v1.0.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.16.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="mini_mime (v1.1.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="msgpack (v1.5.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.15.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="net-imap (v0.2.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="msgpack (v1.4.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="net-pop (v0.1.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="net-imap (v0.2.3, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="net-protocol (v0.1.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="net-protocol (v0.1.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="net-smtp (v0.3.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="net-smtp (v0.3.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="nio4r (v2.5.8, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="nio4r (v2.5.8, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.13.6, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.13.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.7, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="public_suffix (v4.0.6, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="puma (v5.6.4, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="puma (v5.5.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="racc (v1.6.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="racc (v1.6.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rack (v2.2.3, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rails (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.4.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.4.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="railties (v7.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="railties (v7.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rake (v13.0.6, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="redis (v4.6.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="redis (v4.5.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.5.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="regexp_parser (v2.2.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="reline (v0.3.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="reline (v0.3.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.5, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rubyzip (v2.3.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="rubyzip (v2.3.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v4.2.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v4.1.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sprockets (v4.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="sprockets (v4.0.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.4.2, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.4.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.4.4, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.4.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="stimulus-rails (v1.0.4, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="stimulus-rails (v1.0.2, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="strscan (v3.0.3, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="strscan (v3.0.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="thor (v1.2.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="thor (v1.2.1, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="timeout (v0.3.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="timeout (v0.2.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="turbo-rails (v1.1.1, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="turbo-rails (v1.0.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.4, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v2.0.4, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="web-console (v4.2.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="web-console (v4.2.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="webdrivers (v5.0.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="webdrivers (v5.0.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="websocket (v1.2.9, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.5, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.7.5, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.5, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="xpath (v3.2.0, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="xpath (v3.2.0, rbenv: 3.1.2) [gem]" level="application" />
|
<orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.5.3, rbenv: 3.0.2) [gem]" level="application" />
|
||||||
<orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.6.0, rbenv: 3.1.2) [gem]" level="application" />
|
|
||||||
</component>
|
</component>
|
||||||
<component name="RModuleSettingsStorage">
|
<component name="RModuleSettingsStorage">
|
||||||
<LOAD_PATH number="0" />
|
<LOAD_PATH number="0" />
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.1.2
|
3.0.2
|
||||||
|
|
6
Gemfile
6
Gemfile
|
@ -3,10 +3,10 @@
|
||||||
source 'https://rubygems.org'
|
source 'https://rubygems.org'
|
||||||
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
||||||
|
|
||||||
ruby '3.1.2'
|
ruby '3.0.2'
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
|
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
|
||||||
gem 'rails', '~> 7.0.3'
|
gem 'rails', '~> 7.0.1'
|
||||||
|
|
||||||
# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
|
# The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
|
||||||
gem 'sprockets-rails'
|
gem 'sprockets-rails'
|
||||||
|
@ -15,7 +15,7 @@ gem 'sprockets-rails'
|
||||||
gem 'sqlite3', '~> 1.4'
|
gem 'sqlite3', '~> 1.4'
|
||||||
|
|
||||||
# Use the Puma web server [https://github.com/puma/puma]
|
# Use the Puma web server [https://github.com/puma/puma]
|
||||||
gem 'puma', '~> 5.6'
|
gem 'puma', '~> 5.0'
|
||||||
|
|
||||||
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
|
# Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
|
||||||
gem 'importmap-rails'
|
gem 'importmap-rails'
|
||||||
|
|
173
Gemfile.lock
173
Gemfile.lock
|
@ -1,67 +1,67 @@
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (7.0.3)
|
actioncable (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
actionmailbox (7.0.3)
|
actionmailbox (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
activejob (= 7.0.3)
|
activejob (= 7.0.1)
|
||||||
activerecord (= 7.0.3)
|
activerecord (= 7.0.1)
|
||||||
activestorage (= 7.0.3)
|
activestorage (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.7.1)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
actionmailer (7.0.3)
|
actionmailer (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
actionview (= 7.0.3)
|
actionview (= 7.0.1)
|
||||||
activejob (= 7.0.3)
|
activejob (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
mail (~> 2.5, >= 2.5.4)
|
mail (~> 2.5, >= 2.5.4)
|
||||||
net-imap
|
net-imap
|
||||||
net-pop
|
net-pop
|
||||||
net-smtp
|
net-smtp
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
actionpack (7.0.3)
|
actionpack (7.0.1)
|
||||||
actionview (= 7.0.3)
|
actionview (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
rack (~> 2.0, >= 2.2.0)
|
rack (~> 2.0, >= 2.2.0)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
||||||
actiontext (7.0.3)
|
actiontext (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
activerecord (= 7.0.3)
|
activerecord (= 7.0.1)
|
||||||
activestorage (= 7.0.3)
|
activestorage (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
globalid (>= 0.6.0)
|
globalid (>= 0.6.0)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (7.0.3)
|
actionview (7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
||||||
activejob (7.0.3)
|
activejob (7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (7.0.3)
|
activemodel (7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
activerecord (7.0.3)
|
activerecord (7.0.1)
|
||||||
activemodel (= 7.0.3)
|
activemodel (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
activestorage (7.0.3)
|
activestorage (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
activejob (= 7.0.3)
|
activejob (= 7.0.1)
|
||||||
activerecord (= 7.0.3)
|
activerecord (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
marcel (~> 1.0)
|
marcel (~> 1.0)
|
||||||
mini_mime (>= 1.1.0)
|
mini_mime (>= 1.1.0)
|
||||||
activesupport (7.0.3)
|
activesupport (7.0.1)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (>= 1.6, < 2)
|
i18n (>= 1.6, < 2)
|
||||||
minitest (>= 5.1)
|
minitest (>= 5.1)
|
||||||
|
@ -69,10 +69,10 @@ GEM
|
||||||
addressable (2.8.0)
|
addressable (2.8.0)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 5.0)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bootsnap (1.12.0)
|
bootsnap (1.9.4)
|
||||||
msgpack (~> 1.2)
|
msgpack (~> 1.0)
|
||||||
builder (3.2.4)
|
builder (3.2.4)
|
||||||
capybara (3.37.1)
|
capybara (3.36.0)
|
||||||
addressable
|
addressable
|
||||||
matrix
|
matrix
|
||||||
mini_mime (>= 0.1.3)
|
mini_mime (>= 0.1.3)
|
||||||
|
@ -82,27 +82,28 @@ GEM
|
||||||
regexp_parser (>= 1.5, < 3.0)
|
regexp_parser (>= 1.5, < 3.0)
|
||||||
xpath (~> 3.2)
|
xpath (~> 3.2)
|
||||||
childprocess (4.1.0)
|
childprocess (4.1.0)
|
||||||
concurrent-ruby (1.1.10)
|
concurrent-ruby (1.1.9)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
debug (1.5.0)
|
debug (1.4.0)
|
||||||
irb (>= 1.3.6)
|
irb (>= 1.3.6)
|
||||||
reline (>= 0.2.7)
|
reline (>= 0.2.7)
|
||||||
digest (3.1.0)
|
digest (3.1.0)
|
||||||
erubi (1.10.0)
|
erubi (1.10.0)
|
||||||
globalid (1.0.0)
|
globalid (1.0.0)
|
||||||
activesupport (>= 5.0)
|
activesupport (>= 5.0)
|
||||||
i18n (1.10.0)
|
i18n (1.8.11)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
importmap-rails (1.1.2)
|
importmap-rails (1.0.1)
|
||||||
actionpack (>= 6.0.0)
|
actionpack (>= 6.0.0)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
io-console (0.5.11)
|
io-console (0.5.11)
|
||||||
|
io-wait (0.2.1)
|
||||||
irb (1.4.1)
|
irb (1.4.1)
|
||||||
reline (>= 0.3.0)
|
reline (>= 0.3.0)
|
||||||
jbuilder (2.11.5)
|
jbuilder (2.11.5)
|
||||||
actionview (>= 5.0.0)
|
actionview (>= 5.0.0)
|
||||||
activesupport (>= 5.0.0)
|
activesupport (>= 5.0.0)
|
||||||
loofah (2.18.0)
|
loofah (2.13.0)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.5.9)
|
nokogiri (>= 1.5.9)
|
||||||
mail (2.7.1)
|
mail (2.7.1)
|
||||||
|
@ -111,8 +112,8 @@ GEM
|
||||||
matrix (0.4.2)
|
matrix (0.4.2)
|
||||||
method_source (1.0.0)
|
method_source (1.0.0)
|
||||||
mini_mime (1.1.2)
|
mini_mime (1.1.2)
|
||||||
minitest (5.16.0)
|
minitest (5.15.0)
|
||||||
msgpack (1.5.2)
|
msgpack (1.4.2)
|
||||||
net-imap (0.2.3)
|
net-imap (0.2.3)
|
||||||
digest
|
digest
|
||||||
net-protocol
|
net-protocol
|
||||||
|
@ -121,76 +122,75 @@ GEM
|
||||||
digest
|
digest
|
||||||
net-protocol
|
net-protocol
|
||||||
timeout
|
timeout
|
||||||
net-protocol (0.1.3)
|
net-protocol (0.1.2)
|
||||||
|
io-wait
|
||||||
timeout
|
timeout
|
||||||
net-smtp (0.3.1)
|
net-smtp (0.3.1)
|
||||||
digest
|
digest
|
||||||
net-protocol
|
net-protocol
|
||||||
timeout
|
timeout
|
||||||
nio4r (2.5.8)
|
nio4r (2.5.8)
|
||||||
nokogiri (1.13.6-x86_64-linux)
|
nokogiri (1.13.1-x86_64-linux)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
public_suffix (4.0.7)
|
public_suffix (4.0.6)
|
||||||
puma (5.6.4)
|
puma (5.5.2)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
racc (1.6.0)
|
racc (1.6.0)
|
||||||
rack (2.2.3.1)
|
rack (2.2.3)
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rails (7.0.3)
|
rails (7.0.1)
|
||||||
actioncable (= 7.0.3)
|
actioncable (= 7.0.1)
|
||||||
actionmailbox (= 7.0.3)
|
actionmailbox (= 7.0.1)
|
||||||
actionmailer (= 7.0.3)
|
actionmailer (= 7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
actiontext (= 7.0.3)
|
actiontext (= 7.0.1)
|
||||||
actionview (= 7.0.3)
|
actionview (= 7.0.1)
|
||||||
activejob (= 7.0.3)
|
activejob (= 7.0.1)
|
||||||
activemodel (= 7.0.3)
|
activemodel (= 7.0.1)
|
||||||
activerecord (= 7.0.3)
|
activerecord (= 7.0.1)
|
||||||
activestorage (= 7.0.3)
|
activestorage (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
bundler (>= 1.15.0)
|
bundler (>= 1.15.0)
|
||||||
railties (= 7.0.3)
|
railties (= 7.0.1)
|
||||||
rails-dom-testing (2.0.3)
|
rails-dom-testing (2.0.3)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
rails-html-sanitizer (1.4.3)
|
rails-html-sanitizer (1.4.2)
|
||||||
loofah (~> 2.3)
|
loofah (~> 2.3)
|
||||||
railties (7.0.3)
|
railties (7.0.1)
|
||||||
actionpack (= 7.0.3)
|
actionpack (= 7.0.1)
|
||||||
activesupport (= 7.0.3)
|
activesupport (= 7.0.1)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 12.2)
|
rake (>= 12.2)
|
||||||
thor (~> 1.0)
|
thor (~> 1.0)
|
||||||
zeitwerk (~> 2.5)
|
zeitwerk (~> 2.5)
|
||||||
rake (13.0.6)
|
rake (13.0.6)
|
||||||
redis (4.6.0)
|
redis (4.5.1)
|
||||||
regexp_parser (2.5.0)
|
regexp_parser (2.2.0)
|
||||||
reline (0.3.1)
|
reline (0.3.1)
|
||||||
io-console (~> 0.5)
|
io-console (~> 0.5)
|
||||||
rexml (3.2.5)
|
rexml (3.2.5)
|
||||||
rubyzip (2.3.2)
|
rubyzip (2.3.2)
|
||||||
selenium-webdriver (4.2.1)
|
selenium-webdriver (4.1.0)
|
||||||
childprocess (>= 0.5, < 5.0)
|
childprocess (>= 0.5, < 5.0)
|
||||||
rexml (~> 3.2, >= 3.2.5)
|
rexml (~> 3.2, >= 3.2.5)
|
||||||
rubyzip (>= 1.2.2, < 3.0)
|
rubyzip (>= 1.2.2)
|
||||||
websocket (~> 1.0)
|
sprockets (4.0.2)
|
||||||
sprockets (4.0.3)
|
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
sprockets-rails (3.4.2)
|
sprockets-rails (3.4.2)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
activesupport (>= 5.2)
|
activesupport (>= 5.2)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sqlite3 (1.4.4)
|
sqlite3 (1.4.2)
|
||||||
stimulus-rails (1.0.4)
|
stimulus-rails (1.0.2)
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
strscan (3.0.3)
|
strscan (3.0.1)
|
||||||
thor (1.2.1)
|
thor (1.2.1)
|
||||||
timeout (0.3.0)
|
timeout (0.2.0)
|
||||||
turbo-rails (1.1.1)
|
turbo-rails (1.0.0)
|
||||||
actionpack (>= 6.0.0)
|
actionpack (>= 6.0.0)
|
||||||
activejob (>= 6.0.0)
|
|
||||||
railties (>= 6.0.0)
|
railties (>= 6.0.0)
|
||||||
tzinfo (2.0.4)
|
tzinfo (2.0.4)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
|
@ -203,13 +203,12 @@ GEM
|
||||||
nokogiri (~> 1.6)
|
nokogiri (~> 1.6)
|
||||||
rubyzip (>= 1.3.0)
|
rubyzip (>= 1.3.0)
|
||||||
selenium-webdriver (~> 4.0)
|
selenium-webdriver (~> 4.0)
|
||||||
websocket (1.2.9)
|
|
||||||
websocket-driver (0.7.5)
|
websocket-driver (0.7.5)
|
||||||
websocket-extensions (>= 0.1.0)
|
websocket-extensions (>= 0.1.0)
|
||||||
websocket-extensions (0.1.5)
|
websocket-extensions (0.1.5)
|
||||||
xpath (3.2.0)
|
xpath (3.2.0)
|
||||||
nokogiri (~> 1.8)
|
nokogiri (~> 1.8)
|
||||||
zeitwerk (2.6.0)
|
zeitwerk (2.5.3)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
x86_64-linux
|
x86_64-linux
|
||||||
|
@ -220,8 +219,8 @@ DEPENDENCIES
|
||||||
debug
|
debug
|
||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder
|
jbuilder
|
||||||
puma (~> 5.6)
|
puma (~> 5.0)
|
||||||
rails (~> 7.0.3)
|
rails (~> 7.0.1)
|
||||||
redis (~> 4.0)
|
redis (~> 4.0)
|
||||||
selenium-webdriver
|
selenium-webdriver
|
||||||
sprockets-rails
|
sprockets-rails
|
||||||
|
@ -233,7 +232,7 @@ DEPENDENCIES
|
||||||
webdrivers
|
webdrivers
|
||||||
|
|
||||||
RUBY VERSION
|
RUBY VERSION
|
||||||
ruby 3.1.2p20
|
ruby 3.0.2p107
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.3.3
|
2.2.22
|
||||||
|
|
61
README.md
61
README.md
|
@ -1,51 +1,24 @@
|
||||||
# [pinrails](https://nomipinball.bhh.sh)
|
# README
|
||||||
|
|
||||||
just a silly little site to help run the pinball tournaments at
|
This README would normally document whatever steps are necessary to get the
|
||||||
[the coin slot](https://thecoinslottc.com/).
|
application up and running.
|
||||||
|
|
||||||
currently running on ruby 3.1.2
|
Things you may want to cover:
|
||||||
|
|
||||||
bundle install
|
* Ruby version
|
||||||
RAILS_ENV=production bundle exec rails db:migrate
|
|
||||||
RAILS_ENV=production bundle exec assets:precompile
|
|
||||||
|
|
||||||
## nginx config:
|
* System dependencies
|
||||||
|
|
||||||
server {
|
* Configuration
|
||||||
listen 80;
|
|
||||||
server_name nomipinball.bhh.sh;
|
|
||||||
return 307 https://$server_name$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
include snippets/ssl/bhh.sh;
|
|
||||||
root /srv/pinrails/pinrails/public;
|
|
||||||
server_name nomipinball.bhh.sh;
|
|
||||||
|
|
||||||
try_files $uri $uri/index.html $uri.html @rails_app;
|
|
||||||
|
|
||||||
location @rails_app {
|
|
||||||
include proxy_params;
|
|
||||||
proxy_pass http://localhost:4000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
## /etc/systemd/system/pinrails.service
|
* Database creation
|
||||||
|
|
||||||
[Unit]
|
* Database initialization
|
||||||
Description=pinrails
|
|
||||||
Wants=network.target
|
* How to run the test suite
|
||||||
|
|
||||||
[Service]
|
* Services (job queues, cache servers, search engines, etc.)
|
||||||
Type=simple
|
|
||||||
User=pinrails
|
* Deployment instructions
|
||||||
Group=nogroup
|
|
||||||
WorkingDirectory=/srv/pinrails/pinrails
|
* ...
|
||||||
Environment=RAILS_ENV=production
|
|
||||||
Environment=PORT=4000
|
|
||||||
Environment=RAILS_LOG_TO_STDOUT=true
|
|
||||||
ExecStart=/srv/pinrails/.rbenv/shims/bundle exec rails server -b 127.0.0.1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
|
@ -1,500 +0,0 @@
|
||||||
/* Set the global variables for everything. Change these to use your own fonts and colours. */
|
|
||||||
:root {
|
|
||||||
/* Set sans-serif & mono fonts */
|
|
||||||
--sans-font: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir,
|
|
||||||
"Nimbus Sans L", Roboto, Noto, "Segoe UI", Arial, Helvetica,
|
|
||||||
"Helvetica Neue", sans-serif;
|
|
||||||
--mono-font: Consolas, Menlo, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
|
|
||||||
|
|
||||||
/* Body font size. By default, effectively 18.4px, based on 16px as 'root em' */
|
|
||||||
--base-fontsize: 1.15rem;
|
|
||||||
|
|
||||||
/* Major third scale progression - see https://type-scale.com/ */
|
|
||||||
--header-scale: 1.25;
|
|
||||||
|
|
||||||
/* Line height is set to the "Golden ratio" for optimal legibility */
|
|
||||||
--line-height: 1.4;
|
|
||||||
|
|
||||||
/* Default (light) theme */
|
|
||||||
--bg: #212121;
|
|
||||||
--accent-bg: #2b2b2b;
|
|
||||||
--text: #dcdcdc;
|
|
||||||
--text-light: #ababab;
|
|
||||||
--border: #666;
|
|
||||||
--accent: #ffb300;
|
|
||||||
--accent-light: #ffecb3;
|
|
||||||
--code: #f06292;
|
|
||||||
--preformatted: #ccc;
|
|
||||||
--marked: #ffdd33;
|
|
||||||
--disabled: #111;
|
|
||||||
}
|
|
||||||
|
|
||||||
img,
|
|
||||||
video {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
/* Set the font globally */
|
|
||||||
font-family: var(--sans-font);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make the body a nice central block */
|
|
||||||
body {
|
|
||||||
color: var(--text);
|
|
||||||
background: var(--bg);
|
|
||||||
font-size: var(--base-fontsize);
|
|
||||||
line-height: var(--line-height);
|
|
||||||
display: flex;
|
|
||||||
min-height: 100vh;
|
|
||||||
flex-direction: column;
|
|
||||||
flex: 1;
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 45rem;
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
overflow-x: hidden;
|
|
||||||
word-break: break-word;
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make the header bg full width, but the content inline with body */
|
|
||||||
header {
|
|
||||||
background: var(--accent-bg);
|
|
||||||
border-bottom: 1px solid var(--border);
|
|
||||||
text-align: center;
|
|
||||||
padding: 2rem 0.5rem;
|
|
||||||
width: 100vw;
|
|
||||||
position: relative;
|
|
||||||
box-sizing: border-box;
|
|
||||||
left: 50%;
|
|
||||||
right: 50%;
|
|
||||||
margin-left: -50vw;
|
|
||||||
margin-right: -50vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Remove margins for header text */
|
|
||||||
header h1,
|
|
||||||
header p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add a little padding to ensure spacing is correct between content and nav */
|
|
||||||
main {
|
|
||||||
padding-top: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fix line height when title wraps */
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3 {
|
|
||||||
line-height: 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format navigation */
|
|
||||||
nav {
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 2;
|
|
||||||
padding: 1rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a {
|
|
||||||
margin: 1rem 1rem 0 0;
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 5px;
|
|
||||||
color: var(--text) !important;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0.1rem 1rem;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: 0.4s;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a.current {
|
|
||||||
border-radius: 8px;
|
|
||||||
color: var(--accent) !important;
|
|
||||||
border-color: var(--accent) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a:hover {
|
|
||||||
color: var(--accent) !important;
|
|
||||||
border-color: var(--accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a.current:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
margin-top: 4rem;
|
|
||||||
padding: 2rem 1rem 1.5rem 1rem;
|
|
||||||
color: var(--text-light);
|
|
||||||
font-size: 0.9rem;
|
|
||||||
text-align: center;
|
|
||||||
border-top: 1px solid var(--border);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format headers */
|
|
||||||
h1 {
|
|
||||||
font-size: calc(
|
|
||||||
var(--base-fontsize) * var(--header-scale) * var(--header-scale) *
|
|
||||||
var(--header-scale) * var(--header-scale)
|
|
||||||
);
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: calc(
|
|
||||||
var(--base-fontsize) * var(--header-scale) * var(--header-scale) *
|
|
||||||
var(--header-scale)
|
|
||||||
);
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: calc(
|
|
||||||
var(--base-fontsize) * var(--header-scale) * var(--header-scale)
|
|
||||||
);
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: calc(var(--base-fontsize) * var(--header-scale));
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: var(--base-fontsize);
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: calc(var(--base-fontsize) / var(--header-scale));
|
|
||||||
margin-top: calc(var(--line-height) * 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format links & buttons */
|
|
||||||
a,
|
|
||||||
a:visited {
|
|
||||||
color: var(--accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a button,
|
|
||||||
button,
|
|
||||||
[role="button"],
|
|
||||||
input[type="submit"],
|
|
||||||
input[type="reset"],
|
|
||||||
input[type="button"] {
|
|
||||||
border: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
background: var(--accent);
|
|
||||||
font-size: 1rem;
|
|
||||||
color: var(--bg);
|
|
||||||
padding: 0.7rem 0.9rem;
|
|
||||||
margin: 0.5rem 0;
|
|
||||||
transition: 0.4s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a button[disabled],
|
|
||||||
button[disabled],
|
|
||||||
[role="button"][aria-disabled="true"],
|
|
||||||
input[type="submit"][disabled],
|
|
||||||
input[type="reset"][disabled],
|
|
||||||
input[type="button"][disabled],
|
|
||||||
input[type="checkbox"][disabled],
|
|
||||||
input[type="radio"][disabled],
|
|
||||||
select[disabled] {
|
|
||||||
opacity: 0.5;
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:disabled,
|
|
||||||
textarea:disabled,
|
|
||||||
select:disabled {
|
|
||||||
cursor: not-allowed;
|
|
||||||
background-color: var(--disabled);
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="range"] {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set the cursor to '?' while hovering over an abbreviation */
|
|
||||||
abbr {
|
|
||||||
cursor: help;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus,
|
|
||||||
button:enabled:hover,
|
|
||||||
[role="button"]:focus,
|
|
||||||
[role="button"]:not([aria-disabled="true"]):hover,
|
|
||||||
input[type="submit"]:focus,
|
|
||||||
input[type="submit"]:enabled:hover,
|
|
||||||
input[type="reset"]:focus,
|
|
||||||
input[type="reset"]:enabled:hover,
|
|
||||||
input[type="button"]:focus,
|
|
||||||
input[type="button"]:enabled:hover,
|
|
||||||
input[type="checkbox"]:focus,
|
|
||||||
input[type="checkbox"]:enabled:hover,
|
|
||||||
input[type="radio"]:focus,
|
|
||||||
input[type="radio"]:enabled:hover {
|
|
||||||
filter: brightness(1.4);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format the expanding box */
|
|
||||||
details {
|
|
||||||
background: var(--accent-bg);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 5px;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
summary {
|
|
||||||
cursor: pointer;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0.6rem 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
details[open] {
|
|
||||||
padding: 0.6rem 1rem 0.75rem 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
details[open] summary {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
details[open] > *:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format tables */
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
margin: 1.5rem 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
text-align: left;
|
|
||||||
padding: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
background: var(--accent-bg);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr:nth-child(even) {
|
|
||||||
/* Set every other cell slightly darker. Improves readability. */
|
|
||||||
background: var(--accent-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
table caption {
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Lists */
|
|
||||||
ol,
|
|
||||||
ul {
|
|
||||||
padding-left: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Format forms */
|
|
||||||
textarea,
|
|
||||||
select,
|
|
||||||
input {
|
|
||||||
font-size: inherit;
|
|
||||||
font-family: inherit;
|
|
||||||
padding: 0.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
color: var(--text);
|
|
||||||
background: var(--bg);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 5px;
|
|
||||||
box-shadow: none;
|
|
||||||
box-sizing: border-box;
|
|
||||||
width: 60%;
|
|
||||||
-moz-appearance: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add arrow to */
|
|
||||||
select {
|
|
||||||
background-image: linear-gradient(45deg, transparent 49%, var(--text) 51%),
|
|
||||||
linear-gradient(135deg, var(--text) 51%, transparent 49%);
|
|
||||||
background-position: calc(100% - 20px), calc(100% - 15px);
|
|
||||||
background-size: 5px 5px, 5px 5px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
select[multiple] {
|
|
||||||
background-image: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* checkbox and radio button style */
|
|
||||||
input[type="checkbox"],
|
|
||||||
input[type="radio"] {
|
|
||||||
vertical-align: bottom;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"] {
|
|
||||||
border-radius: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="checkbox"]:checked,
|
|
||||||
input[type="radio"]:checked {
|
|
||||||
background: var(--accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="checkbox"]:checked::after {
|
|
||||||
/* Creates a rectangle with colored right and bottom borders which is rotated to look like a check mark */
|
|
||||||
content: " ";
|
|
||||||
width: 0.1em;
|
|
||||||
height: 0.25em;
|
|
||||||
border-radius: 0;
|
|
||||||
position: absolute;
|
|
||||||
top: 0.05em;
|
|
||||||
left: 0.18em;
|
|
||||||
background: transparent;
|
|
||||||
border-right: solid var(--bg) 0.08em;
|
|
||||||
border-bottom: solid var(--bg) 0.08em;
|
|
||||||
font-size: 1.8em;
|
|
||||||
transform: rotate(45deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"]:checked::after {
|
|
||||||
/* creates a colored circle for the checked radio button */
|
|
||||||
content: " ";
|
|
||||||
width: 0.25em;
|
|
||||||
height: 0.25em;
|
|
||||||
border-radius: 100%;
|
|
||||||
position: absolute;
|
|
||||||
top: 0.125em;
|
|
||||||
background: var(--bg);
|
|
||||||
left: 0.125em;
|
|
||||||
font-size: 32px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make the textarea wider than other inputs */
|
|
||||||
textarea {
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Makes input fields wider on smaller screens */
|
|
||||||
@media only screen and (max-width: 720px) {
|
|
||||||
textarea,
|
|
||||||
select,
|
|
||||||
input {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Ensures the checkbox and radio inputs do not have a set width like other input fields */
|
|
||||||
input[type="checkbox"],
|
|
||||||
input[type="radio"] {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* do not show border around file selector button */
|
|
||||||
input[type="file"] {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Without this any HTML using <fieldset> shows ugly borders and has additional padding/margin. (Issue #3) */
|
|
||||||
fieldset {
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Misc body elements */
|
|
||||||
|
|
||||||
hr {
|
|
||||||
color: var(--border);
|
|
||||||
border-top: 1px;
|
|
||||||
margin: 1rem auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
mark {
|
|
||||||
padding: 2px 5px;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: var(--marked);
|
|
||||||
}
|
|
||||||
|
|
||||||
main img,
|
|
||||||
main video {
|
|
||||||
max-width: 100%;
|
|
||||||
height: auto;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: var(--text-light);
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
margin: 2rem 0 2rem 2rem;
|
|
||||||
padding: 0.4rem 0.8rem;
|
|
||||||
border-left: 0.35rem solid var(--accent);
|
|
||||||
opacity: 0.8;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
cite {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: var(--text-light);
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Use mono font for code like elements */
|
|
||||||
code,
|
|
||||||
pre,
|
|
||||||
pre span,
|
|
||||||
kbd,
|
|
||||||
samp {
|
|
||||||
font-size: 1.075rem;
|
|
||||||
font-family: var(--mono-font);
|
|
||||||
color: var(--code);
|
|
||||||
}
|
|
||||||
|
|
||||||
kbd {
|
|
||||||
color: var(--preformatted);
|
|
||||||
border: 1px solid var(--preformatted);
|
|
||||||
border-bottom: 3px solid var(--preformatted);
|
|
||||||
border-radius: 5px;
|
|
||||||
padding: 0.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
padding: 1rem 1.4rem;
|
|
||||||
max-width: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
color: var(--preformatted);
|
|
||||||
background: var(--accent-bg);
|
|
||||||
border: 1px solid var(--border);
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fix embedded code within pre */
|
|
||||||
pre code {
|
|
||||||
color: var(--preformatted);
|
|
||||||
background: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
|
@ -52,7 +52,7 @@ class MachinesController < ApplicationController
|
||||||
@machine.destroy
|
@machine.destroy
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to machines_url, status: :see_other, notice: 'Machine was successfully removed.' }
|
format.html { redirect_to machines_url, notice: 'Machine was successfully destroyed.' }
|
||||||
format.json { head :no_content }
|
format.json { head :no_content }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -49,7 +49,7 @@ class PlayersController < ApplicationController
|
||||||
@player.destroy
|
@player.destroy
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { redirect_to players_url, status: :see_other, notice: 'Player was successfully removed.' }
|
format.html { redirect_to players_url, notice: 'Player was successfully destroyed.' }
|
||||||
format.json { head :no_content }
|
format.json { head :no_content }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
def is_active(action)
|
|
||||||
params[:action] == action ? "current" : nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class Player < ApplicationRecord
|
class Player < ApplicationRecord
|
||||||
after_initialize :default_values
|
|
||||||
|
|
||||||
private
|
|
||||||
def default_values
|
|
||||||
self.strikes ||= 0
|
|
||||||
self.paid = self.paid.nil? ? true : self.paid
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,26 +1,23 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Knockout</title>
|
<title>Knockout</title>
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
<%= csrf_meta_tags %>
|
<%= csrf_meta_tags %>
|
||||||
<%= csp_meta_tag %>
|
<%= csp_meta_tag %>
|
||||||
|
|
||||||
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
||||||
<%= javascript_importmap_tags %>
|
<%= javascript_importmap_tags %>
|
||||||
<%= favicon_link_tag asset_path('favicon.png') %>
|
</head>
|
||||||
<% if content_for? :extra_head %>
|
|
||||||
<%= yield :extra_head %>
|
|
||||||
<% end %>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<nav>
|
<nav>
|
||||||
<%= link_to 'Home', root_path, class: "#{"current" if current_page?(root_path)}" %>
|
<%= link_to 'Home', '/' %>
|
||||||
<%= link_to 'Pins', machines_path, class: "#{"current" if current_page?(machines_path)}" %>
|
<%= link_to 'Pins', machines_url %>
|
||||||
<%= link_to 'Players', players_path, class: "#{"current" if current_page?(players_path)}" %>
|
<%= link_to 'Players', players_url %>
|
||||||
<%= link_to 'Randomize', { controller: 'pages', action: 'randomize' }, class: "#{"current" if current_page?(controller: 'pages', action: 'randomize')}" %>
|
<%= link_to 'Randomize', controller: 'pages', action: 'randomize' %>
|
||||||
</nav>
|
</nav>
|
||||||
<%= yield %>
|
|
||||||
</body>
|
<%= yield %>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
<% if not notice.nil? %><p style="color: green"><%= notice %></p>
|
<p style="color: green"><%= notice %></p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<h1>Pins</h1>
|
<h1>Pins</h1>
|
||||||
|
|
||||||
<div id="machines">
|
<div id="machines">
|
||||||
<% @machines.each do |machine| %>
|
<% @machines.each do |machine| %>
|
||||||
<p id="<%= dom_id machine %>">
|
<%= render machine %>
|
||||||
<%= link_to machine.name, machine %>
|
|
||||||
<small><%= machine.edition %></small>
|
|
||||||
</p>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p><%= pluralize(@machines.count, 'total pin') %></p>
|
<hr>
|
||||||
|
|
||||||
<%= link_to "Add a pin", new_machine_path %>
|
<%= link_to "Add a pin", new_machine_path %>
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
<% if not notice.nil? %><p style="color: green"><%= notice %></p>
|
<p style="color: green"><%= notice %></p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<h1><%= @machine.name %></h1>
|
|
||||||
|
|
||||||
<%= render "form", machine: @machine %>
|
<%= render "form", machine: @machine %>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= link_to "Delete #{@machine.name} ❌", @machine, data: {
|
<%= button_to "Delete #{@machine.name}", @machine, method: :delete %>
|
||||||
turbo_method: :delete,
|
|
||||||
turbo_confirm: "Are you sure you want to remove #{@machine.name}?" } %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,2 @@
|
||||||
<h1>Knockout</h1>
|
<h1>Knockout</h1>
|
||||||
<p>To start the tournament, add players and make sure that the pins are up to date. Then hit randomize to automatically
|
<p>To start the tournament, add players and make sure that the pins are up to date. Then hit randomize to automatically pick teams!</p>
|
||||||
pick teams!</p>
|
|
||||||
<p>The source code for this app can be found <%= link_to 'here', "#{GIT_REPO}/src/commit/#{GIT_SHA}" %>.</p>
|
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
<% content_for :extra_head do %>
|
|
||||||
<meta name="turbo-cache-control" content="no-preview">
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<h1>Randomize</h1>
|
<h1>Randomize</h1>
|
||||||
|
|
||||||
<% @groups.each.with_index do |slice, i| %>
|
<% @groups.each.with_index do |slice, i| %>
|
||||||
<h2 id="<%= dom_id @machines[i] %>"><%= @machines[i].name %> <small><%= @machines[i].edition %></small></h2>
|
<h2><%= @machines[i].name %> <small><%= @machines[i].edition %></small></h2>
|
||||||
<ol>
|
<ol>
|
||||||
<% slice.each do |player| %>
|
<% slice.each do |player| %>
|
||||||
<li id="<%= dom_id player %>"><%= link_to player.name, player_path(player) %></li>
|
<li><%= link_to player.name, player_path(player) %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ol>
|
</ol>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<div id="<%= dom_id player %>">
|
<div id="<%= dom_id player %>">
|
||||||
<p>
|
<p>
|
||||||
<% if player.paid %>✓
|
<% if player.paid %>✓<% else %> <% end %>
|
||||||
<% else %>
|
|
||||||
<% end %>
|
|
||||||
<%= link_to player.name, player %>
|
<%= link_to player.name, player %>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,36 +1,12 @@
|
||||||
<% if not notice.nil? %><p style="color: green"><%= notice %></p>
|
<p style="color: green"><%= notice %></p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<h1>Players</h1>
|
<h1>Players</h1>
|
||||||
|
|
||||||
<% if @players.any? %>
|
<div id="players">
|
||||||
<div id="players">
|
<% @players.each do |player| %>
|
||||||
<table>
|
<%= render player %>
|
||||||
<thead>
|
<% end %>
|
||||||
<th>Name</th>
|
</div>
|
||||||
<th>Paid</th>
|
|
||||||
<th>Strikes</th>
|
|
||||||
<th>Delete</th>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<% @players.each do |player| %>
|
|
||||||
<tr id="<%= dom_id player %>">
|
|
||||||
<td><%= link_to player.name, player %></td>
|
|
||||||
<td>
|
|
||||||
<% if player.paid %>✓
|
|
||||||
<% end %></td>
|
|
||||||
<td><%= player.strikes %></td>
|
|
||||||
<td><%= link_to "❌", player, data: {
|
|
||||||
turbo_method: :delete,
|
|
||||||
turbo_confirm: "Are you sure you want to remove #{player.name}?"
|
|
||||||
} %></td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<p><%= pluralize(@players.count, 'total player') %></p>
|
|
||||||
|
|
||||||
|
<hr>
|
||||||
<%= link_to "Add a player", new_player_path %>
|
<%= link_to "Add a player", new_player_path %>
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
<% if not notice.nil? %><p style="color: green"><%= notice %></p>
|
<p style="color: green"><%= notice %></p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<h1><%= @player.name %></h1>
|
|
||||||
|
|
||||||
<%= render "form", player: @player %>
|
<%= render "form", player: @player %>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= link_to "Delete #{@player.name} ❌", @player, data: {
|
<%= button_to "Delete #{@player.name}", @player, method: :delete %>
|
||||||
turbo_method: :delete,
|
|
||||||
turbo_confirm: "Are you sure you want to remove #{@player.name}?" } %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
GIT_SHA = `git rev-parse HEAD`.chomp
|
|
||||||
GIT_REPO = 'https://tildegit.org/ben/pinrails'
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
# This file is auto-generated from the current state of the database. Instead
|
# This file is auto-generated from the current state of the database. Instead
|
||||||
# of editing this file, please use the migrations feature of Active Record to
|
# of editing this file, please use the migrations feature of Active Record to
|
||||||
# incrementally modify your database, and then regenerate this schema definition.
|
# incrementally modify your database, and then regenerate this schema definition.
|
||||||
|
@ -10,20 +11,21 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema[7.0].define(version: 2022_01_15_164820) do
|
ActiveRecord::Schema.define(version: 20_220_115_164_820) do
|
||||||
create_table "machines", force: :cascade do |t|
|
|
||||||
t.string "name"
|
create_table 'machines', force: :cascade do |t|
|
||||||
t.string "edition"
|
t.string 'name'
|
||||||
t.datetime "created_at", null: false
|
t.string 'edition'
|
||||||
t.datetime "updated_at", null: false
|
t.datetime 'created_at', precision: 6, null: false
|
||||||
|
t.datetime 'updated_at', precision: 6, null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "players", force: :cascade do |t|
|
create_table 'players', force: :cascade do |t|
|
||||||
t.string "name"
|
t.string 'name'
|
||||||
t.boolean "paid"
|
t.boolean 'paid'
|
||||||
t.integer "strikes"
|
t.integer 'strikes'
|
||||||
t.datetime "created_at", null: false
|
t.datetime 'created_at', precision: 6, null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime 'updated_at', precision: 6, null: false
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
24
db/seeds.rb
24
db/seeds.rb
|
@ -6,27 +6,3 @@
|
||||||
#
|
#
|
||||||
# movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }])
|
# movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }])
|
||||||
# Character.create(name: "Luke", movie: movies.first)
|
# Character.create(name: "Luke", movie: movies.first)
|
||||||
|
|
||||||
machines = [
|
|
||||||
["Avengers: Infinity Quest", "Pro"],
|
|
||||||
["Deadpool", "Pro"],
|
|
||||||
["Elvira and the Party Monsters", "Pro"],
|
|
||||||
["Family Guy", "Pro"],
|
|
||||||
["Godzilla", "Pro"],
|
|
||||||
["Goldeneye", "Pro"],
|
|
||||||
["Iron Maiden", "Pro"],
|
|
||||||
["Jurassic Park", "Pro"],
|
|
||||||
["Led Zeppelin", "Pro"],
|
|
||||||
["Mandalorian", "Pro"],
|
|
||||||
["Metallica", "Pro"],
|
|
||||||
["Monster Bash", "Remake"],
|
|
||||||
["Star Wars", "Pro"],
|
|
||||||
["Stranger Things", "Pro"],
|
|
||||||
["Teenage Mutant Ninja Turtles", "Pro"],
|
|
||||||
["The Beatles", "Gold"],
|
|
||||||
["The Sopranos", "Pro"],
|
|
||||||
]
|
|
||||||
|
|
||||||
machines.each do |name, edition|
|
|
||||||
Machine.create(name: name, edition: edition)
|
|
||||||
end
|
|
||||||
|
|
|
@ -37,6 +37,6 @@ class MachinesTest < ApplicationSystemTestCase
|
||||||
visit machine_url(@machine)
|
visit machine_url(@machine)
|
||||||
click_on "Delete #{@machine.name}", match: :first
|
click_on "Delete #{@machine.name}", match: :first
|
||||||
|
|
||||||
assert_text 'Machine was successfully removed'
|
assert_text 'Machine was successfully destroyed'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -39,6 +39,6 @@ class PlayersTest < ApplicationSystemTestCase
|
||||||
visit player_url(@player)
|
visit player_url(@player)
|
||||||
click_on "Delete #{@player.name}", match: :first
|
click_on "Delete #{@player.name}", match: :first
|
||||||
|
|
||||||
assert_text 'Player was successfully removed'
|
assert_text 'Player was successfully destroyed'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue