gamemaker 0.2.0 → 0.3.0

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: cc9c799ef34e5fa6def38e0c9ca605422066beb7
4
- data.tar.gz: 71dfb99cd0ae105da715e2a95c8dd504dafb2c5e
3
+ metadata.gz: 1045e4b4a921944124481400fa0d40da13c65770
4
+ data.tar.gz: 79a374f9a54f50c447764c98e016df80a188f045
5
5
  SHA512:
6
- metadata.gz: d9fb7600fad795a54207bc0ee96af83123ea675c5fd69b366217e8d1ce3afe04d6f42c4372a581255315eb1879baa50974218ba01d7b0bb9c6489e1527b85d53
7
- data.tar.gz: 604c9d9304ec761dc990a16693032bef46f60fd79554894b2cfdb3eeb0bb2bc26d04596ab2cba879ae48d451f3e0550c6cc19dd9a22778516af09acbb418db24
6
+ metadata.gz: 4d2b8672921d11aec36a9da94afe5331b74ef04ddb13b9edf9f9f0af6806ad10793a50421d534376a73d3bf316a69fbc616f3929e0829919f211eea724f76331
7
+ data.tar.gz: f564779841d15944ac84e3e29e9757e13631b72e5ba93709d350e892cf90f7c663902d104e0ac57f7349ba09d88e18361ba5f72102dbfd775c190a3bed5f7d7f
@@ -28,7 +28,7 @@ module Gamemaker
28
28
  @cards.empty?
29
29
  end
30
30
 
31
- def shuffle!
31
+ def shuffle
32
32
  @cards.shuffle!
33
33
  self
34
34
  end
@@ -41,9 +41,9 @@ module Gamemaker
41
41
 
42
42
  def draw!(n = nil)
43
43
  if n && n > @cards.length
44
- raise IndexError, "Cannot draw #{n} cards from the deck: only #{@cards.length} cards left"
44
+ raise IndexError, "Tried to draw #{n} cards when there were only #{@cards.length} cards left"
45
45
  elsif !n && empty?
46
- raise IndexError, "Cannot draw from the deck: no cards left"
46
+ raise IndexError, "Tried to draw a card when there were no cards left"
47
47
  else
48
48
  draw(n)
49
49
  end
@@ -74,7 +74,7 @@ module Gamemaker
74
74
 
75
75
  alias_method :untake, :undraw
76
76
 
77
- def merge!(other)
77
+ def merge(other)
78
78
  self << other.draw(other.length)
79
79
  end
80
80
 
@@ -15,6 +15,42 @@ module Gamemaker
15
15
  def initialize(cards = [])
16
16
  super(cards)
17
17
  end
18
+
19
+ def include?(*cards)
20
+ cards.flatten.all? { |card| @cards.include?(card) }
21
+ end
22
+
23
+ def draw_randomly(n = nil)
24
+ drawn = n ? @cards.sample(n) : @cards.sample
25
+ remove(*Array(drawn))
26
+ drawn
27
+ end
28
+
29
+ def draw_randomly!(n = nil)
30
+ if n && n > @cards.length
31
+ raise IndexError, "Tried to draw #{n} cards when there were only #{@cards.length} cards left"
32
+ elsif !n && empty?
33
+ raise IndexError, "Tried to draw a card when there were no cards left"
34
+ else
35
+ draw_randomly(n)
36
+ end
37
+ end
38
+
39
+ def remove(*cards)
40
+ cards = cards.flatten
41
+ @cards.delete_if { |card| cards.include?(card) }
42
+ self
43
+ end
44
+
45
+ def remove!(*cards)
46
+ cards.flatten.each do |card|
47
+ unless @cards.include?(card)
48
+ raise ArgumentError, "Cannot remove #{card} as it's not part of the hand"
49
+ end
50
+ end
51
+
52
+ remove(*cards)
53
+ end
18
54
  end
19
55
  end
20
56
  end
@@ -1,3 +1,3 @@
1
1
  module Gamemaker
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gamemaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Godfrey Chan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-19 00:00:00.000000000 Z
11
+ date: 2016-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport