<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
Class: Projects::ProjectService
— Documentation by YARD 0.8.7.6
</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
<script type="text/javascript" charset="utf-8">
hasFrames = window.top.frames.main ? true : false;
relpath = '../';
framesUrl = "../frames.html#!Projects/ProjectService.html";
</script>
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
</head>
<body>
<div id="header">
<div id="menu">
<a href="../_index.html">Index (P)</a> »
<span class='title'><span class='object_link'><a href="../Projects.html" title="Projects (module)">Projects</a></span></span>
»
<span class="title">ProjectService</span>
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../class_list.html">
Class List
</a>
<a class="full_list_link" id="method_list_link"
href="../method_list.html">
Method List
</a>
<a class="full_list_link" id="file_list_link"
href="../file_list.html">
File List
</a>
</div>
<div class="clear"></div>
</div>
<iframe id="search_frame"></iframe>
<div id="content"><h1>Class: Projects::ProjectService
</h1>
<dl class="box">
<dt class="r1">Inherits:</dt>
<dd class="r1">
<span class="inheritName">Object</span>
<ul class="fullTree">
<li>Object</li>
<li class="next">Projects::ProjectService</li>
</ul>
<a href="#" class="inheritanceTree">show all</a>
</dd>
<dt class="r2 last">Defined in:</dt>
<dd class="r2 last">lib/projects/project_service.rb</dd>
</dl>
<div class="clear"></div>
<h2>Overview</h2><div class="docstring">
<div class="discussion">
<p>Handles access to project metadata</p>
</div>
</div>
<div class="tags">
</div>
<h2>Constant Summary</h2>
<dl class="constants">
<dt id="append_to_list-classvariable" class="">@@append_to_list =
</dt>
<dd><pre class="code"><span class='lbracket'>[</span><span class='rbracket'>]</span></pre></dd>
<dt id="fetch_project-classvariable" class="">@@fetch_project =
</dt>
<dd><pre class="code"><span class='lbracket'>[</span><span class='rbracket'>]</span></pre></dd>
</dl>
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#env-instance_method" title="#env (instance method)">- (Object) <strong>env</strong> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Rack environment.</p>
</div></span>
</li>
</ul>
<h2>
Class Method Summary
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#append_to_list-class_method" title="append_to_list (class method)">+ (Object) <strong>append_to_list</strong> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Register a callback method to implement listing projects in your system.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#fetch_project-class_method" title="fetch_project (class method)">+ (Object) <strong>fetch_project</strong> </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Register a callback method that can fetch project details given a project
id.</p>
</div></span>
</li>
</ul>
<h2>
Instance Method Summary
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#fetch-instance_method" title="#fetch (instance method)">- (Object) <strong>fetch</strong>(id) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterate through our handlers and return the first one that actually has a
project.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#initialize-instance_method" title="#initialize (instance method)">- (ProjectService) <strong>initialize</strong>(env: nil) </a>
</span>
<span class="note title constructor">constructor</span>
<span class="summary_desc"><div class='inline'>
<p>TODO how do we provide context information, via the env?.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#list-instance_method" title="#list (instance method)">- (Object) <strong>list</strong>(details: false, extension: nil) </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Iterate through the append_to_list handlers and return all projects.</p>
</div></span>
</li>
</ul>
<div id="constructor_details" class="method_details_list">
<h2>Constructor Details</h2>
<div class="method_details first">
<h3 class="signature first" id="initialize-instance_method">
- (<tt><span class='object_link'><a href="" title="Projects::ProjectService (class)">ProjectService</a></span></tt>) <strong>initialize</strong>(env: nil)
</h3><div class="docstring">
<div class="discussion">
<p>TODO how do we provide context information, via the env?</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
16
17
18</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 16</span>
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='label'>env:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='ivar'>@env</span> <span class='op'>=</span> <span class='id identifier rubyid_env'>env</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_attr_details" class="attr_details">
<h2>Instance Attribute Details</h2>
<span id="env=-instance_method"></span>
<div class="method_details first">
<h3 class="signature first" id="env-instance_method">
- (<tt>Object</tt>) <strong>env</strong>
</h3><div class="docstring">
<div class="discussion">
<p>Rack environment</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
13
14
15</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 13</span>
<span class='kw'>def</span> <span class='id identifier rubyid_env'>env</span>
<span class='ivar'>@env</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="class_method_details" class="method_details_list">
<h2>Class Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="append_to_list-class_method">
+ (<tt>Object</tt>) <strong>append_to_list</strong>
</h3><div class="docstring">
<div class="discussion">
<p>Register a callback method to implement listing projects in your system.</p>
<p>Each callback takes three parameters:</p>
<ul><li>
<p><code>details</code> [Boolean]: If <code>true</code>, you should include
the entire project JSON. If <code>false</code>, you should only return an
array of project IDs.</p>
</li><li>
<p><code>extension</code> [String]: If set, we're only looking for
projects that provide this extension. (If it's set, and you know you
don't provide this extension, then return nil.)</p>
</li><li>
<p><code>env</code> [Hash]: The current Rack environment</p>
</li></ul>
<p>Example:</p>
<pre class="code ruby"><code class="ruby"><span class='const'>Projects</span><span class='op'>::</span><span class='const'>ProjectService</span><span class='period'>.</span><span class='id identifier rubyid_append_to_list'>append_to_list</span> <span class='op'><<</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='comma'>,</span> <span class='id identifier rubyid_env'>env</span><span class='op'>|</span>
<span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_i_provide?'>i_provide?</span><span class='lparen'>(</span><span class='id identifier rubyid_extension'>extension</span><span class='rparen'>)</span>
<span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>S'up user </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_env'>env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>AUTH_CREDENTIALS</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
<span class='kw'>if</span> <span class='id identifier rubyid_details'>details</span>
<span class='id identifier rubyid_go_get_projects'>go_get_projects</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_go_get_project_ids'>go_get_project_ids</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span>
</code></pre>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
47
48
49</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 47</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_append_to_list'>append_to_list</span>
<span class='cvar'>@@append_to_list</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="fetch_project-class_method">
+ (<tt>Object</tt>) <strong>fetch_project</strong>
</h3><div class="docstring">
<div class="discussion">
<p>Register a callback method that can fetch project details given a project
id.</p>
<p>Your callback will take two paramters:</p>
<ul><li>
<p><code>id</code> [String] - The project ID</p>
</li><li>
<p><code>env</code> [Hash] - The current rack environment</p>
</li></ul>
<p>Example:</p>
<pre class="code ruby"><code class="ruby"><span class='const'>Projects</span><span class='op'>::</span><span class='const'>ProjectService</span><span class='period'>.</span><span class='id identifier rubyid_fetch_project'>fetch_project</span> <span class='op'><<</span> <span class='id identifier rubyid_lambda'>lambda</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_env'>env</span><span class='op'>|</span>
<span class='id identifier rubyid_have_project?'>have_project?</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_get_project'>get_project</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='kw'>nil</span>
<span class='kw'>end</span>
</code></pre>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
74
75
76</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 74</span>
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_fetch_project'>fetch_project</span>
<span class='cvar'>@@fetch_project</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="fetch-instance_method">
- (<tt>Object</tt>) <strong>fetch</strong>(id)
</h3><div class="docstring">
<div class="discussion">
<p>Iterate through our handlers and return the first one that actually has a
project</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
79
80
81
82
83
84
85</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 79</span>
<span class='kw'>def</span> <span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
<span class='kw'>for</span> <span class='id identifier rubyid_handler'>handler</span> <span class='kw'>in</span> <span class='cvar'>@@fetch_project</span>
<span class='id identifier rubyid_p'>p</span> <span class='op'>=</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='comma'>,</span> <span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_p'>p</span> <span class='kw'>if</span> <span class='id identifier rubyid_p'>p</span>
<span class='kw'>end</span>
<span class='kw'>return</span> <span class='kw'>nil</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="list-instance_method">
- (<tt>Object</tt>) <strong>list</strong>(details: false, extension: nil)
</h3><div class="docstring">
<div class="discussion">
<p>Iterate through the append_to_list handlers and return all projects</p>
</div>
</div>
<div class="tags">
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
52
53
54
55
56
57
58
59</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/projects/project_service.rb', line 52</span>
<span class='kw'>def</span> <span class='id identifier rubyid_list'>list</span><span class='lparen'>(</span><span class='label'>details:</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='label'>extension:</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='id identifier rubyid_projects'>projects</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='cvar'>@@append_to_list</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_handler'>handler</span><span class='op'>|</span>
<span class='id identifier rubyid_to_append'>to_append</span> <span class='op'>=</span> <span class='id identifier rubyid_handler'>handler</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_details'>details</span><span class='comma'>,</span> <span class='id identifier rubyid_extension'>extension</span><span class='comma'>,</span> <span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
<span class='id identifier rubyid_projects'>projects</span><span class='period'>.</span><span class='id identifier rubyid_concat'>concat</span><span class='lparen'>(</span><span class='id identifier rubyid_to_append'>to_append</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_to_append'>to_append</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_projects'>projects</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Tue Sep 15 01:20:29 2015 by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.8.7.6 (ruby-2.2.3).
</div>
</body>
</html>
# |
Change |
User |
Description |
Committed |
|
#1
|
15741 |
ptomiak |
Branch HWS for my use. |
|
|