attribute_enums 0.1.8 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -3
- data/.rspec +1 -0
- data/CHANGELOG +4 -0
- data/Gemfile +1 -1
- data/README.markdown +61 -59
- data/attribute_enums.gemspec +5 -16
- data/lib/attribute_enums.rb +0 -4
- data/lib/attribute_enums/active_record.rb +122 -0
- data/lib/attribute_enums/common.rb +168 -0
- data/lib/attribute_enums/railtie.rb +2 -2
- data/lib/attribute_enums/version.rb +1 -1
- data/spec/common_and_active_record/ask_methods_options_spec.rb +58 -0
- data/spec/common_and_active_record/attribute_name_spec.rb +7 -0
- data/spec/common_and_active_record/boolean_options_spec.rb +43 -0
- data/spec/common_and_active_record/default_options_spec.rb +77 -0
- data/spec/common_and_active_record/i18n_options_spec.rb +116 -0
- data/spec/common_and_active_record/in_options_spec.rb +38 -0
- data/spec/common_and_active_record/readme_user_example_spec.rb +87 -0
- data/spec/common_and_active_record/scopeds_options_spec.rb +114 -0
- data/spec/common_and_active_record/validate_options_spec.rb +82 -0
- data/spec/spec_helper.rb +5 -12
- data/spec/support/locales/person_en.yml +14 -0
- data/spec/support/locales/person_zh-CN.yml +14 -0
- data/spec/support/locales/user_en.yml +7 -15
- data/spec/support/models/person.rb +23 -0
- metadata +34 -229
- data/Guardfile +0 -22
- data/lib/attribute_enums/active_record_extension.rb +0 -88
- data/spec/models/active_record/user_spec.rb +0 -67
- data/spec/rails3_0_app/.gitignore +0 -4
- data/spec/rails3_0_app/.rspec +0 -1
- data/spec/rails3_0_app/Gemfile +0 -13
- data/spec/rails3_0_app/Rakefile +0 -7
- data/spec/rails3_0_app/app/controllers/application_controller.rb +0 -3
- data/spec/rails3_0_app/app/helpers/application_helper.rb +0 -2
- data/spec/rails3_0_app/app/models/user.rb +0 -2
- data/spec/rails3_0_app/app/views/layouts/application.html.erb +0 -14
- data/spec/rails3_0_app/config.ru +0 -4
- data/spec/rails3_0_app/config/application.rb +0 -44
- data/spec/rails3_0_app/config/boot.rb +0 -6
- data/spec/rails3_0_app/config/database.yml +0 -19
- data/spec/rails3_0_app/config/environment.rb +0 -6
- data/spec/rails3_0_app/config/environments/development.rb +0 -26
- data/spec/rails3_0_app/config/environments/production.rb +0 -49
- data/spec/rails3_0_app/config/environments/test.rb +0 -35
- data/spec/rails3_0_app/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails3_0_app/config/initializers/inflections.rb +0 -10
- data/spec/rails3_0_app/config/initializers/mime_types.rb +0 -5
- data/spec/rails3_0_app/config/initializers/secret_token.rb +0 -7
- data/spec/rails3_0_app/config/initializers/session_store.rb +0 -8
- data/spec/rails3_0_app/config/locales/en.yml +0 -5
- data/spec/rails3_0_app/config/routes.rb +0 -58
- data/spec/rails3_0_app/db/migrate/20111129011508_create_users.rb +0 -14
- data/spec/rails3_0_app/db/schema.rb +0 -23
- data/spec/rails3_0_app/db/seeds.rb +0 -7
- data/spec/rails3_0_app/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_0_app/public/404.html +0 -26
- data/spec/rails3_0_app/public/422.html +0 -26
- data/spec/rails3_0_app/public/500.html +0 -26
- data/spec/rails3_0_app/public/favicon.ico +0 -0
- data/spec/rails3_0_app/public/images/rails.png +0 -0
- data/spec/rails3_0_app/public/index.html +0 -239
- data/spec/rails3_0_app/public/robots.txt +0 -5
- data/spec/rails3_0_app/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_0_app/script/rails +0 -6
- data/spec/rails3_0_app/vendor/plugins/.gitkeep +0 -0
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/README.markdown
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
#AttributeEnums
|
2
2
|
|
3
|
-
AttributeEnums is a model attribute enums plugin for Rails3.
|
3
|
+
AttributeEnums is a model attribute enums plugin for Rails3.
|
4
4
|
|
5
5
|
* https://github.com/vkill/attribute_enums
|
6
6
|
|
7
7
|
##Supported versions
|
8
8
|
|
9
|
-
* Ruby 1.
|
9
|
+
* Ruby 1.9
|
10
10
|
|
11
|
-
* Rails 3
|
11
|
+
* Rails 3
|
12
12
|
|
13
13
|
|
14
14
|
##Installation
|
@@ -17,9 +17,11 @@ In your app's `Gemfile`, add:
|
|
17
17
|
|
18
18
|
gem "attribute_enums"
|
19
19
|
|
20
|
-
|
20
|
+
or
|
21
21
|
|
22
|
-
|
22
|
+
gem "attribute_enums", require: "attribute_enums/active_record"
|
23
|
+
#app/models/xxx.rb
|
24
|
+
include ::AttributeEnums::ActiveRecord
|
23
25
|
|
24
26
|
|
25
27
|
##Usage Example
|
@@ -41,94 +43,94 @@ Then run:
|
|
41
43
|
|
42
44
|
#app/models/user.rb
|
43
45
|
class User < ActiveRecord::Basse
|
44
|
-
attribute_enums :gender, :
|
45
|
-
attribute_enums :enable, :
|
46
|
+
attribute_enums :gender, in: [:female, :male], default: :male, scopeds: true, ask_methods: true, i18n: true, validate: true
|
47
|
+
attribute_enums :enable, boolean: true, default: true, scopeds: :disable, i18n: {t_prefix: :person_}
|
46
48
|
end
|
47
49
|
|
50
|
+
# in config/locales/enums_en.yml
|
51
|
+
en:
|
52
|
+
enums:
|
53
|
+
gender:
|
54
|
+
female: Girl
|
55
|
+
male: Boy
|
56
|
+
enable:
|
57
|
+
"true": "Enable"
|
58
|
+
"false": "Disable"
|
59
|
+
person_gender:
|
60
|
+
female: Girl
|
61
|
+
male: Boy
|
62
|
+
person_enable:
|
63
|
+
"true": "Enable"
|
64
|
+
"false": "Disable"
|
48
65
|
|
49
66
|
##Options
|
50
67
|
|
51
|
-
###
|
68
|
+
###in or boolean
|
52
69
|
|
53
|
-
|
70
|
+
if use 'boolean', auto ignore 'in'.
|
54
71
|
|
55
|
-
|
72
|
+
this option generate get_attr_values and attr_text methods
|
56
73
|
|
57
|
-
|
58
|
-
|
59
|
-
|
74
|
+
#active_record
|
75
|
+
User.get_gender_values
|
76
|
+
User.get_enable_values
|
77
|
+
user = User.new(gender: :male, enable: true)
|
78
|
+
user.gender_text
|
79
|
+
user.enable_text
|
60
80
|
|
61
|
-
|
81
|
+
you can use get_attr_values on rails `select` helper and more.
|
62
82
|
|
63
83
|
###i18n and use example
|
64
84
|
|
65
|
-
default `
|
85
|
+
default `false`
|
66
86
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
enable: Enable
|
76
|
-
enums:
|
77
|
-
user:
|
78
|
-
gender:
|
79
|
-
female: Girl
|
80
|
-
male: Boy
|
81
|
-
enable:
|
82
|
-
"true": "Yes"
|
83
|
-
"false": "No"
|
87
|
+
set `true`, i18n is valid get_attr_values and attr_text methods.
|
88
|
+
|
89
|
+
#active_record
|
90
|
+
User.get_gender_values #=> [["Girl", "female"], ["Boy", "male"]]
|
91
|
+
User.get_enable_values #=> [["Enable", true], ["Disable", false]]
|
92
|
+
user = User.new(gender: :male, enable: true)
|
93
|
+
user.gender_text #=> "Boy"
|
94
|
+
user.enable_text #=> "Enable"
|
84
95
|
|
85
96
|
###scopes and use example
|
86
97
|
|
87
|
-
default `
|
98
|
+
default `false`
|
88
99
|
|
89
100
|
#active_record
|
90
|
-
User.male
|
91
|
-
User.female
|
92
|
-
User.enable
|
93
|
-
User.
|
101
|
+
User.male #=> User.where(gender: :male)
|
102
|
+
User.female #=> User.where(gender: :female)
|
103
|
+
User.enable #=> User.where(enable: true)
|
104
|
+
User.disable #=> User.where(enable: false)
|
94
105
|
|
95
106
|
###validate
|
96
107
|
|
97
|
-
default `
|
108
|
+
default `false`, it only support `in` option.
|
98
109
|
|
99
|
-
|
110
|
+
if you want support attribute value is nil, you can use `validate: {allow_nil: true}`
|
100
111
|
|
101
|
-
|
112
|
+
###ask_methods and use example
|
102
113
|
|
103
|
-
|
104
|
-
|
105
|
-
default `true`
|
114
|
+
default `false`, it only support `in` option.
|
106
115
|
|
107
116
|
#active_record
|
108
|
-
User.
|
109
|
-
|
110
|
-
|
111
|
-
User.enable_values => {true=>"Yes", false=>"No"}
|
112
|
-
user = User.create(:gender => :male, :enable => true)
|
113
|
-
user.gender_text => "Boy"
|
114
|
-
user.enable_text => "Yes"
|
115
|
-
user.male? => true
|
116
|
-
user.female? => false
|
117
|
-
user.enable => true
|
117
|
+
user = User.new(gender: :male, enable: true)
|
118
|
+
user.male? #=> true
|
119
|
+
user.female? #=> false
|
118
120
|
|
119
121
|
###default
|
120
122
|
|
121
123
|
if your defined `default`, it set attribute `default` value before validate.
|
122
124
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
125
|
+
#active_record
|
126
|
+
user = User.new
|
127
|
+
user.valid?
|
128
|
+
user.gender #=> :male
|
127
129
|
|
128
|
-
|
130
|
+
Note: if your migration defined field default, this is invalidation.
|
129
131
|
|
130
132
|
|
131
133
|
##Copyright
|
132
134
|
|
133
|
-
Copyright (c) 2011 vkill.net .
|
135
|
+
Copyright (c) 2011-2013 vkill.net .
|
134
136
|
|
data/attribute_enums.gemspec
CHANGED
@@ -18,20 +18,9 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_development_dependency
|
22
|
-
s.add_development_dependency "
|
23
|
-
s.add_development_dependency "
|
24
|
-
s.add_development_dependency "
|
25
|
-
|
26
|
-
s.add_development_dependency "rails", "~> 3.0"
|
27
|
-
s.add_development_dependency "sqlite3-ruby"
|
28
|
-
s.add_development_dependency "rspec-rails", "~> 2.7.0"
|
29
|
-
s.add_development_dependency "capybara"
|
30
|
-
s.add_development_dependency "timecop"
|
31
|
-
s.add_development_dependency "pry"
|
32
|
-
s.add_development_dependency "pry-padrino"
|
33
|
-
|
34
|
-
s.add_dependency "activerecord", "~> 3.0"
|
35
|
-
s.add_dependency "activesupport", "~> 3.0"
|
21
|
+
s.add_development_dependency "activerecord"
|
22
|
+
s.add_development_dependency "sqlite3"
|
23
|
+
s.add_development_dependency "i18n"
|
24
|
+
s.add_development_dependency "rspec-rails", '~> 2.13.0'
|
25
|
+
|
36
26
|
end
|
37
|
-
|
data/lib/attribute_enums.rb
CHANGED
@@ -0,0 +1,122 @@
|
|
1
|
+
module AttributeEnums
|
2
|
+
end
|
3
|
+
|
4
|
+
require "attribute_enums/version"
|
5
|
+
require "attribute_enums/common"
|
6
|
+
|
7
|
+
module AttributeEnums
|
8
|
+
module ActiveRecord
|
9
|
+
|
10
|
+
def self.included base
|
11
|
+
base.extend(ClassMethods)
|
12
|
+
base.extend(AttributeEnums::Common)
|
13
|
+
end
|
14
|
+
|
15
|
+
module ClassMethods
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def _ae_set_default
|
20
|
+
set_defaule_method_name = "set_defaule_#{@_ae_attribute_name}"
|
21
|
+
if @_ae_boolean
|
22
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
23
|
+
def #{set_defaule_method_name}
|
24
|
+
write_attribute(:#{@_ae_attribute_name}, #{@_ae_default}) if read_attribute(:#{@_ae_attribute_name}).nil?
|
25
|
+
end
|
26
|
+
RUBY
|
27
|
+
else
|
28
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
29
|
+
def #{set_defaule_method_name}
|
30
|
+
write_attribute(:#{@_ae_attribute_name}, :#{@_ae_default}) if read_attribute(:#{@_ae_attribute_name}).nil?
|
31
|
+
end
|
32
|
+
RUBY
|
33
|
+
end
|
34
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
35
|
+
before_validation :#{set_defaule_method_name}
|
36
|
+
RUBY
|
37
|
+
end
|
38
|
+
|
39
|
+
def _ae_set_string_ask_methods
|
40
|
+
@_ae_in.each do |_in|
|
41
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
42
|
+
def #{_ae_ask_methods_string_attribute_method_name(_in)}
|
43
|
+
read_attribute(:#{@_ae_attribute_name}).to_s == '#{_in}'
|
44
|
+
end
|
45
|
+
RUBY
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def _ae_set_string_scopeds
|
50
|
+
@_ae_in.each do |_in|
|
51
|
+
# scope _ae_scopeds_string_attribute_method_name(_in), ->{ where(@_ae_attribute_name => _in) }
|
52
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
53
|
+
scope :#{_ae_scopeds_string_attribute_method_name(_in)}, ->{ where(:#{@_ae_attribute_name} => :#{_in}) }
|
54
|
+
RUBY
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def _ae_set_boolean_scopeds
|
59
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
60
|
+
scope :#{@_ae_attribute_name}, ->{ where(:#{@_ae_attribute_name} => true) }
|
61
|
+
RUBY
|
62
|
+
if @_ae_scopeds.is_a?(Symbol)
|
63
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
64
|
+
scope :#{@_ae_scopeds}, ->{ where(:#{@_ae_attribute_name} => false) }
|
65
|
+
RUBY
|
66
|
+
puts "scope :#{@_ae_scopeds}, ->{ where(:#{@_ae_attribute_name} => false) }"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def _attribute_name_set_string_validate
|
71
|
+
unless @_ae_validate.is_a?(Hash) and !@_ae_validate[:allow_nil].nil?
|
72
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
73
|
+
validates :#{@_ae_attribute_name}, presence: true
|
74
|
+
RUBY
|
75
|
+
end
|
76
|
+
|
77
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
78
|
+
validates :#{@_ae_attribute_name}, inclusion: {in: #{@_ae_inclusion}}, unless: :"read_attribute(:#{@_ae_attribute_name}).nil?"
|
79
|
+
RUBY
|
80
|
+
end
|
81
|
+
|
82
|
+
def _attribute_name_set_boolean_text_method
|
83
|
+
if @_ae_i18n and defined?(::I18n)
|
84
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
85
|
+
def #{_ae_text_method_name}
|
86
|
+
return '' if read_attribute(:#{@_ae_attribute_name}).nil?
|
87
|
+
I18n.translate('enums.%s%s.%s' % [self.class.send(:_ae_i18n_t_prefix), :#{@_ae_attribute_name}, read_attribute(:#{@_ae_attribute_name})])
|
88
|
+
end
|
89
|
+
RUBY
|
90
|
+
else
|
91
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
92
|
+
def #{_ae_text_method_name}
|
93
|
+
return '' if read_attribute(:#{@_ae_attribute_name}).nil?
|
94
|
+
read_attribute(:#{@_ae_attribute_name}) ? 'Yes' : 'No'
|
95
|
+
end
|
96
|
+
RUBY
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def _attribute_name_set_string_text_method
|
101
|
+
if @_ae_i18n and defined?(::I18n)
|
102
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
103
|
+
def #{_ae_text_method_name}
|
104
|
+
return '' if read_attribute(:#{@_ae_attribute_name}).nil?
|
105
|
+
I18n.translate('enums.%s%s.%s' % [self.class.send(:_ae_i18n_t_prefix), :#{@_ae_attribute_name}, read_attribute(:#{@_ae_attribute_name})])
|
106
|
+
end
|
107
|
+
RUBY
|
108
|
+
else
|
109
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
110
|
+
def #{_ae_text_method_name}
|
111
|
+
return '' if read_attribute(:#{@_ae_attribute_name}).nil?
|
112
|
+
read_attribute(:#{@_ae_attribute_name}).to_s
|
113
|
+
end
|
114
|
+
RUBY
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
@@ -0,0 +1,168 @@
|
|
1
|
+
module AttributeEnums
|
2
|
+
module Common
|
3
|
+
|
4
|
+
def attribute_enums(attribute_name, options={})
|
5
|
+
_ae_init_instance_variables
|
6
|
+
|
7
|
+
@_ae_attribute_name = attribute_name.to_s
|
8
|
+
|
9
|
+
@_ae_in = options.has_key?(:in) ? Array(options.delete(:in)) : []
|
10
|
+
@_ae_boolean = options.has_key?(:boolean) ? options.delete(:boolean) : false
|
11
|
+
@_ae_default = options.has_key?(:default) ? options.delete(:default) : nil
|
12
|
+
@_ae_ask_methods = options.has_key?(:ask_methods) ? options.delete(:ask_methods) : false
|
13
|
+
@_ae_scopeds = options.has_key?(:scopeds) ? options.delete(:scopeds) : false
|
14
|
+
@_ae_validate = options.has_key?(:validate) ? options.delete(:validate) : false
|
15
|
+
@_ae_i18n = options.has_key?(:i18n) ? options.delete(:i18n) : false
|
16
|
+
|
17
|
+
|
18
|
+
# build _in
|
19
|
+
if @_ae_boolean
|
20
|
+
@_ae_in = [true, false]
|
21
|
+
@_ae_inclusion = @_ae_in
|
22
|
+
else
|
23
|
+
return if @_ae_in.empty?
|
24
|
+
@_ae_in = @_ae_in.map{|x| x.to_s.to_sym}.uniq.flatten.delete_if{|y| y.empty?}
|
25
|
+
return if @_ae_in.empty?
|
26
|
+
@_ae_inclusion = @_ae_in.map{|x| [x, x.to_s]}.flatten
|
27
|
+
end
|
28
|
+
|
29
|
+
unless @_ae_default.nil?
|
30
|
+
raise 'default value not match' unless @_ae_inclusion.include?(@_ae_default)
|
31
|
+
end
|
32
|
+
|
33
|
+
_ae_set_default unless @_ae_default.nil?
|
34
|
+
if @_ae_scopeds
|
35
|
+
if @_ae_boolean
|
36
|
+
_ae_set_boolean_scopeds
|
37
|
+
else
|
38
|
+
_ae_set_string_scopeds
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
if @_ae_boolean
|
44
|
+
_attribute_name_set_boolean_values_method
|
45
|
+
_attribute_name_set_boolean_text_method
|
46
|
+
else
|
47
|
+
_attribute_name_set_string_values_method
|
48
|
+
_attribute_name_set_string_text_method
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
unless @_ae_boolean
|
53
|
+
_ae_set_string_ask_methods if @_ae_ask_methods
|
54
|
+
_attribute_name_set_string_validate if @_ae_validate
|
55
|
+
end
|
56
|
+
|
57
|
+
_ae_remove_instance_variables
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def _ae_instance_variable_names
|
65
|
+
%w(attribute_name in boolean default ask_methods scopeds validate i18n inclusion)
|
66
|
+
end
|
67
|
+
|
68
|
+
def _ae_init_instance_variables
|
69
|
+
_ae_instance_variable_names.each do |name|
|
70
|
+
instance_variable_set "@_ae_#{name}", nil
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def _ae_remove_instance_variables
|
75
|
+
_ae_instance_variable_names.each do |name|
|
76
|
+
remove_instance_variable "@_ae_#{name}"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def _ae_valid_prefix?(prefix)
|
81
|
+
(prefix.is_a?(String) or prefix.is_a?(Symbol)) and !prefix.empty?
|
82
|
+
end
|
83
|
+
|
84
|
+
def _ae_ask_methods_string_attribute_method_name(_in)
|
85
|
+
prefix = ''
|
86
|
+
if @_ae_ask_methods.is_a?(Hash)
|
87
|
+
_prefix = @_ae_ask_methods[:prefix]
|
88
|
+
if (_prefix.is_a?(String) or _prefix.is_a?(Symbol)) and !_prefix.empty?
|
89
|
+
prefix = _prefix
|
90
|
+
end
|
91
|
+
end
|
92
|
+
("%s%s?" % [prefix, _in]).to_sym
|
93
|
+
end
|
94
|
+
|
95
|
+
def _ae_scopeds_string_attribute_method_name(_in)
|
96
|
+
prefix = ''
|
97
|
+
if @_ae_scopeds.is_a?(Hash)
|
98
|
+
_prefix = @_ae_scopeds[:prefix]
|
99
|
+
if _ae_valid_prefix?(_prefix)
|
100
|
+
prefix = _prefix
|
101
|
+
end
|
102
|
+
end
|
103
|
+
("%s%s" % [prefix, _in]).to_sym
|
104
|
+
end
|
105
|
+
|
106
|
+
def _ae_values_method_name
|
107
|
+
("get_%s_values" % @_ae_attribute_name).to_sym
|
108
|
+
end
|
109
|
+
|
110
|
+
def _ae_text_method_name
|
111
|
+
("%s_text" % @_ae_attribute_name).to_sym
|
112
|
+
end
|
113
|
+
|
114
|
+
def _ae_i18n_t_prefix
|
115
|
+
t_prefix = ''
|
116
|
+
if @_ae_scopeds.is_a?(Hash)
|
117
|
+
_t_prefix = @_ae_scopeds[:t_prefix]
|
118
|
+
t_prefix = _t_prefix if _ae_valid_prefix?(_t_prefix)
|
119
|
+
end
|
120
|
+
t_prefix
|
121
|
+
end
|
122
|
+
|
123
|
+
|
124
|
+
def _attribute_name_set_boolean_values_method
|
125
|
+
if @_ae_i18n and defined?(::I18n)
|
126
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
127
|
+
def self.#{_ae_values_method_name}
|
128
|
+
#{@_ae_in}.map do |_in|
|
129
|
+
[I18n.translate('enums.%s%s.%s' % ['#{_ae_i18n_t_prefix}', :#{@_ae_attribute_name}, _in]), _in]
|
130
|
+
end
|
131
|
+
end
|
132
|
+
RUBY
|
133
|
+
else
|
134
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
135
|
+
def self.#{_ae_values_method_name}
|
136
|
+
#{@_ae_in}.map do |_in|
|
137
|
+
[(_in ? 'Yes' : 'No'), _in]
|
138
|
+
end
|
139
|
+
end
|
140
|
+
RUBY
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def _attribute_name_set_string_values_method
|
145
|
+
if @_ae_i18n and defined?(::I18n)
|
146
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
147
|
+
def self.#{_ae_values_method_name}
|
148
|
+
#{@_ae_in}.map do |_in|
|
149
|
+
[I18n.translate('enums.%s%s.%s' % ['#{_ae_i18n_t_prefix}', :#{@_ae_attribute_name}, _in]), _in.to_s]
|
150
|
+
end
|
151
|
+
end
|
152
|
+
RUBY
|
153
|
+
else
|
154
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
155
|
+
def self.#{_ae_values_method_name}
|
156
|
+
#{@_ae_in}.map do |_in|
|
157
|
+
[_in.to_s, _in.to_s]
|
158
|
+
end
|
159
|
+
end
|
160
|
+
RUBY
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|