cbs 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3179cbc2cfd2be2bf23245d3f4382f72e5c88d1e
4
+ data.tar.gz: c801c162706168a8974e9423dec0913f0bd9aef8
5
+ SHA512:
6
+ metadata.gz: 850ed0376d55f4f072970c2b919a2a6c3e51f239f1a8f0a2f03ce4e50b92bfdb708cabb48921845ec04ec59e36ee48f1e98bd379dd9c34289c8983ad212200fd
7
+ data.tar.gz: dbb5ac8ba6a815b7ea4a6a862e05371e85c3f5345c3c0c37f5854b5a2bf36294e93f58f905dbb985aff511d321ab5eb450a6cba501a42ddce27030061a5b750f
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Andrew Thorp
1
+ Copyright (c) 2017 Andrew Thorp
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/Rakefile CHANGED
@@ -1,2 +1,6 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task :default => :spec
@@ -4,19 +4,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'cbs/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.add_development_dependency 'bundler', '~> 1.0'
7
+ spec.name = 'cbs'
8
+ spec.licenses = ['MIT']
9
+ spec.summary = "Ruby client for the CBS Sports API"
10
+ spec.description = "Ruby client for the CBS Sports API"
11
+
8
12
  spec.author = 'Andrew Thorp'
9
- spec.description = %q{Simple wrapper for the CBS Sports API}
10
13
  spec.email = 'andrewpthorp@gmail.com'
14
+ spec.homepage = 'https://github.com/andrewpthorp/cbs'
15
+
11
16
  spec.files = %w(LICENSE.md README.md Rakefile cbs.gemspec)
12
17
  spec.files += Dir.glob("lib/**/*.rb")
13
18
  spec.files += Dir.glob("spec/**/*")
14
- spec.homepage = 'https://github.com/andrewpthorp/cbs'
15
- spec.license = 'MIT'
16
- spec.name = 'cbs'
17
- spec.require_paths = ['lib']
18
- spec.required_rubygems_version = '>= 1.3.5'
19
- spec.summary = "Ruby toolkit for working with the CBS Sports API"
20
- spec.test_files = Dir.glob("spec/**/*")
19
+
21
20
  spec.version = CBS::VERSION.dup
21
+
22
+ spec.add_runtime_dependency 'faraday', '0.11.0'
23
+ spec.add_runtime_dependency 'faraday_middleware', '0.11.0'
24
+ spec.add_runtime_dependency 'hashie', '~> 3.5'
22
25
  end
data/lib/cbs.rb CHANGED
@@ -1,2 +1,13 @@
1
+ require 'cbs/client'
2
+
1
3
  module CBS
4
+ extend Configuration
5
+
6
+ class << self
7
+
8
+ def new(opts={})
9
+ CBS::Client.new(opts)
10
+ end
11
+
12
+ end
2
13
  end
