Sha256: db62a4a5ec960b9a7d86088aa5d50cc73df4903776341114a06609d3bd4eef24
Contents?: true
Size: 979 Bytes
Versions: 7
Compression:
Stored size: 979 Bytes
Contents
require 'rapgenius/version' require 'rapgenius/client' require 'rapgenius/line' require 'rapgenius/song' require 'rapgenius/artist' require 'rapgenius/media' require 'rapgenius/exceptions' module RapGenius extend RapGenius::Client def self.search(query, options={}) response = Client::HTTPClient.get("/search", query: {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 def self.search_by_artist(query) self.search(query, field: "primary_artist_name") end def self.search_by_title(query) self.search(query, field: "title") end def self.search_by_lyrics(query) self.search(query, field: "lyrics") end end
Version data entries
7 entries across 7 versions & 1 rubygems