betfair_api_ng_rails 0.0.3 → 0.0.5
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 +4 -4
- data/lib/betfair_api_ng_rails.rb +4 -17
- data/lib/betfair_api_ng_rails/api/base_formatter.rb +11 -0
- data/lib/betfair_api_ng_rails/api/base_parser.rb +1 -1
- data/lib/betfair_api_ng_rails/api/base_provider.rb +4 -2
- data/lib/betfair_api_ng_rails/api/bf/config.rb +19 -1
- data/lib/betfair_api_ng_rails/api/bf/constants.rb +2 -0
- data/lib/betfair_api_ng_rails/api/bf/formatters/js_tree_formatter.rb +34 -0
- data/lib/betfair_api_ng_rails/api/bf/parser.rb +27 -0
- data/lib/betfair_api_ng_rails/api/bf/provider.rb +9 -3
- data/lib/betfair_api_ng_rails/version.rb +1 -1
- data/lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.rb +3 -0
- metadata +5 -14
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/cleared_order_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/competition_parser.rb +0 -21
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/country_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/current_order_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/event_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/event_type_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_book_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_catalogue_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_profit_and_loss_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_type_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/time_range_parser.rb +0 -13
- data/lib/betfair_api_ng_rails/api/bf/parsers/soccer/venue_parser.rb +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a4047856d17acd629735d0b1ed9cac87dbddb2a
|
4
|
+
data.tar.gz: 56acfabb6cb2b33e9b4bbed51c80128e58687b0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fb004e76dfbda6bc66a624feb375ded194a6d4d6fdea445c54bc3a0e2a8313711bb16a5395b9a2097c2802c9e298144c0b3a1c8a38f420e93ba032fed7f6d57
|
7
|
+
data.tar.gz: a707fd5f1ef38d874a016ef385b07f1e828e6c86d13be0bc51f99cfd985dd72f783efcba60c2c8d2a384ff0a666768166102034eb8219e9d6e8094c0a94933eb
|
data/lib/betfair_api_ng_rails.rb
CHANGED
@@ -7,6 +7,7 @@ module BetfairApiNgRails
|
|
7
7
|
autoload :BaseParser, 'betfair_api_ng_rails/api/base_parser'
|
8
8
|
autoload :BaseProvider, 'betfair_api_ng_rails/api/base_provider'
|
9
9
|
autoload :BaseRequester, 'betfair_api_ng_rails/api/base_requester'
|
10
|
+
autoload :BaseFormatter, 'betfair_api_ng_rails/api/base_formatter'
|
10
11
|
|
11
12
|
module BF
|
12
13
|
|
@@ -15,26 +16,12 @@ module BetfairApiNgRails
|
|
15
16
|
autoload :HttpRequester, 'betfair_api_ng_rails/api/bf/http_requester'
|
16
17
|
autoload :HttpResponser, 'betfair_api_ng_rails/api/bf/http_responser'
|
17
18
|
autoload :Provider, 'betfair_api_ng_rails/api/bf/provider'
|
19
|
+
autoload :Parser, 'betfair_api_ng_rails/api/bf/parser'
|
18
20
|
autoload :SessionManager, 'betfair_api_ng_rails/api/bf/session_manager'
|
19
21
|
|
20
|
-
module
|
22
|
+
module Formatters
|
21
23
|
|
22
|
-
|
23
|
-
|
24
|
-
autoload :CompetitionParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/competition_parser'
|
25
|
-
autoload :EventTypeParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/event_type_parser'
|
26
|
-
autoload :TimeRangeParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/time_range_parser'
|
27
|
-
autoload :EventParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/event_parser'
|
28
|
-
autoload :MarketTypeParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/market_type_parser'
|
29
|
-
autoload :CountryParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/country_parser'
|
30
|
-
autoload :VenueParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/venue_parser'
|
31
|
-
autoload :MarketCatalogueParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/market_catalogue_parser'
|
32
|
-
autoload :MarketBookParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/market_book_parser'
|
33
|
-
autoload :CurrentOrderParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/current_order_parser'
|
34
|
-
autoload :ClearedOrderParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/cleared_order_parser'
|
35
|
-
autoload :MarketProfitAndLossParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/market_profit_and_loss_parser'
|
36
|
-
|
37
|
-
end
|
24
|
+
autoload :JsTreeFromatter, 'betfair_api_ng_rails/api/bf/formatters/js_tree_formatter'
|
38
25
|
|
39
26
|
end
|
40
27
|
|
@@ -4,6 +4,8 @@ module BetfairApiNgRails
|
|
4
4
|
module Api
|
5
5
|
class BaseProvider
|
6
6
|
|
7
|
+
attr_reader :provider_name
|
8
|
+
|
7
9
|
def fetch(data: "", parameters: {}, sport: "")
|
8
10
|
raise "Must be reimplemented!"
|
9
11
|
end
|
@@ -14,8 +16,8 @@ module BetfairApiNgRails
|
|
14
16
|
"list#{method.to_s.camelize}"
|
15
17
|
end
|
16
18
|
|
17
|
-
def build_parser(data
|
18
|
-
"BetfairApiNgRails::Api
|
19
|
+
def build_parser(data)
|
20
|
+
"BetfairApiNgRails::Api::#{provider_name}::Parser".constantize.new data.to_s.singularize
|
19
21
|
end
|
20
22
|
|
21
23
|
end
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'active_support/core_ext/object'
|
2
|
+
require 'betfair_api_ng_rails/api/bf/formatters/js_tree_formatter'
|
3
|
+
|
1
4
|
module BetfairApiNgRails
|
2
5
|
module Api
|
3
6
|
module BF
|
@@ -11,7 +14,22 @@ module BetfairApiNgRails
|
|
11
14
|
:login_url,
|
12
15
|
:api_url,
|
13
16
|
:username,
|
14
|
-
:password
|
17
|
+
:password,
|
18
|
+
:formatter
|
19
|
+
|
20
|
+
def formatter=(value)
|
21
|
+
@formatter = initialize_formatter value
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def initialize_formatter(name)
|
27
|
+
name.is_a?(Symbol) ? initialize_formatter_by(name: name) : name.try(:new)
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize_formatter_by(name: "")
|
31
|
+
"BetfairApiNgRails::Api::BF::Formatters::#{name.to_s.camelize}Formatter".constantize.new
|
32
|
+
end
|
15
33
|
|
16
34
|
end
|
17
35
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'active_support/inflector'
|
3
|
+
|
4
|
+
module BetfairApiNgRails
|
5
|
+
module Api
|
6
|
+
module BF
|
7
|
+
module Formatters
|
8
|
+
class JsTreeFormatter < BetfairApiNgRails::Api::BaseFormatter
|
9
|
+
|
10
|
+
attr_accessor :allow_children
|
11
|
+
|
12
|
+
ALLOW_CHILDREN = [:event_types, :competitions]
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@allow_children = false
|
16
|
+
end
|
17
|
+
|
18
|
+
def format(record: {}, resource: "")
|
19
|
+
{
|
20
|
+
id: record['id'],
|
21
|
+
text: record['name'],
|
22
|
+
chldren: ALLOW_CHILDREN.include?(resource),
|
23
|
+
data:{
|
24
|
+
type: resource.to_s.singularize,
|
25
|
+
fields: record
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'active_support/inflector'
|
2
|
+
|
3
|
+
module BetfairApiNgRails
|
4
|
+
module Api
|
5
|
+
module BF
|
6
|
+
class Parser < Api::BaseParser
|
7
|
+
|
8
|
+
attr_reader :data
|
9
|
+
|
10
|
+
def initialize(data)
|
11
|
+
@data = data
|
12
|
+
end
|
13
|
+
|
14
|
+
def parse(response: {})
|
15
|
+
response.fetch('result', []).map { |r| process_record(r) }
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def process_record(h)
|
21
|
+
h.merge!(h[data]).except data
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -11,6 +11,7 @@ module BetfairApiNgRails
|
|
11
11
|
|
12
12
|
def initialize
|
13
13
|
@session_manager = Api::BF::SessionManager.new
|
14
|
+
@provider_name = "BF"
|
14
15
|
end
|
15
16
|
|
16
17
|
def fetch(data: "", parameters: {}, sport: "")
|
@@ -23,11 +24,16 @@ module BetfairApiNgRails
|
|
23
24
|
|
24
25
|
def do_request(data, parameters, sport)
|
25
26
|
@http_responser = @http_requester.do_request
|
26
|
-
process_response @http_responser.result, build_parser(data
|
27
|
+
process_response data, @http_responser.result, build_parser(data)
|
27
28
|
end
|
28
29
|
|
29
|
-
def process_response(response, parser)
|
30
|
-
parser.parse
|
30
|
+
def process_response(data, response, parser)
|
31
|
+
format_response data, parser.parse(response: response)
|
32
|
+
end
|
33
|
+
|
34
|
+
def format_response(data, response)
|
35
|
+
return response unless Api::BF::Config.formatter
|
36
|
+
response.map { |r| Api::BF::Config.formatter.format(record: r, resource: data) }
|
31
37
|
end
|
32
38
|
|
33
39
|
def setup_http_requester(with_method: "")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: betfair_api_ng_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sergio1990
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,26 +66,17 @@ files:
|
|
66
66
|
- Rakefile
|
67
67
|
- betfair_api_ng_rails.gemspec
|
68
68
|
- lib/betfair_api_ng_rails.rb
|
69
|
+
- lib/betfair_api_ng_rails/api/base_formatter.rb
|
69
70
|
- lib/betfair_api_ng_rails/api/base_parser.rb
|
70
71
|
- lib/betfair_api_ng_rails/api/base_provider.rb
|
71
72
|
- lib/betfair_api_ng_rails/api/base_requester.rb
|
72
73
|
- lib/betfair_api_ng_rails/api/bf/concerns/errorable.rb
|
73
74
|
- lib/betfair_api_ng_rails/api/bf/config.rb
|
74
75
|
- lib/betfair_api_ng_rails/api/bf/constants.rb
|
76
|
+
- lib/betfair_api_ng_rails/api/bf/formatters/js_tree_formatter.rb
|
75
77
|
- lib/betfair_api_ng_rails/api/bf/http_requester.rb
|
76
78
|
- lib/betfair_api_ng_rails/api/bf/http_responser.rb
|
77
|
-
- lib/betfair_api_ng_rails/api/bf/
|
78
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/competition_parser.rb
|
79
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/country_parser.rb
|
80
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/current_order_parser.rb
|
81
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/event_parser.rb
|
82
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/event_type_parser.rb
|
83
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_book_parser.rb
|
84
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_catalogue_parser.rb
|
85
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_profit_and_loss_parser.rb
|
86
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/market_type_parser.rb
|
87
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/time_range_parser.rb
|
88
|
-
- lib/betfair_api_ng_rails/api/bf/parsers/soccer/venue_parser.rb
|
79
|
+
- lib/betfair_api_ng_rails/api/bf/parser.rb
|
89
80
|
- lib/betfair_api_ng_rails/api/bf/provider.rb
|
90
81
|
- lib/betfair_api_ng_rails/api/bf/session_manager.rb
|
91
82
|
- lib/betfair_api_ng_rails/api/soccer/cleared_order_requester.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module BetfairApiNgRails
|
2
|
-
module Api
|
3
|
-
module BF
|
4
|
-
module Parsers
|
5
|
-
module Soccer
|
6
|
-
class CompetitionParser < Api::BaseParser
|
7
|
-
|
8
|
-
private
|
9
|
-
|
10
|
-
def process_record(h)
|
11
|
-
h.merge! h['competition']
|
12
|
-
h.except! 'competition'
|
13
|
-
h
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|