odds 0.1.0 → 0.2.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NGYwYzcxM2U3NDdmYjljMTgwYjNkYTJjMzM4NWVhMTE3ZjRkMzJiZQ==
4
+ NTVhOWM3MDg1YmRhZTVmNDVkYzU0ZTU1YjY5MjUyOTlhYTI3YmNhMA==
5
5
  data.tar.gz: !binary |-
6
- ZTBkNzBlMjYxYmE5N2I3MTMwNjliZDA0ZmVhMDRlZTgzMmIyM2JlMA==
6
+ N2U2MzBkYTZjZmIwYzgxM2JkZmU2ZjMzN2JmNzZiMzljY2UyMDhkMg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MDIzMTEzYjA1OGY4ODc4YWMyNmY5NmJkMjYyYmMxM2QyNWJkOGE3ZjIwNjgz
10
- MjExMWI4OWU1N2RmMDNmZWM0YWU3MmQ3Njc2Y2EzZmMyMzc0ZjU3NDUyMTc5
11
- ODc4NTc4ZjM0ZWU3NmU0NGUxMmZhMzcxZGMwNDhkYWViODQzYzQ=
9
+ MjkxZGRhYjU0ZjQ5OTk5NjE4NmFjNDMzNzhjMjkxNDllOTgxYzU5ZTBjZGY4
10
+ ZjgxNzZhY2UzZmRjMDNjMDZiM2E4MmY5YjUyNTdjMTk4NWMwODVhNjZjYWM2
11
+ ZjMwNzBjMDYwOGEzNDIzOThiZGU2ZmRkZTIzM2I1YmE3MTUwMjg=
12
12
  data.tar.gz: !binary |-
13
- ODIwNmM5NmNmZDFmMGVjNWE1YzRkMGNlZTkwY2I1YjU0ZjgwMDc0ZjgxNTRl
14
- NWMxZTJkYzAzMGFiOWMxMWIxMWE0MWEwZmUyZTRjZjgzZDJhOTEyZjY2YmUw
15
- N2NjZDc0MDlmMGM4YTU3MGFmODhhNDcxNTNlZTczZGFlNzNmZTQ=
13
+ NDAxN2NjNmQxZTZjOTE5OTUyZTYxNTdhZjg0MTgyMTcwNjllMGZjNjYxNzA4
14
+ MjRhMWJlMGEwMmE4NzVmNDdkMmFjMWEyODU0NDYyYmVkNzVhNWIxZmY5ZDVj
15
+ ZWM3N2I1ODNkN2VhNTMyOWJlMmI0NTExOGY2YjRiMGUyNjU4ODM=
data/Gemfile CHANGED
@@ -11,6 +11,12 @@ group :development do
11
11
  gem "bundler", ">= 1.0"
12
12
  gem "jeweler", "~> 1.8.7"
13
13
  #gem "rcov", ">= 0"
14
+
15
+ gem 'guard'
16
+ gem 'guard-rspec'
17
+ gem 'guard-spork'
18
+
19
+ gem 'rb-fsevent', '~> 0.9'
14
20
  end
15
21
 
16
22
  gem 'mharris_ext'
@@ -3,11 +3,18 @@ GEM
3
3
  specs:
4
4
  addressable (2.3.5)
5
5
  builder (3.2.2)
6
+ celluloid (0.15.2)
7
+ timers (~> 1.1.0)
8
+ childprocess (0.3.9)
9
+ ffi (~> 1.0, >= 1.0.11)
10
+ coderay (1.1.0)
6
11
  diff-lcs (1.1.3)
7
12
  facets (2.9.3)
8
13
  faraday (0.8.8)
9
14
  multipart-post (~> 1.2.0)
10
15
  fattr (2.2.1)
16
+ ffi (1.9.3)
17
+ formatador (0.2.4)
11
18
  git (1.2.6)
12
19
  github_api (0.10.1)
13
20
  addressable
