Commit 82f9957d authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Refactor Namespace#parents method

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent f8a17a38
...@@ -172,17 +172,7 @@ class Namespace < ActiveRecord::Base ...@@ -172,17 +172,7 @@ class Namespace < ActiveRecord::Base
end end
def parents def parents
@parents ||= @parents ||= parent ? parent.parents + [parent] : []
begin
parents = []
if parent
parents << parent
parents += parent.parents
end
parents
end
end end
private private
......
...@@ -145,7 +145,13 @@ describe Namespace, models: true do ...@@ -145,7 +145,13 @@ describe Namespace, models: true do
let(:group) { create(:group) } let(:group) { create(:group) }
let(:nested_group) { create(:group, parent: group) } let(:nested_group) { create(:group, parent: group) }
let(:deep_nested_group) { create(:group, parent: nested_group) } let(:deep_nested_group) { create(:group, parent: nested_group) }
let(:very_deep_nested_group) { create(:group, parent: deep_nested_group) }
it { expect(deep_nested_group.parents).to eq([nested_group, group]) } it 'returns the correct parents' do
expect(very_deep_nested_group.parents).to eq([group, nested_group, deep_nested_group])
expect(deep_nested_group.parents).to eq([group, nested_group])
expect(nested_group.parents).to eq([group])
expect(group.parents).to eq([])
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment