Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Lint

on:
pull_request:
push:
branches:
- main

jobs:
lint:
name: Run RuboCop linters
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true

- name: Install dependencies
run: bundle install --jobs 4 --retry 3

- name: Check if Ruby files are formatted
run: bundle exec rake lint
28 changes: 28 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Test

on:
pull_request:
push:
branches:
- main

jobs:
lint:
name: Run RSpec tests
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: true

- name: Install dependencies
run: bundle install --jobs 4 --retry 3

- name: Run tests
run: bundle exec rake test
4 changes: 2 additions & 2 deletions .rspec
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
--format documentation
--color
--require spec_helper
--format Fuubar
--color
Comment thread
kinnell marked this conversation as resolved.
40 changes: 37 additions & 3 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,57 @@
AllCops:
TargetRubyVersion: 3.4
TargetRubyVersion: 2.7
NewCops: enable
DisplayCopNames: true
SuggestExtensions: false
Exclude:
- Gemfile

Gemspec/RequiredRubyVersion:
Enabled: false

Layout/EmptyLineBetweenDefs:
AllowAdjacentOneLineDefs: true

Layout/FirstArrayElementIndentation:
Enabled: false

Layout/FirstHashElementIndentation:
Enabled: false

Layout/LineLength:
Enabled: false

Metrics/AbcSize:
Enabled: false

Metrics/BlockLength:
Enabled: false

Metrics/ClassLength:
Enabled: false

Metrics/CyclomaticComplexity:
Enabled: false

Metrics/MethodLength:
Enabled: false

Metrics/ModuleLength:
Enabled: false

Naming/PredicateMethod:
Enabled: false

Style/AccessorGrouping:
Enabled: false

Style/Documentation:
Enabled: false

Style/RedundantBegin:
Enabled: false

Style/RegexpLiteral:
EnforcedStyle: percent_r

Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: comma

Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Changelog

## [0.0.1] - 2025-11-17
Comment thread
kinnell marked this conversation as resolved.

### Added

- Initial release of EnumFields gem
- Support for enum-like fields with metadata properties
- Array and Hash definition formats
- Automatic generation of:
- Class methods (`<accessor>s`, `<accessor>s_count`, `<accessor>_values`, `<accessor>_options`)
- Instance getter/setter methods (when accessor differs from column)
- Metadata accessor methods (`<accessor>_metadata`)
- Property accessor methods for all defined properties (`<accessor>_<property>`)
- Inquiry methods (`<key>_<accessor>?`)
- Scopes (`<key>_<accessor>`)
- Validations (inclusion with `allow_nil: true`)
- Custom column mapping support via `column:` option
- Dynamic property method generation for custom properties

[0.0.1]: https://github.com/kinnell/enum_fields/releases/tag/v0.0.1
14 changes: 10 additions & 4 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
# frozen_string_literal: true

source 'https://rubygems.org'

gemspec

group :development do
group :development, :test do
gem 'rake', '~> 13.0'
gem 'rubocop', '~> 1.70'
gem 'rspec', '~> 3.13'
gem 'rspec-core', '~> 3.13'
gem 'rspec-expectations', '~> 3.13'
gem 'rspec-mocks', '~> 3.13'
end

group :test do
gem 'rspec', '~> 3.9'
group :development do
gem 'fuubar'
gem 'rubocop', '~> 1.70'
end
Loading