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 @@ |
| 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 | 8 | \ No newline at end of file | ... | ... |
app/views/modules/_module_tree.html.erb
| ... | ... | @@ -15,9 +15,7 @@ |
| 15 | 15 | <% end %> |
| 16 | 16 | |
| 17 | 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 | 19 | <% unless children.empty? %> |
| 22 | 20 | <table class="table table-hover"> |
| 23 | 21 | <thead> | ... | ... |
spec/factories/kalibro_modules.rb
| 1 | 1 | FactoryGirl.define do |
| 2 | 2 | factory :kalibro_module, class: KalibroClient::Entities::Processor::KalibroModule do |
| 3 | 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 | 16 | end |
| 6 | 17 | end | ... | ... |
| ... | ... | @@ -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 | 15 | \ No newline at end of file | ... | ... |