</dl>
<div class="clear"></div>
+<h2>Overview</h2><div class="docstring">
+ <div class="discussion">
+ <p>
+This class has the basic logic for extracting the lyrics and controlling
+the application
+</p>
+ </div>
+</div>
+<div class="tags">
+
+
+</div>
+
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Exits with error when there is an empty field from the current track.
+</p>
+</div></span>
</li>
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Raises an InvalidLyricsError which means we did not get any valid
+artist/song from any of the sources.
+</p>
+</div></span>
</li>
<li class="public ">
<span class="summary_signature">
- <a href="#get_lyrics-instance_method" title="#get_lyrics (instance method)">- (Object) <strong>get_lyrics</strong> </a>
+ <a href="#get_lyrics-instance_method" title="#get_lyrics (instance method)">- (String) <strong>get_lyrics</strong> </a>
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Extracts the current track, validates it and requests the lyrics from our
+LyricsEngine.
+</p>
+</div></span>
</li>
<span class="summary_desc"><div class='inline'><p>
-A new instance of Lyricli.
+Constructor, initializes `@source_manager`.
</p>
</div></span>
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Set the `@current_track` instance variable by asking the SourceManager for
+its current track.
+</p>
+</div></span>
</li>
</h3><div class="docstring">
<div class="discussion">
<p>
-A new instance of Lyricli
+Constructor, initializes `@source_manager`
</p>
<pre class="lines">
-4
-5
-6</pre>
+8
+9
+10</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 4</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 8</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
<span class='ivar'>@source_manager</span> <span class='op'>=</span> <span class='const'>SourceManager</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
-</h3><table class="source_code">
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Exits with error when there is an empty field from the current track.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-29
-30
-31
-32</pre>
+49
+50
+51
+52
+53</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 29</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 49</span>
<span class='kw'>def</span> <span class='id identifier rubyid_check_params'>check_params</span>
+ <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exit_with_error'>exit_with_error</span> <span class='kw'>unless</span> <span class='ivar'>@current_track</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exit_with_error'>exit_with_error</span> <span class='kw'>if</span> <span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:artist</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:artist</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exit_with_error'>exit_with_error</span> <span class='kw'>if</span> <span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:song</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='kw'>or</span> <span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:song</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='kw'>end</span></pre>
</h3><div class="docstring">
<div class="discussion">
-
+ <p>
+Raises an InvalidLyricsError which means we did not get any valid
+artist/song from any of the sources
+</p>
+
</div>
</div>
<li>
- <span class='type'>(<tt>InvalidLyrics</tt>)</span>
+ <span class='type'>(<tt><span class='object_link'><a href="Exceptions/InvalidLyricsError.html" title="Lyricli::Exceptions::InvalidLyricsError (class)">Lyricli::Exceptions::InvalidLyricsError</a></span></tt>)</span>
+ —
+ <div class='inline'><p>
+because we found nothing
+</p>
+</div>
+
</li>
</ul>
<pre class="lines">
-8
-9
-10</pre>
+16
+17
+18</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 8</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 16</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exit_with_error'>exit_with_error</span>
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>InvalidLyrics</span>
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidLyricsError</span>
<span class='kw'>end</span></pre>
</td>
</tr>
<div class="method_details ">
<h3 class="signature " id="get_lyrics-instance_method">
- - (<tt>Object</tt>) <strong>get_lyrics</strong>
+ - (<tt>String</tt>) <strong>get_lyrics</strong>
-</h3><table class="source_code">
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Extracts the current track, validates it and requests the lyrics from our
+LyricsEngine
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+<p class="tag_title">Returns:</p>
+<ul class="return">
+
+ <li>
+
+
+ <span class='type'>(<tt>String</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the found lyrics, or a string indicating none were found
+</p>
+</div>
+
+ </li>
+
+</ul>
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23</pre>
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 12</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 24</span>
<span class='kw'>def</span> <span class='id identifier rubyid_get_lyrics'>get_lyrics</span>
- <span class='id identifier rubyid_set_current_track'>set_current_track</span>
- <span class='id identifier rubyid_check_params'>check_params</span>
+
+ <span class='kw'>begin</span>
+ <span class='id identifier rubyid_set_current_track'>set_current_track</span>
+ <span class='id identifier rubyid_check_params'>check_params</span>
+ <span class='kw'>rescue</span> <span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>InvalidLyricsError</span>
+ <span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>No Artist/Song could be found :(</span><span class='tstring_end'>"</span></span>
+ <span class='kw'>end</span>
<span class='id identifier rubyid_engine'>engine</span> <span class='op'>=</span> <span class='const'>LyricsEngine</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:artist</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='ivar'>@current_track</span><span class='lbracket'>[</span><span class='symbol'>:song</span><span class='rbracket'>]</span><span class='rparen'>)</span>
<span class='kw'>begin</span>
- <span class='id identifier rubyid_engine'>engine</span><span class='period'>.</span><span class='id identifier rubyid_get_lyrics'>get_lyrics</span>
- <span class='kw'>rescue</span> <span class='const'>LyricsNotFoundException</span>
- <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lyrics not found :(</span><span class='tstring_end'>"</span></span>
+ <span class='kw'>return</span> <span class='id identifier rubyid_engine'>engine</span><span class='period'>.</span><span class='id identifier rubyid_get_lyrics'>get_lyrics</span>
+ <span class='kw'>rescue</span> <span class='const'>Exceptions</span><span class='op'>::</span><span class='const'>LyricsNotFoundError</span>
+ <span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Lyrics not found :(</span><span class='tstring_end'>"</span></span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
-</h3><table class="source_code">
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Set the `@current_track` instance variable by asking the SourceManager for
+its current track
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-25
-26
-27</pre>
+44
+45
+46</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 25</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/lyricli.rb', line 44</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_current_track'>set_current_track</span>
<span class='ivar'>@current_track</span> <span class='op'>=</span> <span class='ivar'>@source_manager</span><span class='period'>.</span><span class='id identifier rubyid_current_track'>current_track</span>
</div>
<div id="footer">
- Generated on Sat Oct 6 02:05:51 2012 by
+ Generated on Sat Oct 6 03:20:24 2012 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.8.2.1 (ruby-1.9.2).
</div>