diff --git a/lib/dm-types/enum.rb b/lib/dm-types/enum.rb index 3578ed4..973a4be 100644 --- a/lib/dm-types/enum.rb +++ b/lib/dm-types/enum.rb @@ -5,7 +5,7 @@ module DataMapper class Property class Enum < Integer - include Flags + include Types::Support::Flags def initialize(model, name, options = {}) super @@ -19,10 +19,8 @@ def initialize(model, name, options = {}) if defined?(::DataMapper::Validations) unless model.skip_auto_validation_for?(self) - if self.class.ancestors.include?(Property::Enum) - allowed = flag_map.values_at(*flag_map.keys.sort) - model.validates_within name, model.options_with_message({ :set => allowed }, self, :within) - end + allowed = flag_map.values_at(*flag_map.keys.sort) + model.validates_within name, model.options_with_message({ :set => allowed }, self, :within) end end end diff --git a/lib/dm-types/flag.rb b/lib/dm-types/flag.rb index f9a24d5..43ce396 100644 --- a/lib/dm-types/flag.rb +++ b/lib/dm-types/flag.rb @@ -5,7 +5,7 @@ module DataMapper class Property class Flag < Integer - include Flags + include Types::Support::Flags def initialize(model, name, options = {}) super diff --git a/lib/dm-types/support/flags.rb b/lib/dm-types/support/flags.rb index 1599b85..6ed1b10 100644 --- a/lib/dm-types/support/flags.rb +++ b/lib/dm-types/support/flags.rb @@ -1,41 +1,44 @@ module DataMapper - class Property - module Flags - def self.included(base) - base.class_eval <<-RUBY, __FILE__, __LINE__ + 1 - extend DataMapper::Property::Flags::ClassMethods + module Types + module Support + module Flags + def self.included(base) + base.class_eval <<-RUBY, __FILE__, __LINE__ + 1 + extend DataMapper::Types::Support::Flags::ClassMethods - accept_options :flags - attr_reader :flag_map + accept_options :flags + attr_reader :flag_map - class << self - attr_accessor :generated_classes - end + class << self + attr_accessor :generated_classes + end - self.generated_classes = {} - RUBY - end + self.generated_classes = {} + RUBY + end - def custom? - true - end + def custom? + true + end - module ClassMethods - # TODO: document - # @api public - def [](*values) - if klass = generated_classes[values.flatten] - klass - else - klass = ::Class.new(self) - klass.flags(values) + module ClassMethods + # TODO: document + # @api public + def [](*values) + if klass = generated_classes[values.flatten] + klass + else + klass = ::Class.new(self) + klass.flags(values) - generated_classes[values.flatten] = klass + generated_classes[values.flatten] = klass - klass + klass + end end - end - end - end - end -end + end # module ClassMethods + + end # module Flags + end # module Support + end # module Types +end # module DataMapper