str_enum 0.1.2 → 0.1.3

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 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