the_gambler 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjczNjg1NGQ4ZTRiZGZhMzU5NjEzMWIyN2E5YjcwMmFmZjA0ZDczNA==
5
+ data.tar.gz: !binary |-
6
+ ZjI0OWMzM2NkNWI2ZjYwMjhhOTkyYTU2NzgyMDAzMGZlYzRhODU3ZA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ Y2Y0MjdjMjhhMjQ5MjIyYmNlZjViYWQ0N2M2YmQzZDM1MDZjZDE4OGVkYzRi
10
+ ZDY5YzI1ZmU1OTQ1OWNiYWRmN2E5NzhmYmI5Y2ViNGE0OWQ2NTc0Nzk4ZmYz
11
+ MTNlNmI5NGI0NWUyOGU2ZTU2ZTc2OGRlNTZkOTU3MDAyZTgzNTM=
12
+ data.tar.gz: !binary |-
13
+ YTQ1Y2YzNzU1MGY4MTNkNzU0Y2IzY2ZmMGEwODkzYWM5YzBkZGY5NDczMTFm
14
+ ZmI0N2M3NjgzMWM5YmVmZTlkMzM5MmYzMGMwNGE1OGE4Yzg1OWQzN2U1MzRm
15
+ N2VjZDFhMGVkNGYzZWZlYjJhZDZmMTM3ZGMzOTViMWYxMjA1NzU=
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+
19
+ # For macos
20
+ .DS_Store
21
+ .Apple*
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color
1
+ --color --format NyanCatFormatter
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ the_gambler
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p448
data/Gemfile CHANGED
@@ -10,6 +10,6 @@ group :development do
10
10
  gem "yard"
11
11
  gem "rdoc"
12
12
  gem "bundler"
13
- gem "jeweler"
13
+ gem "nyan-cat-formatter"
14
14
  gem "simplecov"
15
15
  end
data/Gemfile.lock CHANGED
@@ -2,15 +2,9 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.3)
5
- git (1.2.5)
6
- jeweler (1.8.4)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rdoc
11
5
  json (1.7.5)
12
6
  multi_json (1.3.7)
13
- rake (0.9.2.2)
7
+ nyan-cat-formatter (0.2.0)
14
8
  rdoc (3.12)
15
9
  json (~> 1.4)
16
10
  rspec (2.11.0)
@@ -32,7 +26,7 @@ PLATFORMS
32
26
 
33
27
  DEPENDENCIES
34
28
  bundler
35
- jeweler
29
+ nyan-cat-formatter
36
30
  rdoc
37
31
  rspec
38
32
  simplecov
data/Rakefile CHANGED
@@ -1,57 +1 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
- require 'bundler'
5
- begin
6
- Bundler.setup(:default, :development)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
- require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "the_gambler"
18
- gem.homepage = "http://github.com/mstahl/the_gambler"
19
- gem.license = "MIT"
20
- gem.summary = %Q{Classes and modules for card-playing apps.}
21
- gem.description = %Q{
22
- Really common tasks in programs that use playing cards are a pain to implement. This is my
23
- implementation. Use it. Or don't.
24
- }
25
- gem.email = "max@villainousindustries.com"
26
- gem.authors = ["max thom stahl"]
27
- # dependencies defined in Gemfile
28
- end
29
- Jeweler::RubygemsDotOrgTasks.new
30
-
31
- require 'rspec/core'
32
- require 'rspec/core/rake_task'
33
- RSpec::Core::RakeTask.new(:spec) do |spec|
34
- spec.pattern = FileList['spec/**/*_spec.rb']
35
- end
36
-
37
- RSpec::Core::RakeTask.new(:rcov) do |spec|
38
- spec.pattern = 'spec/**/*_spec.rb'
39
- spec.rcov = true
40
- end
41
-
42
- task :default => :spec
43
-
44
- require 'yard'
45
- YARD::Rake::YardocTask.new
46
-
47
- namespace :benchmark do
48
- require 'the_gambler'
49
-
50
- desc 'Test how long it takes to evaluate a given number of random hands.'
51
- task :randoms do
52
- 10_000_000.times do |i|
53
- TheGambler::Hand.new(rand(52), rand(52), rand(52), rand(52), rand(52)).poker_value
54
- end
55
- end
56
- end
57
-
1
+ require "bundler/gem_tasks"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.3.0
@@ -6,6 +6,8 @@ module TheGambler
6
6
  SUIT_SYMBOLS = %w{spades clubs hearts diamonds}.map(&:to_sym)
7
7
  RANKS = %w{2 3 4 5 6 7 8 9 10 J Q K A}
8
8
 
9
+ # Initializer --------------------------------------------------------------
10
+
9
11
  def initialize(arg)
10
12
  case arg.class.to_s
11
13
  when 'Card','TheGambler::Card'
@@ -42,6 +44,20 @@ module TheGambler
42
44
  end
43
45
  end
44
46
 
47
+ # Instance methods ---------------------------------------------------------
48
+
49
+ def <(other)
50
+ return (@raw % 13) < (other.raw % 13)
51
+ end
52
+
53
+ def >(other)
54
+ return (@raw % 13) > (other.raw % 13)
55
+ end
56
+
57
+ def <=>(other)
58
+ return (@raw % 13) <=> (other.raw % 13)
59
+ end
60
+
45
61
  def ace?
46
62
  rank == 'A'
47
63
  end
@@ -0,0 +1,3 @@
1
+ module TheGambler
2
+ VERSION = "1.3.0"
3
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ module TheGambler
4
+
5
+ describe Card do
6
+ context 'comparisons with other cards', comparisons:true do
7
+ describe '#<' do
8
+ it 'should be able to compare two cards by rank' do
9
+ Card.new("7D").should < Card.new("10S")
10
+ end
11
+ end
12
+
13
+ describe '#>' do
14
+ it 'should be able to compare two cards by rank' do
15
+ Card.new("JD").should > Card.new("5D")
16
+ end
17
+ end
18
+
19
+ describe '#<=>' do
20
+ it 'should return -1 when less than its argument' do
21
+ (Card.new('10S') <=> Card.new('JS')).should == -1
22
+ end
23
+
24
+ it 'should return 0 when equal to its argument' do
25
+ (Card.new('10S') <=> Card.new('10H')).should == 0
26
+ end
27
+
28
+ it 'should return +1 when greater than its argument' do
29
+ (Card.new('KD') <=> Card.new('5H')).should == 1
30
+ end
31
+ end
32
+
33
+ # TODO Decide what I wanna do about the handling of aces.
34
+ # context 'including aces' do
35
+ # pending "I do not even wanna deal with aces right now for this...."
36
+ # end
37
+ end
38
+ end
39
+ end
@@ -143,6 +143,5 @@ module TheGambler
143
143
  end
144
144
  end
145
145
 
146
-
147
146
  end
148
147
  end
@@ -58,9 +58,6 @@ module TheGambler
58
58
  end
59
59
  end
60
60
 
61
-
62
-
63
-
64
61
  end
65
62
  end
66
63
 
data/the_gambler.gemspec CHANGED
@@ -1,88 +1,26 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'the_gambler/version'
5
5
 
