infostrada 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4cb72e08b9e4d09f02497612a54a0734521bfd9
4
- data.tar.gz: 52471df74223d184f91240e5c8a9b9af68a7ce29
3
+ metadata.gz: ba919a27af5c409be645ab783d4e798541c0e530
4
+ data.tar.gz: 53e9434a6e1227844068e20916d658d2748ed1d2
5
5
  SHA512:
6
- metadata.gz: 4629ca8db63754ef1c2aa47dab651edfcbe96406a89edfa05b3a0b4f368cc48b7c4520bfa29624dad9ff037fb70b7996e6496015c9654c87a0fc8d165e1f603f
7
- data.tar.gz: 2136d24be6c40c5e93f132078afe595a62bae73f2f4770b319bba4ba4b313ccf3613ea46e565556cb3462e6dd8d906e0d4d4b6b7966a0cef98020caba81f477c
6
+ metadata.gz: f328878a653683b9d4bfcaae26fd6e5807a765d20e8e5663dc91e02937c12288adb505fc4a11cc744bdf966ed49df96fc4101e7d37269775ff7a2d7da370e836
7
+ data.tar.gz: effc38fcb37763919235a9125114e2c9f669cd9b8a5b5b8486affd7a5c199e3be73ad5996c9e19817ff9026ad8ff5e36ba7b68bf50062cab488ab4ca62cb6ea5
data/Gemfile.lock CHANGED
@@ -1,25 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- infostrada (0.0.1)
4
+ infostrada (0.0.9)
5
5
  colored
6
6
  httparty (~> 0.12)
7
7
  rb-readline
8
+ tzinfo
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
13
  ast (1.1.0)
14
+ coderay (1.1.0)
13
15
  colored (1.2)
14
- httparty (0.12.0)
16
+ httparty (0.13.0)
15
17
  json (~> 1.8)
16
18
  multi_xml (>= 0.5.2)
17
19
  json (1.8.1)
20
+ method_source (0.8.2)
18
21
  multi_xml (0.5.5)
19
22
  parser (2.1.4)
20
23
  ast (~> 1.1)
21
24
  slop (~> 3.4, >= 3.4.5)
22
25
  powerpack (0.0.9)
26
+ pry (0.9.12.6)
27
+ coderay (~> 1.0)
28
+ method_source (~> 0.8)
29
+ slop (~> 3.4)
23
30
  rainbow (2.0.0)
24
31
  rake (10.1.1)
25
32
  rb-readline (0.5.1)
@@ -39,6 +46,7 @@ GEM
39
46
  sexp_processor (~> 4.1)
40
47
  sexp_processor (4.4.1)
41
48
  slop (3.4.7)
49
+ tzinfo (0.3.39)
42
50
 
43
51
  PLATFORMS
44
52
  ruby
@@ -46,6 +54,7 @@ PLATFORMS
46
54
  DEPENDENCIES
47
55
  bundler (~> 1.5)
48
56
  infostrada!
57
+ pry
49
58
  rake
50
59
  reek
51
60
  rubocop
data/infostrada.gemspec CHANGED
@@ -26,4 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency 'httparty', '~> 0.12'
27
27
  spec.add_dependency 'colored'
28
28
  spec.add_dependency 'rb-readline'
29
+ spec.add_dependency 'tzinfo'
30
+ spec.add_development_dependency 'pry'
29
31
  end
