lib/mongo_mapper/plugins/keys/key.rb in mongo_mapper-0.13.1 vs lib/mongo_mapper/plugins/keys/key.rb in mongo_mapper-0.14.0.rc1

- old
+ new

@@ -91,10 +91,15 @@ def valid_ruby_name? !!@name.match(/\A[a-z_][a-z0-9_]*\z/i) end + RESERVED_KEYS = %w( id class object_id ) + def reserved_name? + RESERVED_KEYS.include?(@name) + end + def read_accessor? any_accessor? ["read"] end def write_accessor? @@ -109,21 +114,22 @@ return true if @accessors.empty? return false unless (@accessors & ["skip", "none"]).empty? return !(@accessors & arr_opt).empty? end - private - def typecast_class - @typecast_class ||= options[:typecast].constantize - end + private - def validate_key_name! - if %w( id ).include? @name - raise MongoMapper::InvalidKey.new("`#{@name}` is a reserved key name (did you mean to use _id?)") - elsif !valid_ruby_name? - raise MongoMapper::InvalidKey.new("`#{@name}` is not a valid key name. Keys must match [a-z][a-z0-9_]*") - end + def typecast_class + @typecast_class ||= options[:typecast].constantize + end + + def validate_key_name! + if reserved_name? + raise MongoMapper::InvalidKey.new("`#{@name}` is a reserved key name (did you mean to use _id?)") + elsif !valid_ruby_name? + raise MongoMapper::InvalidKey.new("`#{@name}` is not a valid key name. Keys must match [a-z][a-z0-9_]*") end + end end end end end