infostrada 0.0.10 → 0.1.0

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: ba919a27af5c409be645ab783d4e798541c0e530
4
- data.tar.gz: 53e9434a6e1227844068e20916d658d2748ed1d2
3
+ metadata.gz: 056a9814b1582d72d2e88e5dc3aa2c9bef44350c
4
+ data.tar.gz: 7395f9bc6a499fee10d1eab7c41cb35b4ba1fb53
5
5
  SHA512:
6
- metadata.gz: f328878a653683b9d4bfcaae26fd6e5807a765d20e8e5663dc91e02937c12288adb505fc4a11cc744bdf966ed49df96fc4101e7d37269775ff7a2d7da370e836
7
- data.tar.gz: effc38fcb37763919235a9125114e2c9f669cd9b8a5b5b8486affd7a5c199e3be73ad5996c9e19817ff9026ad8ff5e36ba7b68bf50062cab488ab4ca62cb6ea5
6
+ metadata.gz: c2734d1c0810f909cbcea929cdf5f58c3e6c9bbb6a1969371346913b57ae746273d5ff0d4dddcc06334b3936ab8eedc03ce0d3f1bd2892fb4e6b9479f6e13cfc
7
+ data.tar.gz: 0f0db14a2daeb806e6ec73fbed8d634178f28d76af9dde9c8c0ce31a0567ec8daffe10bf1ee535f5171fcb9edc646f974791748b9efdded54f9b668d2f5db1f9
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- infostrada (0.0.9)
5
- colored
6
- httparty (~> 0.12)
7
- rb-readline
8
- tzinfo
4
+ infostrada (0.1.0)
5
+ colored (~> 1.2)
6
+ eventmachine (~> 1.0.3)
7
+ httparty (~> 0.13.0)
8
+ tzinfo (~> 1.1.0)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -13,13 +13,14 @@ GEM
13
13
  ast (1.1.0)
14
14
  coderay (1.1.0)
15
15
  colored (1.2)
16
+ eventmachine (1.0.3)
16
17
  httparty (0.13.0)
17
18
  json (~> 1.8)
18
19
  multi_xml (>= 0.5.2)
19
20
  json (1.8.1)
20
21
  method_source (0.8.2)
21
22
  multi_xml (0.5.5)
22
- parser (2.1.4)
23
+ parser (2.1.7)
23
24
  ast (~> 1.1)
24
25
  slop (~> 3.4, >= 3.4.5)
25
26
  powerpack (0.0.9)
@@ -28,25 +29,29 @@ GEM
28
29
  method_source (~> 0.8)
29
30
  slop (~> 3.4)
30
31
  rainbow (2.0.0)
31
- rake (10.1.1)
32
- rb-readline (0.5.1)
33
- reek (1.3.6)
34
- ruby2ruby (~> 2.0.7)
35
- ruby_parser (~> 3.2)
32
+ rake (10.2.2)
33
+ reek (1.3.7)
34
+ rainbow
35
+ ruby2ruby (~> 2.0.8)
36
+ ruby_parser (~> 3.3)
36
37
  sexp_processor
37
- rubocop (0.18.1)
38
+ rubocop (0.20.1)
38
39
  json (>= 1.7.7, < 2)
39
- parser (~> 2.1.3)
40
+ parser (~> 2.1.7)
40
41
  powerpack (~> 0.0.6)
41
42
  rainbow (>= 1.99.1, < 3.0)
42
- ruby2ruby (2.0.7)
43
+ ruby-progressbar (~> 1.4)
44
+ ruby-progressbar (1.4.2)
45
+ ruby2ruby (2.0.8)
43
46
  ruby_parser (~> 3.1)
44
47
  sexp_processor (~> 4.0)
45
- ruby_parser (3.3.0)
48
+ ruby_parser (3.5.0)
46
49
  sexp_processor (~> 4.1)
47
- sexp_processor (4.4.1)
48
- slop (3.4.7)
49
- tzinfo (0.3.39)
50
+ sexp_processor (4.4.3)
51
+ slop (3.5.0)
52
+ thread_safe (0.3.3)
53
+ tzinfo (1.1.0)
54
+ thread_safe (~> 0.1)
50
55
 
51
56
  PLATFORMS
52
57
  ruby
@@ -54,7 +59,7 @@ PLATFORMS
54
59
  DEPENDENCIES
55
60
  bundler (~> 1.5)
56
61
  infostrada!
57
- pry
58
- rake
59
- reek
60
- rubocop
62
+ pry (~> 0.9.12)
63
+ rake (~> 10.2.2)
64
+ reek (~> 1.3.7)
65
+ rubocop (~> 0.20.1)
data/infostrada.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Ricardo Otero']
10
10
  spec.email = ['oterosantos@gmail.com']
11
11
  spec.summary = 'Infostrada Football API wrapper.'
12
- spec.description = 'Infostrada Football API wrapper.'
13
- spec.homepage = ''
12
+ spec.description = 'Wrapper for the Infostrada Football API using httparty.'
13
+ spec.homepage = 'https://github.com/rikas/infostrada-api'
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.5'
22
- spec.add_development_dependency 'rake'
23
- spec.add_development_dependency 'reek'
24
- spec.add_development_dependency 'rubocop'
22
+ spec.add_development_dependency 'rake', '~> 10.2', '>= 10.2.2'
23
+ spec.add_development_dependency 'reek', '~> 1.3', '>= 1.3.7'
24
+ spec.add_development_dependency 'rubocop', '~> 0.20', '>= 0.20.1'
25
+ spec.add_development_dependency 'pry', '~> 0.9', '>= 0.9.12'
25
26
 
26
- spec.add_dependency 'httparty', '~> 0.12'
27
- spec.add_dependency 'colored'
28
- spec.add_dependency 'rb-readline'
29
- spec.add_dependency 'tzinfo'
30
- spec.add_development_dependency 'pry'
27
+ spec.add_dependency 'httparty', '~> 0.13', '>= 0.13.0'
28
+ spec.add_dependency 'colored', '~> 1.2'
29
+ spec.add_dependency 'tzinfo', '~> 1.1', '>= 1.1.0'
30
+ spec.add_dependency 'eventmachine', '~> 1.0', '>= 1.0.3'
31
31
  end
@@ -1,5 +1,3 @@
1
- require 'infostrada/endpoint_manager'
2
-
3
1
  module Infostrada
4
2
  # This is the class that every class making API requests must descend from. It includes HTTParty
5
3
  # to easily support every type of HTTP request. The basic_auth is set up from the
@@ -47,16 +45,6 @@ module Infostrada
47
45
  #
48
46
  disable_rails_query_string_format
49
47
 
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
-
60
48
  # Used with Timeout::Error rescue so we can keep trying to fetch the information after timeout.
61
49
  def self.get!(path, options = {}, &block)
62
50
  attempts = 1
@@ -0,0 +1,48 @@
1
+ require 'eventmachine'
2
+
3
+ module Infostrada
4
+ class EndpointsPoller
5
+ class << self
6
+ attr_accessor :polling_frequency, :endpoints
7
+
8
+ def set_frequency(frequency)
9
+ @polling_frequency = frequency
10
+ end
11
+
12
+ def listen_to(endpoints)
13
+ @endpoints = endpoints
14
+ end
15
+ end
16
+
17
+ def run
18
+ EM.run {
19
+ EM.add_periodic_timer(self.class.polling_frequency) do
20
+ puts "[#{Time.now}] Refresh since #{CallRefresh.last_update}"
21
+
22
+ endpoints = EndpointChecker.new
23
+ endpoints.callback { |endpoints| process_endpoints(endpoints) }
24
+ endpoints.errback { |error| puts "ERROR: #{error}" }
25
+ end
26
+ }
27
+ end
28
+
29
+ def process_endpoints(endpoints)
30
+ raise InfostradaError, 'You have to override process_endpoints method!'
31
+ end
32
+ end
33
+
34
+ class EndpointChecker
35
+ include EM::Deferrable
36
+
37
+ def initialize
38
+ begin
39
+ updated = Infostrada::CallRefresh.get_latest
40
+ updated = updated.select { |endpoint| self.class.endpoints.include?(endpoint.method) }
41
+
42
+ self.succeed(updated)
43
+ rescue => e
44
+ self.fail(e.message)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -67,10 +67,11 @@ module Infostrada
67
67
 
68
68
  # We can get all matches for a given edition (very heavy payload). Or we can just get the match
69
69
  # information on a single match.
70
- register_endpoint 'GetMatchList_Edition'
71
- # single: '/GetMatchInfo',
72
- # live_list: '/GetMatchLiveList_Date'
73
- #}
70
+ URLS = {
71
+ list: '/GetMatchList_Edition',
72
+ single: '/GetMatchInfo',
73
+ live_list: '/GetMatchLiveList_Date'
74
+ }
74
75
 
75
76
  def self.where(options = {})
76
77
  list = get_match_list(options)
@@ -1,3 +1,3 @@
1
1
  module Infostrada
2
- VERSION = '0.0.10'
2
+ VERSION = '0.1.0'
3
3
  end
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.10
4
+ version: 0.1.0
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-04 00:00:00.000000000 Z
11
+ date: 2014-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,115 +28,157 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.2'
31
34
  - - ">="
32
35
  - !ruby/object:Gem::Version
33
- version: '0'
36
+ version: 10.2.2
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '10.2'
38
44
  - - ">="
39
45
  - !ruby/object:Gem::Version
40
- version: '0'
46
+ version: 10.2.2
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: reek
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.3'
45
54
  - - ">="
46
55
  - !ruby/object:Gem::Version
47
- version: '0'
56
+ version: 1.3.7
48
57
  type: :development
49
58
  prerelease: false
50
59
  version_requirements: !ruby/object:Gem::Requirement
51
60
  requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.3'
52
64
  - - ">="
53
65
  - !ruby/object:Gem::Version
54
- version: '0'
66
+ version: 1.3.7
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: rubocop
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.20'
59
74
  - - ">="
60
75
  - !ruby/object:Gem::Version
61
- version: '0'
76
+ version: 0.20.1
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.20'
66
84
  - - ">="
67
85
  - !ruby/object:Gem::Version
68
- version: '0'
86
+ version: 0.20.1
69
87
  - !ruby/object:Gem::Dependency
70
- name: httparty
88
+ name: pry
71
89
  requirement: !ruby/object:Gem::Requirement
72
90
  requirements:
73
91
  - - "~>"
74
92
  - !ruby/object:Gem::Version
75
- version: '0.12'
76
- type: :runtime
93
+ version: '0.9'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.9.12
97
+ type: :development
77
98
  prerelease: false
78
99
  version_requirements: !ruby/object:Gem::Requirement
79
100
  requirements:
80
101
  - - "~>"
81
102
  - !ruby/object:Gem::Version
82
- version: '0.12'
103
+ version: '0.9'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.9.12
83
107
  - !ruby/object:Gem::Dependency
84
- name: colored
108
+ name: httparty
85
109
  requirement: !ruby/object:Gem::Requirement
86
110
  requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '0.13'
87
114
  - - ">="
88
115
  - !ruby/object:Gem::Version
89
- version: '0'
116
+ version: 0.13.0
90
117
  type: :runtime
91
118
  prerelease: false
92
119
  version_requirements: !ruby/object:Gem::Requirement
93
120
  requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.13'
94
124
  - - ">="
95
125
  - !ruby/object:Gem::Version
96
- version: '0'
126
+ version: 0.13.0
97
127
  - !ruby/object:Gem::Dependency
98
- name: rb-readline
128
+ name: colored
99
129
  requirement: !ruby/object:Gem::Requirement
100
130
  requirements:
101
- - - ">="
131
+ - - "~>"
102
132
  - !ruby/object:Gem::Version
103
- version: '0'
133
+ version: '1.2'
104
134
  type: :runtime
105
135
  prerelease: false
106
136
  version_requirements: !ruby/object:Gem::Requirement
107
137
  requirements:
108
- - - ">="
138
+ - - "~>"
109
139
  - !ruby/object:Gem::Version
110
- version: '0'
140
+ version: '1.2'
111
141
  - !ruby/object:Gem::Dependency
112
142
  name: tzinfo
113
143
  requirement: !ruby/object:Gem::Requirement
114
144
  requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '1.1'
115
148
  - - ">="
116
149
  - !ruby/object:Gem::Version
117
- version: '0'
150
+ version: 1.1.0
118
151
  type: :runtime
119
152
  prerelease: false
120
153
  version_requirements: !ruby/object:Gem::Requirement
121
154
  requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '1.1'
122
158
  - - ">="
123
159
  - !ruby/object:Gem::Version
124
- version: '0'
160
+ version: 1.1.0
125
161
  - !ruby/object:Gem::Dependency
126
- name: pry
162
+ name: eventmachine
127
163
  requirement: !ruby/object:Gem::Requirement
128
164
  requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '1.0'
129
168
  - - ">="
130
169
  - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
170
+ version: 1.0.3
171
+ type: :runtime
133
172
  prerelease: false
134
173
  version_requirements: !ruby/object:Gem::Requirement
135
174
  requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '1.0'
136
178
  - - ">="
137
179
  - !ruby/object:Gem::Version
138
- version: '0'
139
- description: Infostrada Football API wrapper.
180
+ version: 1.0.3
181
+ description: Wrapper for the Infostrada Football API using httparty.
140
182
  email:
141
183
  - oterosantos@gmail.com
142
184
  executables:
@@ -158,7 +200,7 @@ files:
158
200
  - lib/infostrada/core_ext/string.rb
159
201
  - lib/infostrada/edition.rb
160
202
  - lib/infostrada/edition_request.rb
161
- - lib/infostrada/endpoint_manager.rb
203
+ - lib/infostrada/endpoints_poller.rb
162
204
  - lib/infostrada/errors.rb
163
205
  - lib/infostrada/formatter.rb
164
206
  - lib/infostrada/match.rb
@@ -175,7 +217,7 @@ files:
175
217
  - lib/infostrada/team_info.rb
176
218
  - lib/infostrada/team_request.rb
177
219
  - lib/infostrada/version.rb
178
- homepage: ''
220
+ homepage: https://github.com/rikas/infostrada-api
179
221
  licenses:
180
222
  - MIT
181
223
  metadata: {}
@@ -1,12 +0,0 @@
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