4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/attribute_enums/common.rb', line 4
def attribute_enums(attribute_name, options={})
_ae_init_instance_variables
@_ae_attribute_name = attribute_name.to_s
@_ae_in = options.has_key?(:in) ? Array(options.delete(:in)) : []
@_ae_boolean = options.has_key?(:boolean) ? options.delete(:boolean) : false
@_ae_default = options.has_key?(:default) ? options.delete(:default) : nil
@_ae_ask_methods = options.has_key?(:ask_methods) ? options.delete(:ask_methods) : false
@_ae_scopeds = options.has_key?(:scopeds) ? options.delete(:scopeds) : false
@_ae_validate = options.has_key?(:validate) ? options.delete(:validate) : false
@_ae_i18n = options.has_key?(:i18n) ? options.delete(:i18n) : false
if @_ae_boolean
@_ae_in = [true, false]
@_ae_inclusion = @_ae_in
else
return if @_ae_in.empty?
@_ae_in = @_ae_in.map{|x| x.to_s.to_sym}.uniq.flatten.delete_if{|y| y.empty?}
return if @_ae_in.empty?
@_ae_inclusion = @_ae_in.map{|x| [x, x.to_s]}.flatten
end
unless @_ae_default.nil?
raise 'default value not match' unless @_ae_inclusion.include?(@_ae_default)
end
_ae_set_default unless @_ae_default.nil?
if @_ae_scopeds
if @_ae_boolean
_ae_set_boolean_scopeds
else
_ae_set_string_scopeds
end
end
if @_ae_boolean
_attribute_name_set_boolean_values_method
_attribute_name_set_boolean_text_method
else
_attribute_name_set_string_values_method
_attribute_name_set_string_text_method
end
unless @_ae_boolean
_ae_set_string_ask_methods if @_ae_ask_methods
_attribute_name_set_string_validate if @_ae_validate
end
_ae_remove_instance_variables
end
|