Module: RapGenius
- Extended by:
- Client
- Defined in:
- lib/rapgenius.rb,
lib/rapgenius/line.rb,
lib/rapgenius/song.rb,
lib/rapgenius/media.rb,
lib/rapgenius/artist.rb,
lib/rapgenius/client.rb,
lib/rapgenius/version.rb,
lib/rapgenius/exceptions.rb
Defined Under Namespace
Modules: Client
Classes: Artist, AuthenticationError, Error, Line, Media, MissingAccessTokenError, NotFoundError, Song
Constant Summary
collapse
- VERSION =
"1.1.2"
Constants included
from Client
Client::BASE_URL, Client::DOM_TEXT_FORMAT, Client::PLAIN_TEXT_FORMAT
Instance Attribute Summary
Attributes included from Client
#text_format
Class Method Summary
collapse
Methods included from Client
document, fetch, url=
Class Method Details
.search(query, options = {}) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/rapgenius.rb', line 16
def self.search(query, options = {})
response = fetch(build_api_url("/search"), { q: query }.merge(options))
response["response"]["hits"].map do |song|
result = song["result"]
Song.new(
id: result["id"],
name: result["name"],
artist: Artist.new(
id: result["primary_artist"]["id"],
name: result["primary_artist"]["name"],
type: :primary
),
title: result["title"]
)
end
end
|
.search_by_artist(query) ⇒ Object
35
36
37
|
# File 'lib/rapgenius.rb', line 35
def self.search_by_artist(query)
self.search(query, field: "primary_artist_name")
end
|
.search_by_lyrics(query) ⇒ Object
43
44
45
|
# File 'lib/rapgenius.rb', line 43
def self.search_by_lyrics(query)
self.search(query, field: "lyrics")
end
|
.search_by_title(query) ⇒ Object
39
40
41
|
# File 'lib/rapgenius.rb', line 39
def self.search_by_title(query)
self.search(query, field: "title")
end
|