symbolized_enum 0.2.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c089b2dcba0df33f1e1d8539e9b0a6a425d2b3f0937f954ad17962603d9ecd2
4
- data.tar.gz: b850d77014ef19831201f527930f8eab90f483866e6c96cb17127b129f4a26bb
3
+ metadata.gz: 1d058fd1165c523e96476fc69d24fe5928298bee3982b12bfaecc2cb1b7b0b51
4
+ data.tar.gz: b87b7645b5f40db92b58ce98173f2b2a39a16567a4a373be578a3f7660e5b441
5
5
  SHA512:
6
- metadata.gz: 580ec2c80e547ec07aca508678ddf64959c75585444b16088302fbd9fa8df770a8bb825dfa8627e6ba48808f991a549c03f70f12060f0ad58802a8e349b31f8f
7
- data.tar.gz: 332d5a7d78de72429032b91084b1a08d0ff640059069292f5f27d3984beb845fb1c2e4fa83e22c56d566a8f0ff8b684465e73c95357d6c6456e1cc57b882c2e9
6
+ metadata.gz: b4251dd351af516918797a5b95baec8d8cf9060fc44cbb8b0d5a8e6144976cd6a86a19776c35882f76a3233cffc9e2c0a97fea8235c54786a3c4ad3cbf145fcd
7
+ data.tar.gz: 3f8a39a8dc158b7fc6461c955263b7b0df2ebcde901b5f64101ea6e06fbdb942bc4fa4e9b51bacdcbe06028f2c7830f19e7239aa569cb1384d2e8d75a18d4e76
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.7
3
3
 
4
4
  Style/WordArray:
5
5
  EnforcedStyle: brackets
@@ -35,3 +35,9 @@ Metrics/AbcSize:
35
35
 
36
36
  Metrics/MethodLength:
37
37
  Enabled: false
38
+
39
+ Metrics/PerceivedComplexity:
40
+ Enabled: false
41
+
42
+ Metrics/CyclomaticComplexity:
43
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,21 +1,13 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  gemfile:
4
- - gemfiles/rails_5.0.gemfile
5
- - gemfiles/rails_5.1.gemfile
6
- - gemfiles/rails_5.2.gemfile
7
4
  - gemfiles/rails_6.0.gemfile
5
+ - gemfiles/rails_6.1.gemfile
6
+ - gemfiles/rails_7.0.gemfile
8
7
  rvm:
9
- - 2.3.8
10
- - 2.4.5
11
- - 2.5.3
12
- - 2.6.0
8
+ - 2.7.5
9
+ - 3.0.3
10
+ - 3.1.0
13
11
  script:
14
12
  - bundle exec rspec
15
13
  - bundle exec rubocop
16
- matrix:
17
- exclude:
18
- - rvm: 2.3.8
19
- gemfile: gemfiles/rails_6.0.gemfile
20
- - rvm: 2.4.5
21
- gemfile: gemfiles/rails_6.0.gemfile
data/Appraisals CHANGED
@@ -1,21 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- appraise 'rails-5.0' do
4
- gem 'activerecord', '5.0.7'
5
- gem 'activesupport', '5.0.7'
6
- end
7
-
8
- appraise 'rails-5.1' do
9
- gem 'activerecord', '5.1.6'
10
- gem 'activesupport', '5.1.6'
3
+ appraise 'rails-6.0' do
4
+ gem 'activerecord', '6.0.3.3'
5
+ gem 'activesupport', '6.0.3.3'
11
6
  end
12
7
 
13
- appraise 'rails-5.2' do
14
- gem 'activerecord', '5.2.1'
15
- gem 'activesupport', '5.2.1'
8
+ appraise 'rails-6.1' do
9
+ gem 'activerecord', '6.1.0'
10
+ gem 'activemodel', '6.1.0'
16
11
  end
17
12
 
18
- appraise 'rails-6.0' do
19
- gem 'activerecord', '6.0.0.beta1'
20
- gem 'activesupport', '6.0.0.beta1'
13
+ appraise 'rails-7.0' do
14
+ gem 'activerecord', '7.0.2'
15
+ gem 'activesupport', '7.0.2'
21
16
  end
data/CHANGELOG.md CHANGED
@@ -1,9 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ### Unreleased
3
+ ## 0.5.0
4
+ - Support rails 7.0 and ruby 3.1
5
+ - Drop support rails < 6.0
6
+ - Drop support ruby < 2.7
4
7
 
5
- ### 0.2.0
8
+ ## 0.4.0
9
+ - Support rails 6.1
10
+ - Drop support for ruby < 2.5
11
+
12
+ ## 0.3.0
13
+ - Add `default` option to `symbolized_enum` that is passed through to ActiveRecord `attribute`
14
+
15
+ ## 0.2.0
6
16
  - Support rails 6.0
7
17
 
8
- ### 0.1.0
18
+ ## 0.1.0
9
19
  - Initial Implementation
data/README.md CHANGED
@@ -37,6 +37,18 @@ class Post < ApplicationRecord
37
37
  symbolized_enum :post_type, in: [:informative, :rant]
38
38
  end
39
39
 
40
+ # Default value
41
+ class Post < ApplicationRecord
42
+ include SymbolizedEnum
43
+
44
+ # A database column 'post_type' can be used as a symbolized enumeration by:
45
+ symbolized_enum :post_type, default: :informative, in: [:informative, :rant]
46
+ end
47
+
48
+ post = Post.new
49
+ post.post_type
50
+ => :informative
51
+
40
52
  # Optional predicate methods
41
53
  class Post < ApplicationRecord
42
54
  include SymbolizedEnum
@@ -4,7 +4,7 @@
4
4
 
5
5
  source 'https://rubygems.org'
6
6
 
7
- gem 'activerecord', '6.0.0.beta1'
8
- gem 'activesupport', '6.0.0.beta1'
7
+ gem 'activerecord', '6.0.3.3'
8
+ gem 'activesupport', '6.0.3.3'
9
9
 
10
10
  gemspec path: '../'
@@ -4,7 +4,7 @@
4
4
 
5
5
  source 'https://rubygems.org'
6
6
 
7
- gem 'activerecord', '5.0.7'
8
- gem 'activesupport', '5.0.7'
7
+ gem 'activemodel', '6.1.0'
8
+ gem 'activerecord', '6.1.0'
9
9
 
10
10
  gemspec path: '../'
@@ -4,7 +4,7 @@
4
4
 
5
5
  source 'https://rubygems.org'
6
6
 
7
- gem 'activerecord', '5.1.6'
8
- gem 'activesupport', '5.1.6'
7
+ gem 'activerecord', '7.0.2'
8
+ gem 'activesupport', '7.0.2'
9
9
 
10
10
  gemspec path: '../'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SymbolizedEnum
4
- VERSION = '0.2.0'
4
+ VERSION = '0.5.0'
5
5
  end
@@ -9,6 +9,8 @@ module SymbolizedEnum
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  module ClassMethods
12
+ NO_DEFAULT_PROVIDED = Object.new # :nodoc:
13
+
12
14
  # @param [String, Symbol] attr_name Activerecord attribute to treat as a symbol
13
15
  # @param kwargs [Boolean] :predicates (false) Generate boolean methods for each enum value.
14
16
  # This must be true for any of the other predicate options to take effect
@@ -18,13 +20,20 @@ module SymbolizedEnum
18
20
  # suffixed with the name of the attribute
19
21
  # @param kwargs [Proc, nil] :predicate_name_generator (nil) Generate boolean methods for each enum value by calling
20
22
  # the proc with attribute name and enum value
23
+ # @param kwargs [Object, nil] :default This value is passed to the activerecord attribute default option
21
24
  # @param [Hash] **validates_inclusion_of_options Any options accepted by activerecord's validates_inclusion_of
22
25
  def symbolized_enum(attr_name, predicates: false,
23
26
  prefixed_predicate: false,
24
27
  suffixed_predicate: false,
25
28
  predicate_name_generator: nil,
29
+ default: NO_DEFAULT_PROVIDED,
26
30
  **validates_inclusion_of_options)
27
- attribute(attr_name, :symbol)
31
+ if default == NO_DEFAULT_PROVIDED
32
+ attribute(attr_name, :symbol)
33
+ else
34
+ attribute(attr_name, :symbol, default: default)
35
+ end
36
+
28
37
  validates_inclusion_of(attr_name, validates_inclusion_of_options)
29
38
 
30
39
  return unless predicates
@@ -28,18 +28,18 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
30
 
31
- spec.required_ruby_version = '>= 2.3'
31
+ spec.required_ruby_version = '>= 2.7'
32
32
 
33
- spec.add_dependency 'activerecord', '>= 5.0', '< 6.1'
34
- spec.add_dependency 'activerecord-type-symbol', '~> 0.3.0'
35
- spec.add_dependency 'activesupport', '>= 5.0', '< 6.1'
33
+ spec.add_dependency 'activerecord', '>= 5.0', '< 7.1'
34
+ spec.add_dependency 'activerecord-type-symbol', '~> 0.5.0'
35
+ spec.add_dependency 'activesupport', '>= 5.0', '< 7.1'
36
36
 
37
37
  spec.add_development_dependency 'appraisal'
38
38
  spec.add_development_dependency 'bundler', '>= 1.3.0'
39
39
  spec.add_development_dependency 'database_cleaner'
40
- spec.add_development_dependency 'rake', '~> 10.0'
40
+ spec.add_development_dependency 'rake', '>= 12.3.3'
41
41
  spec.add_development_dependency 'rspec', '~> 3.0'
42
42
  spec.add_development_dependency 'rubocop'
43
- spec.add_development_dependency 'sqlite3'
43
+ spec.add_development_dependency 'sqlite3', '~> 1.3'
44
44
  spec.add_development_dependency 'with_model'
45
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: symbolized_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will Leonard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2022-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,21 +29,21 @@ dependencies:
29
29
  version: '5.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activerecord-type-symbol
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.3.0
39
+ version: 0.5.0
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 0.3.0
46
+ version: 0.5.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +53,7 @@ dependencies:
53
53
  version: '5.0'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '6.1'
56
+ version: '7.1'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '5.0'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '6.1'
66
+ version: '7.1'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: appraisal
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -110,16 +110,16 @@ dependencies:
110
110
  name: rake
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - "~>"
113
+ - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: '10.0'
115
+ version: 12.3.3
116
116
  type: :development
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - "~>"
120
+ - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: '10.0'
122
+ version: 12.3.3
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: rspec
125
125
  requirement: !ruby/object:Gem::Requirement
@@ -152,16 +152,16 @@ dependencies:
152
152
  name: sqlite3
153
153
  requirement: !ruby/object:Gem::Requirement
154
154
  requirements:
155
- - - ">="
155
+ - - "~>"
156
156
  - !ruby/object:Gem::Version
157
- version: '0'
157
+ version: '1.3'
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - ">="
162
+ - - "~>"
163
163
  - !ruby/object:Gem::Version
164
- version: '0'
164
+ version: '1.3'
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: with_model
167
167
  requirement: !ruby/object:Gem::Requirement
@@ -196,10 +196,9 @@ files:
196
196
  - Rakefile
197
197
  - bin/console
198
198
  - bin/setup
199
- - gemfiles/rails_5.0.gemfile
200
- - gemfiles/rails_5.1.gemfile
201
- - gemfiles/rails_5.2.gemfile
202
199
  - gemfiles/rails_6.0.gemfile
200
+ - gemfiles/rails_6.1.gemfile
201
+ - gemfiles/rails_7.0.gemfile
203
202
  - lib/symbolized_enum.rb
204
203
  - lib/symbolized_enum/version.rb
205
204
  - symbolized_enum.gemspec
@@ -219,15 +218,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
218
  requirements:
220
219
  - - ">="
221
220
  - !ruby/object:Gem::Version
222
- version: '2.3'
221
+ version: '2.7'
223
222
  required_rubygems_version: !ruby/object:Gem::Requirement
224
223
  requirements:
225
224
  - - ">="
226
225
  - !ruby/object:Gem::Version
227
226
  version: '0'
228
227
  requirements: []
229
- rubyforge_project:
230
- rubygems_version: 2.7.6
228
+ rubygems_version: 3.1.2
231
229
  signing_key:
232
230
  specification_version: 4
233
231
  summary: Symbolized enum for activerecord
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This file was generated by Appraisal
4
-
5
- source 'https://rubygems.org'
6
-
7
- gem 'activerecord', '5.2.1'
8
- gem 'activesupport', '5.2.1'
9
-
10
- gemspec path: '../'