Skip to content

Commit 9192000

Browse files
knapolgebhardt
authored andcommitted
Fix handling camelized argument in JSONAPI::Resource.resource_for
(cherry picked from commit 6dc9e96)
1 parent a85c1d0 commit 9192000

2 files changed

Lines changed: 12 additions & 8 deletions

File tree

lib/jsonapi/resource.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,7 @@ def inherited(subclass)
423423
end
424424

425425
def resource_for(type)
426+
type = type.underscore
426427
type_with_module = type.include?('/') ? type : module_path + type
427428

428429
resource_name = _resource_name_from_type(type_with_module)

test/unit/resource/resource_test.rb

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,19 +125,22 @@ def test_resource_for_root_resource
125125
end
126126
end
127127

128-
def test_resource_for_with_namespaced_paths
128+
def test_resource_for_resource_does_not_exist_at_root
129+
assert_raises NameError do
130+
ArticleResource.resource_for('related')
131+
end
132+
end
133+
134+
def test_resource_for_with_underscored_namespaced_paths
129135
assert_equal(JSONAPI::Resource.resource_for('my_module/related'), MyModule::RelatedResource)
130136
assert_equal(PostResource.resource_for('my_module/related'), MyModule::RelatedResource)
131137
assert_equal(MyModule::MyNamespacedResource.resource_for('my_module/related'), MyModule::RelatedResource)
132138
end
133139

134-
def test_resource_for_resource_does_not_exist_at_root
135-
assert_raises NameError do
136-
ArticleResource.resource_for('related')
137-
end
138-
assert_raises NameError do
139-
JSONAPI::Resource.resource_for('related')
140-
end
140+
def test_resource_for_with_camelized_namespaced_paths
141+
assert_equal(JSONAPI::Resource.resource_for('MyModule::Related'), MyModule::RelatedResource)
142+
assert_equal(PostResource.resource_for('MyModule::Related'), MyModule::RelatedResource)
143+
assert_equal(MyModule::MyNamespacedResource.resource_for('MyModule::Related'), MyModule::RelatedResource)
141144
end
142145

143146
def test_resource_for_namespaced_resource

0 commit comments

Comments
 (0)