Configure rating scale as class instance variable of MajorityJudgment
This commit is contained in:
parent
9c2adb1072
commit
9810cdb615
4 changed files with 25 additions and 13 deletions
10
mj.rb
10
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue