From 50c4dc64b93945dc0afbe68076fdc528bcd46b55 Mon Sep 17 00:00:00 2001 From: Rafael Reggiani Manzo Date: Wed, 13 Apr 2016 16:24:58 -0300 Subject: [PATCH] Add latest KalibroConfigurations listing --- app/models/kalibro_configuration.rb | 4 ++++ app/views/home/index.html.erb | 28 ++++++++++++++++++++-------- spec/models/kalibro_configuration_spec.rb | 23 +++++++++++++++++++++++ 3 files changed, 47 insertions(+), 8 deletions(-) diff --git a/app/models/kalibro_configuration.rb b/app/models/kalibro_configuration.rb index 9d7172d..4a5f9e4 100644 --- a/app/models/kalibro_configuration.rb +++ b/app/models/kalibro_configuration.rb @@ -28,4 +28,8 @@ class KalibroConfiguration < KalibroClient::Entities::Configurations::KalibroCon @attributes = nil super end + + def self.latest(count=1) + all.sort { |one, another| another.id <=> one.id }.select { |kalibro_configuration| kalibro_configuration.attributes.public }.first(count) + end end diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index ae79ac7..fb30372 100644 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -6,12 +6,24 @@

-

<%= t('latest_projects') %>

+
+
+
+

<%= t('latest_projects') %>

-
    - <% cache do %> - <% @latest_projects.each do |project| %> -
  • <%= link_to(project.name, project_path(project.id)) %>
  • - <% end %> - <% end %> -
+
    + <% cache do %> + <% @latest_projects.each do |project| %> +
  • <%= link_to(project.name, project_path(project.id)) %>
  • + <% end %> + <% end %> +
+
+
+

<%= t('latest_projects') %>

+
+
+

<%= t('latest_projects') %>

+
+
+
diff --git a/spec/models/kalibro_configuration_spec.rb b/spec/models/kalibro_configuration_spec.rb index fdf5dde..85d8ba7 100644 --- a/spec/models/kalibro_configuration_spec.rb +++ b/spec/models/kalibro_configuration_spec.rb @@ -70,6 +70,29 @@ describe KalibroConfiguration, :type => :model do end end end + + describe 'latest' do + let!(:kalibro_configuration) { FactoryGirl.build(:kalibro_configuration, id: 1) } + let!(:another_kalibro_configuration) { FactoryGirl.build(:another_kalibro_configuration, id: 2) } + let!(:kalibro_configuration_attributes) { FactoryGirl.build(:kalibro_configuration_attributes) } + + before :each do + kalibro_configuration.expects(:attributes).returns(kalibro_configuration_attributes) + another_kalibro_configuration.expects(:attributes).returns(kalibro_configuration_attributes) + + KalibroConfiguration.expects(:all).returns([kalibro_configuration, another_kalibro_configuration]) + end + + it 'should return the two kalibro_configurations ordered' do + expect(KalibroConfiguration.latest(2)).to eq([another_kalibro_configuration, kalibro_configuration]) + end + + context 'when no parameter is passed' do + it 'should return just the most recent kalibro_configuration' do + expect(KalibroConfiguration.latest).to eq([another_kalibro_configuration]) + end + end + end end describe 'destroy' do -- libgit2 0.21.2