Class: Jumbotron::Adapters::Base
- Inherits:
-
Object
- Object
- Jumbotron::Adapters::Base
show all
- Extended by:
- LineAcquisition
- Defined in:
- app/adapters/jumbotron/adapters/base.rb
Class Method Summary
collapse
acquire_line_odds, line_acquisition_scope_for, translate_line_odds
Class Method Details
.acquisition_scope_for(_game) ⇒ Object
118
119
120
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 118
def acquisition_scope_for(_game)
raise ConfigurationError, "#{name} must implement acquisition_scope_for"
end
|
.adapter_id(value = nil) ⇒ Object
17
18
19
20
21
22
23
24
25
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 17
def adapter_id(value = nil)
if value.nil?
return @adapter_id if defined?(@adapter_id) && @adapter_id
raise ConfigurationError, "#{name} must declare adapter_id"
end
@adapter_id = value.to_s
end
|
.discoveries ⇒ Object
94
95
96
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 94
def discoveries
@discoveries ||= {}
end
|
.discovery(id, endpoint: nil) ⇒ Object
83
84
85
86
87
88
89
90
91
92
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 83
def discovery(id, endpoint: nil)
key = id.to_sym
if endpoint.nil?
return discoveries.fetch(key) do
raise UnknownDiscoveryError, "#{name} has no discovery :#{key}"
end
end
discoveries[key] = DiscoveryDefinition.new(id: key, endpoint: endpoint.to_sym)
end
|
.discovery_ids ⇒ Object
98
99
100
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 98
def discovery_ids
discoveries.keys
end
|
.endpoint(name, resource:, transformer:) ⇒ Object
45
46
47
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 45
def endpoint(name, resource:, transformer:)
endpoints[name.to_sym] = { resource: resource, transformer: transformer }
end
|
.endpoints ⇒ Object
49
50
51
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 49
def endpoints
@endpoints ||= {}
end
|
.league(value = nil) ⇒ Object
39
40
41
42
43
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 39
def league(value = nil)
return @league || raise(ConfigurationError, "#{name} must declare league") if value.nil?
@league = value.to_s
end
|
.operation(name) ⇒ Object
102
103
104
105
106
107
108
109
110
111
112
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 102
def operation(name)
Registry.assert_unique_keys!
definition = endpoints[name.to_sym]
raise ConfigurationError, "#{self.name} has no endpoint :#{name}" unless definition
Operation.new(
adapter: self,
resource: definition[:resource],
transformer: definition[:transformer]
)
end
|
.policies ⇒ Object
75
76
77
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 75
def policies
@policies ||= {}
end
|
.policy(id, type: nil, cadence: nil, eligible: nil) ⇒ Object
Declare: policy :id, type:, cadence: nil, eligible: nil
Lookup: policy(:id)
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 55
def policy(id, type: nil, cadence: nil, eligible: nil)
key = id.to_sym
declaring = !type.nil? || !cadence.nil? || !eligible.nil?
unless declaring
return policies.fetch(key) do
raise UnknownPolicyError, "#{name} has no policy :#{key}"
end
end
raise ConfigurationError, "#{name} policy :#{key} must declare type" if type.nil?
policies[key] = PolicyDefinition.new(
id: key,
type: type.to_sym,
cadence: cadence,
eligible: eligible
)
end
|
.policy_ids ⇒ Object
79
80
81
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 79
def policy_ids
policies.keys
end
|
.provider(value = nil) ⇒ Object
27
28
29
30
31
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 27
def provider(value = nil)
return @provider || raise(ConfigurationError, "#{name} must declare provider") if value.nil?
@provider = value.to_s.downcase
end
|
.provider_cooling_down? ⇒ Boolean
126
127
128
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 126
def provider_cooling_down?
false
end
|
.provider_retry_after ⇒ Object
130
131
132
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 130
def provider_retry_after
0
end
|
.register! ⇒ Object
9
10
11
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 9
def register!
Registry.register(self)
end
|
.registered? ⇒ Boolean
13
14
15
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 13
def registered?
Registry.registered?(self)
end
|
.registry_key ⇒ Object
114
115
116
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 114
def registry_key
[provider, sport, league]
end
|
.scopes_for_discovery(_definition) ⇒ Object
122
123
124
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 122
def scopes_for_discovery(_definition)
raise ConfigurationError, "#{name} must implement scopes_for_discovery"
end
|
.sport(value = nil) ⇒ Object
33
34
35
36
37
|
# File 'app/adapters/jumbotron/adapters/base.rb', line 33
def sport(value = nil)
return @sport || raise(ConfigurationError, "#{name} must declare sport") if value.nil?
@sport = value.to_s
end
|