1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2026-01-27 18:48:49 +01:00

1 Commits

Author SHA1 Message Date
dependabot[bot]
bee86f5de2 Bump uri from 0.10.0 to 0.11.0
Bumps [uri](https://github.com/ruby/uri) from 0.10.0 to 0.11.0.
- [Release notes](https://github.com/ruby/uri/releases)
- [Commits](https://github.com/ruby/uri/compare/v0.10.0...v0.11.0)

---
updated-dependencies:
- dependency-name: uri
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 20:22:10 +00:00
4 changed files with 213 additions and 186 deletions

View File

@@ -1,25 +1,25 @@
name: CI
on:
push:
branches: [$default-branch]
branches: [ $default-branch ]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ["3.0", "3.1", "3.2"]
ruby: ['2.7', '3.0', '3.1']
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Set up Ruby ${{ matrix.ruby }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Set up Node
uses: actions/setup-node@v3
uses: actions/setup-node@v2
with:
node-version: "18"
node-version: '14'
- name: Install dependencies
run: bundle install --without production
- name: Run tests

27
Gemfile
View File

@@ -2,13 +2,13 @@ source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 7.0.6'
gem 'rails', '7.0.4'
# Use Puma as the app server
gem 'puma', '~> 6.3'
gem 'puma', '~> 6.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.6.3'
gem 'sqlite3', '~> 1.5.3'
gem 'mysql2', '~> 0.5.5', group: :production
gem 'mysql2', '~> 0.5.2', group: :production
gem 'bootsnap', require: false
@@ -21,27 +21,27 @@ gem 'coffee-rails', '~> 5.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
gem 'rails-i18n', '~> 7.0.7'
gem 'rails-i18n', '~> 7.0.6'
gem 'rails-controller-testing'
gem 'webmock', group: :test
# Use jquery as the JavaScript library
gem 'jquery-rails', '~> 4.5.1'
gem 'jquery-rails', '~> 4.4.0'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks', '~> 5.2.1'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.11.3'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 2.6.1', group: :doc
gem 'sdoc', '~> 2.4.0', group: :doc
gem 'web-console', '~> 4.2.0', group: :development
gem 'listen', '~> 3.8.0', group: :development
gem 'listen', '~> 3.7.0', group: :development
gem 'bootstrap', '~> 5.2.3'
gem "bootstrap_form", "~> 5.2"
gem 'font-awesome-sass', '~> 6.4.2'
gem 'bootstrap', '~> 5.1.3'
gem "bootstrap_form", "~> 5.0"
gem 'font-awesome-sass', '~> 6.2.0'
# Use Diffy for showing translation diffs
gem 'diffy'
@@ -69,3 +69,8 @@ gem 'omniauth-github'
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
# Silence net protocol warnings
# See https://github.com/rails/rails/pull/44175
gem 'net-http'
gem 'uri', '0.11.0'

View File

@@ -1,86 +1,86 @@
GEM
remote: https://rubygems.org/
specs:
actioncable (7.0.6)
actionpack (= 7.0.6)
activesupport (= 7.0.6)
actioncable (7.0.4)
actionpack (= 7.0.4)
activesupport (= 7.0.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.6)
actionpack (= 7.0.6)
activejob (= 7.0.6)
activerecord (= 7.0.6)
activestorage (= 7.0.6)
activesupport (= 7.0.6)
actionmailbox (7.0.4)
actionpack (= 7.0.4)
activejob (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.6)
actionpack (= 7.0.6)
actionview (= 7.0.6)
activejob (= 7.0.6)
activesupport (= 7.0.6)
actionmailer (7.0.4)
actionpack (= 7.0.4)
actionview (= 7.0.4)
activejob (= 7.0.4)
activesupport (= 7.0.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.6)
actionview (= 7.0.6)
activesupport (= 7.0.6)
rack (~> 2.0, >= 2.2.4)
actionpack (7.0.4)
actionview (= 7.0.4)
activesupport (= 7.0.4)
rack (~> 2.0, >= 2.2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actiontext (7.0.6)
actionpack (= 7.0.6)
activerecord (= 7.0.6)
activestorage (= 7.0.6)
activesupport (= 7.0.6)
actiontext (7.0.4)
actionpack (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.6)
activesupport (= 7.0.6)
actionview (7.0.4)
activesupport (= 7.0.4)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (7.0.6)
activesupport (= 7.0.6)
activejob (7.0.4)
activesupport (= 7.0.4)
globalid (>= 0.3.6)
activemodel (7.0.6)
activesupport (= 7.0.6)
activerecord (7.0.6)
activemodel (= 7.0.6)
activesupport (= 7.0.6)
activestorage (7.0.6)
actionpack (= 7.0.6)
activejob (= 7.0.6)
activerecord (= 7.0.6)
activesupport (= 7.0.6)
activemodel (7.0.4)
activesupport (= 7.0.4)
activerecord (7.0.4)
activemodel (= 7.0.4)
activesupport (= 7.0.4)
activestorage (7.0.4)
actionpack (= 7.0.4)
activejob (= 7.0.4)
activerecord (= 7.0.4)
activesupport (= 7.0.4)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.6)
activesupport (7.0.4)
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)
autoprefixer-rails (10.4.13.0)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
autoprefixer-rails (10.4.2.0)
execjs (~> 2)
bcrypt (3.1.16)
bindex (0.8.1)
bootsnap (1.16.0)
bootsnap (1.13.0)
msgpack (~> 1.2)
bootstrap (5.2.3)
bootstrap (5.1.3)
autoprefixer-rails (>= 9.1.0)
popper_js (>= 2.11.6, < 3)
popper_js (>= 2.9.3, < 3)
sassc-rails (>= 2.0.0)
bootstrap_form (5.2.3)
actionpack (>= 6.0)
activemodel (>= 6.0)
bootstrap_form (5.0.0)
actionpack (>= 5.2)
activemodel (>= 5.2)
builder (3.2.4)
coffee-rails (5.0.0)
coffee-script (>= 2.2.0)
@@ -89,11 +89,10 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.12.2)
concurrent-ruby (1.2.2)
concurrent-ruby (1.1.10)
crack (0.4.5)
rexml
crass (1.0.6)
date (3.3.3)
devise (4.8.1)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
@@ -102,134 +101,158 @@ GEM
warden (~> 1.2.3)
diff-lcs (1.5.0)
diffy (3.4.2)
erubi (1.12.0)
digest (3.1.0)
erubi (1.11.0)
execjs (2.8.1)
faraday (2.7.4)
faraday-net_http (>= 2.0, < 3.1)
faraday (1.9.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.3)
multipart-post (>= 1.2, < 3)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
ffi (1.15.5)
font-awesome-sass (6.4.2)
font-awesome-sass (6.2.0)
sassc (~> 2.0)
globalid (1.1.0)
globalid (1.0.0)
activesupport (>= 5.0)
hashdiff (1.0.1)
hashie (5.0.0)
i18n (1.14.1)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
jbuilder (2.11.5)
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
jquery-rails (4.5.1)
jquery-rails (4.4.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
jwt (2.7.0)
listen (3.8.0)
jwt (2.3.0)
listen (3.7.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
loofah (2.21.3)
loofah (2.19.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
nokogiri (>= 1.5.9)
mail (2.7.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
marcel (1.0.2)
method_source (1.0.0)
mini_mime (1.1.2)
mini_portile2 (2.8.2)
minitest (5.18.1)
mini_portile2 (2.8.0)
minitest (5.16.3)
msgpack (1.6.0)
multi_json (1.15.0)
multi_xml (0.6.0)
mysql2 (0.5.5)
net-imap (0.3.6)
date
multipart-post (2.1.1)
mysql2 (0.5.3)
net-http (0.2.0)
net-protocol
net-pop (0.1.2)
uri
net-imap (0.2.3)
digest
net-protocol
strscan
net-pop (0.1.1)
digest
net-protocol
net-protocol (0.2.1)
timeout
net-smtp (0.3.3)
net-protocol (0.1.3)
timeout
net-smtp (0.3.1)
digest
net-protocol
nio4r (2.5.9)
nokogiri (1.15.3)
mini_portile2 (~> 2.8.2)
timeout
nio4r (2.5.8)
nokogiri (1.13.9)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
oauth2 (2.0.9)
faraday (>= 0.17.3, < 3.0)
oauth2 (1.4.7)
faraday (>= 0.8, < 2.0)
jwt (>= 1.0, < 3.0)
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 4)
snaky_hash (~> 2.0)
version_gem (~> 1.1)
omniauth (2.1.1)
rack (>= 1.2, < 3)
omniauth (2.1.0)
hashie (>= 3.4.6)
rack (>= 2.2.3)
rack-protection
omniauth-github (2.0.1)
omniauth (~> 2.0)
omniauth-oauth2 (~> 1.8)
omniauth-oauth2 (1.8.0)
oauth2 (>= 1.4, < 3)
omniauth-github (2.0.0)
omniauth (~> 2.0)
omniauth-oauth2 (~> 1.7.1)
omniauth-oauth2 (1.7.2)
oauth2 (~> 1.4)
omniauth (>= 1.9, < 3)
omniauth-rails_csrf_protection (1.0.1)
actionpack (>= 4.2)
omniauth (~> 2.0)
orm_adapter (0.5.0)
popper_js (2.11.7)
psych (5.1.0)
popper_js (2.9.3)
psych (4.0.6)
stringio
public_suffix (5.0.1)
puma (6.3.0)
public_suffix (4.0.6)
puma (6.0.0)
nio4r (~> 2.0)
racc (1.7.1)
rack (2.2.7)
rack-protection (3.0.6)
racc (1.6.0)
rack (2.2.4)
rack-protection (3.0.3)
rack
rack-test (2.1.0)
rack-test (2.0.2)
rack (>= 1.3)
rails (7.0.6)
actioncable (= 7.0.6)
actionmailbox (= 7.0.6)
actionmailer (= 7.0.6)
actionpack (= 7.0.6)
actiontext (= 7.0.6)
actionview (= 7.0.6)
activejob (= 7.0.6)
activemodel (= 7.0.6)
activerecord (= 7.0.6)
activestorage (= 7.0.6)
activesupport (= 7.0.6)
rails (7.0.4)
actioncable (= 7.0.4)
actionmailbox (= 7.0.4)
actionmailer (= 7.0.4)
actionpack (= 7.0.4)
actiontext (= 7.0.4)
actionview (= 7.0.4)
activejob (= 7.0.4)
activemodel (= 7.0.4)
activerecord (= 7.0.4)
activestorage (= 7.0.4)
activesupport (= 7.0.4)
bundler (>= 1.15.0)
railties (= 7.0.6)
railties (= 7.0.4)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
activesupport (>= 5.0.1.rc1)
rails-dom-testing (2.1.1)
activesupport (>= 5.0.0)
minitest
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
rails-i18n (7.0.7)
rails-html-sanitizer (1.4.3)
loofah (~> 2.3)
rails-i18n (7.0.6)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.0.6)
actionpack (= 7.0.6)
activesupport (= 7.0.6)
railties (7.0.4)
actionpack (= 7.0.4)
activesupport (= 7.0.4)
method_source
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
rake (13.0.6)
rb-fsevent (0.11.2)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
rdoc (6.5.0)
rdoc (6.4.0)
psych (>= 4.0.0)
responders (3.0.1)
actionpack (>= 5.0)
@@ -244,32 +267,30 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
sdoc (2.6.1)
sdoc (2.4.0)
rdoc (>= 5.0)
snaky_hash (2.0.1)
hashie
version_gem (~> 1.1, >= 1.1.1)
sprockets (4.2.0)
sprockets (4.0.2)
concurrent-ruby (~> 1.0)
rack (>= 2.2.4, < 4)
rack (> 1, < 3)
sprockets-rails (3.4.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
sqlite3 (1.6.3)
sqlite3 (1.5.3)
mini_portile2 (~> 2.8.0)
stringio (3.0.6)
thor (1.2.2)
tilt (2.1.0)
timeout (0.4.0)
stringio (3.0.2)
strscan (3.0.4)
thor (1.2.1)
tilt (2.0.10)
timeout (0.3.0)
turbolinks (5.2.1)
turbolinks-source (~> 5.2)
turbolinks-source (5.2.0)
tzinfo (2.0.6)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
version_gem (1.1.2)
uri (0.11.0)
warden (1.2.9)
rack (>= 2.0.9)
web-console (4.2.0)
@@ -277,7 +298,7 @@ GEM
activemodel (>= 6.0.0)
bindex (>= 0.4.0)
railties (>= 6.0.0)
webmock (3.18.1)
webmock (3.14.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
@@ -287,41 +308,43 @@ GEM
will_paginate (3.3.1)
will_paginate-bootstrap4 (0.2.2)
will_paginate (~> 3.0, >= 3.0.0)
zeitwerk (2.6.8)
zeitwerk (2.6.6)
PLATFORMS
ruby
DEPENDENCIES
bootsnap
bootstrap (~> 5.2.3)
bootstrap_form (~> 5.2)
bootstrap (~> 5.1.3)
bootstrap_form (~> 5.0)
coffee-rails (~> 5.0.0)
devise (~> 4.8.0)
diff-lcs
diffy
font-awesome-sass (~> 6.4.2)
font-awesome-sass (~> 6.2.0)
jbuilder (~> 2.11.3)
jquery-rails (~> 4.5.1)
listen (~> 3.8.0)
mysql2 (~> 0.5.5)
jquery-rails (~> 4.4.0)
listen (~> 3.7.0)
mysql2 (~> 0.5.2)
net-http
omniauth
omniauth-github
omniauth-rails_csrf_protection
puma (~> 6.3)
rails (~> 7.0.6)
puma (~> 6.0)
rails (= 7.0.4)
rails-controller-testing
rails-i18n (~> 7.0.7)
rails-i18n (~> 7.0.6)
sassc-rails (~> 2.1.2)
sdoc (~> 2.6.1)
sqlite3 (~> 1.6.3)
sdoc (~> 2.4.0)
sqlite3 (~> 1.5.3)
turbolinks (~> 5.2.1)
tzinfo-data
uglifier (~> 4.2.0)
uri (= 0.11.0)
web-console (~> 4.2.0)
webmock
will_paginate (~> 3.3.1)
will_paginate-bootstrap4 (~> 0.2.2)
BUNDLED WITH
2.4.10
2.2.32

View File

@@ -1,4 +1,5 @@
# Projekt Euler
Projekt Euler
=============
![Build Status](https://github.com/projekteuler/projekteuler/workflows/CI/badge.svg)
@@ -6,31 +7,30 @@ This is the Ruby on Rails web-app powering [projekteuler.de](https://projekteule
It allows visitors to view and suggest German translations of the maths puzzles found on [projecteuler.net](https://projecteuler.net).
## Getting started
1. Download this repository, e.g., with `git clone`.
2. Make sure [NodeJS >= 18](https://nodejs.org) is installed.
3. Navigate inside the repository folder.
4. Use bundler to install all required gems.
1. Download this repository, e.g., with `git clone`.
2. Make sure [NodeJS](https://nodejs.org) is installed.
3. Navigate inside the repository folder.
4. Use bundler to install all required gems.
$ bundle install
5. Setup the database:
5. Setup the database:
$ bin/rails db:setup
6. Start the server:
6. Start the server:
$ bin/rails server
7. Open `http://localhost:3000` in your browser. You should see the web app up and running!
8. Start playing with the web app. By default, the database will contain some users and translations. The user `admin` can review translations, while the user `translator` has submitted some translations.
You can login as any user by clicking the Login button and entering their name. This is simply a mock OAuth login; in production mode, GitHub is used for login.
9. If you ever want to reset the database to the original state, run `rails db:reset`.
7. Open `http://localhost:3000` in your browser. You should see the web app up and running!
8. Start playing with the web app. By default, the database will contain some users and translations. The user `admin` can review translations, while the user `translator` has submitted some translations.
You can login as any user by clicking the Login button and entering their name. This is simply a mock OAuth login; in production mode, GitHub is used for login.
9. If you ever want to reset the database to the original state, run `rails db:reset`.
## Contributing
Do you have a suggestion for an improvement for the web app? Please create an [issue](https://github.com/projekteuler/projekteuler/issues) for it.
Do you want to implement this improvement yourself? Follow these steps:
1. Fork this repository on GitHub.
2. Create a new branch for your improvement
3. Implement your improvement, and create tests for it if applicable.
@@ -43,12 +43,12 @@ Do you want to implement this improvement yourself? Follow these steps:
3. Copy all files from this repository.
4. Make sure the Rails environment is set to `production`.
5. Set up the following environment variables:
- `RAILS_MASTER_KEY`: The master key for decryption of the Rails credentials
- `DATABASE_NAME`: The name of the MySQL database
- `DATABASE_USERNAME`: The username for the MYSQL database
- `DATABASE_PASSWORD`: The password for the MYSQL database
- `GITHUB_CLIENT_ID`: The client ID of your GitHub OAuth App (that you will need to create)
- `GITHUB_CLIENT_SECRET`: The client secret of the GitHub OAuth App
* `RAILS_MASTER_KEY`: The master key for decryption of the Rails credentials
* `DATABASE_NAME`: The name of the MySQL database
* `DATABASE_USERNAME`: The username for the MYSQL database
* `DATABASE_PASSWORD`: The password for the MYSQL database
* `GITHUB_CLIENT_ID`: The client ID of your GitHub OAuth App (that you will need to create)
* `GITHUB_CLIENT_SECRET`: The client secret of the GitHub OAuth App
6. Install all required gems with `bundle install`.
7. Load the database schema with `bin/rails db:schema:load`.
8. Precompile all assets with `bin/rails assets:precompile`.
@@ -57,5 +57,4 @@ Do you want to implement this improvement yourself? Follow these steps:
Anytime you update the files, you should run `bin/rails db:migrate`, `bin/rails log:clear tmp:clear`, `bin/rails assets:precompile` and then restart the server.
## License
This project is released under the [MIT License](https://opensource.org/licenses/MIT).