@@ -0,0 +1,29 @@
1
+ require 'cbs/request'
2
+ require 'cbs/configuration'
3
+ require 'cbs/client/players'
4
+ require 'cbs/client/teams'
5
+
6
+ module CBS
7
+ class Client
8
+
9
+ attr_accessor :timeout
10
+ attr_accessor :open_timeout
11
+ attr_accessor :sport
12
+
13
+ def initialize(opts={})
14
+ options = CBS.options.merge(opts)
15
+ Configuration::VALID_OPTIONS_KEYS.each do |key|
16
+ send("#{key}=", options[key])
17
+ end
18
+ end
19
+
20
+ def api_url
21
+ "http://api.cbssports.com/fantasy/"
22
+ end
23
+
24
+ include CBS::Request
25
+ include CBS::Client::Players
26
+ include CBS::Client::Teams
27
+
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ module CBS
2
+ class Client
3
+ module Players
4
+
5
+ def players(opts={})
6
+ get('players/list', opts).body.players
7
+ end
8
+
9
+ def profile(player_id, opts={})
10
+ opts.merge!(player_id: player_id)
11
+
12
+
13
+ get('players/profile', opts).body.player_profile.player
14
+ end
15
+
16
+ def player_search(name, opts={}, team_name: nil)
17
+ opts.merge!(name: name)
18
+ opts.merge!(team_name: team_name) if team_name
19
+
20
+ get('players/search', opts).body.players
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ module CBS
2
+ class Client
3
+ module Teams
4
+
5
+ def teams(opts={})
6
+ get('pro-teams', opts).body.pro_teams
7
+ end
8
+
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ require 'faraday'
2
+ require 'cbs/version'
3
+
4
+ module CBS
5
+
6
+ module Configuration
7
+
8
+ VALID_OPTIONS_KEYS = [:timeout, :open_timeout, :sport].freeze
9
+ attr_accessor *VALID_OPTIONS_KEYS
10
+
11
+ def self.extended(base)
12
+ base.reset
13
+ end
14
+
15
+ def configure
16
+ yield self
17
+ end
18
+
19
+ def options
20
+ VALID_OPTIONS_KEYS.inject({}){|o,k| o.merge!(k => send(k)) }
21
+ end
22
+
23
+ def reset
24
+ self.timeout = 30
25
+ self.open_timeout = 10
26
+ self.sport = nil
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,43 @@
1
+ require 'hashie'
2
+ require 'faraday_middleware'
3
+
4
+ module CBS
5
+ module Request
6
+
7
+ def get(path, opts={})
8
+ request(:get, path, opts)
9
+ end
10
+
11
+ private
12
+
13
+ def request(method, path, opts)
14
+ response = connection(opts).send(method) do |request|
15
+ request.url(path, opts)
16
+
17
+ request.options[:timeout] = timeout
18
+ request.options[:open_timeout] = open_timeout
19
+ end
20
+
21
+ Hashie::Mash.new(response.body)
22
+ end
23
+
24
+ def connection(opts={})
25
+ options = {
26
+ url: api_url,
27
+ params: {
28
+ response_format: :json,
29
+ version: 3.0,
30
+ SPORT: opts.fetch(:sport, sport),
31
+ },
32
+ }
33
+
34
+ connection = Faraday.new(options) do |conn|
35
+ conn.response :json
36
+ conn.adapter Faraday.default_adapter
37
+ end
38
+
39
+ connection
40
+ end
41
+
42
+ end
43
+ end
@@ -1,5 +1,5 @@
1
1
  module CBS
2
2
 
3
- VERSION = '0.0.0'.freeze
3
+ VERSION = '0.0.1'.freeze
4
4
 
5
5
  end
@@ -0,0 +1,2 @@
1
+ require 'cbs'
2
+ require 'rspec'
metadata CHANGED
@@ -1,33 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
5
- prerelease:
4
+ version: 0.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andrew Thorp
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-20 00:00:00.000000000 Z
11
+ date: 2017-03-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: bundler
14
+ name: faraday
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - '='
20
18
  - !ruby/object:Gem::Version
21
- version: '1.0'
22
- type: :development
19
+ version: 0.11.0
20
+ type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - '='
28
25
  - !ruby/object:Gem::Version
29
- version: '1.0'
30
- description: Simple wrapper for the CBS Sports API
26
+ version: 0.11.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.11.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.11.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.5'
55
+ description: Ruby client for the CBS Sports API
31
56
  email: andrewpthorp@gmail.com
32
57
  executables: []
33
58
  extensions: []
@@ -37,31 +62,37 @@ files:
37
62
  - README.md
38
63
  - Rakefile
39
64
  - cbs.gemspec
40
- - lib/cbs/version.rb
41
65
  - lib/cbs.rb
66
+ - lib/cbs/client.rb
67
+ - lib/cbs/client/players.rb
68
+ - lib/cbs/client/teams.rb
69
+ - lib/cbs/configuration.rb
70
+ - lib/cbs/request.rb
71
+ - lib/cbs/version.rb
72
+ - spec/spec_helper.rb
42
73
  homepage: https://github.com/andrewpthorp/cbs
43
74
  licenses:
44
75
  - MIT
76
+ metadata: {}
45
77
  post_install_message:
46
78
  rdoc_options: []
47
79
  require_paths:
48
80
  - lib
49
81
  required_ruby_version: !ruby/object:Gem::Requirement
50
- none: false
51
82
  requirements:
52
- - - ! '>='
83
+ - - ">="
53
84
  - !ruby/object:Gem::Version
54
85
  version: '0'
55
86
  required_rubygems_version: !ruby/object:Gem::Requirement
56
- none: false
57
87
  requirements:
58
- - - ! '>='
88
+ - - ">="
59
89
  - !ruby/object:Gem::Version
60
- version: 1.3.5
90
+ version: '0'
61
91
  requirements: []
62
92
  rubyforge_project:
63
- rubygems_version: 1.8.23
93
+ rubygems_version: 2.4.5.1
64
94
  signing_key:
65
- specification_version: 3
66
- summary: Ruby toolkit for working with the CBS Sports API
95
+ specification_version: 4
96
+ summary: Ruby client for the CBS Sports API
67
97
  test_files: []
98
+ has_rdoc: