str_enum 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +6 -6
- data/lib/str_enum.rb +3 -2
- data/lib/str_enum/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b82a651f5e396d3851ce7fc210a892e5a126152
|
4
|
+
data.tar.gz: c81335e48d7d81eed23caa1246ed1bdb19c379d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a851accadb5b4dcbc85315b6dfc04a19e565d500888d9cce842ad400db2877c4e66de618507a6609957649e53b202030eccb56f6e96209cd8e04c4e423e27890
|
7
|
+
data.tar.gz: 4f7cd49895b7715bc3f0ba70d3c92c6e55fdefb35346a92c5701f1898a6f3e05968c938913664d11e27885eb46a11f32c414377bcca437c578189769d6b055f0
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -69,20 +69,20 @@ class User < ActiveRecord::Base
|
|
69
69
|
end
|
70
70
|
```
|
71
71
|
|
72
|
-
Prevent method name collisions with the `prefix`
|
72
|
+
Prevent method name collisions with the `prefix` and `suffix` options.
|
73
73
|
|
74
74
|
```ruby
|
75
75
|
class User < ActiveRecord::Base
|
76
|
-
str_enum :address_status, [:active, :archived],
|
76
|
+
str_enum :address_status, [:active, :archived], suffix: :address
|
77
77
|
end
|
78
78
|
|
79
79
|
# scopes
|
80
|
-
User.
|
81
|
-
User.
|
80
|
+
User.active_address
|
81
|
+
User.archived_address
|
82
82
|
|
83
83
|
# accessor methods
|
84
|
-
user.
|
85
|
-
user.
|
84
|
+
user.active_address?
|
85
|
+
user.archived_address?
|
86
86
|
```
|
87
87
|
|
88
88
|
## History
|
data/lib/str_enum.rb
CHANGED
@@ -2,12 +2,13 @@ require "str_enum/version"
|
|
2
2
|
require "active_support"
|
3
3
|
|
4
4
|
module StrEnum
|
5
|
-
def str_enum(column, values, validate: true, scopes: true, accessor_methods: true, prefix: false)
|
5
|
+
def str_enum(column, values, validate: true, scopes: true, accessor_methods: true, prefix: false, suffix: false)
|
6
6
|
values = values.map(&:to_s)
|
7
7
|
validates column, presence: true, inclusion: {in: values} if validate
|
8
8
|
values.each do |value|
|
9
9
|
prefix = column if prefix == true
|
10
|
-
|
10
|
+
suffix = column if suffix == true
|
11
|
+
method_name = [prefix, value, suffix].select { |v| v }.join("_")
|
11
12
|
scope method_name, -> { where(column => value) } if scopes && !respond_to?(method_name)
|
12
13
|
if accessor_methods && !method_defined?("#{method_name}?")
|
13
14
|
define_method "#{method_name}?" do
|
data/lib/str_enum/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: str_enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|