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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f1af2d9185c46190d199572f4ead3c7be624044b
4
- data.tar.gz: 2239d75b7693917cd5e7843ea5d168ee418b93e2
3
+ metadata.gz: 5b82a651f5e396d3851ce7fc210a892e5a126152
4
+ data.tar.gz: c81335e48d7d81eed23caa1246ed1bdb19c379d7
5
5
  SHA512:
6
- metadata.gz: b9f5c6b3737eb8d34180c35b81806e341dc8f2cce0a0d8d2c5e67b334b46fa54b755f502a14138ea4f8a4db5b842c42ff1eaedfbc4deaa529e22fad83d82356f
7
- data.tar.gz: 32c14db6244b386b217fcc16444986ebcf3ab5ed0f0837a406d2c17ded2f299fcda23e2e881ec93e3540de05263c4d0aede531206a44d2e7a4249519cbba80d5
6
+ metadata.gz: a851accadb5b4dcbc85315b6dfc04a19e565d500888d9cce842ad400db2877c4e66de618507a6609957649e53b202030eccb56f6e96209cd8e04c4e423e27890
7
+ data.tar.gz: 4f7cd49895b7715bc3f0ba70d3c92c6e55fdefb35346a92c5701f1898a6f3e05968c938913664d11e27885eb46a11f32c414377bcca437c578189769d6b055f0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.1.3
2
+
3
+ - Added `suffix` option
4
+
1
5
  ## 0.1.2
2
6
 
3
7
  - Added method to list values
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` option.
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], prefix: :address
76
+ str_enum :address_status, [:active, :archived], suffix: :address
77
77
  end
78
78
 
79
79
  # scopes
80
- User.address_active
81
- User.address_archived
80
+ User.active_address
81
+ User.archived_address
82
82
 
83
83
  # accessor methods
84
- user.address_active?
85
- user.address_archived?
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
- method_name = prefix ? "#{prefix}_#{value}" : value
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
@@ -1,3 +1,3 @@
1
1
  module StrEnum
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
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.2
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-24 00:00:00.000000000 Z
11
+ date: 2016-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport