don't modify the parameter string in Entity.entity_class
This commit is contained in:
parent
bfcfb6b95a
commit
4a7fd52844
2 changed files with 10 additions and 4 deletions
|
|
@ -119,11 +119,11 @@ module DiasporaFederation
|
||||||
#
|
#
|
||||||
# @see .entity_name
|
# @see .entity_name
|
||||||
#
|
#
|
||||||
# @param [String] class_name "snake_case" class name
|
# @param [String] entity_name "snake_case" class name
|
||||||
# @return [Class] entity class
|
# @return [Class] entity class
|
||||||
def self.entity_class(class_name)
|
def self.entity_class(entity_name)
|
||||||
raise InvalidEntityName, "'#{class_name}' is invalid" unless class_name =~ /^[a-z]*(_[a-z]*)*$/
|
raise InvalidEntityName, "'#{entity_name}' is invalid" unless entity_name =~ /^[a-z]*(_[a-z]*)*$/
|
||||||
class_name.sub!(/^[a-z]/, &:upcase)
|
class_name = entity_name.sub(/^[a-z]/, &:upcase)
|
||||||
class_name.gsub!(/_([a-z])/) { Regexp.last_match[1].upcase }
|
class_name.gsub!(/_([a-z])/) { Regexp.last_match[1].upcase }
|
||||||
|
|
||||||
raise UnknownEntity, "'#{class_name}' not found" unless Entities.const_defined?(class_name)
|
raise UnknownEntity, "'#{class_name}' not found" unless Entities.const_defined?(class_name)
|
||||||
|
|
|
||||||
|
|
@ -211,6 +211,12 @@ XML
|
||||||
expect(Entity.entity_class("test_entity")).to eq(Entities::TestEntity)
|
expect(Entity.entity_class("test_entity")).to eq(Entities::TestEntity)
|
||||||
end
|
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
|
it "raises an error when the entity name contains special characters" do
|
||||||
expect {
|
expect {
|
||||||
Entity.entity_class("te.st-enti/ty")
|
Entity.entity_class("te.st-enti/ty")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue