Sha256: 983482988eb801abe6e0c1a50f4e00b919429723dcdd95f4ae9928f82044cba5

Contents?: true

Size: 755 Bytes

Versions: 2

Compression:

Stored size: 755 Bytes

Contents

module RapGenius
  class Annotation
    include RapGenius::Scraper

    attr_reader :id, :song

    def self.find(id)
      self.new(id: id)
    end

    def initialize(kwargs)
      @id = kwargs.delete(:id)
      @song = kwargs.delete(:song)
      @lyric = kwargs.delete(:lyric)
      self.url = @id
    end

    def lyric
      @lyric ||= document.css('meta[property="rap_genius:referent"]').
        attr('content').to_s
    end

    def explanation
      @explanation ||= document.css('meta[property="rap_genius:body"]').
        attr('content').to_s
    end

    def song
      @song ||= Song.new(song_url)
    end

    def song_url
      @song_url ||= document.css('meta[property="rap_genius:song"]').
        attr('content').to_s
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rapgenius-0.1.0 lib/rapgenius/annotation.rb
rapgenius-0.0.3 lib/rapgenius/annotation.rb