enumbler 0.9.2 → 0.11.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca8de5b8e3b88d4321e0df6108f41245142f95489930e57e6d0209c260335b3d
4
- data.tar.gz: ab12a41dc3564dd62f78cb0583ec12ac6602ba5faf6bf890be80864096f4a65d
3
+ metadata.gz: e565cc926b8cca7f06e64cc90503f5965003a3e5c60d1c2a5cd689ea690c8215
4
+ data.tar.gz: e2cfef7c22ed8ce2d51d706802c79ce1fc0b4abe8b3268aa634400051f9970b1
5
5
  SHA512:
6
- metadata.gz: 948e3cab58f8065ad78b67680ecc9ca0f3de53be0169ca13502a69f145af27e855707b331cf760e925859789f26f68a801ee7f6c02562d393ca6a720c30497fd
7
- data.tar.gz: c50f6dc4282fa0ace1cdc44b97dd79f64f6a1667074bd4fe93f5ed580decfa55983b412317d3c3a4f18f83efa1ef83c16fad75177f0e575ccf0ba005f6275cf1
6
+ metadata.gz: 77c6de7fc4fbebc329e77ccee8ead1998a71e6539d45a218a1f018424a4a6e087869e0c04fc51d074f006fddfa32cf7e047e417e3b1c5706be822003029b432c
7
+ data.tar.gz: 8e30d49be482fc9fa3da561c134c93c8db1b8362f05c7dd83300e5e6db16b001c399382ed5c9fa3d96291ab232d4a28ac1d147bf8d7833294ece0ed98b3135e6
@@ -2,65 +2,92 @@ name: CI Matrix Testing
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
6
- tags:
7
- - "*"
5
+ branches: [ main ]
6
+ tags: ["*"]
8
7
  pull_request:
9
- branches: [ master ]
8
+
9
+ # A new push to the same ref supersedes any in-flight run; cancel the stale
10
+ # one rather than paying for both.
11
+ concurrency:
12
+ group: ci-${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
10
14
 
11
15
  jobs:
12
16
  rspec:
13
-
14
17
  runs-on: ubuntu-latest
15
-
18
+ # Typical matrix job is under 2 minutes; a hung job otherwise runs to
19
+ # GitHub's 6-hour default.
20
+ timeout-minutes: 10
16
21
  strategy:
22
+ fail-fast: false
17
23
  matrix:
18
- ruby_version: [2.5, 2.6, 2.7]
24
+ ruby: [3.1, 3.2, 3.3, 3.4]
25
+ rails_version: ["6.0", "6.1", "7.0", "7.1", "7.2", "8.0"]
26
+ exclude:
27
+ - ruby: 3.1
28
+ rails_version: "8.0"
29
+ - ruby: 3.4
30
+ rails_version: "6.0"
31
+ - ruby: 3.4
32
+ rails_version: "6.1"
33
+ - ruby: 3.4
34
+ rails_version: "7.0"
19
35
 
20
36
  steps:
21
- - uses: actions/checkout@v2
37
+ - uses: actions/checkout@v4
22
38
 
23
- - name: Set up Ruby
24
- uses: actions/setup-ruby@v1
25
- with:
26
- ruby-version: ${{ matrix.ruby_version }}
39
+ - name: Set up Ruby
40
+ uses: ruby/setup-ruby@v1
41
+ with:
42
+ ruby-version: ${{ matrix.ruby }}
27
43
 
28
- - name: Install sqlite3
29
- run: |
30
- sudo apt-get install libsqlite3-dev
44
+ - name: Install sqlite3
45
+ run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
31
46
 
32
- - name: Install dependencies
33
- run: |
34
- gem install bundler -v 2.1.4 --no-document
35
- bundle install --jobs 4 --retry 3
47
+ - name: Install dependencies
48
+ env:
49
+ BUNDLE_GEMFILE: Gemfile.rails${{ matrix.rails_version }}
50
+ run: |
51
+ bundle install --jobs 4 --retry 3
36
52
 
37
- - name: Build and test with Rake
38
- run: |
39
- bundle exec rspec
53
+ - name: Run specs
54
+ env:
55
+ BUNDLE_GEMFILE: Gemfile.rails${{ matrix.rails_version }}
56
+ run: bundle exec rspec
40
57
 
41
58
  build:
42
59
  needs: rspec
43
60
 
44
61
  name: Publish Gem
45
62
  runs-on: ubuntu-latest
63
+ timeout-minutes: 10
64
+
65
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
66
+
67
+ # Publishes via RubyGems trusted publishing (OIDC) — no API key, and
68
+ # exempt from the account's OTP requirement. The trusted publisher on
69
+ # rubygems.org is registered for this repo + this workflow filename.
70
+ # Uses configure-rubygems-credentials + a plain `gem push` rather than
71
+ # the release-gem action: that action runs `rake release`, which wants
72
+ # to git-push and create its own v-prefixed tag — this repo tags
73
+ # manually (bare version numbers) and this job runs on a detached HEAD.
74
+ permissions:
75
+ id-token: write
46
76
 
47
77
  steps:
48
- - uses: actions/checkout@v2
78
+ - uses: actions/checkout@v4
79
+ with:
80
+ persist-credentials: false
49
81
 
50
82
  - name: Set up Ruby
51
- uses: actions/setup-ruby@v1
83
+ uses: ruby/setup-ruby@v1
52
84
  with:
53
- ruby-version: 2.7.x
85
+ ruby-version: 3.4
86
+
87
+ - uses: rubygems/configure-rubygems-credentials@v2.1.0
54
88
 
55
- - name: Publish to RubyGems
56
- if: contains(github.ref, 'refs/tags/')
89
+ - name: Build and push gem
57
90
  run: |
58
- mkdir -p $HOME/.gem
59
- touch $HOME/.gem/credentials
60
- chmod 0600 $HOME/.gem/credentials
61
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
62
91
  gem build *.gemspec
63
92
  gem push *.gem
64
- env:
65
- GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
66
93
 
data/.rubocop.yml CHANGED
@@ -1,6 +1,11 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
- TargetRubyVersion: 2.5
3
+ TargetRubyVersion: 3.4
4
+ Exclude:
5
+ - 'bin/**/*'
6
+
7
+ Gemspec/RequiredRubyVersion:
8
+ Enabled: false
4
9
 
5
10
  Layout/ArgumentAlignment:
6
11
  Enabled: true
@@ -40,6 +45,10 @@ Naming/MethodParameterName:
40
45
  Naming/PredicateName:
41
46
  Enabled: true
42
47
 
48
+ # Works in 3.4 only
49
+ Style/ArgumentsForwarding:
50
+ Enabled: false
51
+
43
52
  Style/Documentation:
44
53
  Enabled: false
45
54
 
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.4.4
data/AGENTS.md ADDED
@@ -0,0 +1,14 @@
1
+ # Instructions for Codex Agents
2
+
3
+ ## Environment Setup
4
+ - The codex environment has a setup script that installs system packages.
5
+
6
+ ## Running Checks
7
+ - Use Bundler for all commands (`bundle exec`).
8
+ - Run tests with `bundle exec rspec`.
9
+ - Lint changed Ruby files with `bundle exec rubocop`.
10
+
11
+ ## Commit Guidelines
12
+ - Keep commit messages concise and descriptive.
13
+ - Open a pull request summarizing the changes and note test results.
14
+
data/CLAUDE.md ADDED
@@ -0,0 +1,55 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## What this is
6
+
7
+ Enumbler is a Ruby gem that provides database-backed enums for ActiveRecord: real foreign-key lookup tables that behave like `enum`s. It supports ActiveRecord/ActiveSupport >= 6.0, < 9 and Ruby >= 3.1.
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ bin/setup # install dependencies
13
+ bundle exec rspec # run all tests
14
+ bundle exec rspec spec/enumbler_spec.rb:42 # run a single test by file:line
15
+ bundle exec rubocop # lint (also runs as a lefthook pre-commit hook)
16
+ ```
17
+
18
+ ### Matrix testing
19
+
20
+ CI tests Ruby 3.1–3.4 against Rails 6.0–8.0 using the `Gemfile.rails*` files. To reproduce locally:
21
+
22
+ ```bash
23
+ BUNDLE_GEMFILE=Gemfile.rails7.2 bundle install
24
+ BUNDLE_GEMFILE=Gemfile.rails7.2 bundle exec rspec
25
+ ```
26
+
27
+ When changing dependencies, keep all `Gemfile.rails*` variants (and their lockfiles) in sync with the main `Gemfile`.
28
+
29
+ ### Branching & releasing
30
+
31
+ Modified git flow (see README "Development"): feature branches off `develop`; releases go to `main` via `release/x.y.z` (or `hotfix/x.y.z` off `main`), then the tag is merged back into `develop`. A release is a bare version tag on `main` (no `v` prefix, e.g. `0.10.0`) matching `lib/enumbler/version.rb`; pushing the tag makes CI run the rspec matrix and publish the gem to rubygems.org.
32
+
33
+ ## Architecture
34
+
35
+ The gem is four small files under `lib/enumbler/`, split across the two sides of the relationship:
36
+
37
+ - **`lib/enumbler.rb`** (`Enumbler` module) — included in `ApplicationRecord`; gives *consuming* models `enumbled_to :color`, a `belongs_to` replacement. It defines class scopes (`House.color(:black)`), per-enum predicates (`house.black?`, `house.not_black?`, optionally prefixed), and db-free helper attributes (`house.color_label`, `color_enum`, `color_graphql_enum`).
38
+
39
+ - **`lib/enumbler/enabler.rb`** (`Enumbler::Enabler`) — included in the *lookup* model (e.g. `Color`); provides the `enumble :black, 1, ...` DSL. Each call builds an `Enumble`, registers it in the class-level `@enumbles` collection, and metaprograms constants (`Color::BLACK`), class finders (`Color.black`, `Color.black(:label)`), and predicates — with conflict detection against ActiveRecord methods (modeled on `ActiveRecord::Enum`). Also holds all the `find_enumble(s)` / `ids_from_enumbler` lookup methods (in-memory, no db hit; bang variants raise `Enumbler::Error`) and `seed_the_enumbler(!)` for syncing the definitions into the database table.
40
+
41
+ - **`lib/enumbler/enumble.rb`** (`Enumbler::Enumble`) — plain value object for one enum row (id, enum symbol, label, extra attributes). Equality is loose: two Enumbles are `==` if id **or** enum **or** label match (this is how duplicate definitions are caught).
42
+
43
+ - **`lib/enumbler/collection.rb`** — an `Array` subclass with `method_missing` so `Color.enumbles.black` works.
44
+
45
+ - **`lib/enumbler/core_ext/symbol/case_equality_operator.rb`** — patches `Symbol#===` so `case Color.black; when :black` works. It's a global core extension; be careful changing it.
46
+
47
+ The label column defaults to `label` but can be remapped per-model with `enumbler_label_column_name :emotion`; internally `Enumble#label` always refers to the enumbler value regardless of the underlying column.
48
+
49
+ ## Tests
50
+
51
+ Specs run against an in-memory SQLite database (`spec/support/establish_sqlite_connection.rb`); each spec file defines its own schema with `ActiveRecord::Schema.define` and DatabaseCleaner wraps each example in a transaction. `spec/enumbler_spec.rb` covers nearly everything and defines the shared test models (Color, House, Feeling). Rails-version-conditional behavior may need `BUNDLE_GEMFILE` runs to verify.
52
+
53
+ ## Style
54
+
55
+ RuboCop enforces double-quoted strings, max line length 119, trailing commas in multiline literals, and `TargetRubyVersion: 3.4` — but code must still run on Ruby 3.1 (see the gemspec), so avoid 3.2+-only syntax.
data/Gemfile CHANGED
@@ -2,5 +2,27 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "activemodel", ">= 8"
6
+ gem "activerecord", ">= 8"
7
+ gem "activesupport", ">= 8"
8
+
9
+ # The 1.3.5 version of concurrent-ruby is causing an issue with rails.
10
+ # Once that issue is resolved we can unpin this and upgrade > 1.3.5
11
+ # See: https://github.com/rails/rails/issues/54271
12
+ gem "concurrent-ruby", "1.3.4"
13
+
5
14
  # Specify your gem's dependencies in enumbler.gemspec
6
15
  gemspec
16
+
17
+ # Specify any additional dependencies that are not in the gemspec
18
+ # but are needed for development or testing.
19
+
20
+ group :development, :test do
21
+ gem "database_cleaner-active_record", "~> 2.0"
22
+ gem "fuubar", "~> 2.5"
23
+ gem "pry"
24
+ gem "rake", "~> 13.0"
25
+ gem "rspec", "~> 3.9"
26
+ gem "rubocop", "~> 1.0", require: false
27
+ gem "sqlite3", ">= 2.1"
28
+ end
data/Gemfile.lock CHANGED
@@ -1,93 +1,124 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enumbler (0.9.1)
5
- activerecord (>= 5.2.3, < 7)
6
- activesupport (>= 5.2.3, < 7)
4
+ enumbler (0.11.0)
5
+ activerecord (>= 6.0, < 9)
6
+ activesupport (>= 6.0, < 9)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activemodel (6.0.3.1)
12
- activesupport (= 6.0.3.1)
13
- activerecord (6.0.3.1)
14
- activemodel (= 6.0.3.1)
15
- activesupport (= 6.0.3.1)
16
- activesupport (6.0.3.1)
17
- concurrent-ruby (~> 1.0, >= 1.0.2)
18
- i18n (>= 0.7, < 2)
19
- minitest (~> 5.1)
20
- tzinfo (~> 1.1)
21
- zeitwerk (~> 2.2, >= 2.2.2)
22
- ast (2.4.1)
11
+ activemodel (8.0.2)
12
+ activesupport (= 8.0.2)
13
+ activerecord (8.0.2)
14
+ activemodel (= 8.0.2)
15
+ activesupport (= 8.0.2)
16
+ timeout (>= 0.4.0)
17
+ activesupport (8.0.2)
18
+ base64
19
+ benchmark (>= 0.3)
20
+ bigdecimal
21
+ concurrent-ruby (~> 1.0, >= 1.3.1)
22
+ connection_pool (>= 2.2.5)
23
+ drb
24
+ i18n (>= 1.6, < 2)
25
+ logger (>= 1.4.2)
26
+ minitest (>= 5.1)
27
+ securerandom (>= 0.3)
28
+ tzinfo (~> 2.0, >= 2.0.5)
29
+ uri (>= 0.13.1)
30
+ ast (2.4.3)
31
+ base64 (0.2.0)
32
+ benchmark (0.4.0)
33
+ bigdecimal (3.1.9)
23
34
  coderay (1.1.2)
24
- concurrent-ruby (1.1.6)
25
- database_cleaner (1.8.5)
26
- database_cleaner-active_record (1.8.0)
27
- activerecord
28
- database_cleaner (~> 1.8.0)
29
- diff-lcs (1.3)
35
+ concurrent-ruby (1.3.4)
36
+ connection_pool (2.5.3)
37
+ database_cleaner-active_record (2.2.1)
38
+ activerecord (>= 5.a)
39
+ database_cleaner-core (~> 2.0.0)
40
+ database_cleaner-core (2.0.1)
41
+ diff-lcs (1.6.2)
42
+ drb (2.2.3)
30
43
  fuubar (2.5.0)
31
44
  rspec-core (~> 3.0)
32
45
  ruby-progressbar (~> 1.4)
33
- i18n (1.8.2)
46
+ i18n (1.14.7)
34
47
  concurrent-ruby (~> 1.0)
48
+ json (2.12.2)
49
+ language_server-protocol (3.17.0.5)
50
+ lint_roller (1.1.0)
51
+ logger (1.7.0)
35
52
  method_source (1.0.0)
36
- minitest (5.14.1)
37
- parallel (1.19.1)
38
- parser (2.7.1.4)
53
+ mini_portile2 (2.8.9)
54
+ minitest (5.25.5)
55
+ parallel (1.27.0)
56
+ parser (3.3.8.0)
39
57
  ast (~> 2.4.1)
58
+ racc
59
+ prism (1.4.0)
40
60
  pry (0.13.1)
41
61
  coderay (~> 1.1)
42
62
  method_source (~> 1.0)
43
- rainbow (3.0.0)
44
- rake (12.3.3)
45
- regexp_parser (1.7.1)
46
- rexml (3.2.4)
47
- rspec (3.9.0)
48
- rspec-core (~> 3.9.0)
49
- rspec-expectations (~> 3.9.0)
50
- rspec-mocks (~> 3.9.0)
51
- rspec-core (3.9.2)
52
- rspec-support (~> 3.9.3)
53
- rspec-expectations (3.9.2)
63
+ racc (1.8.1)
64
+ rainbow (3.1.1)
65
+ rake (13.2.1)
66
+ regexp_parser (2.10.0)
67
+ rspec (3.13.1)
68
+ rspec-core (~> 3.13.0)
69
+ rspec-expectations (~> 3.13.0)
70
+ rspec-mocks (~> 3.13.0)
71
+ rspec-core (3.13.4)
72
+ rspec-support (~> 3.13.0)
73
+ rspec-expectations (3.13.5)
54
74
  diff-lcs (>= 1.2.0, < 2.0)
55
- rspec-support (~> 3.9.0)
56
- rspec-mocks (3.9.1)
75
+ rspec-support (~> 3.13.0)
76
+ rspec-mocks (3.13.5)
57
77
  diff-lcs (>= 1.2.0, < 2.0)
58
- rspec-support (~> 3.9.0)
59
- rspec-support (3.9.3)
60
- rubocop (0.91.0)
78
+ rspec-support (~> 3.13.0)
79
+ rspec-support (3.13.4)
80
+ rubocop (1.75.7)
81
+ json (~> 2.3)
82
+ language_server-protocol (~> 3.17.0.2)
83
+ lint_roller (~> 1.1.0)
61
84
  parallel (~> 1.10)
62
- parser (>= 2.7.1.1)
85
+ parser (>= 3.3.0.2)
63
86
  rainbow (>= 2.2.2, < 4.0)
64
- regexp_parser (>= 1.7)
65
- rexml
66
- rubocop-ast (>= 0.4.0, < 1.0)
87
+ regexp_parser (>= 2.9.3, < 3.0)
88
+ rubocop-ast (>= 1.44.0, < 2.0)
67
89
  ruby-progressbar (~> 1.7)
68
- unicode-display_width (>= 1.4.0, < 2.0)
69
- rubocop-ast (0.4.0)
70
- parser (>= 2.7.1.4)
71
- ruby-progressbar (1.10.1)
72
- sqlite3 (1.4.2)
73
- thread_safe (0.3.6)
74
- tzinfo (1.2.7)
75
- thread_safe (~> 0.1)
76
- unicode-display_width (1.7.0)
77
- zeitwerk (2.3.0)
90
+ unicode-display_width (>= 2.4.0, < 4.0)
91
+ rubocop-ast (1.44.1)
92
+ parser (>= 3.3.7.2)
93
+ prism (~> 1.4)
94
+ ruby-progressbar (1.13.0)
95
+ securerandom (0.4.1)
96
+ sqlite3 (2.6.0)
97
+ mini_portile2 (~> 2.8.0)
98
+ timeout (0.4.3)
99
+ tzinfo (2.0.6)
100
+ concurrent-ruby (~> 1.0)
101
+ unicode-display_width (3.1.4)
102
+ unicode-emoji (~> 4.0, >= 4.0.4)
103
+ unicode-emoji (4.0.4)
104
+ uri (1.0.3)
78
105
 
79
106
  PLATFORMS
80
107
  ruby
81
108
 
82
109
  DEPENDENCIES
83
- database_cleaner-active_record (~> 1.8.0)
110
+ activemodel (>= 8)
111
+ activerecord (>= 8)
112
+ activesupport (>= 8)
113
+ concurrent-ruby (= 1.3.4)
114
+ database_cleaner-active_record (~> 2.0)
84
115
  enumbler!
85
116
  fuubar (~> 2.5)
86
117
  pry
87
- rake (~> 12.0)
88
- rspec (~> 3.9.0)
89
- rubocop (~> 0.91.0)
90
- sqlite3 (~> 1.4.0)
118
+ rake (~> 13.0)
119
+ rspec (~> 3.9)
120
+ rubocop (~> 1.0)
121
+ sqlite3 (>= 2.1)
91
122
 
92
123
  BUNDLED WITH
93
- 2.1.4
124
+ 2.6.7
data/Gemfile.rails6.0 ADDED
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "6.0.3.1"
6
+ gem "activerecord", "6.0.3.1"
7
+ gem "activemodel", "6.0.3.1"
8
+
9
+ # The 1.3.5 version of concurrent-ruby is causing an issue with rails.
10
+ # Once that issue is resolved we can unpin this and upgrade > 1.3.5
11
+ # See: https://github.com/rails/rails/issues/54271
12
+ gem "concurrent-ruby", "1.3.4"
13
+
14
+ # Specify your gem's dependencies in enumbler.gemspec
15
+ gemspec
16
+
17
+ # Specify any additional dependencies that are not in the gemspec
18
+ # but are needed for development or testing.
19
+
20
+ group :development, :test do
21
+ gem "database_cleaner-active_record", "~> 1.8.0"
22
+ gem "fuubar", "~> 2.5"
23
+ gem "pry"
24
+ gem "rake", "~> 12.0"
25
+ gem "rspec", "~> 3.9.0"
26
+ gem "rubocop", "~> 0.91.0", require: false
27
+ gem "sqlite3", "~> 1.6"
28
+ end
@@ -0,0 +1,99 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ enumbler (0.11.0)
5
+ activerecord (>= 6.0, < 9)
6
+ activesupport (>= 6.0, < 9)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (6.0.3.1)
12
+ activesupport (= 6.0.3.1)
13
+ activerecord (6.0.3.1)
14
+ activemodel (= 6.0.3.1)
15
+ activesupport (= 6.0.3.1)
16
+ activesupport (6.0.3.1)
17
+ concurrent-ruby (~> 1.0, >= 1.0.2)
18
+ i18n (>= 0.7, < 2)
19
+ minitest (~> 5.1)
20
+ tzinfo (~> 1.1)
21
+ zeitwerk (~> 2.2, >= 2.2.2)
22
+ ast (2.4.1)
23
+ coderay (1.1.2)
24
+ concurrent-ruby (1.3.4)
25
+ database_cleaner (1.8.5)
26
+ database_cleaner-active_record (1.8.0)
27
+ activerecord
28
+ database_cleaner (~> 1.8.0)
29
+ diff-lcs (1.3)
30
+ fuubar (2.5.0)
31
+ rspec-core (~> 3.0)
32
+ ruby-progressbar (~> 1.4)
33
+ i18n (1.14.7)
34
+ concurrent-ruby (~> 1.0)
35
+ method_source (1.0.0)
36
+ mini_portile2 (2.8.9)
37
+ minitest (5.25.5)
38
+ parallel (1.19.1)
39
+ parser (2.7.1.4)
40
+ ast (~> 2.4.1)
41
+ pry (0.13.1)
42
+ coderay (~> 1.1)
43
+ method_source (~> 1.0)
44
+ rainbow (3.0.0)
45
+ rake (12.3.3)
46
+ regexp_parser (1.7.1)
47
+ rexml (3.2.4)
48
+ rspec (3.9.0)
49
+ rspec-core (~> 3.9.0)
50
+ rspec-expectations (~> 3.9.0)
51
+ rspec-mocks (~> 3.9.0)
52
+ rspec-core (3.9.2)
53
+ rspec-support (~> 3.9.3)
54
+ rspec-expectations (3.9.2)
55
+ diff-lcs (>= 1.2.0, < 2.0)
56
+ rspec-support (~> 3.9.0)
57
+ rspec-mocks (3.9.1)
58
+ diff-lcs (>= 1.2.0, < 2.0)
59
+ rspec-support (~> 3.9.0)
60
+ rspec-support (3.9.3)
61
+ rubocop (0.91.0)
62
+ parallel (~> 1.10)
63
+ parser (>= 2.7.1.1)
64
+ rainbow (>= 2.2.2, < 4.0)
65
+ regexp_parser (>= 1.7)
66
+ rexml
67
+ rubocop-ast (>= 0.4.0, < 1.0)
68
+ ruby-progressbar (~> 1.7)
69
+ unicode-display_width (>= 1.4.0, < 2.0)
70
+ rubocop-ast (0.4.0)
71
+ parser (>= 2.7.1.4)
72
+ ruby-progressbar (1.10.1)
73
+ sqlite3 (1.7.3)
74
+ mini_portile2 (~> 2.8.0)
75
+ thread_safe (0.3.6)
76
+ tzinfo (1.2.11)
77
+ thread_safe (~> 0.1)
78
+ unicode-display_width (1.7.0)
79
+ zeitwerk (2.6.18)
80
+
81
+ PLATFORMS
82
+ ruby
83
+
84
+ DEPENDENCIES
85
+ activemodel (= 6.0.3.1)
86
+ activerecord (= 6.0.3.1)
87
+ activesupport (= 6.0.3.1)
88
+ concurrent-ruby (= 1.3.4)
89
+ database_cleaner-active_record (~> 1.8.0)
90
+ enumbler!
91
+ fuubar (~> 2.5)
92
+ pry
93
+ rake (~> 12.0)
94
+ rspec (~> 3.9.0)
95
+ rubocop (~> 0.91.0)
96
+ sqlite3 (~> 1.6)
97
+
98
+ BUNDLED WITH
99
+ 2.6.9
data/Gemfile.rails6.1 ADDED
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "6.1.7.10"
6
+ gem "activerecord", "6.1.7.10"
7
+ gem "activemodel", "6.1.7.10"
8
+
9
+ # The 1.3.5 version of concurrent-ruby is causing an issue with rails.
10
+ # Once that issue is resolved we can unpin this and upgrade > 1.3.5
11
+ # See: https://github.com/rails/rails/issues/54271
12
+ gem "concurrent-ruby", "1.3.4"
13
+
14
+ # Specify your gem's dependencies in enumbler.gemspec
15
+ gemspec
16
+
17
+ # Specify any additional dependencies that are not in the gemspec
18
+ # but are needed for development or testing.
19
+
20
+ group :development, :test do
21
+ gem "database_cleaner-active_record", "~> 1.8.0"
22
+ gem "fuubar", "~> 2.5"
23
+ gem "pry"
24
+ gem "rake", "~> 12.0"
25
+ gem "rspec", "~> 3.9.0"
26
+ gem "rubocop", "~> 0.91.0", require: false
27
+ gem "sqlite3", "~> 1.6"
28
+ end