acts_as_enum 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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.