schulze-vote 2.0.5 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d14c1791421988a4b47d01a1a1d534a178447f4e
4
- data.tar.gz: 970a191bb923a4469fea996a4d78537425b13d77
3
+ metadata.gz: 54a125030f5f284e82f05d0a65c077e463a37ad0
4
+ data.tar.gz: cfa32855bdd40cd8ec4c92b1d96d17f81b635d68
5
5
  SHA512:
6
- metadata.gz: bc0aab70b8a74efc664067693f2553e9a9c983be783ff1be51fc40d31eb112f79b3c435b7ed60963ac90214e24da0b7a1cd265a929a9b68978016e1a0363e301
7
- data.tar.gz: 382412f15f3d6b445be9d8a49d01118b0a41db71cdb3247505bad3a7f5a76bba52b924e9da7d1196be8f6628684f7e69039cfa0c80c9156db884ea8e9ac3d35d
6
+ metadata.gz: 84fb23bc8171ba68ea054785d85ac7215a0372327f55b26df9b305957b0172970faa97cfdfe9f24a63f52cf572d733294bb044628f63aec8322c1d2f27f09461
7
+ data.tar.gz: ed14fffb19e893095dbbd02e337dd4fabe8eb021ce0e7d5d0efa340278bf756afb993f79f4a831878be06cba74b16f4780445b98f4ff449bbfc934aa177f5a57
data/README.md CHANGED
@@ -15,10 +15,16 @@ Wikipedia:
15
15
  gem install schulze-vote
16
16
  ```
17
17
 
18
+ Gemfile
19
+
20
+ ``` ruby
21
+ gem 'schulze-vote', require: 'schulze_vote'
22
+ ```
23
+
18
24
  ## Usage
19
25
 
20
26
  ``` ruby
21
- require 'schulze-vote'
27
+ require 'schulze_vote'
22
28
  vs = SchulzeBasic.do vote_list, candidate_count
23
29
  vs.ranks
24
30
  vs.ranks_abc
@@ -80,7 +86,7 @@ See it as an visual reminder while coding with this gem.
80
86
  (Only weight values, no letters here! See section "_preference order to weight_ example")
81
87
 
82
88
  ``` ruby
83
- require 'schulze-vote'
89
+ require 'schulze_vote'
84
90
  vote_list_array = [[3,2,1],[1,3,2],[3,1,2]]
85
91
  vs = SchulzeBasic.do vote_list_array, 3
86
92
  ```
@@ -88,7 +94,7 @@ vs = SchulzeBasic.do vote_list_array, 3
88
94
  #### String
89
95
 
90
96
  ``` ruby
91
- require 'schulze-vote'
97
+ require 'schulze_vote'
92
98
  vote_list_string = <<EOF
93
99
  A;B;C
94
100
  B;C;A
@@ -102,7 +108,7 @@ vs = SchulzeBasic.do vote_list_string, 3
102
108
  #### File
103
109
 
104
110
  ``` ruby
105
- require 'schulze-vote'
111
+ require 'schulze_vote'
106
112
  vs = SchulzeBasic.do File.open('path/to/vote.list')
107
113
  ```
108
114
 
@@ -58,6 +58,10 @@ module Vote
58
58
  @classifications ||= calculate_classifications(limit_results)
59
59
  end
60
60
 
61
+ def beat_couples
62
+ @beat_couples ||= calculate_beat_couples
63
+ end
64
+
61
65
  private
62
66
 
63
67
  def play
@@ -123,22 +127,22 @@ module Vote
123
127
  end
124
128
 
125
129
  def calculate_beat_couples
126
- @beat_couples = []
130
+ beat_couples = []
127
131
  ranks.each_with_index do |_val, idx|
128
132
  ranks.each_with_index do |_val2, idx2|
129
133
  next if idx == idx2
130
134
  if play_matrix[idx, idx2] > play_matrix[idx2, idx]
131
- @beat_couples << [idx, idx2]
135
+ beat_couples << [idx, idx2]
132
136
  end
133
137
  end
134
138
  end
135
- @beat_couples
139
+ beat_couples
136
140
  end
137
141
 
138
142
  def rank_element(el)
139
143
  rank = 0
140
144
  rank -= 100 if @potential_winners.include?(el)
141
- @beat_couples.each do |b|
145
+ beat_couples.each do |b|
142
146
  rank -= 1 if b[0] == el
143
147
  end
144
148
  rank
@@ -146,13 +150,12 @@ module Vote
146
150
 
147
151
  def calculate_classifications(limit_results)
148
152
  calculate_potential_winners
149
- calculate_beat_couples
150
153
 
151
154
  start_list = (0..ranks.length - 1).to_a
152
155
  start_list.sort! { |e1, e2| rank_element(e1) <=> rank_element(e2) }
153
156
 
154
157
  classifications = []
155
- compute_classifications(classifications, [], @potential_winners, @beat_couples, start_list, limit_results)
158
+ compute_classifications(classifications, [], @potential_winners, beat_couples, start_list, limit_results)
156
159
  classifications
157
160
  end
158
161
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schulze-vote
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Rodi