don't modify the parameter string in Entity.entity_class

This commit is contained in:
Benjamin Neff 2016-03-12 20:04:21 +01:00
parent bfcfb6b95a
commit 4a7fd52844
2 changed files with 10 additions and 4 deletions

View file

@ -119,11 +119,11 @@ module DiasporaFederation
#
# @see .entity_name
#
# @param [String] class_name "snake_case" class name
# @param [String] entity_name "snake_case" class name
# @return [Class] entity class
def self.entity_class(class_name)
raise InvalidEntityName, "'#{class_name}' is invalid" unless class_name =~ /^[a-z]*(_[a-z]*)*$/
class_name.sub!(/^[a-z]/, &:upcase)
def self.entity_class(entity_name)
raise InvalidEntityName, "'#{entity_name}' is invalid" unless entity_name =~ /^[a-z]*(_[a-z]*)*$/
class_name = entity_name.sub(/^[a-z]/, &:upcase)
class_name.gsub!(/_([a-z])/) { Regexp.last_match[1].upcase }
raise UnknownEntity, "'#{class_name}' not found" unless Entities.const_defined?(class_name)

View file

@ -211,6 +211,12 @@ XML
expect(Entity.entity_class("test_entity")).to eq(Entities::TestEntity)
end
it "should not change the input string" do
entity_name = "test_entity"
Entity.entity_class(entity_name)
expect(entity_name).to eq("test_entity")
end
it "raises an error when the entity name contains special characters" do
expect {
Entity.entity_class("te.st-enti/ty")