Class: AudioAddict::Radio
Constant Summary
collapse
- NETWORKS =
{
di: 'Digitally Imported',
rockradio: 'Rock Radio',
radiotunes: 'Radio Tunes',
jazzradio: 'Jazz Radio',
classicalradio: 'Classical Radio',
zenradio: 'Zen Radio',
}
- DOMAINS =
{
di: 'di.fm',
rockradio: 'rockradio.com',
radiotunes: 'radiotunes.com',
jazzradio: 'jazzradio.com',
classicalradio: 'classicalradio.com',
zenradio: 'zenradio.com',
}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#inspect
Methods included from Cache
#cache, #cache_dir, #cache_dir!, #cache_life, #cache_life!
Constructor Details
#initialize(network) ⇒ Radio
Returns a new instance of Radio.
39
40
41
|
# File 'lib/audio_addict/radio.rb', line 39
def initialize(network)
@network = network.to_sym
end
|
Instance Attribute Details
#network ⇒ Object
Returns the value of attribute network.
6
7
8
|
# File 'lib/audio_addict/radio.rb', line 6
def network
@network
end
|
Class Method Details
.networks(search = nil) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/audio_addict/radio.rb', line 26
def self.networks(search = nil)
if search
result = NETWORKS.select { |k, v| "#{k} #{v}".downcase.include? search.downcase }
result.any? ? result : NETWORKS
else
NETWORKS
end
end
|
.valid_network?(network) ⇒ Boolean
35
36
37
|
# File 'lib/audio_addict/radio.rb', line 35
def self.valid_network?(network)
NETWORKS.has_key?(network.to_sym)
end
|
Instance Method Details
#[](channel_key) ⇒ Object
75
76
77
|
# File 'lib/audio_addict/radio.rb', line 75
def [](channel_key)
channels[channel_key]
end
|
#api ⇒ Object
83
84
85
|
# File 'lib/audio_addict/radio.rb', line 83
def api
@api ||= API.new network
end
|
#channels ⇒ Object
60
61
62
|
# File 'lib/audio_addict/radio.rb', line 60
def channels
@channels ||= channels!
end
|
#domain ⇒ Object
51
52
53
|
# File 'lib/audio_addict/radio.rb', line 51
def domain
DOMAINS[network]
end
|
#inspectable ⇒ Object
43
44
45
|
# File 'lib/audio_addict/radio.rb', line 43
def inspectable
[:network]
end
|
#name ⇒ Object
47
48
49
|
# File 'lib/audio_addict/radio.rb', line 47
def name
NETWORKS[network]
end
|
#search(query) ⇒ Object
64
65
66
67
68
|
# File 'lib/audio_addict/radio.rb', line 64
def search(query)
channels.select do |key, channel|
"#{key} #{channel.name.downcase}".include? query.downcase
end
end
|
#search_by_id(ids) ⇒ Object
70
71
72
73
|
# File 'lib/audio_addict/radio.rb', line 70
def search_by_id(ids)
ids = [ids] unless ids.is_a? Array
channels.select { |_key, channel| ids.include? channel.id }
end
|
#url_template ⇒ Object
55
56
57
58
|
# File 'lib/audio_addict/radio.rb', line 55
def url_template
channel_path = network == :zenradio ? 'zr%{channel_key}' : '%{channel_key}'
"http://prem2.#{domain}:80/#{channel_path}?%{listen_key}"
end
|
#valid_channel?(channel) ⇒ Boolean
79
80
81
|
# File 'lib/audio_addict/radio.rb', line 79
def valid_channel?(channel)
channels.has_key?(channel)
end
|