<title>
Class: Lyricli::Configuration
- — Documentation by YARD 0.8.1
+ — Documentation by YARD 0.8.2.1
</title>
</dl>
<div class="clear"></div>
+<h2>Overview</h2><div class="docstring">
+ <div class="discussion">
+ <p>
+This class handles the configuration of Lyricli
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+</div>
<h2>Constant Summary</h2>
<dl class="constants">
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Ensure this is only called once.
+</p>
+</div></span>
</li>
<li class="public ">
<span class="summary_signature">
- <a href="#%5B%5D-instance_method" title="#[] (instance method)">- (Object) <strong>[]</strong>(key) </a>
+ <a href="#%5B%5D-instance_method" title="#[] (instance method)">- (String, ...) <strong>[]</strong>(key) </a>
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Access configuration properties, loads config if needed beforehand.
+</p>
+</div></span>
</li>
- <span class="summary_desc"><div class='inline'></div></span>
+ <span class="summary_desc"><div class='inline'><p>
+Assigns a new value to a configuration key, loads config if needed and
+saves it after updating.
+</p>
+</div></span>
+
+</li>
+
+
+ <li class="public ">
+ <span class="summary_signature">
+
+ <a href="#delete-instance_method" title="#delete (instance method)">- (Object) <strong>delete</strong>(key) </a>
+
+
+
+ </span>
+
+
+
+
+
+
+
+
+
+ <span class="summary_desc"><div class='inline'><p>
+Deletes a key from the configuration, loads config if needed and saves it
+after deleting.
+</p>
+</div></span>
</li>
<span class="summary_desc"><div class='inline'><p>
-A new instance of Configuration.
+Defines the paths to the default and user configuration files.
+</p>
+</div></span>
+
+</li>
+
+
+ <li class="public ">
+ <span class="summary_signature">
+
+ <a href="#load_config-instance_method" title="#load_config (instance method)">- (Object) <strong>load_config</strong> </a>
+
+
+
+ </span>
+
+
+
+
+
+
+
+
+
+ <span class="summary_desc"><div class='inline'><p>
+Loads the configuration from the user file, attempts to create it from
+defaults if it’s not present.
+</p>
+</div></span>
+
+</li>
+
+
+ <li class="public ">
+ <span class="summary_signature">
+
+ <a href="#save_config-instance_method" title="#save_config (instance method)">- (Object) <strong>save_config</strong> </a>
+
+
+
+ </span>
+
+
+
+
+
+
+
+
+
+ <span class="summary_desc"><div class='inline'><p>
+Serializes the `@config` Hash to JSON and saves it to a file.
</p>
</div></span>
</h3><div class="docstring">
<div class="discussion">
<p>
-A new instance of Configuration
+Defines the paths to the default and user configuration files
</p>
<pre class="lines">
-4
-5
-6
-7</pre>
+7
+8
+9
+10
+11</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 4</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 7</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
<span class='ivar'>@config_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>~/.lyricli.conf</span><span class='tstring_end'>"</span></span>
<span class='ivar'>@defaults_path</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>defaults.json</span><span class='tstring_end'>"</span></span>
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='kw'>nil</span>
<span class='kw'>end</span></pre>
</td>
</tr>
-</h3><table class="source_code">
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Ensure this is only called once. Only use the instance class variable to
+access this method, as its constructor is private.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-11
-12
-13</pre>
+17
+18
+19</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 11</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 17</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
<span class='cvar'>@@instance</span>
<div class="method_details first">
<h3 class="signature first" id="[]-instance_method">
- - (<tt>Object</tt>) <strong>[]</strong>(key)
+ - (<tt>String</tt>, ...) <strong>[]</strong>(key)
+
+
+
+
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Access configuration properties, loads config if needed beforehand.
+</p>
+
+ </div>
+</div>
+<div class="tags">
+ <p class="tag_title">Parameters:</p>
+<ul class="param">
+
+ <li>
+
+ <span class='name'>key</span>
+
+
+ <span class='type'>(<tt>String</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the configuration key to access
+</p>
+</div>
+
+ </li>
+</ul>
+<p class="tag_title">Returns:</p>
+<ul class="return">
-</h3><table class="source_code">
+ <li>
+
+
+ <span class='type'>(<tt>String</tt>, <tt>Hash</tt>, <tt>Array</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the value of the configuration key.
+</p>
+</div>
+
+ </li>
+
+</ul>
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-15
-16
-17
-18</pre>
+25
+26
+27
+28</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 15</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 25</span>
<span class='kw'>def</span> <span class='op'>[]</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
<span class='id identifier rubyid_load_config'>load_config</span> <span class='kw'>unless</span> <span class='ivar'>@config</span>
-</h3><table class="source_code">
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Assigns a new value to a configuration key, loads config if needed and
+saves it after updating.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+ <p class="tag_title">Parameters:</p>
+<ul class="param">
+
+ <li>
+
+ <span class='name'>key</span>
+
+
+ <span class='type'>(<tt>String</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the configuration key to set
+</p>
+</div>
+
+ </li>
+
+ <li>
+
+ <span class='name'>value</span>
+
+
+ <span class='type'>(<tt>Object</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the value for the configuration key, can be any object as long as it can be
+converted to JSON
+</p>
+</div>
+
+ </li>
+
+</ul>
+
+
+</div><table class="source_code">
<tr>
<td>
<pre class="lines">
-20
-21
-22
-23
-24</pre>
+36
+37
+38
+39
+40</pre>
</td>
<td>
- <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 20</span>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 36</span>
<span class='kw'>def</span> <span class='op'>[]=</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
<span class='id identifier rubyid_load_config'>load_config</span> <span class='kw'>unless</span> <span class='ivar'>@config</span>
</td>
</tr>
</table>
+</div>
+
+ <div class="method_details ">
+ <h3 class="signature " id="delete-instance_method">
+
+ - (<tt>Object</tt>) <strong>delete</strong>(key)
+
+
+
+
+
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Deletes a key from the configuration, loads config if needed and saves it
+after deleting.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+ <p class="tag_title">Parameters:</p>
+<ul class="param">
+
+ <li>
+
+ <span class='name'>key</span>
+
+
+ <span class='type'>(<tt>String</tt>)</span>
+
+
+
+ —
+ <div class='inline'><p>
+the key to delete
+</p>
+</div>
+
+ </li>
+
+</ul>
+
+
+</div><table class="source_code">
+ <tr>
+ <td>
+ <pre class="lines">
+
+
+46
+47
+48
+49
+50</pre>
+ </td>
+ <td>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 46</span>
+
+<span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_load_config'>load_config</span> <span class='kw'>unless</span> <span class='ivar'>@config</span>
+ <span class='ivar'>@config</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_save_config'>save_config</span>
+<span class='kw'>end</span></pre>
+ </td>
+ </tr>
+</table>
+</div>
+
+ <div class="method_details ">
+ <h3 class="signature " id="load_config-instance_method">
+
+ - (<tt>Object</tt>) <strong>load_config</strong>
+
+
+
+
+
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Loads the configuration from the user file, attempts to create it from
+defaults if it’s not present. sets the `@config` instance variable.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+
+</div><table class="source_code">
+ <tr>
+ <td>
+ <pre class="lines">
+
+
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65</pre>
+ </td>
+ <td>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 56</span>
+
+<span class='kw'>def</span> <span class='id identifier rubyid_load_config'>load_config</span>
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='lparen'>(</span><span class='ivar'>@config_path</span><span class='rparen'>)</span>
+
+ <span class='kw'>if</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_exists?'>exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>r</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
+ <span class='ivar'>@config</span> <span class='op'>=</span> <span class='const'>MultiJson</span><span class='period'>.</span><span class='id identifier rubyid_decode'>decode</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='rparen'>)</span>
+ <span class='kw'>else</span>
+ <span class='id identifier rubyid_load_default_config'>load_default_config</span>
+ <span class='kw'>end</span>
+<span class='kw'>end</span></pre>
+ </td>
+ </tr>
+</table>
+</div>
+
+ <div class="method_details ">
+ <h3 class="signature " id="save_config-instance_method">
+
+ - (<tt>Object</tt>) <strong>save_config</strong>
+
+
+
+
+
+</h3><div class="docstring">
+ <div class="discussion">
+ <p>
+Serializes the `@config` Hash to JSON and saves it to a file.
+</p>
+
+
+ </div>
+</div>
+<div class="tags">
+
+
+</div><table class="source_code">
+ <tr>
+ <td>
+ <pre class="lines">
+
+
+68
+69
+70
+71
+72
+73</pre>
+ </td>
+ <td>
+ <pre class="code"><span class="info file"># File 'lib/lyricli/configuration.rb', line 68</span>
+
+<span class='kw'>def</span> <span class='id identifier rubyid_save_config'>save_config</span>
+ <span class='id identifier rubyid_path'>path</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='lparen'>(</span><span class='ivar'>@config_path</span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_path'>path</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>w</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_print'>print</span><span class='lparen'>(</span><span class='const'>MultiJson</span><span class='period'>.</span><span class='id identifier rubyid_encode'>encode</span><span class='lparen'>(</span><span class='ivar'>@config</span><span class='rparen'>)</span><span class='rparen'>)</span>
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
+<span class='kw'>end</span></pre>
+ </td>
+ </tr>
+</table>
</div>
</div>
</div>
<div id="footer">
- Generated on Fri Oct 5 22:31:14 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.1 (ruby-1.9.2).
+ 0.8.2.1 (ruby-1.9.2).
</div>
</body>