rails_stats 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +23 -15
  3. data/CHANGELOG.md +18 -3
  4. data/Gemfile +2 -2
  5. data/README.md +224 -232
  6. data/bin/rails-stats +27 -0
  7. data/lib/rails_stats/all.rb +8 -0
  8. data/lib/rails_stats/app_statistics.rb +1 -1
  9. data/lib/rails_stats/code_statistics_calculator.rb +18 -0
  10. data/lib/rails_stats/console_formatter.rb +60 -12
  11. data/lib/rails_stats/cucumber_statistics.rb +1 -1
  12. data/lib/rails_stats/gem_statistics.rb +1 -1
  13. data/lib/rails_stats/json_formatter.rb +59 -6
  14. data/lib/rails_stats/pack_finder.rb +67 -0
  15. data/lib/rails_stats/root_statistics.rb +1 -1
  16. data/lib/rails_stats/spec_statistics.rb +1 -1
  17. data/lib/rails_stats/stats_calculator.rb +135 -5
  18. data/lib/rails_stats/stats_formatter.rb +1 -0
  19. data/lib/rails_stats/tasks.rb +4 -1
  20. data/lib/rails_stats/test_statistics.rb +1 -1
  21. data/lib/rails_stats/util.rb +10 -2
  22. data/lib/rails_stats/version.rb +1 -1
  23. data/rails_stats.gemspec +4 -3
  24. data/test/dummy/app/javascript/dummy.jsx +1 -0
  25. data/test/dummy/app/javascript/dummy.tsx +0 -0
  26. data/test/dummy/app/javascript/index.ts +0 -0
  27. data/test/dummy/app/models/comment.rb +3 -0
  28. data/test/dummy/app/models/pet.rb +2 -0
  29. data/test/dummy/app/models/user.rb +2 -0
  30. data/test/dummy/db/schema.rb +10 -0
  31. data/test/fixtures/console-output.txt +8 -24
  32. data/test/fixtures/packwerk_app/app/controllers/core_controller.rb +4 -0
  33. data/test/fixtures/packwerk_app/app/models/core_model.rb +5 -0
  34. data/test/fixtures/packwerk_app/components/billing/app/models/billing_model.rb +4 -0
  35. data/test/fixtures/packwerk_app/components/billing/lib/billing.rb +2 -0
  36. data/test/fixtures/packwerk_app/lib/core_lib.rb +3 -0
  37. data/test/fixtures/packwerk_app/package.yml +1 -0
  38. data/test/fixtures/packwerk_app/packs/pack1/app/controllers/pack1_controller.rb +4 -0
  39. data/test/fixtures/packwerk_app/packs/pack1/app/models/pack1_model.rb +6 -0
  40. data/test/fixtures/packwerk_app/packs/pack1/lib/pack1_lib.rb +2 -0
  41. data/test/fixtures/packwerk_app/packs/pack1/package.yml +3 -0
  42. data/test/fixtures/packwerk_app/packs/pack1/spec/models/pack1_model_spec.rb +4 -0
  43. data/test/fixtures/packwerk_app/packs/pack2/app/models/pack2_model.rb +4 -0
  44. data/test/fixtures/packwerk_app/packs/pack2/test/models/pack2_model_test.rb +4 -0
  45. data/test/lib/rails_stats/code_statistics_test.rb +5 -5
  46. data/test/lib/rails_stats/console_formatter_test.rb +48 -0
  47. data/test/lib/rails_stats/json_formatter_test.rb +70 -127
  48. data/test/lib/rails_stats/pack_finder_test.rb +29 -0
  49. data/test/lib/rails_stats/stats_calculator_test.rb +64 -0
  50. data/test/lib/rails_stats/util_test.rb +49 -0
  51. metadata +56 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 488bc4eaefb566a4ff6141f892461fafa826bfd1a6760e6ff5f95f09d1fc58b7
4
- data.tar.gz: c563281ab24f01664eaf990f47075b89dfc2da90f3a84e344c31351c6222e650
3
+ metadata.gz: 6c0ec937a76e806cef21dd005c123dc0cea07bdf4f83d565ee8d141b3169dda2
4
+ data.tar.gz: e9d5aa5cf96dd02b9cd26247e2a41fa0aa44d812230176e1fd3af76e1a3bd593
5
5
  SHA512:
6
- metadata.gz: 80e833d9a50ce0281774bd62a0ac3b5dc7bba1cd1750a36c48df294e29e0c6823b71e9552520a40dd7f219b007b82dd75ea764a766193d5033ca8443197bc538
7
- data.tar.gz: 785d808f4d77dd1e3d0ad65b1ca08368ebb584542b6af80afc66e44fe0915180258a5d4a90d025f62b11e22450832a969876748b680d17bee0513087d5fdc33e
6
+ metadata.gz: fcf370eb0f981441c2ea4c7a4ae54027c10daa03be92aa23b1c0455d95b98b697477dc04b18d7f9afe16f9a6b1bbdd3d3642b5acfeb7d3dcf5f7bf1395163e5a
7
+ data.tar.gz: fb0d687f57af91b8bb48caf85a4c9bfbc05a49ed4fdc73f7bf4d521a70a1824a84956854af11238d278eccf785c38baeb762964c0b5eb3b5b4b49335730fc488
@@ -13,30 +13,38 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  strategy:
15
15
  matrix:
