def define_methods!(mod)
mod.module_eval " def #{name}
unless defined?(@_#{name}_enumerized_set)
if defined?(super)
self.#{name} = super
else
if defined?(@#{name})
self.#{name} = @#{name}
else
self.#{name} = []
end
end
end
@_#{name}_enumerized_set
end
def #{name}=(values)
_enumerized_values_for_validation[:#{name}] = values.respond_to?(:map) ? values.map(&:to_s) : values
@_#{name}_enumerized_set = Enumerize::Set.new(self, self.class.enumerized_attributes[:#{name}], values)
string_values = #{name}.values.map(&:to_str)
if defined?(super)
super string_values
elsif respond_to?(:write_attribute, true)
write_attribute '#{name}', string_values
else
@#{name} = string_values
end
#{name}
end
", __FILE__, __LINE__ + 1
end