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 +4 -4
- data/.github/workflows/ruby.yml +60 -33
- data/.rubocop.yml +10 -1
- data/.ruby-version +1 -0
- data/AGENTS.md +14 -0
- data/CLAUDE.md +55 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +92 -61
- data/Gemfile.rails6.0 +28 -0
- data/Gemfile.rails6.0.lock +99 -0
- data/Gemfile.rails6.1 +28 -0
- data/Gemfile.rails6.1.lock +100 -0
- data/Gemfile.rails7.0 +28 -0
- data/Gemfile.rails7.0.lock +98 -0
- data/Gemfile.rails7.1 +28 -0
- data/Gemfile.rails7.1.lock +118 -0
- data/Gemfile.rails7.2 +28 -0
- data/Gemfile.rails7.2.lock +116 -0
- data/Gemfile.rails8.0 +28 -0
- data/Gemfile.rails8.0.lock +114 -0
- data/README.md +56 -4
- data/bin/pre_commit_rubocop.rb +12 -3
- data/enumbler.gemspec +4 -11
- data/lib/enumbler/collection.rb +2 -2
- data/lib/enumbler/core_ext/symbol/case_equality_operator.rb +2 -2
- data/lib/enumbler/enabler.rb +27 -15
- data/lib/enumbler/version.rb +1 -1
- data/lib/enumbler.rb +23 -3
- metadata +28 -113
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e565cc926b8cca7f06e64cc90503f5965003a3e5c60d1c2a5cd689ea690c8215
|
|
4
|
+
data.tar.gz: e2cfef7c22ed8ce2d51d706802c79ce1fc0b4abe8b3268aa634400051f9970b1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 77c6de7fc4fbebc329e77ccee8ead1998a71e6539d45a218a1f018424a4a6e087869e0c04fc51d074f006fddfa32cf7e047e417e3b1c5706be822003029b432c
|
|
7
|
+
data.tar.gz: 8e30d49be482fc9fa3da561c134c93c8db1b8362f05c7dd83300e5e6db16b001c399382ed5c9fa3d96291ab232d4a28ac1d147bf8d7833294ece0ed98b3135e6
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -2,65 +2,92 @@ name: CI Matrix Testing
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
-
branches: [
|
|
6
|
-
tags:
|
|
7
|
-
- "*"
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
tags: ["*"]
|
|
8
7
|
pull_request:
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
37
|
+
- uses: actions/checkout@v4
|
|
22
38
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
39
|
+
- name: Set up Ruby
|
|
40
|
+
uses: ruby/setup-ruby@v1
|
|
41
|
+
with:
|
|
42
|
+
ruby-version: ${{ matrix.ruby }}
|
|
27
43
|
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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@
|
|
78
|
+
- uses: actions/checkout@v4
|
|
79
|
+
with:
|
|
80
|
+
persist-credentials: false
|
|
49
81
|
|
|
50
82
|
- name: Set up Ruby
|
|
51
|
-
uses:
|
|
83
|
+
uses: ruby/setup-ruby@v1
|
|
52
84
|
with:
|
|
53
|
-
ruby-version:
|
|
85
|
+
ruby-version: 3.4
|
|
86
|
+
|
|
87
|
+
- uses: rubygems/configure-rubygems-credentials@v2.1.0
|
|
54
88
|
|
|
55
|
-
- name:
|
|
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:
|
|
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.
|
|
5
|
-
activerecord (>=
|
|
6
|
-
activesupport (>=
|
|
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 (
|
|
12
|
-
activesupport (=
|
|
13
|
-
activerecord (
|
|
14
|
-
activemodel (=
|
|
15
|
-
activesupport (=
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
25
|
-
|
|
26
|
-
database_cleaner-active_record (
|
|
27
|
-
activerecord
|
|
28
|
-
database_cleaner (~>
|
|
29
|
-
|
|
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.
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
rspec (3.
|
|
48
|
-
rspec-core (~> 3.
|
|
49
|
-
rspec-expectations (~> 3.
|
|
50
|
-
rspec-mocks (~> 3.
|
|
51
|
-
rspec-core (3.
|
|
52
|
-
rspec-support (~> 3.
|
|
53
|
-
rspec-expectations (3.
|
|
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.
|
|
56
|
-
rspec-mocks (3.
|
|
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.
|
|
59
|
-
rspec-support (3.
|
|
60
|
-
rubocop (
|
|
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 (>=
|
|
85
|
+
parser (>= 3.3.0.2)
|
|
63
86
|
rainbow (>= 2.2.2, < 4.0)
|
|
64
|
-
regexp_parser (>=
|
|
65
|
-
|
|
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 (>=
|
|
69
|
-
rubocop-ast (
|
|
70
|
-
parser (>=
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
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 (~>
|
|
88
|
-
rspec (~> 3.9
|
|
89
|
-
rubocop (~>
|
|
90
|
-
sqlite3 (
|
|
118
|
+
rake (~> 13.0)
|
|
119
|
+
rspec (~> 3.9)
|
|
120
|
+
rubocop (~> 1.0)
|
|
121
|
+
sqlite3 (>= 2.1)
|
|
91
122
|
|
|
92
123
|
BUNDLED WITH
|
|
93
|
-
2.
|
|
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
|