betfair 1.0.3 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +3 -2
- data/README.md +23 -22
- data/betfair.gemspec +4 -3
- data/examples/README.md +3 -0
- data/lib/betfair/api.rb +193 -216
- data/lib/betfair/version.rb +1 -1
- data/spec/betfair/api_spec.rb +75 -68
- data/spec/spec_helper.rb +9 -1
- metadata +54 -25
- data/README_OLD +0 -170
- data/examples/bar.rb +0 -23
- data/examples/foo.rb +0 -42
- data/examples/simplebot.log +0 -4
- data/examples/simplebot/README.md +0 -51
- data/examples/simplebot/daemonize.rb +0 -8
- data/examples/simplebot/monit.conf +0 -6
- data/examples/simplebot/simplebot.rb +0 -170
data/lib/betfair/version.rb
CHANGED
data/spec/betfair/api_spec.rb
CHANGED
@@ -3,15 +3,17 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
module Betfair
|
5
5
|
|
6
|
+
|
6
7
|
describe "Helper methods for mashing the data from the API - " do
|
7
8
|
|
9
|
+
include LoginHelper
|
10
|
+
|
8
11
|
before(:all) do
|
9
|
-
|
10
|
-
@session_token = @bf.login('username', 'password', 82, 0, 0, nil)
|
12
|
+
login()
|
11
13
|
@helpers = Betfair::Helpers.new
|
12
14
|
end
|
13
15
|
|
14
|
-
describe "
|
16
|
+
describe "Create a hash from the get_all_markets API call" do
|
15
17
|
it "pulls the relevant stuff out of get_all_markets and puts it in a hash" do
|
16
18
|
savon.expects(:get_all_markets).returns(:success)
|
17
19
|
markets = @bf.get_all_markets(@session_token, 2)
|
@@ -20,7 +22,7 @@ module Betfair
|
|
20
22
|
end
|
21
23
|
end
|
22
24
|
|
23
|
-
describe "
|
25
|
+
describe "Create a hash for the market details" do
|
24
26
|
it "pulls the relevant stuff out of market details and puts it in a hash" do
|
25
27
|
savon.expects(:get_market).returns(:success)
|
26
28
|
market = @bf.get_market(@session_token, 2, 10038633)
|
@@ -29,8 +31,8 @@ module Betfair
|
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
|
-
describe "
|
33
|
-
it "sort the
|
34
|
+
describe "Cleans up the get market details" do
|
35
|
+
it "sort the selections for each market out " do
|
34
36
|
savon.expects(:get_market).returns(:success)
|
35
37
|
market = @bf.get_market(@session_token, 2, 10038633)
|
36
38
|
details = @helpers.details(market)
|
@@ -38,7 +40,7 @@ module Betfair
|
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
41
|
-
describe "
|
43
|
+
describe "Get the price string for a selection" do
|
42
44
|
it "so that we can combine it together with market info" do
|
43
45
|
savon.expects(:get_market_prices_compressed).returns(:success)
|
44
46
|
prices = @bf.get_market_prices_compressed(@session_token, 2, 10038633)
|
@@ -47,8 +49,8 @@ module Betfair
|
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
50
|
-
describe "
|
51
|
-
it "
|
52
|
+
describe "Combine market details and selection prices api call" do
|
53
|
+
it "Combines the two api calls of get_market and get_market_prices_compressed " do
|
52
54
|
|
53
55
|
savon.expects(:get_market).returns(:success)
|
54
56
|
market = @bf.get_market(@session_token, 2, 10038633)
|
@@ -60,60 +62,60 @@ module Betfair
|
|
60
62
|
combined.should_not be_nil
|
61
63
|
end
|
62
64
|
end
|
63
|
-
|
64
|
-
describe "set up an odds tables of all possible Betfair Odds" do
|
65
|
-
it "should return a hash of all possible Betfair odds with correct increments" do
|
66
|
-
odds_table = @helpers.odds_table
|
67
|
-
odds_table.should_not be_nil
|
68
|
-
odds_table.should be_an_instance_of(Array)
|
69
|
-
odds_table.count.should eq(350)
|
70
|
-
odds_table[256].should eq(85)
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should return a standard hash" do
|
74
|
-
betfair_odds = @helpers.set_betfair_odds(275, 0, false, false)
|
75
|
-
betfair_odds.should be_an_instance_of(Hash)
|
76
|
-
betfair_odds[:price].should eq(275)
|
77
|
-
betfair_odds[:prc].should eq(280)
|
78
|
-
betfair_odds[:increment].should eq(10)
|
79
|
-
betfair_odds[:pips].should eq(0)
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should return a standard hash with prc at 1 pip and price rounded up" do
|
83
|
-
betfair_odds = @helpers.set_betfair_odds(2.31, 1, true, false)
|
84
|
-
betfair_odds.should be_an_instance_of(Hash)
|
85
|
-
betfair_odds[:price].should eq(2.31)
|
86
|
-
betfair_odds[:prc].should eq(2.34)
|
87
|
-
betfair_odds[:increment].should eq(0.02)
|
88
|
-
betfair_odds[:pips].should eq(1)
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should return a standard hash with prc at 2 pip and price rounded down" do
|
92
|
-
betfair_odds = @helpers.set_betfair_odds(2.31, 5, false, true)
|
93
|
-
betfair_odds.should be_an_instance_of(Hash)
|
94
|
-
betfair_odds[:price].should eq(2.31)
|
95
|
-
betfair_odds[:prc].should eq(2.4)
|
96
|
-
betfair_odds[:increment].should eq(0.02)
|
97
|
-
betfair_odds[:pips].should eq(5)
|
98
|
-
end
|
99
|
-
|
100
|
-
it "should return an even spread off odds based on the odds_table method" do
|
101
|
-
spread = @helpers.get_odds_spread(271, 343)
|
102
|
-
spread.should eq(70.0)
|
103
|
-
spread = @helpers.get_odds_spread(1.28, 3.43)
|
104
|
-
spread.should eq(2.17)
|
105
|
-
end
|
106
|
-
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
end
|
111
65
|
|
66
|
+
describe "set up an odds tables of all possible Betfair Odds" do
|
67
|
+
it "should return a hash of all possible Betfair odds with correct increments" do
|
68
|
+
odds_table = @helpers.odds_table
|
69
|
+
odds_table.should_not be_nil
|
70
|
+
odds_table.should be_an_instance_of(Array)
|
71
|
+
odds_table.count.should eq(350)
|
72
|
+
odds_table[256].should eq(85)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should return a standard hash" do
|
76
|
+
betfair_odds = @helpers.set_betfair_odds(275, 0, false, false)
|
77
|
+
betfair_odds.should be_an_instance_of(Hash)
|
78
|
+
betfair_odds[:price].should eq(275)
|
79
|
+
betfair_odds[:prc].should eq(280)
|
80
|
+
betfair_odds[:increment].should eq(10)
|
81
|
+
betfair_odds[:pips].should eq(0)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should return a standard hash with prc at 1 pip and price rounded up" do
|
85
|
+
betfair_odds = @helpers.set_betfair_odds(2.31, 1, true, false)
|
86
|
+
betfair_odds.should be_an_instance_of(Hash)
|
87
|
+
betfair_odds[:price].should eq(2.31)
|
88
|
+
betfair_odds[:prc].should eq(2.34)
|
89
|
+
betfair_odds[:increment].should eq(0.02)
|
90
|
+
betfair_odds[:pips].should eq(1)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should return a standard hash with prc at 2 pip and price rounded down" do
|
94
|
+
betfair_odds = @helpers.set_betfair_odds(2.31, 5, false, true)
|
95
|
+
betfair_odds.should be_an_instance_of(Hash)
|
96
|
+
betfair_odds[:price].should eq(2.31)
|
97
|
+
betfair_odds[:prc].should eq(2.4)
|
98
|
+
betfair_odds[:increment].should eq(0.02)
|
99
|
+
betfair_odds[:pips].should eq(5)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should return an even spread of odds based on the odds_table method" do
|
103
|
+
spread = @helpers.get_odds_spread(271, 343)
|
104
|
+
spread.should eq(70.0)
|
105
|
+
spread = @helpers.get_odds_spread(1.28, 3.43)
|
106
|
+
spread.should eq(2.17)
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
112
113
|
describe "Placing and cancelling bets - " do
|
113
114
|
|
115
|
+
include LoginHelper
|
116
|
+
|
114
117
|
before(:all) do
|
115
|
-
|
116
|
-
@session_token = @bf.login('username', 'password', 82, 0, 0, nil)
|
118
|
+
login()
|
117
119
|
end
|
118
120
|
|
119
121
|
describe "place bet success" do
|
@@ -136,9 +138,9 @@ module Betfair
|
|
136
138
|
it "should place mutliple bets on the exchange via the api" do
|
137
139
|
savon.expects(:place_bets).returns(:success)
|
138
140
|
bets = []
|
139
|
-
bets << { market_id: 104184109,
|
141
|
+
bets << { market_id: 104184109, selection_id: 58805, bet_type: 'B', price: 2.0, size: 2.0, asian_line_id: 0,
|
140
142
|
bet_category_type: 'E', bet_peristence_type: 'NONE', bsp_liability: 0 }
|
141
|
-
bets << { market_id: 104184109,
|
143
|
+
bets << { market_id: 104184109, selection_id: 12234, bet_type: 'L', price: 1.5, size: 2.0, asian_line_id: 0,
|
142
144
|
bet_category_type: 'E', bet_peristence_type: 'NONE', bsp_liability: 0 }
|
143
145
|
bets = @bf.place_multiple_bets(@session_token, 1, bets)
|
144
146
|
bets[:bet_id].should eq('16939643915')
|
@@ -149,9 +151,9 @@ module Betfair
|
|
149
151
|
it "should return an error message" do
|
150
152
|
savon.expects(:place_bets).returns(:fail)
|
151
153
|
bets = []
|
152
|
-
bets << { market_id: 104184109,
|
154
|
+
bets << { market_id: 104184109, selection_id: 58805, bet_type: 'B', price: 2.0, size: 2.0, asian_line_id: 0,
|
153
155
|
bet_category_type: 'E', bet_peristence_type: 'NONE', bsp_liability: 0 }
|
154
|
-
bets << { market_id: 104184109,
|
156
|
+
bets << { market_id: 104184109, selection_id: 12234, bet_type: 'L', price: 1.5, size: 2.0, asian_line_id: 0,
|
155
157
|
bet_category_type: 'E', bet_peristence_type: 'NONE', bsp_liability: 0 }
|
156
158
|
error_code = @bf.place_multiple_bets(@session_token, 1, bets)
|
157
159
|
error_code[:result_code].should eq('INVALID_SIZE')
|
@@ -235,9 +237,11 @@ module Betfair
|
|
235
237
|
end
|
236
238
|
|
237
239
|
describe "Reading account details - " do
|
240
|
+
|
241
|
+
include LoginHelper
|
242
|
+
|
238
243
|
before(:all) do
|
239
|
-
|
240
|
-
@session_token = @bf.login('username', 'password', 82, 0, 0, nil)
|
244
|
+
login()
|
241
245
|
end
|
242
246
|
|
243
247
|
describe "reading wallet contents" do
|
@@ -251,9 +255,10 @@ module Betfair
|
|
251
255
|
|
252
256
|
describe "Basic read methods from the API - " do
|
253
257
|
|
258
|
+
include LoginHelper
|
259
|
+
|
254
260
|
before(:all) do
|
255
|
-
|
256
|
-
@session_token = @bf.login('username', 'password', 82, 0, 0, nil)
|
261
|
+
login()
|
257
262
|
end
|
258
263
|
|
259
264
|
describe "get all markets success" do
|
@@ -351,6 +356,7 @@ module Betfair
|
|
351
356
|
savon.expects(:keep_alive).returns(:success)
|
352
357
|
session_token = @bf.keep_alive(@session_token)
|
353
358
|
session_token.should eq('AXwtUFENz+/mWaatVtjUosug26+TYLYWiHPhRFRiabs=')
|
359
|
+
session_token.should be_success
|
354
360
|
end
|
355
361
|
end
|
356
362
|
|
@@ -359,6 +365,7 @@ module Betfair
|
|
359
365
|
savon.expects(:keep_alive).returns(:fail)
|
360
366
|
error_code = @bf.keep_alive(@session_token)
|
361
367
|
error_code.should eq('NO_SESSION')
|
368
|
+
error_code.should_not be_success
|
362
369
|
end
|
363
370
|
end
|
364
371
|
|
@@ -458,4 +465,4 @@ module Betfair
|
|
458
465
|
|
459
466
|
end
|
460
467
|
|
461
|
-
end
|
468
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -8,5 +8,13 @@ RSpec.configure do |config|
|
|
8
8
|
HTTPI.log = false
|
9
9
|
Savon.log = false
|
10
10
|
config.include Savon::Spec::Macros
|
11
|
-
Savon::Spec::Fixture.path = File.expand_path(
|
11
|
+
Savon::Spec::Fixture.path = File.expand_path('../fixtures', __FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
module LoginHelper
|
15
|
+
def login( response=:success )
|
16
|
+
@bf = Betfair::API.new
|
17
|
+
savon.expects(:login).returns( response )
|
18
|
+
@session_token = @bf.login('username', 'password', 82, 0, 0, nil)
|
19
|
+
end
|
12
20
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: betfair
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,27 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: savon
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - <=
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.8.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - <=
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.8.6
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,18 +53,44 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: savon_spec
|
49
|
-
requirement: &70101392498480 !ruby/object:Gem::Requirement
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
57
|
none: false
|
51
58
|
requirements:
|
52
59
|
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: savon_spec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.1.5
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - '='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.1.5
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: mocha
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - '='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.10.4
|
55
86
|
type: :development
|
56
87
|
prerelease: false
|
57
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - '='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.10.4
|
58
94
|
description: Gem for accessing the Betfair API.
|
59
95
|
email:
|
60
96
|
- lukeb@lukebyrne.com
|
@@ -66,16 +102,9 @@ files:
|
|
66
102
|
- API Ref Doc.pdf
|
67
103
|
- Gemfile
|
68
104
|
- README.md
|
69
|
-
- README_OLD
|
70
105
|
- Rakefile
|
71
106
|
- betfair.gemspec
|
72
|
-
- examples/
|
73
|
-
- examples/foo.rb
|
74
|
-
- examples/simplebot.log
|
75
|
-
- examples/simplebot/README.md
|
76
|
-
- examples/simplebot/daemonize.rb
|
77
|
-
- examples/simplebot/monit.conf
|
78
|
-
- examples/simplebot/simplebot.rb
|
107
|
+
- examples/README.md
|
79
108
|
- lib/betfair.rb
|
80
109
|
- lib/betfair/api.rb
|
81
110
|
- lib/betfair/version.rb
|
@@ -120,7 +149,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
149
|
version: '0'
|
121
150
|
segments:
|
122
151
|
- 0
|
123
|
-
hash:
|
152
|
+
hash: 741636228280030738
|
124
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
154
|
none: false
|
126
155
|
requirements:
|
@@ -129,10 +158,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
158
|
version: '0'
|
130
159
|
segments:
|
131
160
|
- 0
|
132
|
-
hash:
|
161
|
+
hash: 741636228280030738
|
133
162
|
requirements: []
|
134
163
|
rubyforge_project: betfair
|
135
|
-
rubygems_version: 1.8.
|
164
|
+
rubygems_version: 1.8.24
|
136
165
|
signing_key:
|
137
166
|
specification_version: 3
|
138
167
|
summary: Betfair API gem.
|
data/README_OLD
DELETED
@@ -1,170 +0,0 @@
|
|
1
|
-
BETFAIR API
|
2
|
-
===========
|
3
|
-
|
4
|
-
------------
|
5
|
-
Installation
|
6
|
-
------------
|
7
|
-
|
8
|
-
Betfair is available through
|
9
|
-
[Rubygems](http://rubygems.org/gems/betfair) and can be installed via:
|
10
|
-
|
11
|
-
gem install betfair
|
12
|
-
|
13
|
-
OR with bundler: `gem 'betfair'` and `bundle install`
|
14
|
-
|
15
|
-
------------
|
16
|
-
Introduction
|
17
|
-
------------
|
18
|
-
|
19
|
-
irb
|
20
|
-
|
21
|
-
require 'betfair'
|
22
|
-
|
23
|
-
or from a Gemfile
|
24
|
-
|
25
|
-
gem 'betfair'
|
26
|
-
|
27
|
-
# create a client for the General API so that you can log in.
|
28
|
-
bf = Betfair::API.new
|
29
|
-
|
30
|
-
If you want to use a proxy or turn on Savon's logging then just pass
|
31
|
-
in like so:
|
32
|
-
|
33
|
-
# This is a local squid proxy I tunnel to from my local
|
34
|
-
# machine to access the host server in UK for dev purposes.
|
35
|
-
proxy = 'http://localhost:8888'
|
36
|
-
logging = true
|
37
|
-
bf = Betfair::API.new(proxy, logging)
|
38
|
-
|
39
|
-
Proxies can be useful if you want to host on a cloud service such as
|
40
|
-
Heroku, as you will be denied access to the Betfair API from the
|
41
|
-
USA. Just proxy via a server from a country that Betfair allows, such
|
42
|
-
as the UK.
|
43
|
-
|
44
|
-
At the heart of the Betfair API is the `session_token`. In order to
|
45
|
-
get one of these simply call:
|
46
|
-
|
47
|
-
session_token = bf.login('username', 'password', 82, 0, 0, nil)
|
48
|
-
|
49
|
-
Username and Password are fairly obvious. The `session_token` value
|
50
|
-
you get back responds to #success? which will tell you whether login
|
51
|
-
was successful or not. If `session_token.success?` returns false,
|
52
|
-
`session_token.to_s` will give you the error message.
|
53
|
-
|
54
|
-
82 is the standard Product Id, you may have a different one depending
|
55
|
-
on the level of Betfair API access that you have.
|
56
|
-
|
57
|
-
You can ignore the rest and leave as is, but they refer to Vendor
|
58
|
-
Software Id, Location Id, Ip Address as required by the Betfair API.
|
59
|
-
|
60
|
-
-----
|
61
|
-
Read
|
62
|
-
-----
|
63
|
-
|
64
|
-
markets =
|
65
|
-
bf.get_all_markets(session_token, 1, [1,3], nil, nil, nil, nil)
|
66
|
-
|
67
|
-
# We can either pull the market ID out of `markets`, or use a
|
68
|
-
# stored value:
|
69
|
-
|
70
|
-
market_id = 100386338
|
71
|
-
exchange_id = 1 # or 2 for the Australian exchange
|
72
|
-
|
73
|
-
# get_market returns a Hash with the details of the identified
|
74
|
-
# market, including the commission as
|
75
|
-
# `details[:market_base_rate]`, and information on the runners
|
76
|
-
# (including their ids, which you need to place a bet) as
|
77
|
-
# `details[:runners]`.
|
78
|
-
|
79
|
-
details =
|
80
|
-
bf.get_market(session_token, exchange_id, market_id)
|
81
|
-
|
82
|
-
# This returns an encoded string with some back prices and depths
|
83
|
-
# for the given market.
|
84
|
-
|
85
|
-
prices = bf.get_market_prices_compressed(session_token,
|
86
|
-
exchange_id,
|
87
|
-
market_id)
|
88
|
-
|
89
|
-
helpers = Betfair::Helpers.new
|
90
|
-
|
91
|
-
helpers.market_info(details)
|
92
|
-
helpers.combine(details, prices)
|
93
|
-
|
94
|
-
# The get_all_markets api call returns all markets in one huge
|
95
|
-
# string. This helper provides them all in handy hashes with
|
96
|
-
# market id as key.
|
97
|
-
|
98
|
-
helpers.all_markets(markets)
|
99
|
-
|
100
|
-
---
|
101
|
-
Bet
|
102
|
-
---
|
103
|
-
|
104
|
-
bf.place_bet(session_token, 1, 104184109, 58805, 'B', 10.0, 5.0)
|
105
|
-
bf.cancel_bet(session_token, 1, 16939730542)
|
106
|
-
|
107
|
-
----------
|
108
|
-
API Limits
|
109
|
-
----------
|
110
|
-
http://bdp.betfair.com/index.php?option=com_content&task=view&id=36&Itemid=64
|
111
|
-
|
112
|
-
------------
|
113
|
-
Requirements
|
114
|
-
------------
|
115
|
-
|
116
|
-
savon
|
117
|
-
|
118
|
-
------------------------
|
119
|
-
Requirements for testing
|
120
|
-
------------------------
|
121
|
-
|
122
|
-
savon_spec
|
123
|
-
rspec
|
124
|
-
rake
|
125
|
-
|
126
|
-
----------
|
127
|
-
To Do
|
128
|
-
----------
|
129
|
-
|
130
|
-
- The WOM of money in Helpers#price_string returns 0 if either all b1,b2,b3 or l1,l2,l3 are all 0
|
131
|
-
- Add some error checking to the Betfair::Helper methods
|
132
|
-
- Finish of the mash method, to return a nice hash of all market and
|
133
|
-
runner info
|
134
|
-
- Write a spec for the mashed method
|
135
|
-
|
136
|
-
----------
|
137
|
-
Contribute
|
138
|
-
----------
|
139
|
-
|
140
|
-
I have only added the Betfair API method calls that I need.
|
141
|
-
|
142
|
-
Feel free to fork this repo, add what you need to with the relevant
|
143
|
-
RSpec tests and send me a pull request.
|
144
|
-
|
145
|
-
-------
|
146
|
-
License
|
147
|
-
-------
|
148
|
-
|
149
|
-
(The MIT License)
|
150
|
-
|
151
|
-
Copyright (c) 2011 Luke Byrne
|
152
|
-
|
153
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
154
|
-
a copy of this software and associated documentation files (the
|
155
|
-
'Software'), to deal in the Software without restriction, including
|
156
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
157
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
158
|
-
permit persons to whom the Software is furnished to do so, subject to
|
159
|
-
the following conditions:
|
160
|
-
|
161
|
-
The above copyright notice and this permission notice shall be
|
162
|
-
included in all copies or substantial portions of the Software.
|
163
|
-
|
164
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
165
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
166
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
167
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
168
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
169
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
170
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|