data/infostrada.pstore ADDED
@@ -0,0 +1 @@
1
+ {:last_updateIu: Time
@@ -1,3 +1,5 @@
1
+ require 'infostrada/endpoint_manager'
2
+
1
3
  module Infostrada
2
4
  # This is the class that every class making API requests must descend from. It includes HTTParty
3
5
  # to easily support every type of HTTP request. The basic_auth is set up from the
@@ -21,10 +23,19 @@ module Infostrada
21
23
  base_uri 'demo.api.infostradasports.com/svc/Football.svc/json/'
22
24
 
23
25
  # Which default parameters we can send in every request?
26
+ #
27
+ # languageCode can be one of the following:
28
+ # 1 = dutch
29
+ # 2 = english
30
+ # 4 = french
31
+ # 8 = german
32
+ # 128 = norwegian
33
+ # 256 = swedish
34
+ # 1024 = danish
24
35
  default_params languageCode: 2
25
36
 
26
37
  # Default request timeout in seconds. This can be overriden by module configuration.
27
- default_timeout 10
38
+ default_timeout 15
28
39
 
29
40
  # Disable the use of rails query string format.
30
41
  #
@@ -36,6 +47,16 @@ module Infostrada
36
47
  #
37
48
  disable_rails_query_string_format
38
49
 
50
+ class << self
51
+ attr_accessor :endpoint
52
+
53
+ def register_endpoint(endpoint)
54
+ self.endpoint = endpoint
55
+
56
+ EndpointManager.register(endpoint => self)
57
+ end
58
+ end
59
+
39
60
  # Used with Timeout::Error rescue so we can keep trying to fetch the information after timeout.
40
61
  def self.get!(path, options = {}, &block)
41
62
  attempts = 1
@@ -43,10 +64,14 @@ module Infostrada
43
64
 
44
65
  begin
45
66
  result = get(path, options, &block)
46
- rescue Timeout::Error => error
67
+ rescue Timeout::Error => e
47
68
  puts "Timeout! Retrying... (#{attempts})"
48
69
  attempts += 1
49
- retry unless attempts > RETRIES
70
+ if attempts > RETRIES
71
+ raise Infostrada::RequestError.new, 'Request timeout'
72
+ else
73
+ retry
74
+ end
50
75
  end
51
76
 
52
77
  result
@@ -0,0 +1,89 @@
1
+ require 'pstore'
2
+ require 'tzinfo'
3
+
4
+ module Infostrada
5
+ class CallRefresh < Infostrada::BaseRequest
6
+ URL = '/GetAPICallRefresh_Module'
7
+
8
+ # The API timezone. This is very important since all the dates passed as argument to the refresh
9
+ # call must be in the correct timezone.
10
+ TIMEZONE = 'Europe/Amsterdam'
11
+
12
+ # This is the only method on Infostrada API that don't use /Football.svc but /Utility.svc
13
+ # instead, so we have to replace that on the default base_uri.
14
+ Infostrada::CallRefresh.base_uri Infostrada::CallRefresh.base_uri.gsub(/Football/, 'Utility')
15
+
16
+ # Which languages are you interested in? The GetAPICallRefresh_Module call can return multiple
17
+ # endpoints for the same thing if multiple languages are available.
18
+ #
19
+ # languageCode can be one of the following:
20
+ # 1 = dutch
21
+ # 2 = english
22
+ # 4 = french
23
+ # 8 = german
24
+ # 128 = norwegian
25
+ # 256 = swedish
26
+ # 1024 = danish
27
+ LANGUAGE_CODES = [2]
28
+
29
+ # The outputType parameter can be one of the following:
30
+ # 1 = xml
31
+ # 2 = json
32
+ # 3 = soap
33
+ OUTPUT_TYPE = 2
34
+
35
+ # How to format the date. This string will be used on a Date#strftime. Infostrada will work with
36
+ # formats like this: 2013-09-21T22:22:22.
37
+ DATE_FORMAT = '%FT%T'
38
+
39
+ def self.store
40
+ @store ||= PStore.new('infostrada.pstore')
41
+ end
42
+
43
+ def self.last_update
44
+ store.transaction { store[:last_update] }
45
+ end
46
+
47
+ def self.last_update=(date)
48
+ store.transaction { store[:last_update] = date }
49
+ end
50
+
51
+ def self.api_time(date)
52
+ @timezone ||= TZInfo::Timezone.get(TIMEZONE)
53
+ @timezone.utc_to_local(date.utc)
54
+ end
55
+
56
+ def self.get_latest
57
+ updated_endpoints = since(last_update || api_time(Time.now))
58
+ end
59
+
60
+ def self.since(date)
61
+ date = date.strftime(DATE_FORMAT)
62
+
63
+ list = get!(URL, query: { from: date, outputType: OUTPUT_TYPE, module: 'football' })
64
+
65
+ self.last_update = api_time(Time.now)
66
+
67
+ endpoints = []
68
+ list.each do |hash|
69
+ lang = hash['c_QueryString'].scan(/languagecode=(\d+)/).flatten.first.to_i
70
+
71
+ endpoints << Endpoint.new(hash) if LANGUAGE_CODES.include?(lang)
72
+ end
73
+
74
+ endpoints
75
+ end
76
+ end
77
+
78
+ class Endpoint
79
+ attr_accessor :method, :last_modified, :query_string
80
+
81
+ def initialize(hash)
82
+ @method = hash['c_Method']
83
+ @last_modified = Formatter.format_date(hash['d_LastModified'])
84
+ @query_string = hash['c_QueryString']
85
+
86
+ self
87
+ end
88
+ end
89
+ end
@@ -20,10 +20,17 @@ module Infostrada
20
20
  @end_date = Formatter.format_date(hash.delete('d_EditionEndDate'))
21
21
 
22
22
  @competition = Competition.new(hash)
23
+
24
+ self
23
25
  end
24
26
 
25
27
  def teams
26
28
  Team.all(id)
27
29
  end
30
+
31
+ # Get phases for this edition
32
+ def phases
33
+ Phase.where(edition_id: id)
34
+ end
28
35
  end
29
36
  end
@@ -0,0 +1,12 @@
1
+ module Infostrada
2
+ class EndpointManager
3
+ def self.register(hash)
4
+ @endpoints ||= {}
5
+ @endpoints.merge!(hash)
6
+ end
7
+
8
+ def self.list
9
+ @endpoints
10
+ end
11
+ end
12
+ end
@@ -4,4 +4,7 @@ module Infostrada
4
4
 
5
5
  class InvalidParameter < BaseError
6
6
  end
7
+
8
+ class RequestError < BaseError
9
+ end
7
10
  end
@@ -1,7 +1,7 @@
1
1
  module Infostrada
2
- # This class is used to format types that come from infostrada like dates.
2
+ # This class is used to format types that come from Infostrada like dates.
3
3
  class Formatter
4
- # Formats the stupid date format from Infostrada.
4
+ # Formats the strange date format from Infostrada.
5
5
  def self.format_date(date)
6
6
  if date && match = date.match(/\/Date\(([0-9]+)([\+\-])([0-9]+)\)\//i)
7
7
  # The date was in miliseconds since Unix epoch
@@ -12,9 +12,9 @@ module Infostrada
12
12
 
13
13
  final = stamp.send(match[2], offset)
14
14
 
15
- Time.at(final).to_date
15
+ Time.at(final).utc
16
16
  else
17
- Time.now.to_date
17
+ Time.now.utc
18
18
  end
19
19
  end
20
20
  end
@@ -2,6 +2,15 @@ require 'infostrada/referee'
2
2
  require 'infostrada/match_event_list'
3
3
 
4
4
  module Infostrada
5
+ # You can get the information about a single game, about all games in an edition or about all
6
+ # games in a day.
7
+ #
8
+ # Examples:
9
+ #
10
+ # Infostrada::Match.where(edition_id: 2398) # all matches for edition 2398
11
+ # Infostrada::Match.where(date: Time.now) # all matches for current date (live info)
12
+ # Infostrada::Match.where(date: Date.today+1.day) # all matches for tomorrow (live info)
13
+ # Infostrada::Match.where(id: 1337) # information about the match 1337
5
14
  class Match < Infostrada::BaseRequest
6
15
  extend Forwardable
7
16
 
@@ -9,7 +18,7 @@ module Infostrada
9
18
  attr_accessor :stadium_id, :stadium_name, :goals, :match_status, :finished, :awarded
10
19
  attr_accessor :postponed, :referee, :spectators, :leg, :knockout_phase, :first_leg_score
11
20
  attr_accessor :aggregate_winner_id, :current_period_started_at, :status, :started_at, :started
12
- attr_accessor :competition
21
+ attr_accessor :edition
13
22
 
14
23
  # Check if the live score, live goals and live lineups are already available
15
24
  attr_accessor :live, :live_score, :live_goals, :live_lineup
@@ -17,17 +26,51 @@ module Infostrada
17
26
  # Lineup
18
27
  attr_accessor :lineup_provisional, :lineup_official
19
28
 
29
+ # period is taken from Infostradas n_PeriodSort, that can have one of these values:
30
+ #
31
+ # 1 = Not started
32
+ # 2 = 1st Half
33
+ # 3 = Halftime
34
+ # 4 = 2nd Half
35
+ # 5 = 90 mins
36
+ # 6 = 1st Extra Time
37
+ # 7 = 105 mins
38
+ # 8 = 2nd Extra Time
39
+ # 9 = 120 mins
40
+ # 10 = Penalty Shootout
41
+ # 11 = End
42
+ attr_accessor :period
43
+
44
+ # status_code is taken from Infostradas n_MatchStatusCode, that can have on of these values:
45
+ #
46
+ # 2 = Line-up
47
+ # 4 = Not Started
48
+ # 8 = In Progress
49
+ # 16 = Interval
50
+ # 32 = Suspended (during the match)
51
+ # 128 = Finished (official result)
52
+ # 192 = Finished (unofficial result). This is a combination of code 64 and 128.
53
+ # 512 = Abandoned
54
+ # 1024 = Postponed
55
+ # 2048 = Delayed
56
+ #
57
+ # If a match is stopped temporarily, n_MatchStatusCode is set to 32 (=Suspended).
58
+ # If it becomes clear that the match, after being suspended, will not be restarted on the same
59
+ # day, n_MatchStatusCode is set to 512 (=Abandoned).
60
+ attr_accessor :status_code
61
+
20
62
  def_delegator :@referee, :name, :referee_name
21
63
  def_delegator :@phase, :name, :phase_name
22
64
  def_delegator :@goals, :away_goals, :away_goals
23
65
  def_delegator :@goals, :home_goals, :home_goals
66
+ def_delegator :@edition, :id, :edition_id
24
67
 
25
68
  # We can get all matches for a given edition (very heavy payload). Or we can just get the match
26
69
  # information on a single match.
27
- URLS = {
28
- list: '/GetMatchList_Edition',
29
- single: '/GetMatchInfo'
30
- }
70
+ register_endpoint 'GetMatchList_Edition'
71
+ # single: '/GetMatchInfo',
72
+ # live_list: '/GetMatchLiveList_Date'
73
+ #}
31
74
 
32
75
  def self.where(options = {})
33
76
  list = get_match_list(options)
@@ -43,9 +86,12 @@ module Infostrada
43
86
  def self.get_match_list(options)
44
87
  edition_id = options.delete(:edition_id)
45
88
  match_id = options.delete(:id)
89
+ date = options.delete(:date)
90
+ date = date.strftime('%Y%m%d') if date
46
91
 
47
92
  list = get!(URLS[:list], query: { editionid: edition_id.to_i }) if edition_id
48
93
  list = get!(URLS[:single], query: { matchid: match_id.to_i }) if match_id
94
+ list = get!(URLS[:live_list], query: { date: date }) if date
49
95
 
50
96
  list
51
97
  end
@@ -54,10 +100,11 @@ module Infostrada
54
100
  @id = hash['n_MatchID']
55
101
  @date = Formatter.format_date(hash['d_DateUTC'])
56
102
  @rescheduled = hash['b_RescheduledToBeResumed']
57
- @round = hash['round']
103
+ @round = hash['n_RoundNr']
58
104
 
59
105
  @aggregate_winner_id = hash['n_WinnerOnAggregateTeamID']
60
106
  @current_period_started_at = Formatter.format_date(hash['d_CurrentPeriodStartTime'])
107
+ @status_code = hash['n_MatchStatusCode']
61
108
  @status = hash['c_MatchStatus']
62
109
  @status_short = hash['c_MatchStatusShort']
63
110
  @leg = hash['n_Leg']
@@ -65,13 +112,13 @@ module Infostrada
65
112
 
66
113
  @stadium_id = hash['n_StadiumGeoID']
67
114
  @stadium_name = hash['c_Stadium']
115
+ @spectators = hash['n_Spectators']
68
116
 
69
117
  @live = hash['b_Live']
70
118
  @started = hash['b_Started']
71
119
  @finished = hash['b_Finished']
72
120
  @awarded = hash['b_Awarded']
73
121
 
74
- @live = hash['b_Live']
75
122
  @live_score = hash['b_DataEntryLiveScore']
76
123
  @live_goals = hash['b_DataEntryLiveGoal']
77
124
  @live_lineup = hash['b_DataEntryLiveLineup']
@@ -79,6 +126,8 @@ module Infostrada
79
126
  @lineup_provisional = hash['b_LineupProvisional']
80
127
  @lineup_official = hash['b_LineupOfficial']
81
128
 
129
+ @period = hash['n_PeriodSort']
130
+
82
131
  @referee = Referee.new(hash)
83
132
  @phase = Phase.new(hash)
84
133
 
@@ -87,11 +136,23 @@ module Infostrada
87
136
 
88
137
  @goals = Goals.new(hash)
89
138
 
90
- @competition = Competition.new(hash)
139
+ @edition = Edition.new(hash)
91
140
 
92
141
  self
93
142
  end
94
143
 
144
+ def live_score?
145
+ @live_score || false
146
+ end
147
+
148
+ def live_goals?
149
+ @live_goals || false
150
+ end
151
+
152
+ def live_lineup?
153
+ @live_lineup || false
154
+ end
155
+
95
156
  def live_event_list
96
157
  event_list = MatchEventList.where(match_id: self.id)
97
158
  end
@@ -1,5 +1,6 @@
1
1
  module Infostrada
2
2
  # Phase of a given edition.
3
+ #
3
4
  # The only thing that can be confusing is the current and currents boolean variables. Here's an
4
5
  # explanation from the Infostrada API website:
5
6
  #
@@ -30,6 +31,11 @@ module Infostrada
30
31
  phases
31
32
  end
32
33
 
34
+ # Get the classification table for this phase.
35
+ def table
36
+ Table.where(phase_id: id)
37
+ end
38
+
33
39
  def initialize(hash)
34
40
  @id = hash['n_PhaseID']
35
41
  @name = hash['c_Phase']
@@ -40,7 +46,7 @@ module Infostrada
40
46
  @phase2_name = hash['c_Phase2']
41
47
  @phase3_id = hash['n_Phase3ID']
42
48
  @phase3_name = hash['c_Phase3']
43
- @table = hash['b_Table']
49
+ @has_table = hash['b_Table']
44
50
  @current = hash['b_Current']
45
51
  @currents = hash['b_Currents']
46
52
 
@@ -53,5 +59,9 @@ module Infostrada
53
59
 
54
60
  self
55
61
  end
62
+
63
+ def has_table?
64
+ @has_table
65
+ end
56
66
  end
57
67
  end
@@ -3,6 +3,18 @@ module Infostrada
3
3
  attr_accessor :person_id, :name, :short_name, :birthdate, :function, :shirt_number
4
4
  attr_accessor :season_stats, :nation, :contract_starts_at, :contract_ends_at
5
5
 
6
+ # The function_type variable maps Infostradas n_FunctionType and can have one of these values:
7
+ #
8
+ # 1 = Keeper
9
+ # 2 = Defender
10
+ # 4 = Midfielder
11
+ # 8 = Forward
12
+ # 16 = Trainer
13
+ # 64 = Referee
14
+ # 128 = Linesman
15
+ # 1073741824 = 4th Official
16
+ attr_accessor :function_type
17
+
6
18
  def initialize(hash)
7
19
  @person_id = hash['n_PersonID']
8
20
  @name = hash['c_Person']
@@ -10,9 +22,10 @@ module Infostrada
10
22
 
11
23
  @birthdate = Formatter.format_date(hash['d_BirthDate'])
12
24
 
13
- # Function can be one of the folowing strings:
14
- # "Goalkeeper", "Defender", "Midfielder", "Forward" or "Coach"
25
+ # Function is one string like "Goalkeeper", "Defender", "Midfielder", "Forward", "Coach"...
26
+ # Infostrada doesn't document the function strings so you should rely on function_type
15
27
  @function = hash['c_Function']
28
+ @function_type = hash['n_FunctionType']
16
29
  @shirt_number = hash['n_ShirtNr']
17
30
 
18
31
  @contract_starts_at = Formatter.format_date(hash['d_ContractStartDate'])
@@ -0,0 +1,50 @@
1
+ module Infostrada
2
+ class Table < Infostrada::BaseRequest
3
+ include Enumerable
4
+
5
+ attr_accessor :edition_id, :phase_id, :entries
6
+
7
+ URL = '/GetTable'
8
+
9
+ def self.where(options = {})
10
+ phase_id = options.delete(:phase_id)
11
+
12
+ list = get!(URL, query: { phaseid: phase_id })
13
+
14
+ table = Table.new(phase_id, list)
15
+ end
16
+
17
+ def initialize(phase_id, table_list)
18
+ @phase_id = phase_id
19
+
20
+ @entries = []
21
+ table_list.each do |hash|
22
+ @edition_id ||= hash['n_EditionID']
23
+ @entries << TableEntry.new(hash)
24
+ end
25
+
26
+ self
27
+ end
28
+
29
+ def each(&block)
30
+ @entries.each(&block)
31
+ end
32
+ end
33
+
34
+ class TableEntry
35
+ attr_accessor :team_id, :rank, :matches, :matches_won, :matches_drawn
36
+ attr_accessor :matches_lost, :points, :goals_for, :goals_against
37
+
38
+ def initialize(hash)
39
+ @team_id = hash['n_TeamID']
40
+ @rank = hash['n_RankSort']
41
+ @matches = hash['n_Matches']
42
+ @matches_won = hash['n_MatchesWon']
43
+ @matches_drawn = hash['n_MatchesDrawn']
44
+ @matches_lost = hash['n_MatchesLost']
45
+ @points = hash['n_Points']
46
+ @goals_for = hash['n_GoalsFor']
47
+ @goals_against = hash['n_GoalsAgainst']
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module Infostrada
2
- VERSION = '0.0.9'
2
+ VERSION = '0.0.10'
3
3
  end
data/lib/infostrada.rb CHANGED
@@ -21,18 +21,21 @@ require 'infostrada/team_info'
21
21
 
22
22
  require 'infostrada/match'
23
23
  require 'infostrada/phase'
24
+ require 'infostrada/table'
24
25
 
25
26
  require 'infostrada/squad'
26
27
  require 'infostrada/player'
27
28
  require 'infostrada/person_info'
28
29
 
30
+ require 'infostrada/call_refresh'
31
+
29
32
  require 'infostrada/version'
30
33
 
31
34
  module Infostrada
32
35
  # The configuration of the API requests. This configuration is also shared by
33
36
  # <Infostrada::BaseRequest> where the HTTParty configuration is done.
34
37
  class Configuration
35
- attr_reader :user, :password, :timeout
38
+ attr_reader :user, :password, :timeout, :timezone
36
39
 
37
40
  def initialize
38
41
  BaseRequest.default_options[:basic_auth] ||= {}
@@ -58,7 +61,11 @@ module Infostrada
58
61
  end
59
62
 
60
63
  def self.configuration
61
- @configuration ||= Configuration.new
64
+ @configuration ||= Configuration.new
65
+ end
66
+
67
+ def self.endpoints
68
+ @endpoints ||= []
62
69
  end
63
70
 
64
71
  def self.configure
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infostrada
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Otero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-02 00:00:00.000000000 Z
11
+ date: 2014-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: tzinfo
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
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: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description: Infostrada Football API wrapper.
112
140
  email:
113
141
  - oterosantos@gmail.com
@@ -121,13 +149,16 @@ files:
121
149
  - README.md
122
150
  - bin/strada
123
151
  - infostrada.gemspec
152
+ - infostrada.pstore
124
153
  - lib/infostrada.rb
125
154
  - lib/infostrada/base_request.rb
155
+ - lib/infostrada/call_refresh.rb
126
156
  - lib/infostrada/commands.rb
127
157
  - lib/infostrada/competition.rb
128
158
  - lib/infostrada/core_ext/string.rb
129
159
  - lib/infostrada/edition.rb
130
160
  - lib/infostrada/edition_request.rb
161
+ - lib/infostrada/endpoint_manager.rb
131
162
  - lib/infostrada/errors.rb
132
163
  - lib/infostrada/formatter.rb
133
164
  - lib/infostrada/match.rb
@@ -139,6 +170,7 @@ files:
139
170
  - lib/infostrada/player.rb
140
171
  - lib/infostrada/referee.rb
141
172
  - lib/infostrada/squad.rb
173
+ - lib/infostrada/table.rb
142
174
  - lib/infostrada/team.rb
143
175
  - lib/infostrada/team_info.rb
144
176
  - lib/infostrada/team_request.rb