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

Version Path
rapgenius-1.1.0 lib/rapgenius.rb
rapgenius-1.0.5 lib/rapgenius.rb
rapgenius-1.0.4 lib/rapgenius.rb
rapgenius-1.0.3 lib/rapgenius.rb
rapgenius-1.0.2 lib/rapgenius.rb
rapgenius-1.0.1 lib/rapgenius.rb
rapgenius-1.0.0 lib/rapgenius.rb