diff --git a/mj.rb b/mj.rb
index 7f44aec..5cfa284 100644
--- a/mj.rb
+++ b/mj.rb
@@ -1,8 +1,14 @@
class MajorityJudgment
+ @values = nil
+
include Comparable
attr_reader :ratings, :count, :n, :majority
+ class << self
+ attr_accessor :values
+ end
+
def initialize(arg)
if arg.is_a?(Array)
@ratings = arg
@@ -22,7 +28,7 @@ class MajorityJudgment
def mj
s = 0
- (1..7).to_a.reverse.each do |r|
+ (1..self.class.values.length).to_a.reverse.each do |r|
s = s + @count[r] if @count[r]
return r if s >= @majority
end
@@ -31,7 +37,7 @@ class MajorityJudgment
def proponents(rating = self.mj)
p = 0
- (rating+1..7).to_a.reverse.each do |r|
+ (rating+1..self.class.values.length).to_a.reverse.each do |r|
p = p + @count[r] if @count[r]
end
return p
diff --git a/views/votes_show_closed.erb b/views/votes_show_closed.erb
index 7eaa696..a90d288 100644
--- a/views/votes_show_closed.erb
+++ b/views/votes_show_closed.erb
@@ -16,7 +16,7 @@
<%= user.email %> |
<% @vote.candidates.each do |candidate| %>
<% if rating = @vote.ratings.find { |rating| rating.user == user and rating.candidate == candidate } %>
- <%= rating.value %> |
+ <%= settings.values.select { |e| e[:id] == rating.value }.first[:label] %> |
<% end %>
<% end %>
@@ -27,7 +27,7 @@
<% @vote.candidates.sort { |a, b| a.mj <=> b.mj }.reverse.each do |candidate| %>
- - <%= candidate.name %>: <%= candidate.mj.mj %>
+ - <%= candidate.name %>: <%= settings.values.select { |e| e[:id] == candidate.mj.mj }.first[:label] %>
<% end %>
diff --git a/views/votes_show_open.erb b/views/votes_show_open.erb
index eed4a5b..b9d8943 100644
--- a/views/votes_show_open.erb
+++ b/views/votes_show_open.erb
@@ -8,21 +8,19 @@
diff --git a/vote.rb b/vote.rb
index 0c53d72..4031bd6 100644
--- a/vote.rb
+++ b/vote.rb
@@ -51,6 +51,14 @@ def verify_password(password, hash)
end
enable :sessions
+set :values, [ { :id => 1, :label => "Awful" },
+ { :id => 2, :label => "Very bad" },
+ { :id => 3, :label => "Bad" },
+ { :id => 4, :label => "Mediocre" },
+ { :id => 5, :label => "Good" },
+ { :id => 6, :label => "Very good" },
+ { :id => 7, :label => "Excellent" } ]
+MajorityJudgment.values = settings.values
get '/' do
redirect '/login' unless current_user