infostrada 0.0.9 → 0.0.10

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 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