easy_elo 0.1.0 → 0.1.1
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 +4 -4
- data/Rakefile +9 -4
- data/easy_elo.gemspec +3 -1
- data/lib/easy_elo.rb +11 -9
- data/lib/easy_elo/configure.rb +12 -0
- data/lib/easy_elo/game.rb +17 -0
- data/lib/easy_elo/helper.rb +9 -0
- data/lib/easy_elo/player.rb +14 -0
- data/lib/easy_elo/rating.rb +23 -0
- data/lib/easy_elo/version.rb +1 -1
- metadata +37 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54c9d0a49c644f3239853de7b8930ae08371fc36
|
4
|
+
data.tar.gz: fbe890c7390d58ce179358e325f22c7eb02579d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f1a1b12305958a7ae71480b8a7044be172669b009803d66b96ed150f78f5fc3f8a002a1e43ae3b70f25ebe2ef0855967c43bb04149f71b451bd313a938e9114
|
7
|
+
data.tar.gz: 7754bec7d27e520c23887270c12dda94baf19c70652a43a484aa646118dc29e864dec299159a62026637529f8401696fd02724ac1187d5f972cda498a27a243d
|
data/Rakefile
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler'
|
2
|
+
require 'rake/testtask'
|
3
3
|
|
4
|
-
|
4
|
+
Bundler::GemHelper.install_tasks
|
5
5
|
|
6
|
-
|
6
|
+
Rake::TestTask.new do |task|
|
7
|
+
task.libs << %w(test lib)
|
8
|
+
task.pattern = 'test/test_*.rb'
|
9
|
+
end
|
10
|
+
|
11
|
+
task :default => :test
|
data/easy_elo.gemspec
CHANGED
@@ -21,5 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler", "~> 1.11"
|
23
23
|
spec.add_development_dependency "rake", "~> 10.0"
|
24
|
-
spec.add_development_dependency "
|
24
|
+
spec.add_development_dependency "minitest", "~> 5.9"
|
25
|
+
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
26
|
+
spec.add_development_dependency "shoulda-context", "~> 1.2"
|
25
27
|
end
|
data/lib/easy_elo.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
require
|
1
|
+
require 'easy_elo/version'
|
2
|
+
require 'easy_elo/helper'
|
3
|
+
require 'easy_elo/configure'
|
4
|
+
require 'easy_elo/player'
|
5
|
+
require 'easy_elo/rating'
|
6
|
+
require 'easy_elo/game'
|
2
7
|
|
3
8
|
module EasyElo
|
4
|
-
|
5
|
-
|
6
|
-
@n = 7
|
7
|
-
end
|
8
|
-
|
9
|
-
def test
|
10
|
-
return @n
|
11
|
-
end
|
9
|
+
def self.config
|
10
|
+
@config ||= Configuration.new
|
12
11
|
end
|
13
12
|
|
13
|
+
def self.configure(&block)
|
14
|
+
yield(config)
|
15
|
+
end
|
14
16
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module EasyElo
|
2
|
+
class Game
|
3
|
+
include Helper
|
4
|
+
|
5
|
+
def initialize(p1, p2)
|
6
|
+
@p1 = p1
|
7
|
+
@p2 = p2
|
8
|
+
@result = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def won_by(winner)
|
12
|
+
result = (winner = @p1 ? 1 : 0)
|
13
|
+
@p1.plays(@p2, result)
|
14
|
+
@p2.plays(@p1, result - 1)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module EasyElo
|
2
|
+
class Rating
|
3
|
+
include Helper
|
4
|
+
|
5
|
+
def initialize(r1, r2, actual)
|
6
|
+
@r1 = r1
|
7
|
+
@r2 = r2
|
8
|
+
@actual = actual
|
9
|
+
@estimation = self.estimation
|
10
|
+
@k_factor = EasyElo.config.k_factor
|
11
|
+
@result = self.result
|
12
|
+
end
|
13
|
+
|
14
|
+
def estimation
|
15
|
+
sd = EasyElo.config.sd
|
16
|
+
(1/2) + Math.erf((@r1.to_f - @r2.to_f)/(2*sd))/2
|
17
|
+
end
|
18
|
+
|
19
|
+
def result
|
20
|
+
@r1 - @r1 + @k_factor * (@actual - @estimation)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/easy_elo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_elo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Mackie
|
@@ -39,19 +39,47 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.9'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest-reporters
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: shoulda-context
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.2'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.2'
|
55
83
|
description: Gem for easily implementing the Elo Algorith.
|
56
84
|
email:
|
57
85
|
- scott@mackie.io
|
@@ -71,6 +99,11 @@ files:
|
|
71
99
|
- bin/setup
|
72
100
|
- easy_elo.gemspec
|
73
101
|
- lib/easy_elo.rb
|
102
|
+
- lib/easy_elo/configure.rb
|
103
|
+
- lib/easy_elo/game.rb
|
104
|
+
- lib/easy_elo/helper.rb
|
105
|
+
- lib/easy_elo/player.rb
|
106
|
+
- lib/easy_elo/rating.rb
|
74
107
|
- lib/easy_elo/version.rb
|
75
108
|
homepage: https://github.com/MacroMackie/easy_elo
|
76
109
|
licenses:
|