@@ -16,6 +23,18 @@ GEM
16
23
  multi_json (~> 1.4)
17
24
  nokogiri (~> 1.5.2)
18
25
  oauth2
26
+ guard (2.2.3)
27
+ formatador (>= 0.2.4)
28
+ listen (~> 2.1)
29
+ lumberjack (~> 1.0)
30
+ pry (>= 0.9.12)
31
+ thor (>= 0.18.1)
32
+ guard-rspec (1.2.1)
33
+ guard (>= 1.1)
34
+ guard-spork (1.5.1)
35
+ childprocess (>= 0.2.3)
36
+ guard (>= 1.1)
37
+ spork (>= 0.8.4)
19
38
  hashie (2.0.5)
20
39
  highline (1.6.19)
21
40
  httpauth (0.2.0)
@@ -31,6 +50,12 @@ GEM
31
50
  json (1.8.1)
32
51
  jwt (0.1.8)
33
52
  multi_json (>= 1.5)
53
+ listen (2.2.0)
54
+ celluloid (>= 0.15.2)
55
+ rb-fsevent (>= 0.9.3)
56
+ rb-inotify (>= 0.9)
57
+ lumberjack (1.0.4)
58
+ method_source (0.8.2)
34
59
  mharris_ext (1.7.1)
35
60
  facets
36
61
  fattr
@@ -45,8 +70,15 @@ GEM
45
70
  multi_json (~> 1.0)
46
71
  multi_xml (~> 0.5)
47
72
  rack (~> 1.2)
73
+ pry (0.9.12.4)
74
+ coderay (~> 1.0)
75
+ method_source (~> 0.8)
76
+ slop (~> 3.4)
48
77
  rack (1.5.2)
49
78
  rake (10.1.0)
79
+ rb-fsevent (0.9.3)
80
+ rb-inotify (0.9.2)
81
+ ffi (>= 0.5.0)
50
82
  rdoc (3.12.2)
51
83
  json (~> 1.4)
52
84
  rspec (2.8.0)
@@ -57,13 +89,21 @@ GEM
57
89
  rspec-expectations (2.8.0)
58
90
  diff-lcs (~> 1.1.2)
59
91
  rspec-mocks (2.8.0)
92
+ slop (3.4.7)
93
+ spork (0.9.2)
94
+ thor (0.18.1)
95
+ timers (1.1.0)
60
96
 
61
97
  PLATFORMS
62
98
  ruby
63
99
 
64
100
  DEPENDENCIES
65
101
  bundler (>= 1.0)
102
+ guard
103
+ guard-rspec
104
+ guard-spork
66
105
  jeweler (~> 1.8.7)
67
106
  mharris_ext
107
+ rb-fsevent (~> 0.9)
68
108
  rdoc (~> 3.12)
69
109
  rspec (~> 2.8.0)
@@ -0,0 +1,33 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'spork', :rspec_port => 5645 do
5
+ watch('config/application.rb')
6
+ watch('config/environment.rb')
7
+ watch('config/environments/test.rb')
8
+ watch(%r{^config/initializers/.+\.rb$})
9
+ watch('Gemfile')
10
+ watch('Gemfile.lock')
11
+ watch('spec/spec_helper.rb') { :rspec }
12
+ watch('test/test_helper.rb') { :test_unit }
13
+ watch(%r{features/support/}) { :cucumber }
14
+ watch(%r{^spec/support/.+\.rb$})
15
+ end
16
+
17
+
18
+
19
+
20
+ guard 'rspec', :cli => "--drb --drb-port 5645" do
21
+ watch(%r{^spec/.+_spec\.rb$}) { "spec" }
22
+ watch(%r{^lib/(.+)\.rb$}) { "spec" } # { |m| "spec/lib/#{m[1]}_spec.rb" }
23
+ watch(%r{^lib/(.+)\.treetop$}) { "spec" }
24
+ watch(%r{^lib/(.+)\.csv$}) { "spec" }
25
+ #watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
26
+ watch('spec/spec_helper.rb') { "spec" }
27
+ watch(%r{^app/(.+)\.rb$}) { "spec" }
28
+ end
29
+
30
+
31
+
32
+
33
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -1,59 +1,11 @@
1
1
  require 'mharris_ext'
2
2
 
3
- class Odds
4
- include FromHash
5
- attr_accessor :win_chance
3
+ %w(to_odds string hash map_special numeric rand math).each do |f|
4
+ load File.dirname(__FILE__) + "/odds/ext/#{f}.rb"
5
+ end
6
6
 
7
- def to_s
8
- if win_chance < 0.5
9
- "+" + (win_amount_without_principal * 100.0).to_i.to_s
10
- else
11
- n = (1.0 / loss_chance) - 1.0
12
- "-" + (n * 100.0).to_i.to_s
13
- end
14
- end
7
+ %w(odds bet parlay).each do |f|
8
+ load File.dirname(__FILE__) + "/odds/#{f}.rb"
9
+ end
15
10
 
16
- def win_amount_with_principal
17
- 1.0 / win_chance
18
- end
19
- def win_amount_without_principal
20
- win_amount_with_principal - 1.0
21
- end
22
- def loss_chance
23
- 1.0 - win_chance
24
- end
25
-
26
- def to_s_to_one
27
- if win_chance < 0.5
28
- "#{win_amount_without_principal} to 1"
29
- else
30
- "1 to #{(1.0 / win_amount_without_principal).round(1)}"
31
- end
32
- end
33
11
 
34
- def *(other)
35
- res = win_chance * other.win_chance
36
- self.class.new(:win_chance => res)
37
- end
38
-
39
- def inverse
40
- self.class.new(:win_chance => (1.0 - win_chance))
41
- end
42
-
43
- class << self
44
- def from_string(str)
45
- sign = str[0..0]
46
- num = str[1..-1].to_f / 100.0
47
- if sign == '-'
48
- from_win_amount_without_principal(1.0 / num)
49
- elsif sign == '+'
50
- from_win_amount_without_principal(num)
51
- else
52
- raise "bad #{str}"
53
- end
54
- end
55
- def from_win_amount_without_principal(num)
56
- new(:win_chance => (1.0 / (1.0 + num)))
57
- end
58
- end
59
- end
@@ -0,0 +1,21 @@
1
+ class Bet
2
+ module ExpectedProfit
3
+ def expected_profit
4
+ n = (win_chance * odds.win_amount_with_principal) - 1.0
5
+ n * wagered_amount.to_f
6
+ end
7
+ end
8
+
9
+ include FromHash
10
+ include ExpectedProfit
11
+ attr_accessor :odds, :wagered_amount, :win_chance
12
+
13
+ def odds=(o)
14
+ o = Odds.from_string(o) if o.kind_of?(String)
15
+ @odds = o
16
+ end
17
+
18
+ def potential_profit
19
+ odds.win_amount_without_principal * wagered_amount.to_f
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ class Hash
2
+ def each_sorted_by_value_desc(&b)
3
+ to_a.sort_by { |pair| pair[1] }.reverse.each { |pair| b[*pair] }
4
+ end
5
+ end
@@ -0,0 +1,17 @@
1
+ class Array
2
+ def map_centered_on_sum(target_sum)
3
+ self_sum = sum
4
+ map { |x| x.to_f / self_sum.to_f * target_sum.to_f }
5
+ end
6
+ def map_restrict_to_range(r)
7
+ map do |n|
8
+ if n > r.end
9
+ r.end
10
+ elsif n < r.begin
11
+ r.begin
12
+ else
13
+ n
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ class Array
2
+ def times_product
3
+ inject { |s,i| s * i }
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class Numeric
2
+ def abs_exp(e)
3
+ if self > 0
4
+ self**e
5
+ else
6
+ abs**e * -1
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,27 @@
1
+ class Range
2
+ def rand_num
3
+ num = rand * (self.end.to_f - self.begin.to_f)
4
+ num + self.begin.to_f
5
+ end
6
+
7
+ def rand_sq_num
8
+ a = self.begin**2
9
+ b = self.end**2
10
+ num = (a..b).rand_num
11
+ num.to_f**0.5
12
+ end
13
+
14
+ def rand_sqrt_num
15
+ a = self.begin.to_f**0.5
16
+ b = self.end.to_f**0.5
17
+ num = (a..b).rand_num
18
+ num.to_f**2
19
+ end
20
+ end
21
+
22
+ class Array
23
+ def rand_el
24
+ i = (rand()*size.to_f).to_i
25
+ self[i]
26
+ end
27
+ end
@@ -0,0 +1,6 @@
1
+ class Numeric
2
+ def to_s_perc(digits=2)
3
+ n = self.to_f * 100.0
4
+ n.round(digits).to_s + "%"
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class String
2
+ def to_odds
3
+ Odds.from_string(self)
4
+ end
5
+ end
@@ -0,0 +1,76 @@
1
+ class Odds
2
+ include FromHash
3
+ attr_accessor :win_chance
4
+
5
+ def initialize(arg)
6
+ if arg.kind_of?(Hash)
7
+ from_hash(arg)
8
+ else
9
+ self.win_chance = arg
10
+ end
11
+ end
12
+
13
+ def to_s
14
+ if win_chance < 0.5
15
+ "+" + (win_amount_without_principal * 100.0).to_i.to_s
16
+ else
17
+ n = (1.0 / loss_chance) - 1.0
18
+ "-" + (n * 100.0).to_i.to_s
19
+ end
20
+ end
21
+
22
+ def to_s_to_one
23
+ if win_chance < 0.5
24
+ "#{win_amount_without_principal} to 1"
25
+ else
26
+ n = (1.0 / win_amount_without_principal).round(1)
27
+ "1 to #{n}"
28
+ end
29
+ end
30
+
31
+ def win_amount_with_principal
32
+ 1.0 / win_chance
33
+ end
34
+ def win_amount_without_principal
35
+ win_amount_with_principal - 1.0
36
+ end
37
+ def loss_chance
38
+ 1.0 - win_chance
39
+ end
40
+
41
+
42
+
43
+ def* (other)
44
+ res = win_chance * other.win_chance
45
+ self.class.new(:win_chance => res)
46
+ end
47
+
48
+ def inverse
49
+ self.class.new(:win_chance => (1.0 - win_chance))
50
+ end
51
+
52
+ def odds
53
+ win_chance / (1.0 - win_chance)
54
+ end
55
+
56
+ def log_odds
57
+ Math.log(odds)
58
+ end
59
+
60
+ class << self
61
+ def from_string(str)
62
+ sign = str[0..0]
63
+ num = str[1..-1].to_f / 100.0
64
+ if sign == '-'
65
+ from_win_amount_without_principal(1.0 / num)
66
+ elsif sign == '+'
67
+ from_win_amount_without_principal(num)
68
+ else
69
+ raise "bad #{str}"
70
+ end
71
+ end
72
+ def from_win_amount_without_principal(num)
73
+ new(:win_chance => (1.0 / (1.0 + num)))
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,14 @@
1
+ class Parlay
2
+ include FromHash
3
+ include Bet::ExpectedProfit
4
+ attr_accessor :wagered_amount
5
+ fattr(:bets) { [] }
6
+
7
+ def odds
8
+ bets.map { |x| x.odds }.times_product
9
+ end
10
+
11
+ def win_chance
12
+ bets.map { |x| x.win_chance }.times_product
13
+ end
14
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "odds"
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mike Harris"]
12
- s.date = "2014-02-01"
12
+ s.date = "2014-02-02"
13
13
  s.description = "odds"
14
14
  s.email = "mharris717@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -21,13 +21,26 @@ Gem::Specification.new do |s|
21
21
  ".rspec",
22
22
  "Gemfile",
23
23
  "Gemfile.lock",
24
+ "Guardfile",
24
25
  "LICENSE.txt",
25
26
  "README.rdoc",
26
27
  "Rakefile",
27
28
  "VERSION",
28
29
  "lib/odds.rb",
30
+ "lib/odds/bet.rb",
31
+ "lib/odds/ext/hash.rb",
32
+ "lib/odds/ext/map_special.rb",
33
+ "lib/odds/ext/math.rb",
34
+ "lib/odds/ext/numeric.rb",
35
+ "lib/odds/ext/rand.rb",
36
+ "lib/odds/ext/string.rb",
37
+ "lib/odds/ext/to_odds.rb",
38
+ "lib/odds/odds.rb",
39
+ "lib/odds/parlay.rb",
29
40
  "odds.gemspec",
41
+ "spec/bet_spec.rb",
30
42
  "spec/odds_spec.rb",
43
+ "spec/parlay_spec.rb",
31
44
  "spec/spec_helper.rb"
32
45
  ]
33
46
  s.homepage = "http://github.com/mharris717/odds"
@@ -45,12 +58,20 @@ Gem::Specification.new do |s|
45
58
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
46
59
  s.add_development_dependency(%q<bundler>, [">= 1.0"])
