diff --git a/lib/split/dashboard.rb b/lib/split/dashboard.rb index df602930..357eaa99 100755 --- a/lib/split/dashboard.rb +++ b/lib/split/dashboard.rb @@ -15,7 +15,8 @@ class Dashboard < Sinatra::Base helpers Split::DashboardHelpers get '/' do - @experiments = Split::Experiment.all + # Display experiments without a winner at the top of the dashboard + @experiments = Split::Experiment.all_active_first # Display Rails Environment mode (or Rack version if not using Rails) if Object.const_defined?('Rails') @current_env = Rails.env.titlecase @@ -44,4 +45,4 @@ class Dashboard < Sinatra::Base redirect url('/') end end -end \ No newline at end of file +end diff --git a/lib/split/experiment.rb b/lib/split/experiment.rb index f97d3667..8f3dcf1b 100644 --- a/lib/split/experiment.rb +++ b/lib/split/experiment.rb @@ -41,6 +41,11 @@ def self.all Split.redis.smembers(:experiments).map {|e| find(e)} end + # Return experiments without a winner (considered "active") first + def self.all_active_first + all.sort_by{|e| e.winner ? 1 : 0} # sort_by hack since true/false isn't sortable + end + def self.find(name) if Split.redis.exists(name) obj = self.new name