go-rank 0.0.4 → 0.0.5
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.
- data/History.txt +5 -0
- data/Rakefile +2 -2
- data/lib/gorank/gorank.rb +52 -39
- data/lib/gorank/version.rb +1 -1
- data/test/test_gorank.rb +16 -0
- data/website/index.html +55 -5
- data/website/index.txt +60 -4
- metadata +2 -2
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -39,13 +39,13 @@ RUBYFORGE_PROJECT = 'go-rank' # The unix name for your project
|
|
39
39
|
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
40
40
|
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
41
41
|
|
42
|
-
NAME = "
|
42
|
+
NAME = "go-rank"
|
43
43
|
REV = nil
|
44
44
|
# UNCOMMENT IF REQUIRED:
|
45
45
|
# REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil
|
46
46
|
VERS = Gorank::VERSION::STRING + (REV ? ".#{REV}" : "")
|
47
47
|
CLEAN.include ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store']
|
48
|
-
RDOC_OPTS = ['--quiet', '--title', '
|
48
|
+
RDOC_OPTS = ['--quiet', '--title', 'go-rank documentation',
|
49
49
|
"--opname", "index.html",
|
50
50
|
"--line-numbers",
|
51
51
|
"--main", "README",
|
data/lib/gorank/gorank.rb
CHANGED
@@ -2,44 +2,44 @@
|
|
2
2
|
class GoRank
|
3
3
|
|
4
4
|
@@rank_array = [
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
5
|
+
'7 dan',
|
6
|
+
'6 dan',
|
7
|
+
'5 dan',
|
8
|
+
'4 dan',
|
9
|
+
'3 dan',
|
10
|
+
'2 dan',
|
11
|
+
'1 dan',
|
12
|
+
'1 kyu',
|
13
|
+
'2 kyu',
|
14
|
+
'3 kyu',
|
15
|
+
'4 kyu',
|
16
|
+
'5 kyu',
|
17
|
+
'6 kyu',
|
18
|
+
'7 kyu',
|
19
|
+
'8 kyu',
|
20
|
+
'9 kyu',
|
21
|
+
'10 kyu',
|
22
|
+
'11 kyu',
|
23
|
+
'12 kyu',
|
24
|
+
'13 kyu',
|
25
|
+
'14 kyu',
|
26
|
+
'15 kyu',
|
27
|
+
'16 kyu',
|
28
|
+
'17 kyu',
|
29
|
+
'18 kyu',
|
30
|
+
'19 kyu',
|
31
|
+
'20 kyu',
|
32
|
+
'21 kyu',
|
33
|
+
'22 kyu',
|
34
|
+
'23 kyu',
|
35
|
+
'24 kyu',
|
36
|
+
'25 kyu',
|
37
|
+
'26 kyu',
|
38
|
+
'27 kyu',
|
39
|
+
'28 kyu',
|
40
|
+
'29 kyu',
|
41
|
+
'30 kyu',
|
42
|
+
]
|
43
43
|
|
44
44
|
# valid values for kd: :kyu, :dan
|
45
45
|
def initialize(num, kd)
|
@@ -47,7 +47,7 @@ class GoRank
|
|
47
47
|
@num = num
|
48
48
|
@kd = kd
|
49
49
|
raise ArgumentError if @kd == :kyu and (@num < 1 or @num > 30) or
|
50
|
-
|
50
|
+
@kd == :dan and (@num < 1 or @num > 7)
|
51
51
|
end
|
52
52
|
|
53
53
|
# human representation of a rank.
|
@@ -100,4 +100,17 @@ class GoRank
|
|
100
100
|
}
|
101
101
|
result
|
102
102
|
end
|
103
|
+
|
104
|
+
def <(other)
|
105
|
+
other-self > 0
|
106
|
+
end
|
107
|
+
|
108
|
+
def >(other)
|
109
|
+
other-self < 0
|
110
|
+
end
|
111
|
+
|
112
|
+
def ==(other)
|
113
|
+
other-self == 0
|
114
|
+
end
|
115
|
+
|
103
116
|
end # class GoRank
|
data/lib/gorank/version.rb
CHANGED
data/test/test_gorank.rb
CHANGED
@@ -145,4 +145,20 @@ p myrank
|
|
145
145
|
rank = GoRank.new 31, :kyu
|
146
146
|
}
|
147
147
|
end
|
148
|
+
|
149
|
+
def test_order_of_ranks
|
150
|
+
assert GoRank.new(5,:kyu) < GoRank.new(4,:kyu)
|
151
|
+
assert GoRank.new(4,:kyu) > GoRank.new(5,:kyu)
|
152
|
+
|
153
|
+
assert GoRank.new(1,:dan) > GoRank.new(1,:kyu)
|
154
|
+
assert GoRank.new(1,:kyu) < GoRank.new(1,:dan)
|
155
|
+
|
156
|
+
assert GoRank.new(2,:dan) > GoRank.new(30,:kyu)
|
157
|
+
assert GoRank.new(30,:kyu) < GoRank.new(1,:dan)
|
158
|
+
|
159
|
+
assert GoRank.new(5,:dan) == GoRank.new(5,:dan)
|
160
|
+
assert GoRank.new(5,:kyu) == GoRank.new(5,:kyu)
|
161
|
+
|
162
|
+
assert GoRank.new(1,:kyu) != GoRank.new(2,:kyu)
|
163
|
+
end
|
148
164
|
end
|
data/website/index.html
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
7
|
<title>
|
8
|
-
|
8
|
+
go-rank
|
9
9
|
</title>
|
10
10
|
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
11
|
<style>
|
@@ -30,18 +30,68 @@
|
|
30
30
|
<body>
|
31
31
|
<div id="main">
|
32
32
|
|
33
|
-
<h1>
|
33
|
+
<h1>go-rank</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/gorank"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
36
|
<a href="http://rubyforge.org/projects/gorank" class="numbers">0.0.4</a>
|
37
37
|
</div>
|
38
38
|
<h2>What</h2>
|
39
|
-
<p>Go-Rank is a class for handling ranks in the game of <a href="http://en.wikipedia.org/wiki/Go_(game">Go</a
|
39
|
+
<p>Go-Rank is a class for handling ranks in the game of <a href="http://en.wikipedia.org/wiki/Go_(game)">Go</a>.</p>
|
40
40
|
<h2>Installing</h2>
|
41
|
-
<pre syntax="ruby">sudo gem install
|
41
|
+
<pre syntax="ruby">sudo gem install go-rank</pre>
|
42
42
|
<h2>The basics</h2>
|
43
43
|
<h2>Demonstration of usage</h2>
|
44
|
-
<
|
44
|
+
<pre syntax="ruby">
|
45
|
+
require 'rubygems'
|
46
|
+
require 'gorank'
|
47
|
+
|
48
|
+
# create a go-rank object
|
49
|
+
rank = GoRank.new 30, :kyu # 30 kyu is the lowest
|
50
|
+
# 7 dan is the highest rank
|
51
|
+
|
52
|
+
puts rank.to_s # => '30 kyu'
|
53
|
+
|
54
|
+
# one level higher:
|
55
|
+
|
56
|
+
rank += 1
|
57
|
+
puts rank.to_s # => '29 kyu'
|
58
|
+
|
59
|
+
|
60
|
+
# one level lower:
|
61
|
+
|
62
|
+
rank -= 1
|
63
|
+
puts rank.to_s # => '30 kyu'
|
64
|
+
|
65
|
+
# cannot go lower:
|
66
|
+
begin
|
67
|
+
rank -= 1 # => raises IndexError
|
68
|
+
puts rank.to_s
|
69
|
+
rescue
|
70
|
+
#
|
71
|
+
end
|
72
|
+
|
73
|
+
# change from kyu to dan rank
|
74
|
+
|
75
|
+
rank = GoRank.new 1, :kyu
|
76
|
+
puts rank.to_s # => '1 kyu'
|
77
|
+
rank += 1
|
78
|
+
puts rank.to_s # => '1 dan'
|
79
|
+
rank += 1
|
80
|
+
puts rank.to_s # => '2 dan'
|
81
|
+
|
82
|
+
# difference between two ranks
|
83
|
+
|
84
|
+
rank1 = GoRank.new 1, :dan
|
85
|
+
rank2 = GoRank.new 5, :kyu
|
86
|
+
|
87
|
+
puts "difference between #{rank1} and #{rank2} is #{rank1-rank2} stones"
|
88
|
+
# => "difference between 1 dan and 5 kyu is 5 stones"
|
89
|
+
|
90
|
+
# invalid ranks
|
91
|
+
|
92
|
+
rank = GoRank.new 35, :kyu # => raises ArgumentError
|
93
|
+
</pre>
|
94
|
+
|
45
95
|
<h2>Forum</h2>
|
46
96
|
<p><a href="http://groups.google.com/group/gorank">http://groups.google.com/group/gorank</a></p>
|
47
97
|
<h2>How to submit patches</h2>
|
data/website/index.txt
CHANGED
@@ -1,20 +1,76 @@
|
|
1
|
-
h1.
|
1
|
+
h1. go-rank
|
2
2
|
|
3
3
|
h2. What
|
4
4
|
|
5
|
-
Go-Rank is a class for handling ranks in the game of "Go":http://en.wikipedia.org/wiki/Go_(game)
|
5
|
+
Go-Rank is a class for handling ranks in the game of ["Go":http://en.wikipedia.org/wiki/Go_(game)].
|
6
6
|
|
7
7
|
h2. Installing
|
8
8
|
|
9
|
-
<pre syntax="ruby">sudo gem install
|
9
|
+
<pre syntax="ruby">sudo gem install go-rank</pre>
|
10
10
|
|
11
11
|
h2. The basics
|
12
12
|
|
13
13
|
|
14
14
|
h2. Demonstration of usage
|
15
15
|
|
16
|
-
|
16
|
+
<pre syntax="ruby">
|
17
|
+
require 'rubygems'
|
18
|
+
require 'gorank'
|
17
19
|
|
20
|
+
# create a go-rank object
|
21
|
+
rank = GoRank.new 30, :kyu # 30 kyu is the lowest
|
22
|
+
# 7 dan is the highest rank
|
23
|
+
|
24
|
+
puts rank.to_s # => '30 kyu'
|
25
|
+
|
26
|
+
# one level higher:
|
27
|
+
|
28
|
+
rank += 1
|
29
|
+
puts rank.to_s # => '29 kyu'
|
30
|
+
|
31
|
+
|
32
|
+
# one level lower:
|
33
|
+
|
34
|
+
rank -= 1
|
35
|
+
puts rank.to_s # => '30 kyu'
|
36
|
+
|
37
|
+
# cannot go lower:
|
38
|
+
begin
|
39
|
+
rank -= 1 # => raises IndexError
|
40
|
+
puts rank.to_s
|
41
|
+
rescue
|
42
|
+
#
|
43
|
+
end
|
44
|
+
|
45
|
+
# change from kyu to dan rank
|
46
|
+
|
47
|
+
rank = GoRank.new 1, :kyu
|
48
|
+
puts rank.to_s # => '1 kyu'
|
49
|
+
rank += 1
|
50
|
+
puts rank.to_s # => '1 dan'
|
51
|
+
rank += 1
|
52
|
+
puts rank.to_s # => '2 dan'
|
53
|
+
|
54
|
+
# difference between two ranks
|
55
|
+
|
56
|
+
rank1 = GoRank.new 1, :dan
|
57
|
+
rank2 = GoRank.new 5, :kyu
|
58
|
+
|
59
|
+
puts "difference between #{rank1} and #{rank2} is #{rank1-rank2} stones"
|
60
|
+
# => "difference between 1 dan and 5 kyu is 5 stones"
|
61
|
+
|
62
|
+
# comparing ranks
|
63
|
+
# a better rank is greater than a lower rank
|
64
|
+
|
65
|
+
puts GoRank.new(1,:dan) > GoRank(5,:kyu) # => true
|
66
|
+
puts GoRank.new(1,:dan) == GoRank(1,:dan) # => true
|
67
|
+
puts GoRank.new(1,:dan) < GoRank(5,:kyu) # => false
|
68
|
+
|
69
|
+
# invalid ranks
|
70
|
+
|
71
|
+
rank = GoRank.new 35, :kyu # => raises ArgumentError
|
72
|
+
</pre>
|
73
|
+
|
18
74
|
h2. Forum
|
19
75
|
|
20
76
|
"http://groups.google.com/group/gorank":http://groups.google.com/group/gorank
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: go-rank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Preymesser
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-10 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|