Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
fp456 authored Nov 6, 2023
0 parents commit 99a5321
Show file tree
Hide file tree
Showing 296 changed files with 31,273 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
defaults

22 changes: 22 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org

root = true

[*]

# We recommend you to keep these unchanged
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Change these settings to your own preference
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/node_modules/*
/public/*
postcss.config.js
24 changes: 24 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

module.exports = {
env: {
browser: true,
commonjs: true,
es6: true,
jquery: true
},
extends: [
'airbnb-base'
],
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
},
parserOptions: {
ecmaVersion: 2018,
},
rules: {
indent: ['error', 4],
'linebreak-style': ['error', 'unix'],
},
};

24 changes: 24 additions & 0 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Code Linters
on:
- pull_request
- workflow_dispatch

jobs:
pronto:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install pronto
run: bundle install --without default development test production
- name: Run Pronto
run: bundle exec pronto run -f github_combined_status github_pr_review -c origin/${{ github.base_ref }}
env:
PRONTO_PULL_REQUEST_ID: ${{ github.event.pull_request.number }}
PRONTO_GITHUB_ACCESS_TOKEN: "${{ github.token }}"
37 changes: 37 additions & 0 deletions .github/workflows/specs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: All Specs
on:
- push
- pull_request
- workflow_dispatch

jobs:
# TODO: Environment variables?
build:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- ubuntu-18.04
steps:
- name: Cache multiple paths
uses: actions/cache@v2
with:
path: |-
node_modules
vendor/bundle
key: '${{ runner.os }}-${{ hashFiles(''TODO'') }}'
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
node-version: 12.13.1
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: gem install bundler:2.1.4
- run: npm install -g [email protected]
- run: bundle install
- run: yarn install
- run: bundle exec rake db:setup
- run: bundle exec rake db:test:prepare
- run: bundle exec rspec
- run: bundle exec cucumber
81 changes: 81 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@

*.rbc
capybara-*.html
.rspec
/db/*.sqlite3
/db/*.sqlite3-journal
/db/*.sqlite3-[0-9]*
/public/system
/coverage/
/spec/tmp
*.orig
rerun.txt
pickle-email-*.html

# Ignore all logfiles and tempfiles.
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

# Note: It is not OK to publish secrets in repo, use figaro instead.
config/initializers/secret_token.rb
config/master.key

# Only include if you have production secrets in this file, which is no longer a Rails default
# config/secrets.yml

# dotenv, dotenv-rails
# TODO Comment out these rules if environment variables can be committed
.env
.env.*

## Environment normalization:
/.bundle
/vendor/bundle

# these should all be checked in to normalize the environment:
# Gemfile.lock, .ruby-version, .ruby-gemset

# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc

# Ignore erb files generated by rails_real_favicon
# Instead use `bundle exec rails haml:erb2haml app/views/application/_favicon.html.erb` to convert to haml.
app/views/application/_favicon.html.erb

# if using bower-rails ignore default bower_components path bower.json files
/vendor/assets/bower_components
*.bowerrc
bower.json

# Ignore pow environment settings
.powenv

# Ignore Byebug command history file.
.byebug_history

# Ignore node_modules
/node_modules

# Use yarn instead of npm
package-lock.json

# Ignore precompiled javascript packs
/public/packs
/public/packs-test
/public/assets

# Ignore yarn files
/yarn-error.log
yarn-debug.log*
.yarn-integrity

# Ignore uploaded files in development
/storage/*
!/storage/.keep
/public/uploads


# Ignore master key for decrypting credentials and more.
/config/master.key
13 changes: 13 additions & 0 deletions .haml-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

linters:
LineLength:
max: 120
severity: error
Indentation: # For consistency with default rubocop rules.
character: space
width: 4
severity: error
exclude:
- 'node_modules/**/*'
- 'vendor/**/*'

137 changes: 137 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# This file defines all the linter rules for the project.
# See the list of the rules which are called "cops"
# https://docs.rubocop.org/rubocop/cops.html
# https://docs.rubocop.org/rubocop-rails/cops_rails.html

# These configurations are *largely* the rubocop defaults.
# We've relaxed some configurations that may be harder to meet while
# you are learning.

# rubocop allows us to go simply beyond code formatting and also focus on
# best practices, like code complexity.

require:
- rubocop-rails
- rubocop-rspec

AllCops:
NewCops: enable
TargetRubyVersion: 2.6
Exclude:
- bin/*
- config/routes.rb
- db/schema.rb
- db/seed_data.rb
- db/seeds.rb
- features/step_definitions/web_steps.rb
- features/support/paths.rb
- features/support/selectors.rb
- Guardfile
- lib/tasks/cucumber.rake
- node_modules/**/*
- vendor/**/*

Layout/EndOfLine:
EnforcedStyle: lf

Lint/AmbiguousRegexpLiteral:
Exclude:
- features/step_definitions/*

Style/CommentAnnotation:
Keywords:
- CS169
- ACTION-MAP
- TODO
- HACK
- REVIEW

Rails:
Enabled: true

Gemspec/RequiredRubyVersion:
Enabled: true

Layout/EmptyLineAfterGuardClause:
Enabled: true

# No space makes the method definition shorter and differentiates
# from a regular assignment.
Layout/SpaceAroundEqualsInParameterDefault:
EnforcedStyle: no_space

# Most readable form.
Layout/HashAlignment:
EnforcedHashRocketStyle: table
EnforcedColonStyle: table

Layout/LineLength:
Max: 120

Lint/RaiseException:
Enabled: true

Lint/StructNewOverride:
Enabled: true

# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize:
Max: 30
Enabled: true

Metrics/BlockLength:
IgnoredMethods:
- describe
- context
- shared_examples
- namespace
- ActiveRecord::Schema.define

# Skips style of child classes and modules.
Style/ClassAndModuleChildren:
Enabled: false

Style/CollectionMethods:
Enabled: true
PreferredMethods:
reduce: "inject"

Style/Documentation:
Enabled: false

Style/HashEachMethods:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

Style/HashTransformKeys:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

Style/HashTransformValues:
Enabled: true
AutoCorrect: false # Unsafe autocorrect

# Mixing the styles looks just silly.
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys

# has_key? and has_value? are far more readable than key? and value?
Style/PreferredHashMethods:
EnforcedStyle: verbose

Metrics/MethodLength:
Max: 20

RSpec/InstanceVariable:
Enabled: false

RSpec/DescribeClass:
Exclude:
- spec/linters/*

# Ideally, you'd want no more than 2.
RSpec/MultipleExpectations:
Max: 4

RSpec/RepeatedExample:
Enabled: false
1 change: 1 addition & 0 deletions .ruby-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2.6.6
Loading

0 comments on commit 99a5321

Please sign in to comment.