Commit 1cf91eb79014a5715065dc778daf635c66ab19b5
Committed by
Heitor
1 parent
8b0f4c99
Exists in
colab
and in
4 other branches
Extracted ModuleResults ordering on ModuleTree into a helper method.
Signed off by: Diego Araújo <diegoamc90@gmail.com>
Showing
4 changed files
with
34 additions
and
4 deletions
Show diff stats
| @@ -0,0 +1,7 @@ | @@ -0,0 +1,7 @@ | ||
| 1 | +module KalibroModulesHelper | ||
| 2 | + def sort_by_granularity_and_name(module_results) | ||
| 3 | + module_results.sort do |a,b| | ||
| 4 | + (a.kalibro_module.granularity == b.kalibro_module.granularity) ? a.kalibro_module.name <=> b.kalibro_module.name : -a.kalibro_module.granularity.length <=> -b.kalibro_module.granularity.length | ||
| 5 | + end | ||
| 6 | + end | ||
| 7 | +end | ||
| 0 | \ No newline at end of file | 8 | \ No newline at end of file |
app/views/modules/_module_tree.html.erb
| @@ -15,9 +15,7 @@ | @@ -15,9 +15,7 @@ | ||
| 15 | <% end %> | 15 | <% end %> |
| 16 | 16 | ||
| 17 | <% cache("#{@root_module_result.id}_tree") do %> | 17 | <% cache("#{@root_module_result.id}_tree") do %> |
| 18 | - <% children = @root_module_result.children.sort do %> | ||
| 19 | - <% |a,b| (a.module.granularity == b.module.granularity) ? a.module.name <=> b.module.name : -a.module.granularity.length <=> -b.module.granularity.length %> | ||
| 20 | - <% end %> | 18 | + <% children = sort_by_granularity_and_name(@root_module_result.children) %> |
| 21 | <% unless children.empty? %> | 19 | <% unless children.empty? %> |
| 22 | <table class="table table-hover"> | 20 | <table class="table table-hover"> |
| 23 | <thead> | 21 | <thead> |
spec/factories/kalibro_modules.rb
| 1 | FactoryGirl.define do | 1 | FactoryGirl.define do |
| 2 | factory :kalibro_module, class: KalibroClient::Entities::Processor::KalibroModule do | 2 | factory :kalibro_module, class: KalibroClient::Entities::Processor::KalibroModule do |
| 3 | name 'Qt-Calculator' | 3 | name 'Qt-Calculator' |
| 4 | - granlrty 'APPLICATION' | 4 | + granlrty 'SOFTWARE' |
| 5 | + | ||
| 6 | + trait :package do | ||
| 7 | + granlrty 'PACKAGE' | ||
| 8 | + end | ||
| 9 | + | ||
| 10 | + trait :class do | ||
| 11 | + granlrty 'CLASS' | ||
| 12 | + end | ||
| 13 | + | ||
| 14 | + factory :kalibro_module_package, traits: [:package] | ||
| 15 | + factory :kalibro_module_class, traits: [:class] | ||
| 5 | end | 16 | end |
| 6 | end | 17 | end |
| @@ -0,0 +1,14 @@ | @@ -0,0 +1,14 @@ | ||
| 1 | +require 'rails_helper' | ||
| 2 | + | ||
| 3 | +describe KalibroModulesHelper, :type => :helper do | ||
| 4 | + describe 'sort_by_granularity_and_name' do | ||
| 5 | + let(:package) { FactoryGirl.build(:module_result, kalibro_module: FactoryGirl.build(:kalibro_module_package)) } | ||
| 6 | + let(:class_a) { FactoryGirl.build(:module_result, kalibro_module: FactoryGirl.build(:kalibro_module_class, name: 'a')) } | ||
| 7 | + let(:class_b) { FactoryGirl.build(:module_result, kalibro_module: FactoryGirl.build(:kalibro_module_class, name: 'b')) } | ||
| 8 | + | ||
| 9 | + it 'is expected to order the ModuleResults by the Granularity first and then the KalibroModule name' do | ||
| 10 | + unordered_modules = [class_b, package, class_a] | ||
| 11 | + expect(helper.sort_by_granularity_and_name(unordered_modules)).to eq([package, class_a, class_b]) | ||
| 12 | + end | ||
| 13 | + end | ||
| 14 | +end | ||
| 0 | \ No newline at end of file | 15 | \ No newline at end of file |