acts_as_enumeration 0.1.15 → 0.1.17
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 +5 -5
- data/Gemfile +2 -0
- data/README.md +6 -0
- data/Rakefile +2 -1
- data/acts_as_enumeration.gemspec +15 -20
- data/init.rb +3 -1
- data/lib/active_record/acts/enumeration.rb +60 -38
- data/lib/acts_as_enumeration.rb +2 -2
- data/test/enumeration_test.rb +33 -29
- metadata +30 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 718e945ae870fccfeeccc24a0da07df9eec10398a812f80b7754a5c64c232069
|
4
|
+
data.tar.gz: ee06785a3f3d10ddec6c6fe09f25c6b4e730b600f9c9354b5d710415ceab6635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa17d9df0e149bd4ab644ff27850dc68226d1742b8c448e5df93b1dcec8c2a47bb1d2a2535d0303afa727cf849a3ec463394022f557ae73f22e73a956aebc1e8
|
7
|
+
data.tar.gz: 44bb24803543f1211bd7a50b3d183d9fa10698c3754a64c5c84c978e60bb26574fb94abd60e795d1993c40f2a71742761658f5d7ebb13a66657e523df3d830a7
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# ActsAsEnumeration
|
2
2
|
|
3
|
+
If you've found this, you may be wondering why it exists since Rails has had enum since version 4.1.8. The biggest
|
4
|
+
difference with this one is that it allows you to have a separate table to hold your enumerated values and have the
|
5
|
+
primary key as the enumeration, which adds flexibility in how they are used.
|
6
|
+
|
7
|
+
The big plus that ActiveRecord::Enum has is that it adds scopes directly,
|
8
|
+
|
3
9
|
acts_as_enumeration and its aliases acts_as_enumerable, acts_as_enum, enumerable_column and enum_column
|
4
10
|
allow for unique names in a database column to behave as if they were enumerated
|
5
11
|
types, including chaining etc.
|
data/Rakefile
CHANGED
data/acts_as_enumeration.gemspec
CHANGED
@@ -1,5 +1,8 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'English'
|
4
|
+
|
5
|
+
lib = File.expand_path('lib', __dir__)
|
3
6
|
require File.dirname(__FILE__) + '/lib/active_record/acts/enumeration'
|
4
7
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
8
|
|
@@ -9,27 +12,19 @@ Gem::Specification.new do |spec|
|
|
9
12
|
spec.authors = ['Paul McKibbin']
|
10
13
|
spec.email = ['pmckibbin@gmail.com']
|
11
14
|
|
12
|
-
spec.description =
|
13
|
-
spec.summary =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
15
|
+
spec.description = 'Active Record extender to make a database column enumerable and queryable'
|
16
|
+
spec.summary = 'enumerable values from database columns'
|
17
|
+
spec.homepage = 'http://blackrat.org'
|
18
|
+
spec.license = 'MIT'
|
16
19
|
|
17
|
-
spec.files = `git ls-files`.split(
|
20
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
18
21
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
22
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
23
|
spec.require_paths = ['lib']
|
21
24
|
|
22
|
-
spec.add_development_dependency '
|
23
|
-
spec.add_development_dependency '
|
24
|
-
spec.add_development_dependency '
|
25
|
-
|
26
|
-
|
27
|
-
spec.add_development_dependency 'activerecord'
|
28
|
-
elsif RUBY_VERSION >= '1.9'
|
29
|
-
spec.add_development_dependency 'minitest'
|
30
|
-
spec.add_development_dependency 'activerecord', '~> 3.0'
|
31
|
-
else
|
32
|
-
spec.add_development_dependency 'test-unit'
|
33
|
-
spec.add_development_dependency 'activerecord', '~> 2.3'
|
34
|
-
end
|
25
|
+
spec.add_development_dependency 'activerecord', '~> 6.1'
|
26
|
+
spec.add_development_dependency 'bundler', '~> 2.2.24'
|
27
|
+
spec.add_development_dependency 'minitest', '~> 5.14'
|
28
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
29
|
+
spec.add_development_dependency 'sqlite3', '~> 1.4'
|
35
30
|
end
|
data/init.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module ActiveRecord
|
2
4
|
module Acts
|
3
5
|
module Enumeration
|
4
|
-
|
5
|
-
VERSION="0.1.15"
|
6
|
+
VERSION = '0.1.17'
|
6
7
|
class << self
|
7
|
-
|
8
8
|
def included(base)
|
9
9
|
base.instance_eval do
|
10
10
|
extend ClassMethods
|
@@ -13,9 +13,12 @@ module ActiveRecord
|
|
13
13
|
end
|
14
14
|
|
15
15
|
module ClassMethods
|
16
|
+
extend Gem::Deprecate
|
17
|
+
|
16
18
|
private
|
19
|
+
|
17
20
|
def portable_select(*args)
|
18
|
-
respond_to?(:scoped) ? scoped(:
|
21
|
+
respond_to?(:scoped) ? scoped(select: args.join(',').to_s) : select(*args)
|
19
22
|
end
|
20
23
|
|
21
24
|
def normalize(string)
|
@@ -23,24 +26,25 @@ module ActiveRecord
|
|
23
26
|
end
|
24
27
|
|
25
28
|
public
|
29
|
+
|
26
30
|
def normalize_intern(string)
|
27
31
|
normalize(string).intern
|
28
32
|
end
|
29
33
|
|
30
34
|
def acts_as_enumeration(*args)
|
31
|
-
class << self
|
32
|
-
attr_accessor :enumeration
|
35
|
+
class << self
|
36
|
+
attr_accessor :enumeration
|
33
37
|
end
|
34
|
-
self.enumeration||=HashWithIndifferentAccess.new
|
38
|
+
self.enumeration ||= HashWithIndifferentAccess.new
|
35
39
|
args.each do |field|
|
36
|
-
self.enumeration[field]=HashWithIndifferentAccess[
|
40
|
+
self.enumeration[field] = HashWithIndifferentAccess[
|
37
41
|
*portable_select(field, primary_key).map do |x|
|
38
42
|
[normalize_intern(x.send(field)), x.send(x.class.primary_key)]
|
39
43
|
end.flatten
|
40
44
|
]
|
41
45
|
(
|
42
|
-
class << self
|
43
|
-
self
|
46
|
+
class << self
|
47
|
+
self
|
44
48
|
end).class_eval do
|
45
49
|
define_method(:enumerations) { |name| self.enumeration[name.intern] }
|
46
50
|
define_method("#{field}_valid?") { |value| !!send("id_for_#{field}", value) }
|
@@ -48,16 +52,36 @@ module ActiveRecord
|
|
48
52
|
define_method("id_for_#{field}") { |value| enumerations(field)[value.intern] }
|
49
53
|
define_method("for_#{field}") { |value| find(send("id_for_#{field}", value)) }
|
50
54
|
define_method("enum_#{field}") { enumerations(field) }
|
51
|
-
define_method(
|
55
|
+
define_method('as_key') do |value|
|
56
|
+
begin
|
57
|
+
find(value).as_key
|
58
|
+
rescue StandardError
|
59
|
+
nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
define_method(:is?) do |*types|
|
65
|
+
types.any? do |x|
|
66
|
+
self == (begin
|
67
|
+
self.class.send(x)
|
68
|
+
rescue StandardError
|
69
|
+
nil
|
70
|
+
end)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
# Deprecated: Please use 'not?' instead
|
74
|
+
define_method(:is_not?) do |*types|
|
75
|
+
not?(*types)
|
52
76
|
end
|
77
|
+
define_method(:not?) { |*types| !is?(*types) }
|
78
|
+
deprecate :is_not?, :not?, '2021', '7'
|
53
79
|
|
54
|
-
define_method(:is?) { |*types| types.any? { |x| self==(self.class.send(x) rescue nil) } }
|
55
|
-
define_method(:is_not?) { |*types| !is?(*types) }
|
56
80
|
define_method(:method_missing) do |method_id, *args, &block|
|
57
|
-
method_name=method_id.to_s
|
58
|
-
if match_data=method_name.match(/^(is[_not]*)(\?|_(\w*)\?)/)
|
59
|
-
method
|
60
|
-
new_args=
|
81
|
+
method_name = method_id.to_s
|
82
|
+
if match_data = method_name.match(/^(is[_not]*)(\?|_(\w*)\?)/)
|
83
|
+
method = match_data[1] << '?'
|
84
|
+
new_args = match_data[2] == '?' ? args : match_data[3].split(/_or_/)
|
61
85
|
respond_to?(method) ? send(method, *new_args, &block) : false
|
62
86
|
else
|
63
87
|
super method_id, *args, &block
|
@@ -65,57 +89,55 @@ module ActiveRecord
|
|
65
89
|
end
|
66
90
|
|
67
91
|
def allowed_chars(string)
|
68
|
-
string.to_s
|
92
|
+
string.to_s =~ /^[a-z_]/
|
69
93
|
end
|
70
94
|
|
71
|
-
def check_string(string
|
95
|
+
def check_string(string)
|
72
96
|
allowed_chars(string) && (yield string)
|
73
97
|
end
|
74
98
|
|
75
99
|
def _key(string)
|
76
|
-
check_string(string) {|y| !respond_to?(y)} ? string : "_#{string}"
|
100
|
+
check_string(string) { |y| !respond_to?(y) } ? string : "_#{string}"
|
77
101
|
end
|
78
102
|
|
79
103
|
def _camelized_key(string)
|
80
|
-
check_string(string) {|
|
104
|
+
check_string(string) { |_y| !const_defined?(string.camelize) } ? string.camelize : "_#{string.camelize}"
|
81
105
|
end
|
82
106
|
|
83
107
|
def _camelized_upcase_key(string)
|
84
|
-
check_string(string) {|
|
108
|
+
check_string(string) { |_y| !const_defined?(string.camelize.upcase) } ? string.camelize.upcase : "_#{string.camelize.upcase}"
|
85
109
|
end
|
86
110
|
|
87
111
|
portable_select(field).map { |x| normalize_intern(x.send(field)) }.each do |y|
|
88
|
-
key=_key(y.to_s)
|
89
|
-
camelized_key=_camelized_key(y.to_s)
|
90
|
-
camelized_upcase_key=_camelized_upcase_key(y.to_s)
|
112
|
+
key = _key(y.to_s)
|
113
|
+
camelized_key = _camelized_key(y.to_s)
|
114
|
+
camelized_upcase_key = _camelized_upcase_key(y.to_s)
|
91
115
|
define_method(:as_key) { self.class.normalize_intern(send(field)) }
|
92
116
|
define_method("is_#{y}?") { is?(y) }
|
93
117
|
alias_method "#{key}?", "is_#{y}?"
|
94
|
-
class << self
|
95
|
-
self
|
118
|
+
class << self
|
119
|
+
self
|
96
120
|
end.instance_eval do
|
97
|
-
define_method(key) {
|
98
|
-
define_method(camelized_key) {
|
99
|
-
define_method(camelized_upcase_key) {
|
121
|
+
define_method(key) { send("for_#{field}", y) }
|
122
|
+
define_method(camelized_key) { send("id_for_#{field}", y) }
|
123
|
+
define_method(camelized_upcase_key) { send("id_for_#{field}", y) }
|
100
124
|
end
|
101
125
|
begin
|
102
|
-
|
103
|
-
rescue Exception=>e
|
126
|
+
const_set(camelized_key, send("id_for_#{field}", y))
|
127
|
+
rescue Exception => e
|
104
128
|
puts("Warning: Skipping constant definition for #{camelized_key}")
|
105
129
|
end
|
106
130
|
begin
|
107
|
-
|
108
|
-
rescue Exception=>e
|
131
|
+
const_set(camelized_upcase_key, send("id_for_#{field}", y))
|
132
|
+
rescue Exception => e
|
109
133
|
puts("Warning: Skipping constant definition for #{camelized_upcase_key}")
|
110
134
|
end
|
111
135
|
end
|
112
136
|
end
|
113
137
|
end
|
114
138
|
|
115
|
-
[
|
116
|
-
unless defined?(aliased)
|
117
|
-
alias_method aliased, :acts_as_enumeration
|
118
|
-
end
|
139
|
+
%i[acts_as_enum enum_column enumerable_column acts_as_enumerable].each do |aliased|
|
140
|
+
alias_method aliased, :acts_as_enumeration unless defined?(aliased)
|
119
141
|
end
|
120
142
|
end
|
121
143
|
end
|
data/lib/acts_as_enumeration.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require
|
2
|
-
ActiveRecord::Base.
|
1
|
+
require File.join(File.dirname(__FILE__), 'active_record', 'acts', 'enumeration.rb')
|
2
|
+
ActiveRecord::Base.include ActiveRecord::Acts::Enumeration
|
data/test/enumeration_test.rb
CHANGED
@@ -1,25 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rubygems'
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
else
|
6
|
-
require 'test/unit'
|
7
|
-
require 'activerecord'
|
8
|
-
require 'sqlite3'
|
9
|
-
end
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'active_record'
|
6
|
+
|
10
7
|
$:.unshift File.dirname(__FILE__) + '/../lib'
|
11
8
|
require 'acts_as_enumeration'
|
12
9
|
|
13
|
-
ActiveRecord::Base.establish_connection(:
|
10
|
+
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
|
14
11
|
|
15
12
|
def setup_db
|
16
13
|
ActiveRecord::Base.logger
|
17
|
-
ActiveRecord::Schema.define(:
|
14
|
+
ActiveRecord::Schema.define(version: 1) do
|
18
15
|
create_table :enumerates do |t|
|
19
16
|
t.column :type, :string
|
20
17
|
t.column :name, :string
|
21
18
|
t.column :description, :string
|
22
19
|
end
|
20
|
+
|
21
|
+
create_table :associated_tables do |t|
|
22
|
+
t.references :enumerates
|
23
|
+
end
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
@@ -36,23 +37,27 @@ class BrokenEnumeration < Enumerate; end
|
|
36
37
|
|
37
38
|
class EnumerateTest < (
|
38
39
|
begin
|
39
|
-
|
40
|
+
begin
|
41
|
+
MiniTest::Test
|
42
|
+
rescue StandardError
|
43
|
+
Test::Unit::TestCase
|
44
|
+
end
|
40
45
|
end)
|
41
46
|
def setup
|
42
47
|
setup_db
|
43
48
|
[EnumerateAll].each do |klass|
|
44
|
-
klass.create! :
|
45
|
-
klass.create! :
|
46
|
-
klass.create! :
|
49
|
+
klass.create! name: 'first', description: 'First field'
|
50
|
+
klass.create! name: 'second', description: 'Second field'
|
51
|
+
klass.create! name: 'third', description: 'Third field'
|
47
52
|
end
|
48
53
|
[EnumerateSome].each do |klass|
|
49
|
-
klass.create! :
|
50
|
-
klass.create! :
|
51
|
-
klass.create! :
|
54
|
+
klass.create! name: 'forth', description: 'Forth field'
|
55
|
+
klass.create! name: 'fifth', description: 'Fifth field'
|
56
|
+
klass.create! name: 'sixth', description: 'Sixth field'
|
52
57
|
end
|
53
58
|
[BrokenEnumeration].each do |klass|
|
54
|
-
klass.create! :
|
55
|
-
klass.create! :
|
59
|
+
klass.create! name: '33108', description: '33108 field'
|
60
|
+
klass.create! name: 'all', description: 'already defined method'
|
56
61
|
end
|
57
62
|
EnumerateAll.acts_as_enumeration :description
|
58
63
|
EnumerateSome.acts_as_enumeration :description
|
@@ -83,15 +88,15 @@ end)
|
|
83
88
|
assert !EnumerateAll.valid_description?(:blah_blah_field)
|
84
89
|
assert !EnumerateAll.valid_description?('blah_blah_field')
|
85
90
|
assert Enumerate.first.id, EnumerateAll.id_for_description(:first_field)
|
86
|
-
assert EnumerateAll::FIRSTFIELD,Enumerate.first.id
|
87
|
-
assert EnumerateAll::FirstField,Enumerate.first.id
|
88
|
-
assert EnumerateAll.FIRSTFIELD,Enumerate.first.id
|
89
|
-
assert EnumerateAll.FirstField,Enumerate.first.id
|
90
|
-
assert BrokenEnumeration._33108,BrokenEnumeration.first.id
|
91
|
-
assert BrokenEnumeration._all,BrokenEnumeration.find_by_name('all')
|
92
|
-
assert BrokenEnumeration::All,BrokenEnumeration.find_by_name('all').id
|
93
|
-
assert BrokenEnumeration::ALL,BrokenEnumeration.find_by_name('all').id
|
94
|
-
assert BrokenEnumeration::ALL,BrokenEnumeration.id_for_name(:all)
|
91
|
+
assert EnumerateAll::FIRSTFIELD, Enumerate.first.id
|
92
|
+
assert EnumerateAll::FirstField, Enumerate.first.id
|
93
|
+
assert EnumerateAll.FIRSTFIELD, Enumerate.first.id
|
94
|
+
assert EnumerateAll.FirstField, Enumerate.first.id
|
95
|
+
assert BrokenEnumeration._33108, BrokenEnumeration.first.id
|
96
|
+
assert BrokenEnumeration._all, BrokenEnumeration.find_by_name('all')
|
97
|
+
assert BrokenEnumeration::All, BrokenEnumeration.find_by_name('all').id
|
98
|
+
assert BrokenEnumeration::ALL, BrokenEnumeration.find_by_name('all').id
|
99
|
+
assert BrokenEnumeration::ALL, BrokenEnumeration.id_for_name(:all)
|
95
100
|
end
|
96
101
|
|
97
102
|
def test_sti
|
@@ -116,4 +121,3 @@ end)
|
|
116
121
|
assert EnumerateSome.first.id, EnumerateSome.id_for_description(:forth_field)
|
117
122
|
end
|
118
123
|
end
|
119
|
-
|
metadata
CHANGED
@@ -1,87 +1,86 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_enumeration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul McKibbin
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '6.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '6.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.24
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.2.24
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.14'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.14'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '13.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '13.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '1.4'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
83
|
-
description: Active Record extender to
|
84
|
-
have all of it's values enumerable
|
82
|
+
version: '1.4'
|
83
|
+
description: Active Record extender to make a database column enumerable and queryable
|
85
84
|
email:
|
86
85
|
- pmckibbin@gmail.com
|
87
86
|
executables: []
|
@@ -103,7 +102,7 @@ homepage: http://blackrat.org
|
|
103
102
|
licenses:
|
104
103
|
- MIT
|
105
104
|
metadata: {}
|
106
|
-
post_install_message:
|
105
|
+
post_install_message:
|
107
106
|
rdoc_options: []
|
108
107
|
require_paths:
|
109
108
|
- lib
|
@@ -118,9 +117,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
117
|
- !ruby/object:Gem::Version
|
119
118
|
version: '0'
|
120
119
|
requirements: []
|
121
|
-
|
122
|
-
|
123
|
-
signing_key:
|
120
|
+
rubygems_version: 3.1.4
|
121
|
+
signing_key:
|
124
122
|
specification_version: 4
|
125
123
|
summary: enumerable values from database columns
|
126
124
|
test_files:
|