enumerate_it 3.2.0 → 3.2.3

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: 71119e1fa6ccbb6d77ba404a1009c31a3174de08fb540bef2c98550bd6062a28
4
- data.tar.gz: 4247b33c271222ca52293ae9c5ef55f8d4f9d9c8af28dfe198a23ef64ca4a6d2
3
+ metadata.gz: b6622befbb458a41cdff981657448f218c412f1960189d1c103a10517ae46554
4
+ data.tar.gz: 94d6ea1c147fe0fdc4e138f8370fe397ff4152232c6bcb9f93fef4f903f9bce5
5
5
  SHA512:
6
- metadata.gz: 696c8511a033407677a8cced966bb6bac68b56e0abd0b97b2d96f2400a71165e57f5685aa288ab25a7f7938682562a24933301126197e0ec491fbcbfbe1f717a
7
- data.tar.gz: 59ddf99c1c9358908abc21fdc7b4fcd42513c8326ffdae8f54fba0d06ae4738720ef56827e0abdfa0041cbfe2cbab870fb1950905d9b3763095d02ef5736fd1a
6
+ metadata.gz: 142e44a95ba9b40c88d061c890243d3e1f742bb06d542308df63a48fbf5c664df641d432ede82d0b428b4bfd940188c410dea5fd1aafb2db607a4557a6c8acb4
7
+ data.tar.gz: 7eef4802537e07ec31e001c3c8b72cd17484916897a51b352f920b4b9870c806fc42bec0af353b007d12727b03fb70306c39d82fb1970dcc4a2f77f0b2e85a9f
@@ -0,0 +1,65 @@
1
+ name: CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ fail-fast: false
9
+
10
+ matrix:
11
+ ruby:
12
+ - 2.5
13
+ - 2.6
14
+ - 2.7
15
+ - 3.0
16
+ - 3.1
17
+ gemfile:
18
+ - gemfiles/rails_5.0.gemfile
19
+ - gemfiles/rails_5.1.gemfile
20
+ - gemfiles/rails_5.2.gemfile
21
+ - gemfiles/rails_6.0.gemfile
22
+ - gemfiles/rails_6.1.gemfile
23
+ - gemfiles/rails_7.0.gemfile
24
+ exclude:
25
+ # Rails < 6 does not support Ruby 3+:
26
+ # https://github.com/rails/rails/issues/40938#issuecomment-751357907
27
+ - ruby: 3.0
28
+ gemfile: gemfiles/rails_5.0.gemfile
29
+ - ruby: 3.0
30
+ gemfile: gemfiles/rails_5.1.gemfile
31
+ - ruby: 3.0
32
+ gemfile: gemfiles/rails_5.2.gemfile
33
+ - ruby: 3.1
34
+ gemfile: gemfiles/rails_5.0.gemfile
35
+ - ruby: 3.1
36
+ gemfile: gemfiles/rails_5.1.gemfile
37
+ - ruby: 3.1
38
+ gemfile: gemfiles/rails_5.2.gemfile
39
+
40
+ # Rails 7.0 requires Ruby 2.7+
41
+ - ruby: 2.5
42
+ gemfile: gemfiles/rails_7.0.gemfile
43
+ - ruby: 2.6
44
+ gemfile: gemfiles/rails_7.0.gemfile
45
+
46
+ env:
47
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
48
+
49
+ runs-on: ubuntu-latest
50
+
51
+ steps:
52
+ - name: Checkout
53
+ uses: actions/checkout@v3
54
+ - name: Set up Ruby
55
+ uses: ruby/setup-ruby@v1
56
+ with:
57
+ ruby-version: ${{ matrix.ruby }}
58
+ bundler-cache: true
59
+
60
+ - name: Rubocop
61
+ if: ${{ matrix.ruby == '3.1' }}
62
+ run: "bundle exec rubocop"
63
+
64
+ - name: Tests
65
+ run: bundle exec rake spec
data/Appraisals CHANGED
@@ -2,9 +2,9 @@ require 'net/http'
2
2
  require 'json'
3
3
 
4
4
  rails_versions = JSON.parse(Net::HTTP.get(URI('https://rubygems.org/api/v1/versions/rails.json')))
5
- .group_by { |version| version['number'] }.keys.reject { |key| key =~ /rc|racecar|beta|pre/ }
5
+ .group_by { |version| version['number'] }.keys.grep_v(/rc|racecar|beta|pre/)
6
6
 
7
- %w[5.0 5.1 5.2 6.0].each do |version|
7
+ %w[5.0 5.1 5.2 6.0 6.1 7.0].each do |version|
8
8
  appraise "rails_#{version}" do
9
9
  current_version = rails_versions
10
10
  .select { |key| key.match(/\A#{version}/) }
data/CHANGELOG.md CHANGED
@@ -1 +1,4 @@
1
- Changes are maintained under [Releases](https://github.com/lucascaton/enumerate_it/releases).
1
+ # CHANGELOG
2
+
3
+ Changes follows the [Semantic Versioning](https://semver.org/) specification and
4
+ you can see them on the [releases page](../../releases).
data/Gemfile.lock CHANGED
@@ -1,77 +1,75 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- enumerate_it (3.2.0)
4
+ enumerate_it (3.2.3)
5
5
  activesupport (>= 5.0.7.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (6.0.3.4)
10
+ activesupport (7.0.3.1)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (>= 0.7, < 2)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
15
- zeitwerk (~> 2.2, >= 2.2.2)
16
- appraisal (2.3.0)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ appraisal (2.4.1)
17
16
  bundler
18
17
  rake
19
18
  thor (>= 0.14.0)
20
- ast (2.4.1)
19
+ ast (2.4.2)
21
20
  coderay (1.1.3)
22
- concurrent-ruby (1.1.7)
23
- diff-lcs (1.4.4)
24
- i18n (1.8.5)
21
+ concurrent-ruby (1.1.10)
22
+ diff-lcs (1.5.0)
23
+ i18n (1.12.0)
25
24
  concurrent-ruby (~> 1.0)
25
+ json (2.6.2)
26
26
  method_source (1.0.0)
27
- minitest (5.14.2)
28
- parallel (1.20.1)
29
- parser (2.7.2.0)
27
+ minitest (5.16.3)
28
+ parallel (1.22.1)
29
+ parser (3.1.2.1)
30
30
  ast (~> 2.4.1)
31
- pry (0.13.1)
31
+ pry (0.14.1)
32
32
  coderay (~> 1.1)
33
33
  method_source (~> 1.0)
34
- rainbow (3.0.0)
35
- rake (13.0.1)
36
- regexp_parser (2.0.0)
37
- rexml (3.2.4)
38
- rspec (3.10.0)
39
- rspec-core (~> 3.10.0)
40
- rspec-expectations (~> 3.10.0)
41
- rspec-mocks (~> 3.10.0)
42
- rspec-core (3.10.0)
43
- rspec-support (~> 3.10.0)
44
- rspec-expectations (3.10.0)
34
+ rainbow (3.1.1)
35
+ rake (13.0.6)
36
+ regexp_parser (2.5.0)
37
+ rexml (3.2.5)
38
+ rspec (3.11.0)
39
+ rspec-core (~> 3.11.0)
40
+ rspec-expectations (~> 3.11.0)
41
+ rspec-mocks (~> 3.11.0)
42
+ rspec-core (3.11.0)
43
+ rspec-support (~> 3.11.0)
44
+ rspec-expectations (3.11.0)
45
45
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.10.0)
47
- rspec-mocks (3.10.0)
46
+ rspec-support (~> 3.11.0)
47
+ rspec-mocks (3.11.1)
48
48
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.10.0)
50
- rspec-support (3.10.0)
51
- rubocop (1.5.2)
49
+ rspec-support (~> 3.11.0)
50
+ rspec-support (3.11.0)
51
+ rubocop (1.36.0)
52
+ json (~> 2.3)
52
53
  parallel (~> 1.10)
53
- parser (>= 2.7.1.5)
54
+ parser (>= 3.1.2.1)
54
55
  rainbow (>= 2.2.2, < 4.0)
55
56
  regexp_parser (>= 1.8, < 3.0)
56
- rexml
57
- rubocop-ast (>= 1.2.0, < 2.0)
57
+ rexml (>= 3.2.5, < 4.0)
58
+ rubocop-ast (>= 1.20.1, < 2.0)
58
59
  ruby-progressbar (~> 1.7)
59
- unicode-display_width (>= 1.4.0, < 2.0)
60
- rubocop-ast (1.3.0)
61
- parser (>= 2.7.1.5)
62
- rubocop-rake (0.5.1)
63
- rubocop
64
- rubocop-rspec (2.0.1)
60
+ unicode-display_width (>= 1.4.0, < 3.0)
61
+ rubocop-ast (1.21.0)
62
+ parser (>= 3.1.1.0)
63
+ rubocop-rake (0.6.0)
65
64
  rubocop (~> 1.0)
66
- rubocop-ast (>= 1.1.0)
67
- ruby-progressbar (1.10.1)
68
- thor (1.0.1)
69
- thread_safe (0.3.6)
70
- tzinfo (1.2.8)
71
- thread_safe (~> 0.1)
72
- unicode-display_width (1.7.0)
65
+ rubocop-rspec (2.12.1)
66
+ rubocop (~> 1.31)
67
+ ruby-progressbar (1.11.0)
68
+ thor (1.2.1)
69
+ tzinfo (2.0.5)
70
+ concurrent-ruby (~> 1.0)
71
+ unicode-display_width (2.2.0)
73
72
  wwtd (1.4.1)
74
- zeitwerk (2.4.2)
75
73
 
76
74
  PLATFORMS
77
75
  ruby
@@ -89,4 +87,4 @@ DEPENDENCIES
89
87
  wwtd
90
88
 
91
89
  BUNDLED WITH
92
- 2.1.4
90
+ 2.3.21
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Enumerations for Ruby with some magic powers! 🎩
4
4
 
5
- [![Build Status](https://travis-ci.org/lucascaton/enumerate_it.svg?branch=master)](https://travis-ci.org/lucascaton/enumerate_it)
5
+ [![CI Status](https://github.com/lucascaton/enumerate_it/workflows/CI/badge.svg)](https://github.com/lucascaton/enumerate_it/actions?query=workflow%3ACI)
6
6
  [![Gem Version](https://badge.fury.io/rb/enumerate_it.svg)](https://rubygems.org/gems/enumerate_it)
7
7
  [![Code Climate](https://codeclimate.com/github/lucascaton/enumerate_it/badges/gpa.svg)](https://codeclimate.com/github/lucascaton/enumerate_it)
8
8
  [![Downloads](https://img.shields.io/gem/dt/enumerate_it.svg)](https://rubygems.org/gems/enumerate_it)
@@ -407,7 +407,7 @@ You sure can! 😄
407
407
  * **Rails** `5.0+`
408
408
 
409
409
  All versions are tested via
410
- [Travis](https://github.com/lucascaton/enumerate_it/blob/master/.travis.yml).
410
+ [GitHub Actions](https://github.com/lucascaton/enumerate_it/blob/HEAD/.github/workflows/ci.yml).
411
411
 
412
412
  #### Can I set a value to always be at the end of a sorted list?
413
413
 
@@ -521,18 +521,19 @@ You can also sort it by its **value** using `sort_by :value`.
521
521
 
522
522
  ## Changelog
523
523
 
524
- Changes are maintained under [Releases page](https://github.com/lucascaton/enumerate_it/releases).
524
+ Changes follows the [Semantic Versioning](https://semver.org/) specification and
525
+ you can see them on the [releases page](../../releases).
525
526
 
526
527
  ## Note on Patches/Pull Requests
527
528
 
528
529
  * Fork the project.
529
530
  * Make your feature addition or bug fix.
530
531
  * Add tests for it. This is important so we don't break it in a future version unintentionally.
531
- * [Optional] Run the tests agaist a specific Gemfile: `$ bundle exec appraisal rails_6.0 rake spec`.
532
+ * [Optional] Run the tests agaist a specific Gemfile: `$ bundle exec appraisal rails_7.0 rake spec`.
532
533
  * Run the tests agaist all supported versions: `$ bundle exec rake` (or `$ bundle exec wwtd`)
533
534
  * Commit, but please do not mess with `Rakefile`, version, or history.
534
535
  * Send a Pull Request. Bonus points for topic branches.
535
536
 
536
537
  ## Copyright
537
538
 
538
- Copyright (c) 2010-2020 Cássio Marques and Lucas Caton. See `LICENSE` file for details.
539
+ Copyright (c) 2010-2021 Cássio Marques and Lucas Caton. See `LICENSE` file for details.
data/enumerate_it.gemspec CHANGED
@@ -9,7 +9,6 @@ Gem::Specification.new do |gem|
9
9
  gem.license = 'MIT'
10
10
 
11
11
  gem.files = `git ls-files`.split("\n")
12
- gem.test_files = `git ls-files -- spec/*`.split("\n")
13
12
  gem.name = 'enumerate_it'
14
13
  gem.require_paths = ['lib']
15
14
  gem.version = EnumerateIt::VERSION
@@ -17,7 +16,8 @@ Gem::Specification.new do |gem|
17
16
 
18
17
  gem.metadata = {
19
18
  'source_code_uri' => 'https://github.com/lucascaton/enumerate_it',
20
- 'changelog_uri' => 'https://github.com/lucascaton/enumerate_it/releases'
19
+ 'changelog_uri' => 'https://github.com/lucascaton/enumerate_it/releases',
20
+ 'rubygems_mfa_required' => 'true'
21
21
  }
22
22
 
23
23
  gem.add_dependency 'activesupport', '>= 5.0.7.2'
@@ -2,8 +2,8 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- gem 'activerecord', '~> 5.2.4.4'
6
- gem 'activesupport', '~> 5.2.4.4'
5
+ gem 'activerecord', '~> 5.2.8.1'
6
+ gem 'activesupport', '~> 5.2.8.1'
7
7
  gem 'sqlite3', '~> 1.4.2'
8
8
 
9
9
  gemspec path: '../'
@@ -2,8 +2,8 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
- gem 'activerecord', '~> 6.0.3.4'
6
- gem 'activesupport', '~> 6.0.3.4'
5
+ gem 'activerecord', '~> 6.0.5.1'
6
+ gem 'activesupport', '~> 6.0.5.1'
7
7
  gem 'sqlite3', '~> 1.4.2'
8
8
 
9
9
  gemspec path: '../'
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'activerecord', '~> 6.1.6.1'
6
+ gem 'activesupport', '~> 6.1.6.1'
7
+ gem 'sqlite3', '~> 1.4.2'
8
+
9
+ gemspec path: '../'
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gem 'activerecord', '~> 7.0.3.1'
6
+ gem 'activesupport', '~> 7.0.3.1'
7
+ gem 'sqlite3', '~> 1.4.2'
8
+
9
+ gemspec path: '../'
@@ -69,7 +69,7 @@ module EnumerateIt
69
69
  end
70
70
 
71
71
  def value_for(value)
72
- const_get(value.to_sym)
72
+ const_get(value.to_sym, false)
73
73
  rescue NameError
74
74
  nil
75
75
  end
@@ -1,3 +1,3 @@
1
1
  module EnumerateIt
2
- VERSION = '3.2.0'.freeze
2
+ VERSION = '3.2.3'.freeze
3
3
  end
@@ -1,5 +1,5 @@
1
1
  Description:
2
- Creates an EnumerateIt class an its locale file
2
+ Creates an EnumerateIt class and its locale file
3
3
 
4
4
  Example:
5
5
  rails g enumerate_it:enum CivilStatus single married divorced widower concubinage separated stable
@@ -11,5 +11,5 @@ Example:
11
11
  rails g enumerate_it:enum CivilStatus single:1 married:2 divorced:3 widower:4
12
12
 
13
13
  This will create:
14
- app/enumerations/civil_status.rb with `associate_values :single => 1, :married => 2, :divorced => 2, :widower => 4`
14
+ app/enumerations/civil_status.rb with `associate_values single: 1, married: 2, divorced: 3, widower: 4`
15
15
  config/locales/civil_status.yml
@@ -3,7 +3,7 @@ module EnumerateIt
3
3
  class EnumGenerator < Rails::Generators::NamedBase
4
4
  source_root File.expand_path('templates', __dir__)
5
5
 
6
- argument :attributes, type: 'array'
6
+ argument :attributes, type: :hash
7
7
 
8
8
  class_option :singular, type: 'string', desc: 'Singular name for i18n'
9
9
 
@@ -1,6 +1,6 @@
1
1
  <%= default_lang %>:
2
2
  enumerations:
3
3
  <%= singular_name %>:
4
- <%- locale_fields.each do |name| -%>
5
- <%= name %>: '<%= name.capitalize %>'
4
+ <%- locale_fields.each do |name, _| -%>
5
+ <%= name %>: '<%= name.humanize %>'
6
6
  <%- end -%>
@@ -178,6 +178,12 @@ describe EnumerateIt::Base do
178
178
  expect(TestEnumeration.value_for('THIS_IS_WRONG')).to be_nil
179
179
  end
180
180
  end
181
+
182
+ context 'when a constant named after the received value exists as an ancestor' do
183
+ it 'returns nil' do
184
+ expect(TestEnumeration.value_for('Module')).to be_nil
185
+ end
186
+ end
181
187
  end
182
188
 
183
189
  describe '.value_from_key' do
@@ -302,12 +308,12 @@ describe EnumerateIt::Base do
302
308
  end
303
309
 
304
310
  it 'passes the given options to the validation method' do
305
- expect(active_record_stub_class)
306
- .to receive(:validates_presence_of).with(:bla, if: :some_method)
307
-
308
311
  active_record_stub_class.class_eval do
309
312
  has_enumeration_for :bla, with: TestEnumeration, required: { if: :some_method }
310
313
  end
314
+
315
+ expect(active_record_stub_class)
316
+ .to have_received(:validates_presence_of).with(:bla, if: :some_method)
311
317
  end
312
318
 
313
319
  it 'does not require the attribute by default' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerate_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cássio Marques
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-12-07 00:00:00.000000000 Z
12
+ date: 2022-09-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -157,10 +157,10 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
+ - ".github/workflows/ci.yml"
160
161
  - ".gitignore"
161
162
  - ".rspec"
162
163
  - ".rubocop.yml"
163
- - ".travis.yml"
164
164
  - Appraisals
165
165
  - CHANGELOG.md
166
166
  - Gemfile
@@ -173,6 +173,8 @@ files:
173
173
  - gemfiles/rails_5.1.gemfile
174
174
  - gemfiles/rails_5.2.gemfile
175
175
  - gemfiles/rails_6.0.gemfile
176
+ - gemfiles/rails_6.1.gemfile
177
+ - gemfiles/rails_7.0.gemfile
176
178
  - lib/enumerate_it.rb
177
179
  - lib/enumerate_it/base.rb
178
180
  - lib/enumerate_it/class_methods.rb
@@ -193,6 +195,7 @@ licenses:
193
195
  metadata:
194
196
  source_code_uri: https://github.com/lucascaton/enumerate_it
195
197
  changelog_uri: https://github.com/lucascaton/enumerate_it/releases
198
+ rubygems_mfa_required: 'true'
196
199
  post_install_message:
197
200
  rdoc_options: []
198
201
  require_paths:
@@ -208,14 +211,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
211
  - !ruby/object:Gem::Version
209
212
  version: '0'
210
213
  requirements: []
211
- rubygems_version: 3.1.4
214
+ rubygems_version: 3.3.7
212
215
  signing_key:
213
216
  specification_version: 4
214
217
  summary: Ruby Enumerations
215
- test_files:
216
- - spec/enumerate_it/base_spec.rb
217
- - spec/enumerate_it_spec.rb
218
- - spec/i18n/en.yml
219
- - spec/i18n/pt.yml
220
- - spec/spec_helper.rb
221
- - spec/support/test_classes.rb
218
+ test_files: []
data/.travis.yml DELETED
@@ -1,24 +0,0 @@
1
- language: ruby
2
-
3
- sudo: false
4
-
5
- cache: bundler
6
-
7
- script:
8
- - "ruby -e \"RUBY_VERSION == '2.7.2' ? system('bundle exec rubocop') : exit(0)\""
9
- - bundle exec rake spec
10
-
11
- rvm:
12
- - 2.5.8
13
- - 2.6.6
14
- - 2.7.2
15
-
16
- gemfile:
17
- - gemfiles/rails_5.0.gemfile
18
- - gemfiles/rails_5.1.gemfile
19
- - gemfiles/rails_5.2.gemfile
20
- - gemfiles/rails_6.0.gemfile
21
-
22
- addons:
23
- code_climate:
24
- repo_token: 60e4a18e2a4bc86a98f92847f16756876c13d1e772058a9b3296643b04a697d7