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
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.keys.include? 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.to_sym]
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.to_sym]
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}_aac" : "%{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.keys.include? channel
end
|