readable_enums 1.3.0 → 1.4.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/readable_enums.rb +14 -3
  3. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '06779b986b0c440a483f5b92bec4d5b237e93a9b7c66bee367fa6f9e18fbeb1d'
4
- data.tar.gz: 77c7db2ac2cf2a9b1037429f334d16723488582b4852dda965881abc53c0937f
3
+ metadata.gz: 9852d5d4bbfc443efb1c4c56f266e48c812e5ba539d35471834043b528257e4e
4
+ data.tar.gz: ecb90d1baae1bc510645bc8fa6197cea4a6b75e6e976dcc7187669d1ebce1ff2
5
5
  SHA512:
6
- metadata.gz: e41dc40561d1a9af1701e9ca41be3e82e7c5271fe4ab5c292b073bd011449711668bbf0f67032780abcff78e87a6cfbd2c6f28852f8bda5ebc69e61db35f0443
7
- data.tar.gz: 7eee486d7917d29258576cf2716fb1255758fc0388dfbf35e582e0d52aa01f295750966b738500745b9cc3328734fa61c5f51f7c711cf530df8c58144526177a
6
+ metadata.gz: 0f4436cd534701be8f41cfd2c578b39ca21c5547e2f984fdb643b5586a16d1441d7326fa75ee9ced784c8a98fc6e9e0e42aeaf657478c50babdf4583fdf04d74
7
+ data.tar.gz: 9d1751082cfefa5a9946beff985d498ab3ca6f117dccbbecc9d7a608d6d7f8259bc2c6bdf7b97e1c0f4cac7fb732a066ee108f5521797056e797285f52bf45e8
@@ -11,13 +11,24 @@ module ReadableEnums
11
11
 
12
12
  validates name.to_sym, inclusion: { in: values, message: "%{value} is not a valid #{name}" }, **validates_args
13
13
 
14
+ defined_values = []
15
+
14
16
  values.each do |enum|
15
- define_method(:"#{enum}?") { send(name.to_s) == enum }
16
- define_method(:"#{enum}!") { update(name.to_s => enum) }
17
+ unless args[:with_methods] == false
18
+ prefix = args[:prefix] == true ? "#{name}" : args[:prefix]
19
+ suffix = args[:suffix] == true ? "#{name}" : args[:suffix]
20
+ method_name = [prefix, enum, suffix].compact.join('_')
21
+
22
+ define_method(:"#{method_name}?") { send(name.to_s) == enum }
23
+ define_method(:"#{method_name}!") { update(name.to_s => enum) }
24
+
25
+ defined_values << method_name
26
+ end
27
+
17
28
  define_singleton_method(:"#{enum}") { where(name.to_s => enum) } unless args[:with_scopes] == false
18
29
  end
19
30
 
20
- defined_readable_enums[name] = values
31
+ defined_readable_enums[name] = defined_values
21
32
  end
22
33
  end
23
34
  end
metadata CHANGED
@@ -1,17 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: readable_enums
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joy Smith
8
8
  - Raynor Kuang
9
9
  - Austin Fisher
10
10
  - Willy Unterkoefler
11
+ - Neal Griffith
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2018-03-14 00:00:00.000000000 Z
15
+ date: 2025-03-18 00:00:00.000000000 Z
15
16
  dependencies: []
16
17
  description: Validation and helper methods for string based enums in rails
17
18
  email: