acts_as_enum 1.4.0 → 1.5.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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +2 -2
  3. data/VERSION +1 -1
  4. data/lib/acts_as_enum.rb +23 -0
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5fc3b3070cca09d3473828a02c8f632d33fec65a
4
- data.tar.gz: 6c560f8fa20a1863ea9002785ea170ef1964c2b2
3
+ metadata.gz: 10023fbd9a2bcb5835ecadce2610e772bd5924ac
4
+ data.tar.gz: 79643953ded4bd88c0e28c3e60eecfc0e4309489
5
5
  SHA512:
6
- metadata.gz: 07a65f0581b46b0380a08fc0892d5222e16feb151bc3989179858e085b326c09f737e7dc823bb69fb6885067d05c67be7260c1380f5cb5e0dcead4e7d01f7f31
7
- data.tar.gz: a5fb55a2785003f3daa46d4589cf54621be6ac26269f5b935b6cf185034df9b67f6db852e9d0269dafdc1b1f862624c609fac13502c24f8de8c84700a2652318
6
+ metadata.gz: fcac0e9b17e2ae8b16e09d9b48ed2e4523e6b0657a5c56b7615fb3236fb6555510031560e062f4ae810bbbde8c8eee5cbbca8d9e7d21e4d9be6f2254d639bfb1
7
+ data.tar.gz: 73ca175801279cc6cbdbf377fa71a14c440c8fe19369735a9850144fa5582201255b0c190542c1effd96f567b31710ce2d4080a170c9451b794298776a50b964
@@ -76,9 +76,9 @@ Will generate bellow:
76
76
 
77
77
  Named scopes: User.enable, User.disable
78
78
 
79
- Class methods: User.status_options
79
+ Class methods: User.status_options, User.status_options_i18n
80
80
 
81
- Instance methods: user.status_name, user.enable?, user.disable?, user.enable!, user.disable!
81
+ Instance methods: user.status_name, user.status_name_i18n, user.enable?, user.disable?, user.enable!, user.disable!
82
82
 
83
83
 
84
84
  If with option prefix is true:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0
1
+ 1.5.0
@@ -106,13 +106,36 @@ module ActsAsEnum
106
106
  #{plural_upcase_attr}.inject([]){ |arr, obj| arr << obj.reverse }
107
107
  end
108
108
 
109
+ def self.#{attr}_options_i18n
110
+ #{plural_upcase_attr}.inject([]) do |arr, obj|
111
+ #{enum}.each do |a|
112
+ obj[1] = ::ActsAsEnum::ClassMethods.translate_enum_symbol("#{self}", "#{attr}", a[0]) if a[1] == obj[0]
113
+ end
114
+ arr << obj.reverse
115
+ end
116
+ end
117
+
109
118
  def #{attr}_name
110
119
  return #{plural_upcase_attr}[#{attr}] if #{attr}.is_a?(FalseClass)
111
120
  #{plural_upcase_attr}[#{attr}] unless #{attr}.blank?
112
121
  end
122
+
123
+ def #{attr}_name_i18n
124
+ #{plural_upcase_attr}.each do |k, v|
125
+ #{enum}.each do |a|
126
+ #{plural_upcase_attr}[k] = ::ActsAsEnum::ClassMethods.translate_enum_symbol("#{self}", "#{attr}", a[0]) if a[1] == k
127
+ end
128
+ end
129
+ return #{plural_upcase_attr}[#{attr}] if #{attr}.is_a?(FalseClass)
130
+ #{plural_upcase_attr}[#{attr}] unless #{attr}.blank?
131
+ end
113
132
  })
114
133
  end
115
134
 
135
+ def self.translate_enum_symbol(klass, attr_name, enum_symbol)
136
+ ::I18n.t("activerecord.attributes.#{klass.to_s.underscore.gsub('/', '.')}.#{attr_name.to_s.pluralize}.#{enum_symbol}", default: enum_symbol.humanize)
137
+ end
138
+
116
139
  alias enum_attr acts_as_enum
117
140
  end
118
141
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Liang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-01 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: For multiple values activerecord attributes. This gem have some very
14
14
  useful methods and constants for attribute.