diff --git a/.circleci/config.yml b/.circleci/config.yml index 125390e..5a4c1d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,17 +7,14 @@ version: 2.1 orbs: - browser-tools: circleci/browser-tools@1 - node: circleci/node@4 - ruby: circleci/ruby@1 + ruby: circleci/ruby@1.1.1 + node: circleci/node@4.0.0 workflows: version: 2 - commit: + test: jobs: - - test: - requires: - - lint + - test - lint: filters: branches: @@ -25,15 +22,6 @@ workflows: - master - production - staging - merge: - jobs: - - test: - filters: - branches: - only: - - master - - production - - staging auto_upgrade_tools: triggers: @@ -50,7 +38,7 @@ jobs: test: docker: # specify the version you desire here - - image: cimg/ruby:3.0.0-browsers + - image: circleci/ruby:2.7-node-browsers environment: BUNDLE_GEMFILE: Gemfile BUNDLE_PATH: vendor/bundle @@ -73,8 +61,6 @@ jobs: steps: - checkout - - browser-tools/install-chrome - - browser-tools/install-chromedriver - restore_cache: name: Restore Bundler Cache between Branches @@ -88,14 +74,10 @@ jobs: with-cache: false path: './vendor/bundle' - - run: bundle exec bootsnap precompile --gemfile app/ lib/ - - run: gem install spring - - save_cache: name: Save Bundler Cache between Branches paths: - - vendor/bundle - - tmp/cache/bootsnap-compile-cache + - ./vendor/bundle key: v1-dependencies-{{ checksum "Gemfile.lock" }} - node/install-packages: @@ -113,56 +95,55 @@ jobs: - run: name: Precompile Assets command: | + bin/webpack bin/rails assets:precompile - save_cache: key: asset-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ .Environment.CIRCLE_SHA1 }} paths: - - public/packs-test + - public/assets + - public/pack-test - tmp/cache/assets - tmp/cache/webpacker - # Run JS Tests - # - restore_cache: - # name: Restore Jest Cache - # keys: - # - jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} - # - jest-cache-v1-{{ arch }}-{{ .Branch }}- - # - jest-cache-v1- - # - # - run: - # name: JavaScript Unit Tests - # command: | - # bin/yarn test --ci --no-watchman \ - # --coverage --coverageDirectory coverage/jest \ - # --coverageReporters text-summary --coverageReporters html \ - # --reporters=jest-junit - # environment: - # JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results - # - # - save_cache: - # name: Save Jest Cache - # key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} - # paths: - # - tmp/cache/jest - - - run: bin/rails db:test:prepare + - restore_cache: + name: Restore Jest Cache + keys: + - jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} + - jest-cache-v1-{{ arch }}-{{ .Branch }}- + - jest-cache-v1- + + - run: + name: JavaScript Unit Tests + command: | + bin/yarn test --ci --no-watchman \ + --coverage --coverageDirectory coverage/jest \ + --coverageReporters text-summary --coverageReporters html \ + --reporters=jest-junit + environment: + JEST_JUNIT_OUTPUT_DIR: tmp/reports/jest-results + + - save_cache: + name: Save Jest Cache + key: jest-cache-v1-{{ arch }}-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} + paths: + - tmp/cache/jest + + - run: bin/rails db:schema:load + # rails test - run: bin/rails test "test/**/*_test.rb" - # Collect reports + # collect reports - store_test_results: path: ./tmp/reports/ - store_artifacts: path: ./coverage - - store_artifacts: - path: ./tmp/screenshots lint: docker: - - image: cimg/ruby:3.0.0-node + - image: cimg/ruby:2.7-node environment: DISABLE_SPRING: 1 BUNDLE_GEMFILE: Gemfile.tools - BUNDLE_PATH: vendor/bundle-tools BUNDLE_JOBS: 4 BUNDLE_RETRY: 3 @@ -182,7 +163,7 @@ jobs: - run: name: Install Bundle Dependencies - command: bin/bundle check || bin/bundle install + command: bin/bundle check --path vendor/bundle-tools || bin/bundle install --path vendor/bundle-tools - run: name: Install Node Packages @@ -198,7 +179,7 @@ jobs: upgrade_tools: docker: - - image: cimg/ruby:3.0.0-node + - image: cimg/ruby:2.7-node environment: DISABLE_SPRING: 1 BUNDLE_GEMFILE: Gemfile.tools diff --git a/.github/dependabot.yml b/.github/config.yml similarity index 100% rename from .github/dependabot.yml rename to .github/config.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 014bae1..0000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,71 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ master ] - schedule: - - cron: '29 15 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ā„¹ļø Command-line programs to run using the OS shell. - # šŸ“š https://git.io/JvXDl - - # āœļø If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index dd1a56b..0000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,146 +0,0 @@ ---- -name: Test - -# yamllint disable-line rule:truthy -on: - push: - branches: [$default-branch] - pull_request: - -env: - CI: true - RAILS_ENV: test - -jobs: - lint: - runs-on: ubuntu-latest - env: - BUNDLE_GEMFILE: Gemfile.tools - COVERAGE: true - DISABLE_SPRING: 1 - steps: - - run: |- - sudo apt-get update -qq && \ - sudo apt-get install -yq --no-install-recommends \ - cmake yamllint python3-setuptools python3-pkg-resources pkg-config - - - uses: actions/checkout@v2 - with: - fetch-depth: 10 - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - bundler-cache: true - - - name: Use Node.js - uses: actions/setup-node@v1 - with: - node-version: 14 - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - uses: actions/cache@v2 - with: - path: | - **/node_modules - ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-modules- - - - run: bin/yarn check || bin/yarn install - - - run: git fetch origin master --depth 1 - - run: bin/lint-pr - test: - needs: [lint] - runs-on: ubuntu-latest - env: - COVERAGE: true - DATABASE_URL: postgresql://postgres_user:postgres@localhost:5432/postgres_db - - services: - postgres: - image: circleci/postgres:alpine-ram - env: - POSTGRES_DB: postgres_db - POSTGRES_USER: postgres_user - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - steps: - - name: Install PostgreSQL 11 client - run: | - sudo apt-get -yqq install libpq-dev - - - uses: actions/checkout@v2 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 3.0 - bundler-cache: true - - - name: Setup DB - run: bundle exec rake db:test:prepare - - - name: Use Node.js - uses: actions/setup-node@v1 - with: - node-version: 14 - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - uses: actions/cache@v2 - with: - path: | - **/node_modules - ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-modules- - - - run: bin/yarn check || bin/yarn install - - - uses: actions/cache@v2 - with: - path: | - public/assets - public/packs-test - tmp/cache/assets - tmp/cache/webpacker - key: "${{ runner.os }}-assets-${{ hashFiles('**/yarn.lock') }}\ - -${{ hashFiles('**/app/assets') }}-${{ hashFiles('**/app/javascript') }}" - - restore-keys: | - ${{ runner.os }}-assets-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/app/assets') }} - ${{ runner.os }}-assets-${{ hashFiles('**/yarn.lock') }} - ${{ runner.os }}-assets- - - - name: Precompile assets - run: bundle exec rake assets:precompile - - - name: Run tests - run: bin/rails test "test/**/*_test.rb" - - - name: Upload Coverage - uses: actions/upload-artifact@v2 - with: - name: coverage - path: coverage - - - name: Upload Capybara Screenshots - uses: actions/upload-artifact@v2 - with: - name: capybara-screenshots - path: tmp/screenshots diff --git a/.rubocop.yml b/.rubocop.yml index 1b44b0d..f7e3d22 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,19 +1,15 @@ --- require: - - rubocop-minitest - - rubocop-rails - - rubocop-performance - standard + - rubocop-rails inherit_gem: standard: config/base.yml AllCops: - NewCops: enable - TargetRubyVersion: 3.0 + TargetRubyVersion: 2.7 Exclude: - - 'bin/**/*' - 'db/migrate/**/*' - 'db/schema.rb' - 'vendor/**/*' @@ -67,10 +63,6 @@ Naming/PredicateName: Exclude: - 'app/helpers/application_helper.rb' -Standard/BlockDelimiters: - Enabled: true - EnforcedStyle: braces_for_chaining - Style/ClassAndModuleChildren: Exclude: - 'test/**/*.rb' @@ -78,15 +70,23 @@ Style/ClassAndModuleChildren: Style/Documentation: Enabled: false +Style/ExponentialNotation: + Enabled: true + Style/FrozenStringLiteralComment: Enabled: true Style/HashEachMethods: Enabled: true -Style/StringLiterals: +Style/HashTransformKeys: + Enabled: true + +Style/HashTransformValues: + Enabled: true + +Style/SlicingWithRange: Enabled: true - EnforcedStyle: single_quotes # Rails diff --git a/.ruby-version b/.ruby-version index 4a36342..37c2961 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.0.0 +2.7.2 diff --git a/.simplecov b/.simplecov index 2640655..c763ddf 100644 --- a/.simplecov +++ b/.simplecov @@ -1,17 +1,17 @@ # frozen_string_literal: true -if defined?(Spring) && ENV['DISABLE_SPRING'].nil? - puts '**** NO COVERAGE FOR YOU! ****' - puts 'Please disable Spring to get COVERAGE by `DISABLE_SPRING=1 COVERAGE=1 bin/rspec`' +if defined?(Spring) && ENV["DISABLE_SPRING"].nil? + puts "**** NO COVERAGE FOR YOU! ****" + puts "Please disable Spring to get COVERAGE by `DISABLE_SPRING=1 COVERAGE=1 bin/rspec`" else - SimpleCov.start 'rails' do + SimpleCov.start "rails" do add_filter %w[app/views bin spec test] maximum_coverage_drop 0.5 end - if ENV['CODECOV_TOKEN'] - require 'codecov' + if ENV["CODECOV_TOKEN"] + require "codecov" SimpleCov.formatter = SimpleCov::Formatter::Codecov end end diff --git a/Brewfile b/Brewfile index ea2043e..fcb2ebc 100644 --- a/Brewfile +++ b/Brewfile @@ -1,14 +1,14 @@ # frozen_string_literal: true -tap 'heroku/brew' +tap "heroku/brew" -brew 'circleci' -brew 'graphicsmagick' # For ActiveStorage -brew 'heroku' -brew 'hub' # For creating Pull Request from CLI -brew 'postgresql' -brew 'rbenv' -brew 'ruby-build' -brew 'vips' # For ActiveStorage -brew 'yamllint' # For Linters -brew 'yarn' +brew "circleci" +brew "graphicsmagick" # For ActiveStorage +brew "heroku" +brew "hub" # For creating Pull Request from CLI +brew "postgresql" +brew "rbenv" +brew "ruby-build" +brew "vips" # For ActiveStorage +brew "yamllint" # For Linters +brew "yarn" diff --git a/Gemfile b/Gemfile index d82bf3f..6e7609d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,10 +1,10 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby RUBY_VERSION +ruby '2.7.2' -# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main' -gem 'rails', '~> 6.1.3', '>= 6.1.3.1' +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 6.1.0' # Use postgresql as the database for Active Record gem 'pg', '~> 1.1' # Use Puma as the app server @@ -54,7 +54,6 @@ gem 'jt_tools', github: 'jetthoughts/jt_tools', group: :development group :test do gem 'simplecov', require: false, group: :test gem 'codecov', require: false, group: :test - gem 'rexml', require: false, group: :test end gem 'oj' diff --git a/Gemfile.lock b/Gemfile.lock index 439b583..cf767d6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,8 @@ GIT remote: https://github.com/jetthoughts/jt_tools.git - revision: 66a830f21b5786d081d7e6a4f48110f0a0c44742 + revision: dea42afa345acfba36795cbca0038ecec86604e3 specs: - jt_tools (0.0.19) + jt_tools (0.0.14) railties (>= 4.2) GIT @@ -15,60 +15,60 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (6.1.3.1) - actionpack (= 6.1.3.1) - activesupport (= 6.1.3.1) + actioncable (6.1.0) + actionpack (= 6.1.0) + activesupport (= 6.1.0) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.1) - actionpack (= 6.1.3.1) - activejob (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionmailbox (6.1.0) + actionpack (= 6.1.0) + activejob (= 6.1.0) + activerecord (= 6.1.0) + activestorage (= 6.1.0) + activesupport (= 6.1.0) mail (>= 2.7.1) - actionmailer (6.1.3.1) - actionpack (= 6.1.3.1) - actionview (= 6.1.3.1) - activejob (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionmailer (6.1.0) + actionpack (= 6.1.0) + actionview (= 6.1.0) + activejob (= 6.1.0) + activesupport (= 6.1.0) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.1) - actionview (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionpack (6.1.0) + actionview (= 6.1.0) + activesupport (= 6.1.0) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.1) - actionpack (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + actiontext (6.1.0) + actionpack (= 6.1.0) + activerecord (= 6.1.0) + activestorage (= 6.1.0) + activesupport (= 6.1.0) nokogiri (>= 1.8.5) - actionview (6.1.3.1) - activesupport (= 6.1.3.1) + actionview (6.1.0) + activesupport (= 6.1.0) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.3.1) - activesupport (= 6.1.3.1) + activejob (6.1.0) + activesupport (= 6.1.0) globalid (>= 0.3.6) - activemodel (6.1.3.1) - activesupport (= 6.1.3.1) - activerecord (6.1.3.1) - activemodel (= 6.1.3.1) - activesupport (= 6.1.3.1) - activestorage (6.1.3.1) - actionpack (= 6.1.3.1) - activejob (= 6.1.3.1) - activerecord (= 6.1.3.1) - activesupport (= 6.1.3.1) - marcel (~> 1.0.0) - mini_mime (~> 1.0.2) - activesupport (6.1.3.1) + activemodel (6.1.0) + activesupport (= 6.1.0) + activerecord (6.1.0) + activemodel (= 6.1.0) + activesupport (= 6.1.0) + activestorage (6.1.0) + actionpack (= 6.1.0) + activejob (= 6.1.0) + activerecord (= 6.1.0) + activesupport (= 6.1.0) + marcel (~> 0.3.1) + mimemagic (~> 0.3.2) + activesupport (6.1.0) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -77,91 +77,93 @@ GEM addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) bindex (0.8.1) - bootsnap (1.7.3) + bootsnap (1.5.1) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) - capybara (3.35.3) + capybara (3.34.0) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (>= 1.5, < 3.0) + regexp_parser (~> 1.5) xpath (~> 3.2) childprocess (3.0.0) - codecov (0.5.1) - simplecov (>= 0.15, < 0.22) - concurrent-ruby (1.1.8) + codecov (0.2.12) + json + simplecov + concurrent-ruby (1.1.7) connection_pool (2.2.3) crass (1.0.6) dalli (2.7.11) - docile (1.3.5) + docile (1.3.3) erubi (1.10.0) - ffi (1.15.0) + ffi (1.14.1) globalid (0.4.2) activesupport (>= 4.2.0) - i18n (1.8.10) + i18n (1.8.5) concurrent-ruby (~> 1.0) - jbuilder (2.11.2) + jbuilder (2.10.1) activesupport (>= 5.0.0) - listen (3.5.1) + json (2.4.1) + listen (3.3.3) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.9.1) + loofah (2.8.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.1) + marcel (0.3.3) + mimemagic (~> 0.3.2) method_source (1.0.0) - mini_mime (1.0.3) - minitest (5.14.4) + mimemagic (0.3.5) + mini_mime (1.0.2) + mini_portile2 (2.4.0) + minitest (5.14.2) minitest-ci (3.4.0) minitest (>= 5.0.6) - msgpack (1.4.2) - nio4r (2.5.7) - nokogiri (1.11.5-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.11.5-x86_64-linux) - racc (~> 1.4) - oj (3.11.3) + msgpack (1.3.3) + nio4r (2.5.4) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + oj (3.10.17) pg (1.2.3) public_suffix (4.0.6) - puma (5.3.2) + puma (5.1.1) nio4r (~> 2.0) r7insight (3.0.4) - racc (1.5.2) rack (2.2.3) - rack-mini-profiler (2.3.1) + rack-mini-profiler (2.2.0) rack (>= 1.2.0) rack-proxy (0.6.5) rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.1) - actioncable (= 6.1.3.1) - actionmailbox (= 6.1.3.1) - actionmailer (= 6.1.3.1) - actionpack (= 6.1.3.1) - actiontext (= 6.1.3.1) - actionview (= 6.1.3.1) - activejob (= 6.1.3.1) - activemodel (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + rails (6.1.0) + actioncable (= 6.1.0) + actionmailbox (= 6.1.0) + actionmailer (= 6.1.0) + actionpack (= 6.1.0) + actiontext (= 6.1.0) + actionview (= 6.1.0) + activejob (= 6.1.0) + activemodel (= 6.1.0) + activerecord (= 6.1.0) + activestorage (= 6.1.0) + activesupport (= 6.1.0) bundler (>= 1.15.0) - railties (= 6.1.3.1) + railties (= 6.1.0) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) - railties (6.1.3.1) - actionpack (= 6.1.3.1) - activesupport (= 6.1.3.1) + railties (6.1.0) + actionpack (= 6.1.0) + activesupport (= 6.1.0) method_source rake (>= 0.8.7) thor (~> 1.0) @@ -169,15 +171,14 @@ GEM rb-fsevent (0.10.4) rb-inotify (0.10.1) ffi (~> 1.0) - regexp_parser (2.1.1) - rexml (3.2.5) - rollbar (3.1.2) + regexp_parser (1.8.2) + rollbar (3.1.1) rubyzip (2.3.0) selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - semantic_range (3.0.0) - simplecov (0.21.2) + semantic_range (2.3.1) + simplecov (0.20.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) @@ -191,7 +192,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - thor (1.1.0) + thor (1.0.1) tzinfo (2.0.4) concurrent-ruby (~> 1.0) web-console (4.1.0) @@ -199,7 +200,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webdrivers (4.6.0) + webdrivers (4.4.1) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) @@ -216,8 +217,7 @@ GEM zeitwerk (2.4.2) PLATFORMS - x86_64-darwin-20 - x86_64-linux + ruby DEPENDENCIES bootsnap (>= 1.4.4) @@ -235,8 +235,7 @@ DEPENDENCIES puma (~> 5.0) r7insight rack-mini-profiler (~> 2.0) - rails (~> 6.1.3, >= 6.1.3.1) - rexml + rails (~> 6.1.0) rollbar selenium-webdriver serviceworker-rails! @@ -248,7 +247,7 @@ DEPENDENCIES webpacker (~> 5.0) RUBY VERSION - ruby 3.0.0p0 + ruby 2.7.2p137 BUNDLED WITH - 2.2.16 + 2.1.4 diff --git a/Gemfile.tools b/Gemfile.tools index dd56eb6..c23f663 100644 --- a/Gemfile.tools +++ b/Gemfile.tools @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source 'https://rubygems.org' git_source(:github) do |repo_name| @@ -8,21 +10,19 @@ end gem 'oj' group :tools do - gem 'pronto', require: false + gem 'pronto' gem 'pronto-blacklist', require: false gem 'pronto-erb_lint', require: false - gem 'pronto-eslint', require: false + gem 'pronto-eslint_npm', require: false gem 'pronto-fasterer', require: false gem 'pronto-rails_best_practices', require: false gem 'pronto-reek', require: false gem 'pronto-rubocop', require: false + # gem 'pronto-standardrb', require: false gem 'pronto-yamllint', require: false - gem 'rubocop-performance', require: false + # gem 'rubocop-minitest', require: false gem 'rubocop-rails', require: false - gem 'rubocop-minitest', require: false - - gem 'standard', '>= 0.4.7', require: false - # gem 'pronto-standardrb', require: false # gem 'rubocop-rspec', require: false + gem 'standard', '>= 0.4.7', require: false end diff --git a/Gemfile.tools.lock b/Gemfile.tools.lock index 25f4e87..6f07e4e 100644 --- a/Gemfile.tools.lock +++ b/Gemfile.tools.lock @@ -1,13 +1,13 @@ GEM remote: https://rubygems.org/ specs: - actionview (6.1.3.1) - activesupport (= 6.1.3.1) + actionview (6.1.0) + activesupport (= 6.1.0) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activesupport (6.1.3.1) + activesupport (6.1.0) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -15,8 +15,12 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - ast (2.4.2) - better_html (1.0.16) + ast (2.4.1) + axiom-types (0.1.1) + descendants_tracker (~> 0.0.4) + ice_nine (~> 0.11.0) + thread_safe (~> 0.3, >= 0.3.1) + better_html (1.0.15) actionview (>= 4.0) activesupport (>= 4.0) ast (~> 2.0) @@ -27,32 +31,32 @@ GEM builder (3.2.4) code_analyzer (0.5.2) sexp_processor + codeclimate-engine-rb (0.4.1) + virtus (~> 1.0) + coercible (1.0.0) + descendants_tracker (~> 0.0.1) colorize (0.8.1) - concurrent-ruby (1.1.8) + concurrent-ruby (1.1.7) crass (1.0.6) - erb_lint (0.0.37) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + equalizer (0.0.11) + erb_lint (0.0.35) activesupport better_html (~> 1.0.7) html_tokenizer parser (>= 2.7.1.4) rainbow - rubocop + rubocop (~> 0.79) smart_properties erubi (1.10.0) erubis (2.7.0) - eslintrb (2.1.0) - execjs - multi_json (>= 1.3) - rake - execjs (2.7.0) - faraday (1.3.0) - faraday-net_http (~> 1.0) + faraday (1.1.0) multipart-post (>= 1.2, < 3) ruby2_keywords - faraday-net_http (1.0.1) - fasterer (0.7.1) + fasterer (0.8.3) colorize (~> 0.7) - ruby_parser (>= 3.13.0) + ruby_parser (>= 3.14.1) gitlab (4.17.0) httparty (~> 0.18) terminal-table (~> 1.5, >= 1.5.1) @@ -60,66 +64,62 @@ GEM httparty (0.18.1) mime-types (~> 3.0) multi_xml (>= 0.5.2) - i18n (1.8.10) + i18n (1.8.5) concurrent-ruby (~> 1.0) - json (2.5.1) + ice_nine (0.11.2) + json (2.4.1) kwalify (0.7.2) - loofah (2.9.1) + loofah (2.8.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.0225) - minitest (5.14.4) - multi_json (1.15.0) + mime-types-data (3.2020.1104) + mini_portile2 (2.4.0) + minitest (5.14.2) multi_xml (0.6.0) multipart-post (2.1.1) - nokogiri (1.11.3-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.11.3-x86_64-linux) - racc (~> 1.4) - octokit (4.20.0) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + octokit (4.19.0) faraday (>= 0.9) sawyer (~> 0.8.0, >= 0.5.3) - oj (3.11.3) + oj (3.10.17) parallel (1.20.1) - parser (3.0.1.0) + parser (2.7.2.0) ast (~> 2.4.1) pathspec (0.2.1) - pronto (0.11.0) - gitlab (~> 4.4, >= 4.4.0) + pronto (0.10.0) + gitlab (~> 4.0, >= 4.0.0) httparty (>= 0.13.7) octokit (~> 4.7, >= 4.7.0) rainbow (>= 2.2, < 4.0) - rexml (~> 3.2) - rugged (>= 0.23.0, < 1.1.0) - thor (>= 0.20.3, < 2.0) + rugged (~> 0.24, >= 0.23.0) + thor (~> 0.20.0) pronto-blacklist (0.2.0) pathspec (~> 0.2) pronto (~> 0.9) pronto-erb_lint (0.1.5) erb_lint (~> 0.0.24) pronto (> 0.9.0) - pronto-eslint (0.11.0) - eslintrb (~> 2.0, >= 2.0.0) - pronto (~> 0.11.0) - pronto-fasterer (0.11.0) - fasterer (~> 0.7.1) - pronto (~> 0.11.0) - pronto-rails_best_practices (0.11.0) - pronto (~> 0.11.0) + pronto-eslint_npm (0.10.1) + pronto (~> 0.10.0) + pronto-fasterer (0.10.0) + fasterer (~> 0.3, >= 0.3.0) + pronto (~> 0.10.0) + pronto-rails_best_practices (0.10.0) + pronto (~> 0.10.0) rails_best_practices (~> 1.16, >= 1.15.0) - pronto-reek (0.11.0) - pronto (~> 0.11.0) - reek (>= 4.2, < 7.0) - pronto-rubocop (0.11.1) - pronto (~> 0.11.0) - rubocop (>= 0.63.1, < 2.0) - pronto-yamllint (0.2.0) - pronto (~> 0.11.0) - psych (3.3.1) + pronto-reek (0.10.0) + pronto (~> 0.10.0) + reek (>= 4.2, < 6.0) + pronto-rubocop (0.10.0) + pronto (~> 0.10.0) + rubocop (~> 0.50, >= 0.49.1) + pronto-yamllint (0.1.2) + pronto (~> 0.10.0) + psych (3.1.0) public_suffix (4.0.6) - racc (1.5.2) rack (2.2.3) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -135,75 +135,76 @@ GEM require_all (~> 3.0) ruby-progressbar rainbow (3.0.0) - rake (13.0.3) - reek (6.0.3) + reek (5.6.0) + codeclimate-engine-rb (~> 0.4.0) kwalify (~> 0.7.0) - parser (~> 3.0.0) - psych (~> 3.1) + parser (>= 2.5.0.0, < 2.8, != 2.5.1.1) + psych (~> 3.1.0) rainbow (>= 2.0, < 4.0) - regexp_parser (2.1.1) + regexp_parser (2.0.0) require_all (3.0.0) - rexml (3.2.5) - rubocop (1.11.0) + rexml (3.2.4) + rubocop (0.92.0) parallel (~> 1.10) - parser (>= 3.0.0.0) + parser (>= 2.7.1.5) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) + regexp_parser (>= 1.7) rexml - rubocop-ast (>= 1.2.0, < 2.0) + rubocop-ast (>= 0.5.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.4.1) + unicode-display_width (>= 1.4.0, < 2.0) + rubocop-ast (1.3.0) parser (>= 2.7.1.5) - rubocop-minitest (0.11.1) - rubocop (>= 0.90, < 2.0) - rubocop-performance (1.10.1) - rubocop (>= 0.90.0, < 2.0) + rubocop-performance (1.8.1) + rubocop (>= 0.87.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.9.1) + rubocop-rails (2.9.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 0.90.0, < 2.0) - ruby-progressbar (1.11.0) - ruby2_keywords (0.0.4) - ruby_parser (3.15.1) + ruby-progressbar (1.10.1) + ruby2_keywords (0.0.2) + ruby_parser (3.15.0) sexp_processor (~> 4.9) - rugged (1.0.1) + rugged (0.99.0) sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) - sexp_processor (4.15.2) + sexp_processor (4.15.1) smart_properties (1.15.0) - standard (1.0.4) - rubocop (= 1.11.0) - rubocop-performance (= 1.10.1) + standard (0.7) + rubocop (= 0.92) + rubocop-performance (= 1.8.1) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thor (1.1.0) + thor (0.20.3) + thread_safe (0.3.6) tzinfo (2.0.4) concurrent-ruby (~> 1.0) unicode-display_width (1.7.0) + virtus (1.0.5) + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) + equalizer (~> 0.0, >= 0.0.9) zeitwerk (2.4.2) PLATFORMS - x86_64-darwin-20 - x86_64-linux + ruby DEPENDENCIES oj pronto pronto-blacklist pronto-erb_lint - pronto-eslint + pronto-eslint_npm pronto-fasterer pronto-rails_best_practices pronto-reek pronto-rubocop pronto-yamllint - rubocop-minitest - rubocop-performance rubocop-rails standard (>= 0.4.7) BUNDLED WITH - 2.2.16 + 2.1.4 diff --git a/README.md b/README.md index 5f36131..a921a06 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ https://github.com/jetthoughts/vuejs-rails-starterkit/tree/rails-5-latest [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) -![GitHub Actions Test](https://github.com/jetthoughts/vuejs-rails-starterkit/workflows/Test/badge.svg) -[![CircleCI Test](https://circleci.com/gh/jetthoughts/vuejs-rails-starterkit.svg?style=svg)](https://circleci.com/gh/jetthoughts/vuejs-rails-starterkit) +[![JetThoughts](https://circleci.com/gh/jetthoughts/vuejs-rails-starterkit.svg?style=svg)](https://circleci.com/gh/jetthoughts/vuejs-rails-starterkit) [![codecov](https://codecov.io/gh/jetthoughts/vuejs-rails-starterkit/branch/master/graph/badge.svg)](https://codecov.io/gh/jetthoughts/vuejs-rails-starterkit) A quick and easy way to setup Rails + PWA + Turbolinks + Webpacker + Bootstrap with AdminLTE theme + Vue + Jest. @@ -65,7 +64,7 @@ As an additional review of how to setup PWA, Turbolinks, CSS frameworks, Storybo #### System Dependencies: -* [Ruby](https://www.ruby-lang.org/en/) 3.0 +* [Ruby](https://www.ruby-lang.org/en/) 2.7 * [Node.js](https://nodejs.org/en/) 14 * [Yarn](https://yarnpkg.com/en/) * [PostgreSQL](https://www.postgresql.org/) 12 @@ -317,8 +316,6 @@ commit -m "Generates Ruby on Rails application with Vue.js onboard"` ```bash heroku create -heroku addons:create heroku-postgresql:hobby-dev - heroku buildpacks:add heroku/ruby heroku config:set RAILS_ENV=production NODE_ENV=production YARN_PRODUCTION=true MALLOC_ARENA_MAX=2 @@ -341,7 +338,7 @@ Drop the ā€˜v’ to save only the version number: } ``` -4. Deploy and verify that vue.js is working on Heroku +5. Deploy and verify that vue.js is working on Heroku ```bash git push heroku master diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png new file mode 100644 index 0000000..eca1663 Binary files /dev/null and b/app/assets/images/logo.png differ diff --git a/app/javascript/app.vue b/app/javascript/app.vue index e304dc1..4823221 100644 --- a/app/javascript/app.vue +++ b/app/javascript/app.vue @@ -1,5 +1,6 @@ @@ -15,6 +16,10 @@ export default {