47
60
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.7"])
61
+ s.add_development_dependency(%q<guard>, [">= 0"])
62
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
63
+ s.add_development_dependency(%q<guard-spork>, [">= 0"])
64
+ s.add_development_dependency(%q<rb-fsevent>, ["~> 0.9"])
48
65
  else
49
66
  s.add_dependency(%q<mharris_ext>, [">= 0"])
50
67
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
51
68
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
52
69
  s.add_dependency(%q<bundler>, [">= 1.0"])
53
70
  s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
71
+ s.add_dependency(%q<guard>, [">= 0"])
72
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
73
+ s.add_dependency(%q<guard-spork>, [">= 0"])
74
+ s.add_dependency(%q<rb-fsevent>, ["~> 0.9"])
54
75
  end
55
76
  else
56
77
  s.add_dependency(%q<mharris_ext>, [">= 0"])
@@ -58,6 +79,10 @@ Gem::Specification.new do |s|
58
79
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
59
80
  s.add_dependency(%q<bundler>, [">= 1.0"])
60
81
  s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
82
+ s.add_dependency(%q<guard>, [">= 0"])
83
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
84
+ s.add_dependency(%q<guard-spork>, [">= 0"])
85
+ s.add_dependency(%q<rb-fsevent>, ["~> 0.9"])
61
86
  end
62
87
  end
63
88
 
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Bet" do
4
+ it 'smoke' do
5
+ bet = Bet.new(:odds => "+200", :wagered_amount => 100)
6
+ bet.potential_profit.should == 200
7
+ end
8
+
9
+ it 'smoke' do
10
+ bet = Bet.new(:odds => "-200", :wagered_amount => 100)
11
+ bet.potential_profit.should == 50
12
+ end
13
+
14
+ it 'ev' do
15
+ bet = Bet.new(:odds => "+200", :wagered_amount => 100, :win_chance => 0.4)
16
+ bet.expected_profit.round(4).should == 20
17
+ end
18
+ end
@@ -7,7 +7,7 @@ describe "Odds" do
7
7
  odds.to_s.should == exp
8
8
  end
9
9
  end
10
-
10
+
11
11
  def odds(win_chance)
12
12
  Odds.new(:win_chance => win_chance)
13
13
  end
@@ -28,36 +28,44 @@ describe "Odds" do
28
28
  it 'win_amount_with_principal' do
29
29
  odds(0.9).win_amount_with_principal.round(3).should == 1.111
30
30
  end
31
-
31
+
32
32
  it 'to_s_to_one' do
33
33
  odds(0.25).to_s_to_one.should == "3.0 to 1"
34
34
  end
35
-
35
+
36
36
  it 'to_s_to_one' do