16
- ruby-version: ["2.5", "2.6", "2.7", "3.0"]
16
+ include:
17
+ - ruby-version: "2.5"
18
+ bundler-version: "2.3.27"
19
+ - ruby-version: "2.6"
20
+ bundler-version: "2.4.0"
21
+ - ruby-version: "2.7"
22
+ bundler-version: "2.4.0"
23
+ - ruby-version: "3.0"
24
+ - ruby-version: "3.1"
25
+ - ruby-version: "3.2"
26
+ - ruby-version: "3.3"
27
+ - ruby-version: "3.4"
17
28
 
18
29
  steps:
19
- - uses: actions/checkout@v1
30
+ - uses: actions/checkout@v4
20
31
  - name: Setup Ruby
21
32
  uses: ruby/setup-ruby@v1
22
33
  with:
23
34
  ruby-version: ${{ matrix.ruby-version }}
24
- bundler-cache: true
25
- - name: Uninstall existing Bundler
26
- run: |
27
- gem uninstall bundler -a -x || true
35
+ # Disable bundler-cache when a custom bundler version is required,
36
+ # as setup-ruby's cache is tied to the bundler it installs.
37
+ bundler-cache: ${{ !matrix.bundler-version }}
28
38
  - name: Install Bundler
29
- run: |
30
- if [[ "${{ matrix.ruby-version }}" == "2.6" || "${{ matrix.ruby-version }}" == "2.7" ]]; then
31
- gem install bundler -v "~> 2.4.0"
32
- else
33
- gem install bundler
34
- fi
39
+ if: matrix.bundler-version
40
+ run: gem install bundler -v "~> ${{ matrix.bundler-version }}"
41
+ - name: Install gems
42
+ if: matrix.bundler-version
43
+ run: bundle install
35
44
  - name: Build and run tests
36
45
  env:
37
46
  COVERAGE: true
47
+ # TERM is required for colored/formatted test output in CI
38
48
  TERM: xterm
39
49
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
40
- run: |
41
- bundle install --jobs 4 --retry 3
42
- bundle exec rake test
50
+ run: bundle exec rake test
data/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
- # main ([unreleased](https://github.com/fastruby/rails_stats/compare/v1.0.2...main))
1
+ # main ([unreleased](https://github.com/fastruby/rails_stats/compare/v2.2.0...main))
2
2
 
3
- *
3
+ * [FEATURE: ABC](LINK)
4
+
5
+ # v2.2.0 ([commits](https://github.com/fastruby/rails_stats/compare/v2.2.0...v2.1.0))
6
+
7
+ * [FEATURE: Add a `rails-stats` command line executable that accepts an absolute or relative directory](https://github.com/fastruby/rails_stats/pull/49)
8
+ * [FEATURE: Support component-based and Packwerk (packs) applications with a per-pack and Core breakdown](https://github.com/fastruby/rails_stats/issues/23)
9
+ * [BUGFIX: Respect an explicit path argument (e.g. `rake stats[packs/pack1]`) when running inside a booted Rails app](https://github.com/fastruby/rails_stats/issues/23)
10
+ * [CHORE: Improve the GH Test Workflow](https://github.com/fastruby/rails_stats/pull/35)
11
+ * [BUGFIX: Explicitly set format as text for `Bundler::Stats::CLI` on `ConsoleFormatter`](https://github.com/fastruby/rails_stats/pull/43)
12
+
13
+ # v2.1.0 ([commits](https://github.com/fastruby/rails_stats/compare/v2.1.0...v2.0.1))
14
+
15
+ * [BUGFIX: Fix JSON output missing Code and Tests total count](https://github.com/fastruby/rails_stats/pull/40)
16
+ * Update README examples
17
+ * [FEATURE: Output number of tables created from schema.rb or structure.sql, add polymorphic models count](https://github.com/fastruby/rails_stats/pull/37)
18
+ * [FEATURE: Add TS|TSX|JSX files count to Javascripts](https://github.com/fastruby/rails_stats/pull/42)
4
19
 
5
20
  # v2.0.1 ([commits](https://github.com/fastruby/rails_stats/compare/v2.0.0...v2.0.1))
6
21
 
@@ -22,4 +37,4 @@
22
37
  # v1.0.1 / 2018-10-8
23
38
 
24
39
  * [FEATURE: add more aggregate stats](https://github.com/fastruby/rails_stats/pull/5)
25
- * [FEATURE: More detailed introspection of app](https://github.com/fastruby/rails_stats/pull/1)
40
+ * [FEATURE: More detailed introspection of app](https://github.com/fastruby/rails_stats/pull/1)
data/Gemfile CHANGED
@@ -5,10 +5,10 @@ gemspec
5
5
  group :development, :test do
6
6
  gem "bundler", ">= 1.6", "< 3.0"
7
7
  gem "byebug"
8
- gem "codecov"
8
+ gem "codecov", "~> 0.6.0"
9
9
  gem "minitest"
10
10
  gem "minitest-around"
11
11
  gem "minitest-spec-context"
12
- gem "simplecov"
12
+ gem "simplecov", "~> 0.21"
13
13
  gem "simplecov-console"
14
14
  end