betfair_api_ng_rails 0.0.2

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 175bc8d3f3f69e5a9e78d95ba91e207fb951c05f
4
+ data.tar.gz: e335dc1146bf08103dbf65e5e414c166ac4cec84
5
+ SHA512:
6
+ metadata.gz: 00506ec9d758ce164597a969ba211efb8418f1782edd8811adbd1aa09c84a3031c568c38e5065bd778cdd68708f7e978c25fed2644f412a814185b5c06ebf459
7
+ data.tar.gz: 8d2d2c44f10b3e010b1442441fe16f311cb6f7fde47c6c8723f171218c373b2861dc3e96d092ececcd5e29763c58a03c2735fd181500c63e7918dfadf11dd99c
data/.gitignore ADDED
@@ -0,0 +1,17 @@
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
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in betfair_api_ng_rails.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 sergio1990
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,60 @@
1
+ # BetfairApiNgRails
2
+
3
+ API-NG is Betfair's next generation API for developers looking to create automated betting systems or custom interfaces for themselves or for Betfair customers. Using this gem you may do calls to API-NG for fetching some interesting information about competitions, events and markets.
4
+
5
+ ## WARNING!!!
6
+
7
+ __Last version of gem supports only list* requests.__
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ gem 'betfair_api_ng_rails'
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install betfair_api_ng_rails
22
+
23
+ After this run next rake command:
24
+
25
+ $ bundle exec rake betfair_api_ng_rails:install
26
+
27
+ After installation will appear two files:
28
+
29
+ ```
30
+ config/betfair_api_ng_rails.yml
31
+ config/initializers/betfair_api_ng_rails.rb
32
+ ```
33
+
34
+ In this files you must specify credentials to API-NG. Also you should notice that this gem used non-interactive login and you must generate ssh keys for logining well. More information about this you may find [there](https://api.developer.betfair.com/services/webapps/docs/display/1smk3cen4v3lu3yomq5qye0ni/Non-Interactive+%28bot%29+login).
35
+
36
+ ## Usage
37
+
38
+ Sample code for fetching competitions list:
39
+
40
+ ```ruby
41
+ requester = BetfairApiNgRails::Api::Soccer::CompetitionRequester.new provider: :bf
42
+ res = requester.load
43
+ ```
44
+
45
+ For all available methods see [there](https://api.developer.betfair.com/services/webapps/docs/display/1smk3cen4v3lu3yomq5qye0ni/Betting+Operations).
46
+
47
+ Also you may passing filering params in _load_:
48
+
49
+ ```ruby
50
+ requester = BetfairApiNgRails::Api::Soccer::CompetitionRequester.new provider: :bf
51
+ res = requester.load parameters: { event_ids: [1, 2] }
52
+ ```
53
+
54
+ ## Contributing
55
+
56
+ 1. Fork it
57
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
58
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
59
+ 4. Push to the branch (`git push origin my-new-feature`)
60
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'betfair_api_ng_rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "betfair_api_ng_rails"
8
+ spec.version = BetfairApiNgRails::VERSION
9
+ spec.authors = ["sergio1990"]
10
+ spec.email = ["sergeg1990@gmail.com"]
11
+ spec.description = %q{Betfair API-NG for Rails}
12
+ spec.summary = %q{Provides accessing betfair.com api-ng using non-interactive login}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "activesupport", ">= 3.1.0"
24
+ end
@@ -0,0 +1,46 @@
1
+ require "betfair_api_ng_rails/version"
2
+
3
+ module BetfairApiNgRails
4
+
5
+ module Api
6
+
7
+ autoload :BaseParser, 'betfair_api_ng_rails/api/base_parser'
8
+ autoload :BaseProvider, 'betfair_api_ng_rails/api/base_provider'
9
+ autoload :BaseRequester, 'betfair_api_ng_rails/api/base_requester'
10
+
11
+ module BF
12
+
13
+ autoload :Config, 'betfair_api_ng_rails/api/bf/config'
14
+ autoload :Constants, 'betfair_api_ng_rails/api/bf/constants'
15
+ autoload :HttpRequester, 'betfair_api_ng_rails/api/bf/http_requester'
16
+ autoload :HttpResponser, 'betfair_api_ng_rails/api/bf/http_responser'
17
+ autoload :Provider, 'betfair_api_ng_rails/api/bf/provider'
18
+ autoload :SessionManager, 'betfair_api_ng_rails/api/bf/session_manager'
19
+
20
+ module Parsers
21
+
22
+ module Soccer
23
+
24
+ autoload :CompetitionParser, 'betfair_api_ng_rails/api/bf/parsers/soccer/competition_parser'
25
+
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+
32
+ module Soccer
33
+
34
+ autoload :Requester, 'betfair_api_ng_rails/api/soccer/requester'
35
+ autoload :CompetitionRequester, 'betfair_api_ng_rails/api/soccer/competition_requester'
36
+
37
+ end
38
+
39
+ end
40
+
41
+ def self.config(&block)
42
+ @_config ||= BetfairApiNgRails::Api::BF::Config
43
+ block_given? ? yield(@_config) : @_config
44
+ end
45
+
46
+ end
@@ -0,0 +1,21 @@
1
+ require 'json'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ class BaseParser
6
+
7
+ def parse(response: "")
8
+ raise "Must be reimplemented!"
9
+ end
10
+
11
+ private
12
+
13
+ def jsonify(response)
14
+ JSON.parse response
15
+ rescue
16
+ {}
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ require 'active_support/inflector'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ class BaseProvider
6
+
7
+ def fetch(data: "", parameters: {}, sport: "")
8
+ raise "Must be reimplemented!"
9
+ end
10
+
11
+ private
12
+
13
+ def build_function(method)
14
+ "list#{method.to_s.pluralize.camelize}"
15
+ end
16
+
17
+ def build_parser(data, sport)
18
+ "BetfairApiNgRails::Api::BF::Parsers::#{sport.to_s.camelize}::#{data.to_s.camelize}Parser".constantize.new
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require 'active_support/inflector'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ class BaseRequester
6
+
7
+ attr_reader :provider_name, :sport, :data
8
+
9
+ def initialize(provider)
10
+ @provider_name = provider
11
+ end
12
+
13
+ def load(parameters: {})
14
+ raise "Must be reimplemented!"
15
+ end
16
+
17
+ private
18
+
19
+ def current_provider
20
+ @_current_provider ||= "BetfairApiNgRails::Api::#{provider_name.to_s.upcase}::Provider".constantize.new
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ require 'active_support/core_ext/object'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ module BF
6
+ module Concerns
7
+ module Errorable
8
+
9
+ def has_errors?
10
+ !error_info.nil?
11
+ end
12
+
13
+ def error_info
14
+ @http_responser.try(:error_info?)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module BetfairApiNgRails
2
+ module Api
3
+ module BF
4
+ class Config
5
+
6
+ class << self
7
+
8
+ attr_accessor :application_key,
9
+ :ssl_key_filepath,
10
+ :ssl_crt_filepath,
11
+ :login_url,
12
+ :api_url,
13
+ :username,
14
+ :password
15
+
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ module BetfairApiNgRails
2
+ module Api
3
+ module BF
4
+ module Constants
5
+
6
+ SUCCESS_LOGIN = "SUCCESS"
7
+
8
+ SESSION_REQUEST_HEADERS = {
9
+ "Content-Type" => "application/x-www-form-urlencoded"
10
+ }
11
+
12
+ API_REQUEST_HEADERS = {
13
+ "Content-Type" => "application/json",
14
+ "Accept" => "application/json"
15
+ }
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,73 @@
1
+ require "net/https"
2
+ require "uri"
3
+ require 'json'
4
+
5
+ module BetfairApiNgRails
6
+ module Api
7
+ module BF
8
+ class HttpRequester
9
+
10
+ attr_reader :http, :request, :uri
11
+
12
+ def initialize(url, use_ssl = true)
13
+ @uri = URI.parse url
14
+ @http = Net::HTTP.new uri.host, uri.port
15
+ http.use_ssl = use_ssl
16
+ @request = Net::HTTP::Post.new uri.request_uri
17
+ end
18
+
19
+ def do_request
20
+ Api::BF::HttpResponser.new http.request(request)
21
+ end
22
+
23
+ def set_crt_file(path)
24
+ http.cert = OpenSSL::X509::Certificate.new(read_file(path))
25
+ end
26
+
27
+ def set_key_file(path)
28
+ http.key = OpenSSL::PKey::RSA.new(read_file(path))
29
+ end
30
+
31
+ def set_verify_mode(value)
32
+ http.verify_mode = value
33
+ end
34
+
35
+ def set_ssl_files(crt_path, key_path, verify = OpenSSL::SSL::VERIFY_PEER)
36
+ set_crt_file crt_path
37
+ set_key_file key_path
38
+ set_verify_mode verify
39
+ end
40
+
41
+ def set_auth_headers(app_key, session_key = nil)
42
+ request["X-Application"] = app_key
43
+ request["X-Authentication"] = session_key if session_key
44
+ end
45
+
46
+ def set_request_headers(headers)
47
+ headers.each { |name, value| request[name] = value }
48
+ end
49
+
50
+ def set_form_data(values)
51
+ request.set_form_data values
52
+ end
53
+
54
+ def set_request_body(body)
55
+ request.body = body
56
+ end
57
+
58
+ def set_api_req_body(method, filter = {})
59
+ set_request_body "{\"jsonrpc\": \"2.0\", \"method\": \"SportsAPING/v1.0/#{method}\", \"params\": {\"filter\": #{filter.to_json}}}"
60
+ end
61
+
62
+ private
63
+
64
+ def read_file(path)
65
+ File.read path
66
+ rescue
67
+ ""
68
+ end
69
+
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,44 @@
1
+ require 'json'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ module BF
6
+ class HttpResponser
7
+ include Api::BF::Constants
8
+
9
+ attr_reader :response, :error_info
10
+
11
+ def initialize(response)
12
+ @response = response
13
+ end
14
+
15
+ def result
16
+ JSON.parse response.body
17
+ end
18
+
19
+ def has_error?
20
+ http_error? || api_req_error? || session_req_error?
21
+ end
22
+
23
+ private
24
+
25
+ def http_error?
26
+ (response.code != '200').tap { |val| set_error_info(:HTTP, response.code) if val }
27
+ end
28
+
29
+ def session_req_error?
30
+ (result.fetch('loginStatus', SUCCESS_LOGIN) != SUCCESS_LOGIN).tap { |val| set_error_info(:SESSION, result['loginStatus']) if val }
31
+ end
32
+
33
+ def api_req_error?
34
+ (result.has_key?('error')).tap { |val| set_error_info(:API, result['error']) if val }
35
+ end
36
+
37
+ def set_error_info(type, info)
38
+ @error_info = { type: type, info: info }
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,25 @@
1
+ module BetfairApiNgRails
2
+ module Api
3
+ module BF
4
+ module Parsers
5
+ module Soccer
6
+ class CompetitionParser < Api::BaseParser
7
+
8
+ def parse(response: {})
9
+ response['result'].map { |r| process_competition(r) }
10
+ end
11
+
12
+ private
13
+
14
+ def process_competition(h)
15
+ h.merge! h['competition']
16
+ h.except! 'competition'
17
+ h
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,44 @@
1
+ require 'betfair_api_ng_rails/api/bf/concerns/errorable'
2
+
3
+ module BetfairApiNgRails
4
+ module Api
5
+ module BF
6
+ class Provider < Api::BaseProvider
7
+ include Api::BF::Concerns::Errorable
8
+ include Api::BF::Constants
9
+
10
+ attr_reader :session_manager
11
+
12
+ def initialize
13
+ @session_manager = Api::BF::SessionManager.new
14
+ end
15
+
16
+ def fetch(data: "", parameters: {}, sport: "")
17
+ return [] unless session_manager.request_ssoid
18
+ setup_http_requester with_method: data
19
+ do_request data, parameters, sport
20
+ end
21
+
22
+ private
23
+
24
+ def do_request(data, parameters, sport)
25
+ @http_responser = @http_requester.do_request
26
+ process_response @http_responser.result, build_parser(data, sport)
27
+ end
28
+
29
+ def process_response(response, parser)
30
+ parser.parse response: response
31
+ end
32
+
33
+ def setup_http_requester(with_method: "")
34
+ @http_requester = Api::BF::HttpRequester.new(Api::BF::Config.api_url).tap do |req|
35
+ req.set_request_headers API_REQUEST_HEADERS
36
+ req.set_auth_headers Api::BF::Config.application_key, session_manager.ssoid
37
+ req.set_api_req_body build_function(with_method)
38
+ end
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,57 @@
1
+ require "net/https"
2
+ require "uri"
3
+ require 'json'
4
+ require 'betfair_api_ng_rails/api/bf/concerns/errorable'
5
+
6
+ module BetfairApiNgRails
7
+ module Api
8
+ module BF
9
+ class SessionManager
10
+ include Api::BF::Concerns::Errorable
11
+ include Api::BF::Constants
12
+
13
+ def initialize
14
+ setup_http_requester
15
+ end
16
+
17
+ def ssoid
18
+ @ssoid ||= fetch_ssoid
19
+ end
20
+
21
+ def request_ssoid
22
+ ssoid
23
+ !has_errors?
24
+ end
25
+
26
+ def expire_ssoid
27
+ @ssoid = nil
28
+ end
29
+
30
+ private
31
+
32
+ def fetch_ssoid
33
+ process_response get_login_response
34
+ end
35
+
36
+ def process_response(response)
37
+ response['sessionToken']
38
+ end
39
+
40
+ def get_login_response
41
+ @http_responser = @http_requester.do_request
42
+ @http_responser.result
43
+ end
44
+
45
+ def setup_http_requester
46
+ @http_requester = Api::BF::HttpRequester.new(Api::BF::Config.login_url).tap do |req|
47
+ req.set_ssl_files Api::BF::Config.ssl_crt_filepath, Api::BF::Config.ssl_key_filepath
48
+ req.set_request_headers SESSION_REQUEST_HEADERS
49
+ req.set_auth_headers Api::BF::Config.application_key
50
+ req.set_form_data "username" => Api::BF::Config.username, "password" => Api::BF::Config.password
51
+ end
52
+ end
53
+
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,14 @@
1
+ module BetfairApiNgRails
2
+ class Api::Soccer::CompetitionRequester < BetfairApiNgRails::Api::Soccer::Requester
3
+
4
+ def initialize(provider: '')
5
+ @data = :competition
6
+ super provider
7
+ end
8
+
9
+ def load(parameters: {})
10
+ make_fetch parameters: parameters
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ module BetfairApiNgRails
2
+ module Api
3
+ module Soccer
4
+ class Requester < BetfairApiNgRails::Api::BaseRequester
5
+
6
+ def initialize(provider)
7
+ @sport = :soccer
8
+ super provider
9
+ end
10
+
11
+ private
12
+
13
+ def make_fetch(parameters: {})
14
+ current_provider.fetch data: data, parameters: parameters, sport: sport
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ module BetfairApiNgRails
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,18 @@
1
+ require 'rails/generators/base'
2
+
3
+ module BetfairApiNgRails
4
+ module Generators
5
+ class InstallGenerator < ::Rails::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def create_configuration_file
9
+ copy_file 'betfair_api_ng_rails.yml', File.join('config', "betfair_api_ng_rails.yml")
10
+ end
11
+
12
+ def create_initializer_file
13
+ copy_file 'betfair_api_ng_rails.rb', File.join('config/initializers', "betfair_api_ng_rails.rb")
14
+ end
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ BetfairApiNgRails.config do |config|
2
+ require 'yaml'
3
+
4
+ load_config = YAML.load_file("#{Rails.root}/config/betfair_api_ng_rails.yml")[Rails.env]
5
+
6
+ config.application_key = load_config['application_key']
7
+ config.ssl_key_filepath = "#{Rails.root}/public/client-2048.key"
8
+ config.ssl_crt_filepath = "#{Rails.root}/public/client-2048.crt"
9
+ config.login_url = load_config['login_url']
10
+ config.api_url = load_config['api_url']
11
+ config.username = load_config['username']
12
+ config.password = load_config['password']
13
+
14
+ end
@@ -0,0 +1,13 @@
1
+ development:
2
+ application_key: YOUR_APP_KEY
3
+ login_url: https://identitysso.betfair.com/api/certlogin
4
+ api_url: https://api-ng.betstores.com/betting/betfair/services/api.betfair.com/exchange/betting/json-rpc/v1
5
+ username: YOUR_ACCOUNT_USERNAME
6
+ password: YOUR_ACCOUNT_PASSWORD
7
+
8
+ production:
9
+ application_key: YOUR_APP_KEY
10
+ login_url: https://identitysso.betfair.com/api/certlogin
11
+ api_url: https://api-ng.betstores.com/betting/betfair/services/api.betfair.com/exchange/betting/json-rpc/v1
12
+ username: YOUR_ACCOUNT_USERNAME
13
+ password: YOUR_ACCOUNT_PASSWORD
metadata ADDED
@@ -0,0 +1,110 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: betfair_api_ng_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - sergio1990
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.0
55
+ description: Betfair API-NG for Rails
56
+ email:
57
+ - sergeg1990@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - Gemfile
64
+ - LICENSE.txt
65
+ - README.md
66
+ - Rakefile
67
+ - betfair_api_ng_rails.gemspec
68
+ - lib/betfair_api_ng_rails.rb
69
+ - lib/betfair_api_ng_rails/api/base_parser.rb
70
+ - lib/betfair_api_ng_rails/api/base_provider.rb
71
+ - lib/betfair_api_ng_rails/api/base_requester.rb
72
+ - lib/betfair_api_ng_rails/api/bf/concerns/errorable.rb
73
+ - lib/betfair_api_ng_rails/api/bf/config.rb
74
+ - lib/betfair_api_ng_rails/api/bf/constants.rb
75
+ - lib/betfair_api_ng_rails/api/bf/http_requester.rb
76
+ - lib/betfair_api_ng_rails/api/bf/http_responser.rb
77
+ - lib/betfair_api_ng_rails/api/bf/parsers/soccer/competition_parser.rb
78
+ - lib/betfair_api_ng_rails/api/bf/provider.rb
79
+ - lib/betfair_api_ng_rails/api/bf/session_manager.rb
80
+ - lib/betfair_api_ng_rails/api/soccer/competition_requester.rb
81
+ - lib/betfair_api_ng_rails/api/soccer/requester.rb
82
+ - lib/betfair_api_ng_rails/version.rb
83
+ - lib/generators/betfair_api_ng_rails/install/install_generator.rb
84
+ - lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.rb
85
+ - lib/generators/betfair_api_ng_rails/install/templates/betfair_api_ng_rails.yml
86
+ homepage: ''
87
+ licenses:
88
+ - MIT
89
+ metadata: {}
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubyforge_project:
106
+ rubygems_version: 2.0.14
107
+ signing_key:
108
+ specification_version: 4
109
+ summary: Provides accessing betfair.com api-ng using non-interactive login
110
+ test_files: []