37
37
  odds(0.75).to_s_to_one.should == "1 to 3.0"
38
38
  end
39
-
39
+
40
+ it 'odds' do
41
+ odds(0.25).odds.round(3).should == 0.333
42
+ end
43
+
40
44
  describe 'multiply' do
41
45
  it 'smoke' do
42
46
  (odds(0.5) * odds(0.5)).win_chance.should == 0.25
43
47
  end
44
48
  end
45
-
49
+
46
50
  it 'inverse' do
47
51
  odds(0.25).inverse.win_chance.should == 0.75
48
52
  end
49
-
53
+
50
54
  describe "other creation methods" do
51
55
  it 'from string' do
52
56
  Odds.from_string("+300").win_chance.should == 0.25
53
57
  end
54
-
58
+
55
59
  it 'from string' do
56
60
  Odds.from_string("-300").win_chance.should == 0.75
57
61
  end
58
-
62
+
59
63
  it 'from string bad' do
60
64
  lambda { Odds.from_string("42") }.should raise_error
61
65
  end
62
66
  end
63
- end
67
+
68
+ it 'to_odds - string' do
69
+ "+150".to_odds.win_chance.should == 0.4
70
+ end
71
+ end
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Parlay" do
4
+ describe 'basic' do
5
+ let(:bets) do
6
+ res = []
7
+ res << Bet.new(:odds => "+200", :win_chance => 0.4)
8
+ res << Bet.new(:odds => "+300", :win_chance => 0.3)
9
+ res
10
+ end
11
+ let(:parlay) do
12
+ Parlay.new(:bets => bets, :wagered_amount => 100)
13
+ end
14
+
15
+ it 'odds' do
16
+ parlay.odds.win_chance.should == (1.0/12.0)
17
+ end
18
+
19
+ it 'win_chance' do
20
+ parlay.win_chance.should == 0.12
21
+ end
22
+
23
+ it 'expected_profit' do
24
+ parlay.expected_profit.round(4).should == 44
25
+ end
26
+ end
27
+
28
+ end
@@ -1,12 +1,20 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'odds'
1
+ require 'rubygems'
2
+ require 'spork'
5
3
 
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
4
+ Spork.prefork do
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
9
7
 
10
- RSpec.configure do |config|
11
-
8
+ require 'rspec'
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ RSpec.configure do |config|
14
+
15
+ end
16
+ end
17
+
18
+ Spork.each_run do
19
+ load File.dirname(__FILE__) + "/../lib/odds.rb"
12
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: odds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-01 00:00:00.000000000 Z
11
+ date: 2014-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mharris_ext
@@ -80,6 +80,62 @@ dependencies:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.8.7
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-spork
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rb-fsevent
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '0.9'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '0.9'
83
139
  description: odds
84
140
  email: mharris717@gmail.com
85
141
  executables: []
@@ -92,13 +148,26 @@ files:
92
148
  - .rspec
93
149
  - Gemfile
94
150
  - Gemfile.lock
151
+ - Guardfile
95
152
  - LICENSE.txt
96
153
  - README.rdoc
97
154
  - Rakefile
98
155
  - VERSION
99
156
  - lib/odds.rb
157
+ - lib/odds/bet.rb
158
+ - lib/odds/ext/hash.rb
159
+ - lib/odds/ext/map_special.rb
160
+ - lib/odds/ext/math.rb
161
+ - lib/odds/ext/numeric.rb
162
+ - lib/odds/ext/rand.rb
163
+ - lib/odds/ext/string.rb
164
+ - lib/odds/ext/to_odds.rb
165
+ - lib/odds/odds.rb
166
+ - lib/odds/parlay.rb
100
167
  - odds.gemspec
168
+ - spec/bet_spec.rb
101
169
  - spec/odds_spec.rb
170
+ - spec/parlay_spec.rb
102
171
  - spec/spec_helper.rb
103
172
  homepage: http://github.com/mharris717/odds
104
173
  licenses: