enumbler 0.9.2 → 0.10.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.
@@ -7,6 +7,13 @@ module Enumbler
7
7
  module Enabler
8
8
  extend ActiveSupport::Concern
9
9
 
10
+ # This idea sourced lovingly from ActiveRecord::Enum
11
+ ENUMBLER_CONFLICT_MESSAGE = <<~TEXT
12
+ You tried to define the enumble :%<enum>s on the model %<klass>s, but
13
+ this will generate a %<type>s method `%<method>s`, which is already defined
14
+ by %<source>s.
15
+ TEXT
16
+
10
17
  # The Enumble definition that this record defined.
11
18
  # @return [Enumbler::Enumble]
12
19
  def enumble
@@ -39,7 +46,7 @@ module Enumbler
39
46
 
40
47
  def to_enumble_attribute(attribute)
41
48
  enumble = self.class.find_enumble(id)
42
- return enumble.send(attribute) if enumble.present?
49
+ enumble.send(attribute) if enumble.present?
43
50
  end
44
51
 
45
52
  # These ClassMethods can be included in any model that you wish to
@@ -104,7 +111,7 @@ module Enumbler
104
111
 
105
112
  # By default, the Enumbler is expecting a table with an underlying column
106
113
  # named `label` that represents the enum in the database. You can change
107
- # this by calling `enumber_label_column_name` before you `enumble`!
114
+ # this by calling `enumlber_label_column_name` before you `enumble`!
108
115
  #
109
116
  # ActiveRecord::Schema.define do
110
117
  # create_table :feelings, force: true do |t|
@@ -407,13 +414,6 @@ module Enumbler
407
414
  end
408
415
  end
409
416
 
410
- # This idea sourced lovingly from ActiveRecord::Enum
411
- ENUMBLER_CONFLICT_MESSAGE = <<~TEXT.squish
412
- You tried to define the enumble :%<enum>s on the model %<klass>s, but
413
- this will generate a %<type>s method `%<method>s`, which is already defined
414
- by %<source>s.
415
- TEXT
416
-
417
417
  def detect_enumbler_conflict(enumble_name, method_name, klass_method: false)
418
418
  if klass_method && dangerous_class_method?(method_name)
419
419
  raise_conflict_error(enumble_name, method_name, type: "class")
@@ -452,17 +452,25 @@ module Enumbler
452
452
 
453
453
  return if unsupported_attrs.blank?
454
454
 
455
- ActiveRecord::Migration.check_pending!
455
+ # The method .check_all_pending! was introduced in Rails 7.1
456
+ if ActiveRecord::Migration.respond_to?(:check_all_pending!)
457
+ ActiveRecord::Migration.check_all_pending!
458
+ else
459
+ ActiveRecord::Migration.check_pending!
460
+ end
456
461
 
457
462
  raise Enumbler::Error,
458
463
  "The model #{self} does not support the attribute(s): #{unsupported_attrs.keys.map(&:to_s).to_sentence}"
459
464
  rescue ActiveRecord::PendingMigrationError
460
- warn "[Enumbler Warning] => The model #{self} does not currently support the attribute(s): #{unsupported_attrs.keys.map(&:to_s).to_sentence}." \
461
- " You have a pending migration which hopefully would remedy this! If not, you need to add a migration for this attibrute or" \
462
- " remove it from the Enumbler."
465
+ warn "[Enumbler Warning] => The model #{self} does not currently support the attribute(s): " \
466
+ "#{unsupported_attrs.keys.map(&:to_s).to_sentence}. " \
467
+ "You have a pending migration which hopefully would remedy this! " \
468
+ "If not, you need to add a migration for this attibrute or " \
469
+ "remove it from the Enumbler."
463
470
  rescue ActiveRecord::StatementInvalid
464
- warn "[Enumbler Warning] => Unable to find a table for #{self}."\
465
- "This is to be expected if there is a pending migration; however, if there is not then something is amiss."
471
+ warn "[Enumbler Warning] => Unable to find a table for #{self}." \
472
+ "This is to be expected if there is a pending migration; " \
473
+ "however, if there is not then something is amiss."
466
474
  end
467
475
  end
468
476
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Enumbler
4
- VERSION = "0.9.2"
4
+ VERSION = "0.10.0"
5
5
  end
data/lib/enumbler.rb CHANGED
@@ -61,8 +61,8 @@ module Enumbler
61
61
  enumbled_model = class_name.constantize
62
62
 
63
63
  unless enumbled_model.respond_to?(:enumbles)
64
- raise Error, "The model #{class_name} does not have any enumbles defined."\
65
- " You can add them via `#{class_name}.enumble :blue, 1`."
64
+ raise Error, "The model #{class_name} does not have any enumbles defined. " \
65
+ "You can add them via `#{class_name}.enumble :blue, 1`."
66
66
  end
67
67
 
68
68
  belongs_to(name, scope, **options)
@@ -100,7 +100,7 @@ module Enumbler
100
100
  end
101
101
  end
102
102
 
103
- # Add the attirbutes:
103
+ # Add the attributes:
104
104
  #
105
105
  # house.color_label #=> 'black'
106
106
  # house.color_enum #=> :black
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damon Timm
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2021-05-03 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -16,138 +15,40 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 5.2.3
18
+ version: '6.0'
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '7'
21
+ version: '9'
23
22
  type: :runtime
24
23
  prerelease: false
25
24
  version_requirements: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- version: 5.2.3
28
+ version: '6.0'
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '7'
31
+ version: '9'
33
32
  - !ruby/object:Gem::Dependency
34
33
  name: activesupport
35
34
  requirement: !ruby/object:Gem::Requirement
36
35
  requirements:
37
36
  - - ">="
38
37
  - !ruby/object:Gem::Version
39
- version: 5.2.3
38
+ version: '6.0'
40
39
  - - "<"
41
40
  - !ruby/object:Gem::Version
42
- version: '7'
41
+ version: '9'
43
42
  type: :runtime
44
43
  prerelease: false
45
44
  version_requirements: !ruby/object:Gem::Requirement
46
45
  requirements:
47
46
  - - ">="
48
47
  - !ruby/object:Gem::Version
49
- version: 5.2.3
48
+ version: '6.0'
50
49
  - - "<"
51
50
  - !ruby/object:Gem::Version
52
- version: '7'
53
- - !ruby/object:Gem::Dependency
54
- name: database_cleaner-active_record
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: 1.8.0
60
- type: :development
61
- prerelease: false
62
- version_requirements: !ruby/object:Gem::Requirement
63
- requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: 1.8.0
67
- - !ruby/object:Gem::Dependency
68
- name: fuubar
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '2.5'
74
- type: :development
75
- prerelease: false
76
- version_requirements: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - "~>"
79
- - !ruby/object:Gem::Version
80
- version: '2.5'
81
- - !ruby/object:Gem::Dependency
82
- name: pry
83
- requirement: !ruby/object:Gem::Requirement
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: '0'
88
- type: :development
89
- prerelease: false
90
- version_requirements: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
96
- name: rake
97
- requirement: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - "~>"
100
- - !ruby/object:Gem::Version
101
- version: '12.0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - "~>"
107
- - !ruby/object:Gem::Version
108
- version: '12.0'
109
- - !ruby/object:Gem::Dependency
110
- name: rspec
111
- requirement: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - "~>"
114
- - !ruby/object:Gem::Version
115
- version: 3.9.0
116
- type: :development
117
- prerelease: false
118
- version_requirements: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - "~>"
121
- - !ruby/object:Gem::Version
122
- version: 3.9.0
123
- - !ruby/object:Gem::Dependency
124
- name: rubocop
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: 0.91.0
130
- type: :development
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
135
- - !ruby/object:Gem::Version
136
- version: 0.91.0
137
- - !ruby/object:Gem::Dependency
138
- name: sqlite3
139
- requirement: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - "~>"
142
- - !ruby/object:Gem::Version
143
- version: 1.4.0
144
- type: :development
145
- prerelease: false
146
- version_requirements: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
149
- - !ruby/object:Gem::Version
150
- version: 1.4.0
51
+ version: '9'
151
52
  description: A more complete description is forthcoming.
152
53
  email:
153
54
  - damon@linguabee.com
@@ -159,9 +60,23 @@ files:
159
60
  - ".gitignore"
160
61
  - ".rspec"
161
62
  - ".rubocop.yml"
63
+ - ".ruby-version"
162
64
  - ".solargraph.yml"
65
+ - AGENTS.md
163
66
  - Gemfile
164
67
  - Gemfile.lock
68
+ - Gemfile.rails6.0
69
+ - Gemfile.rails6.0.lock
70
+ - Gemfile.rails6.1
71
+ - Gemfile.rails6.1.lock
72
+ - Gemfile.rails7.0
73
+ - Gemfile.rails7.0.lock
74
+ - Gemfile.rails7.1
75
+ - Gemfile.rails7.1.lock
76
+ - Gemfile.rails7.2
77
+ - Gemfile.rails7.2.lock
78
+ - Gemfile.rails8.0
79
+ - Gemfile.rails8.0.lock
165
80
  - LICENSE.txt
166
81
  - README.md
167
82
  - Rakefile
@@ -184,7 +99,7 @@ metadata:
184
99
  homepage_uri: https://github.com/linguabee/enumbler
185
100
  source_code_uri: https://github.com/linguabee/enumbler
186
101
  changelog_uri: https://github.com/linguabee/enumbler
187
- post_install_message:
102
+ rubygems_mfa_required: 'true'
188
103
  rdoc_options: []
189
104
  require_paths:
190
105
  - lib
@@ -192,15 +107,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
192
107
  requirements:
193
108
  - - ">="
194
109
  - !ruby/object:Gem::Version
195
- version: 2.5.0
110
+ version: '3.1'
196
111
  required_rubygems_version: !ruby/object:Gem::Requirement
197
112
  requirements:
198
113
  - - ">="
199
114
  - !ruby/object:Gem::Version
200
115
  version: '0'
201
116
  requirements: []
202
- rubygems_version: 3.1.6
203
- signing_key:
117
+ rubygems_version: 3.6.7
204
118
  specification_version: 4
205
119
  summary: Enums are terrific, but lack integrity. Let's add some!
206
120
  test_files: []