infostrada 0.1.0 → 0.1.1
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/.gitignore +2 -0
- data/Gemfile.lock +8 -10
- data/infostrada.gemspec +1 -1
- data/lib/infostrada/endpoints_poller.rb +32 -5
- data/lib/infostrada/team_info.rb +14 -12
- data/lib/infostrada/version.rb +2 -2
- metadata +6 -6
- data/infostrada.pstore +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0400ee91f7d81abbcb4e4497725a576da61c80fe
|
4
|
+
data.tar.gz: a1365e64e78f37720d3d2e3342e50c17d5cba1f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbd07f6433f35d2127380ef0146388add157c878c4e3b893e1f0feb13f64eac037832b42eaf72198f2da5ef17d7621dd8a5da1a6b114f6e09c1f0ba416c07adc
|
7
|
+
data.tar.gz: c18b1bf31061cf68423209d9845af9e54825054adc935899d3b9b7c860e7755d7d963188a6acd80420ccfd7f207c5c38c26a826159ef9d63e8a09b8214a8aa23
|
data/.gitignore
ADDED
data/Gemfile.lock
CHANGED
@@ -3,9 +3,9 @@ PATH
|
|
3
3
|
specs:
|
4
4
|
infostrada (0.1.0)
|
5
5
|
colored (~> 1.2)
|
6
|
-
eventmachine (~> 1.0.3)
|
7
|
-
httparty (~> 0.13.0)
|
8
|
-
tzinfo (~>
|
6
|
+
eventmachine (~> 1.0, >= 1.0.3)
|
7
|
+
httparty (~> 0.13, >= 0.13.0)
|
8
|
+
tzinfo (~> 0.3.37)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
@@ -49,9 +49,7 @@ GEM
|
|
49
49
|
sexp_processor (~> 4.1)
|
50
50
|
sexp_processor (4.4.3)
|
51
51
|
slop (3.5.0)
|
52
|
-
|
53
|
-
tzinfo (1.1.0)
|
54
|
-
thread_safe (~> 0.1)
|
52
|
+
tzinfo (0.3.39)
|
55
53
|
|
56
54
|
PLATFORMS
|
57
55
|
ruby
|
@@ -59,7 +57,7 @@ PLATFORMS
|
|
59
57
|
DEPENDENCIES
|
60
58
|
bundler (~> 1.5)
|
61
59
|
infostrada!
|
62
|
-
pry (~> 0.9.12)
|
63
|
-
rake (~> 10.2.2)
|
64
|
-
reek (~> 1.3.7)
|
65
|
-
rubocop (~> 0.20.1)
|
60
|
+
pry (~> 0.9, >= 0.9.12)
|
61
|
+
rake (~> 10.2, >= 10.2.2)
|
62
|
+
reek (~> 1.3, >= 1.3.7)
|
63
|
+
rubocop (~> 0.20, >= 0.20.1)
|
data/infostrada.gemspec
CHANGED
@@ -26,6 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'httparty', '~> 0.13', '>= 0.13.0'
|
28
28
|
spec.add_dependency 'colored', '~> 1.2'
|
29
|
-
spec.add_dependency 'tzinfo', '~>
|
29
|
+
spec.add_dependency 'tzinfo', '~> 0.3', '>= 0.3.37'
|
30
30
|
spec.add_dependency 'eventmachine', '~> 1.0', '>= 1.0.3'
|
31
31
|
end
|
@@ -1,29 +1,54 @@
|
|
1
1
|
require 'eventmachine'
|
2
2
|
|
3
3
|
module Infostrada
|
4
|
+
# This is the base class that you should subclass to make a new endpoints poller. You should also
|
5
|
+
# call the EndpointsPoller.set_frequency and EndpointsPoller.listen_to and define a
|
6
|
+
# process_endpoints(endpoints) that will be called when there are updates on the list of endpoints
|
7
|
+
# defined via listen_to. EndpointsPoller will use CallRefresh behind the scenes to fetch the
|
8
|
+
# updated endpoints.
|
9
|
+
#
|
10
|
+
# Example of a minimal poller:
|
11
|
+
#
|
12
|
+
# module Infostrada
|
13
|
+
# class GamesPoller < EndpointsPoller
|
14
|
+
# # What's the request frequency, in seconds.
|
15
|
+
# set_frequency 15
|
16
|
+
#
|
17
|
+
# # What are the endpoints that we're interested in?
|
18
|
+
# listen_to %w(GetMatchActionList_All)
|
19
|
+
#
|
20
|
+
# def process_endpoints(endpoints)
|
21
|
+
# end
|
22
|
+
# end
|
23
|
+
# end
|
4
24
|
class EndpointsPoller
|
5
25
|
class << self
|
6
26
|
attr_accessor :polling_frequency, :endpoints
|
7
27
|
|
28
|
+
# Called on the sublcasses to set what's the interval (in seconds) for the requests.
|
8
29
|
def set_frequency(frequency)
|
9
30
|
@polling_frequency = frequency
|
10
31
|
end
|
11
32
|
|
33
|
+
# Also called on the cubclasses to set what are the endpoints that we will parse.
|
12
34
|
def listen_to(endpoints)
|
13
35
|
@endpoints = endpoints
|
14
36
|
end
|
15
37
|
end
|
16
38
|
|
39
|
+
# Main cycle that calls EM.run and will then use the EndpointsPoller#process_endpoints method
|
40
|
+
# to process the updated endpoints.
|
17
41
|
def run
|
18
|
-
EM.run
|
42
|
+
EM.run do
|
19
43
|
EM.add_periodic_timer(self.class.polling_frequency) do
|
20
44
|
puts "[#{Time.now}] Refresh since #{CallRefresh.last_update}"
|
21
45
|
|
22
|
-
endpoints = EndpointChecker.new
|
46
|
+
endpoints = EndpointChecker.new(self.class.endpoints)
|
47
|
+
|
23
48
|
endpoints.callback { |endpoints| process_endpoints(endpoints) }
|
24
49
|
endpoints.errback { |error| puts "ERROR: #{error}" }
|
25
50
|
end
|
26
|
-
|
51
|
+
end
|
27
52
|
end
|
28
53
|
|
29
54
|
def process_endpoints(endpoints)
|
@@ -31,13 +56,15 @@ module Infostrada
|
|
31
56
|
end
|
32
57
|
end
|
33
58
|
|
59
|
+
# EndpointChecker is an helper class that will call CallRefresh.get_latest to check which updates
|
60
|
+
# were made since the last request. It will then call .succeed or .fail asynchronously.
|
34
61
|
class EndpointChecker
|
35
62
|
include EM::Deferrable
|
36
63
|
|
37
|
-
def initialize
|
64
|
+
def initialize(endpoints_whitelist)
|
38
65
|
begin
|
39
66
|
updated = Infostrada::CallRefresh.get_latest
|
40
|
-
updated = updated.select { |endpoint|
|
67
|
+
updated = updated.select { |endpoint| endpoints_whitelist.include?(endpoint.method) }
|
41
68
|
|
42
69
|
self.succeed(updated)
|
43
70
|
rescue => e
|
data/lib/infostrada/team_info.rb
CHANGED
@@ -4,7 +4,7 @@ module Infostrada
|
|
4
4
|
class TeamInfo < Infostrada::BaseRequest
|
5
5
|
attr_accessor :official_name, :official_short_name, :public_name, :public_short_name, :nickname
|
6
6
|
attr_accessor :foundation_date, :official_stadium_name, :stadium_name, :stadium_capacity
|
7
|
-
attr_accessor :url, :city
|
7
|
+
attr_accessor :url, :city, :country, :country_short_name
|
8
8
|
|
9
9
|
URL = '/GetTeamInfo'
|
10
10
|
|
@@ -15,17 +15,19 @@ module Infostrada
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def initialize(hash)
|
18
|
-
@official_name =
|
19
|
-
@official_short_name =
|
20
|
-
@public_name =
|
21
|
-
@public_short_name =
|
22
|
-
@nickname =
|
23
|
-
@foundation_date =
|
24
|
-
@official_stadium_name =
|
25
|
-
@stadium_name =
|
26
|
-
@stadium_capacity =
|
27
|
-
@url =
|
28
|
-
@city =
|
18
|
+
@official_name = hash['c_OfficialName']
|
19
|
+
@official_short_name = hash['c_OfficialNameSort']
|
20
|
+
@public_name = hash['c_PublicName']
|
21
|
+
@public_short_name = hash['c_PublicNameSort']
|
22
|
+
@nickname = hash['c_Nickname']
|
23
|
+
@foundation_date = hash['d_FoundationDate']
|
24
|
+
@official_stadium_name = hash['c_StadiumOfficialName']
|
25
|
+
@stadium_name = hash['c_Stadium']
|
26
|
+
@stadium_capacity = hash['n_StadiumCapacity']
|
27
|
+
@url = hash['c_URL']
|
28
|
+
@city = hash['c_City']
|
29
|
+
@country = hash['c_Country']
|
30
|
+
@country_short_name = hash['c_CountryShort']
|
29
31
|
|
30
32
|
self
|
31
33
|
end
|
data/lib/infostrada/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Infostrada
|
2
|
-
VERSION = '0.1.
|
3
|
-
end
|
2
|
+
VERSION = '0.1.1'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infostrada
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Otero
|
@@ -144,20 +144,20 @@ dependencies:
|
|
144
144
|
requirements:
|
145
145
|
- - "~>"
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: '
|
147
|
+
version: '0.3'
|
148
148
|
- - ">="
|
149
149
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
150
|
+
version: 0.3.37
|
151
151
|
type: :runtime
|
152
152
|
prerelease: false
|
153
153
|
version_requirements: !ruby/object:Gem::Requirement
|
154
154
|
requirements:
|
155
155
|
- - "~>"
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
version: '
|
157
|
+
version: '0.3'
|
158
158
|
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
160
|
+
version: 0.3.37
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: eventmachine
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
@@ -186,12 +186,12 @@ executables:
|
|
186
186
|
extensions: []
|
187
187
|
extra_rdoc_files: []
|
188
188
|
files:
|
189
|
+
- ".gitignore"
|
189
190
|
- Gemfile
|
190
191
|
- Gemfile.lock
|
191
192
|
- README.md
|
192
193
|
- bin/strada
|
193
194
|
- infostrada.gemspec
|
194
|
-
- infostrada.pstore
|
195
195
|
- lib/infostrada.rb
|
196
196
|
- lib/infostrada/base_request.rb
|
197
197
|
- lib/infostrada/call_refresh.rb
|
data/infostrada.pstore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{:last_updateIu: Time
|