6
- Gem::Specification.new do |s|
7
- s.name = "the_gambler"
8
- s.version = "1.2.0"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "the_gambler"
8
+ spec.version = TheGambler::VERSION
9
+ spec.authors = ["max thom stahl"]
10
+ spec.email = ["max@villainousindustries.com"]
11
+ spec.description = %q{
12
+ Really common tasks in programs that use playing cards are a pain to
13
+ implement. This is my implementation. Use it. Or don't.
14
+ }
15
+ spec.summary = %q{Classes and modules for card-playing apps.}
16
+ spec.homepage = ""
17
+ spec.license = "MIT"
9
18
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["max thom stahl"]
12
- s.date = "2012-11-24"
13
- s.description = "\n Really common tasks in programs that use playing cards are a pain to implement. This is my\n implementation. Use it. Or don't.\n "
14
- s.email = "max@villainousindustries.com"
15
- s.extra_rdoc_files = [
16
- "LICENSE.txt",
17
- "README.md"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".rspec",
22
- "CHANGELOG.md",
23
- "Gemfile",
24
- "Gemfile.lock",
25
- "LICENSE.txt",
26
- "README.md",
27
- "Rakefile",
28
- "VERSION",
29
- "lib/the_gambler.rb",
30
- "lib/the_gambler/blackjack.rb",
31
- "lib/the_gambler/card.rb",
32
- "lib/the_gambler/deck.rb",
33
- "lib/the_gambler/hand.rb",
34
- "lib/the_gambler/poker.rb",
35
- "spec/cards/initialization_spec.rb",
36
- "spec/hands/hands_spec.rb",
37
- "spec/hands/poker/hand_flush_spec.rb",
38
- "spec/hands/poker/hand_four_of_a_kind_spec.rb",
39
- "spec/hands/poker/hand_full_house_spec.rb",
40
- "spec/hands/poker/hand_high_card_spec.rb",
41
- "spec/hands/poker/hand_one_pair_spec.rb",
42
- "spec/hands/poker/hand_royal_flush_spec.rb",
43
- "spec/hands/poker/hand_straight_flush_spec.rb",
44
- "spec/hands/poker/hand_straight_spec.rb",
45
- "spec/hands/poker/hand_three_of_a_kind_spec.rb",
46
- "spec/hands/poker/hand_two_pair_spec.rb",
47
- "spec/hands/poker/kicker_cards_spec.rb",
48
- "spec/hands/poker/nine_card_hands_spec.rb",
49
- "spec/hands/poker/seven_card_hands_spec.rb",
50
- "spec/spec_helper.rb",
51
- "spec/support/shared_examples/shared_poker_hands.rb",
52
- "spec/the_gambler_spec.rb",
53
- "the_gambler.gemspec"
54
- ]
55
- s.homepage = "http://github.com/mstahl/the_gambler"
56
- s.licenses = ["MIT"]
57
- s.require_paths = ["lib"]
58
- s.rubygems_version = "1.8.24"
59
- s.summary = "Classes and modules for card-playing apps."
19
+ spec.files = `git ls-files`.split($/)
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
+ spec.require_paths = ["lib"]
60
23
 
61
- if s.respond_to? :specification_version then
62
- s.specification_version = 3
63
-
64
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
65
- s.add_development_dependency(%q<rspec>, [">= 0"])
66
- s.add_development_dependency(%q<yard>, [">= 0"])
67
- s.add_development_dependency(%q<rdoc>, [">= 0"])
68
- s.add_development_dependency(%q<bundler>, [">= 0"])
69
- s.add_development_dependency(%q<jeweler>, [">= 0"])
70
- s.add_development_dependency(%q<simplecov>, [">= 0"])
71
- else
72
- s.add_dependency(%q<rspec>, [">= 0"])
73
- s.add_dependency(%q<yard>, [">= 0"])
74
- s.add_dependency(%q<rdoc>, [">= 0"])
75
- s.add_dependency(%q<bundler>, [">= 0"])
76
- s.add_dependency(%q<jeweler>, [">= 0"])
77
- s.add_dependency(%q<simplecov>, [">= 0"])
78
- end
79
- else
80
- s.add_dependency(%q<rspec>, [">= 0"])
81
- s.add_dependency(%q<yard>, [">= 0"])
82
- s.add_dependency(%q<rdoc>, [">= 0"])
83
- s.add_dependency(%q<bundler>, [">= 0"])
84
- s.add_dependency(%q<jeweler>, [">= 0"])
85
- s.add_dependency(%q<simplecov>, [">= 0"])
86
- end
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake"
87
26
  end
88
-
metadata CHANGED
@@ -1,84 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: the_gambler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 1.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - max thom stahl
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-24 00:00:00.000000000 Z
11
+ date: 2013-08-12 00:00:00.000000000 Z
13
12
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: yard
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :development
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: rdoc
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
13
  - !ruby/object:Gem::Dependency
63
14
  name: bundler
64
15
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
16
  requirements:
67
- - - ! '>='
17
+ - - ~>
68
18
  - !ruby/object:Gem::Version
69
- version: '0'
19
+ version: '1.3'
70
20
  type: :development
71
21
  prerelease: false
72
22
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
23
  requirements:
75
- - - ! '>='
24
+ - - ~>
76
25
  - !ruby/object:Gem::Version
77
- version: '0'
26
+ version: '1.3'
78
27
  - !ruby/object:Gem::Dependency
79
- name: jeweler
28
+ name: rake
80
29
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
30
  requirements:
83
31
  - - ! '>='
84
32
  - !ruby/object:Gem::Version
@@ -86,38 +34,23 @@ dependencies:
86
34
  type: :development
87
35
  prerelease: false
88
36
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: simplecov
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
37
  requirements:
107
38
  - - ! '>='
108
39
  - !ruby/object:Gem::Version
109
40
  version: '0'
110
41
  description: ! "\n Really common tasks in programs that use playing cards are a
111
- pain to implement. This is my\n implementation. Use it. Or don't.\n "
112
- email: max@villainousindustries.com
42
+ pain to\n implement. This is my implementation. Use it. Or don't.\n "
43
+ email:
44
+ - max@villainousindustries.com
113
45
  executables: []
114
46
  extensions: []
115
- extra_rdoc_files:
116
- - LICENSE.txt
117
- - README.md
47
+ extra_rdoc_files: []
118
48
  files:
119
49
  - .document
50
+ - .gitignore
120
51
  - .rspec
52
+ - .ruby-gemset
53
+ - .ruby-version
121
54
  - CHANGELOG.md
122
55
  - Gemfile
123
56
  - Gemfile.lock
@@ -131,6 +64,8 @@ files:
131
64
  - lib/the_gambler/deck.rb
132
65
  - lib/the_gambler/hand.rb
133
66
  - lib/the_gambler/poker.rb
67
+ - lib/the_gambler/version.rb
68
+ - spec/cards/comparison_spec.rb
134
69
  - spec/cards/initialization_spec.rb
135
70
  - spec/hands/hands_spec.rb
136
71
  - spec/hands/poker/hand_flush_spec.rb
@@ -150,32 +85,48 @@ files:
150
85
  - spec/support/shared_examples/shared_poker_hands.rb
151
86
  - spec/the_gambler_spec.rb
152
87
  - the_gambler.gemspec
153
- homepage: http://github.com/mstahl/the_gambler
88
+ homepage: ''
154
89
  licenses:
155
90
  - MIT
91
+ metadata: {}
156
92
  post_install_message:
157
93
  rdoc_options: []
158
94
  require_paths:
159
95
  - lib
160
96
  required_ruby_version: !ruby/object:Gem::Requirement
161
- none: false
162
97
  requirements:
163
98
  - - ! '>='
164
99
  - !ruby/object:Gem::Version
165
100
  version: '0'
166
- segments:
167
- - 0
168
- hash: -448834733471940909
169
101
  required_rubygems_version: !ruby/object:Gem::Requirement
170
- none: false
171
102
  requirements:
172
103
  - - ! '>='
173
104
  - !ruby/object:Gem::Version
174
105
  version: '0'
175
106
  requirements: []
176
107
  rubyforge_project:
177
- rubygems_version: 1.8.24
108
+ rubygems_version: 2.0.6
178
109
  signing_key:
179
- specification_version: 3
110
+ specification_version: 4
180
111
  summary: Classes and modules for card-playing apps.
181
- test_files: []
112
+ test_files:
113
+ - spec/cards/comparison_spec.rb
114
+ - spec/cards/initialization_spec.rb
115
+ - spec/hands/hands_spec.rb
116
+ - spec/hands/poker/hand_flush_spec.rb
117
+ - spec/hands/poker/hand_four_of_a_kind_spec.rb
118
+ - spec/hands/poker/hand_full_house_spec.rb
119
+ - spec/hands/poker/hand_high_card_spec.rb
120
+ - spec/hands/poker/hand_one_pair_spec.rb
121
+ - spec/hands/poker/hand_royal_flush_spec.rb
122
+ - spec/hands/poker/hand_straight_flush_spec.rb
123
+ - spec/hands/poker/hand_straight_spec.rb
124
+ - spec/hands/poker/hand_three_of_a_kind_spec.rb
125
+ - spec/hands/poker/hand_two_pair_spec.rb
126
+ - spec/hands/poker/kicker_cards_spec.rb
127
+ - spec/hands/poker/nine_card_hands_spec.rb
128
+ - spec/hands/poker/seven_card_hands_spec.rb
129
+ - spec/spec_helper.rb
130
+ - spec/support/shared_examples/shared_poker_hands.rb
131
+ - spec/the_gambler_spec.rb
132
+ has_rdoc: