Class: CardsLib::Ranker
- Inherits:
-
Object
show all
- Includes:
- Comparable
- Defined in:
- lib/cards_lib/ranker.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(rank = nil, ranks = nil, rank_lookup = nil) ⇒ Ranker
Returns a new instance of Ranker.
5
6
7
|
# File 'lib/cards_lib/ranker.rb', line 5
def initialize(rank = nil, ranks = nil, rank_lookup = nil)
@rank, @ranks, @rank_lookup = rank, ranks, rank_lookup
end
|
Instance Attribute Details
#rank ⇒ Object
Returns the value of attribute rank.
4
5
6
|
# File 'lib/cards_lib/ranker.rb', line 4
def rank
@rank
end
|
Instance Method Details
#<=>(item) ⇒ Object
18
19
20
|
# File 'lib/cards_lib/ranker.rb', line 18
def <=>(item)
ranker(self.rank) <=> ranker(item.rank)
end
|
#ranker(rank_face = @rank) ⇒ Object
13
14
15
16
|
# File 'lib/cards_lib/ranker.rb', line 13
def ranker(rank_face = @rank)
@rank_lookup ? @rank_lookup.(rank_face) :
ranks.index(rank_face).to_i + 1
end
|
#ranks ⇒ Object
9
10
11
|
# File 'lib/cards_lib/ranker.rb', line 9
def ranks
@ranks || Standard::RANKS
end
|
#sequential?(item) ⇒ Boolean
22
23
24
|
# File 'lib/cards_lib/ranker.rb', line 22
def sequential?(item)
(ranker(self.rank) - ranker(item.rank)).abs == 1
end
|