Class: RoviAPI::Endpoints::Music
Instance Attribute Summary
#service
Instance Method Summary
collapse
#initialize
Instance Method Details
#album(query, params = {}) ⇒ Object
29
30
31
|
# File 'lib/rovi_api/endpoints/music.rb', line 29
def album(query, params={})
find(:album, query, params.merge(entitytype: "album"))
end
|
#artist(query, params = {}) ⇒ Object
33
34
35
|
# File 'lib/rovi_api/endpoints/music.rb', line 33
def artist(query, params={})
find(:name, query, params.merge(entitytype: "artist"))
end
|
#find(member, query, params = {}) ⇒ Object
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/rovi_api/endpoints/music.rb', line 10
def find(member, query, params={})
results = search(params.merge(query: query)).map(&member)
return [] if results.empty?
match_key = results[0].has_key?("title") ? :title : :name
matcher = FuzzyMatch.new(results, read: match_key, must_match_at_least_one_word: true)
result = matcher.find(query)
if result
results.unshift(results.delete(result))
else
[]
end
end
|
#get(method, params = {}) ⇒ Object
6
7
8
|
# File 'lib/rovi_api/endpoints/music.rb', line 6
def get(method, params={})
@service.get(:music, method, params)
end
|
#search(params = {}) ⇒ Object
25
26
27
|
# File 'lib/rovi_api/endpoints/music.rb', line 25
def search(params={})
get(:search, params).search_response.results || []
end
|
#song(query, params = {}) ⇒ Object
37
38
39
|
# File 'lib/rovi_api/endpoints/music.rb', line 37
def song(query, params={})
find(:song, query, params.merge(entitytype: "song"))
end
|