Class: Xolo::Admin::Title

Inherits:
Core::BaseClasses::Title
  • Object
show all
Defined in:
lib/xolo/admin/title.rb

Overview

A title used by xadm.

These are instantiated with data from the server (for existing Titles) or from the xadm CLI opts or walkthru process.

This class also defines how xadm communicates title data to and from the server.

Constant Summary collapse

SERVER_ROUTE =

This is the server path for dealing with titles POST to add a new one GET to get a list of titles GET .../ to get the data for a single title PUT .../<title> to update a title with new data DELETE .../<title> to delete a title and its version</p> </div> </div> <div class="tags"> </div> </dt> <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/titles</span><span class='tstring_end'>'</span></span></pre></dd> <dt id="UPLOAD_ICON_ROUTE-constant" class="">UPLOAD_ICON_ROUTE = </dt> <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>ssvc-icon</span><span class='tstring_end'>'</span></span></pre></dd> <dt id="TARGET_TITLE_PLACEHOLDER-constant" class="">TARGET_TITLE_PLACEHOLDER = </dt> <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>TARGET_TITLE_PH</span><span class='tstring_end'>'</span></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="#cnx-instance_method" title="#cnx (instance method)">#<strong>cnx</strong> ⇒ Object </a> </span> <span class="summary_desc"><div class='inline'><p>Attributes.</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="#all_title_objects-class_method" title="all_title_objects (class method)">.<strong>all_title_objects</strong>(cnx) ⇒ Array<Xolo::Admin::Title> </a> </span> <span class="summary_desc"><div class='inline'><p>The currently known titles on the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#all_titles-class_method" title="all_titles (class method)">.<strong>all_titles</strong>(cnx) ⇒ Array<String> </a> </span> <span class="summary_desc"><div class='inline'><p>The currently known titles names on the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#cli_opts-class_method" title="cli_opts (class method)">.<strong>cli_opts</strong> ⇒ Hash{Symbol: Hash} </a> </span> <span class="summary_desc"><div class='inline'><p>The ATTRIBUTES that are available as CLI & walkthru options.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete-class_method" title="delete (class method)">.<strong>delete</strong>(title, cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Delete a title from the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#exist%3F-class_method" title="exist? (class method)">.<strong>exist?</strong>(title, cnx) ⇒ Boolean </a> </span> <span class="summary_desc"><div class='inline'><p>Does a title exist on the server?.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#fetch-class_method" title="fetch (class method)">.<strong>fetch</strong>(title, cnx) ⇒ Xolo::Admin::Title </a> </span> <span class="summary_desc"><div class='inline'><p>Fetch a title from the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#latest_version-class_method" title="latest_version (class method)">.<strong>latest_version</strong>(title, cnx) ⇒ void </a> </span> <span class="summary_desc"><div class='inline'><p>the latest version of a title in Xolo.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#release_to_all_allowed%3F-class_method" title="release_to_all_allowed? (class method)">.<strong>release_to_all_allowed?</strong>(cnx) ⇒ Boolean </a> </span> <span class="summary_desc"><div class='inline'><p>Is the current admin allowed to set a title's release groups to 'all'?.</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="#add-instance_method" title="#add (instance method)">#<strong>add</strong>(cnx = self.cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Add this title to the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#changelog-instance_method" title="#changelog (instance method)">#<strong>changelog</strong>(cnx = self.cnx) ⇒ Array<Hash> </a> </span> <span class="summary_desc"><div class='inline'><p>The change log is a list of hashes, each with keys: :time, :admin, :ipaddr, :version (may be nil), :action.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#delete-instance_method" title="#delete (instance method)">#<strong>delete</strong>(cnx = self.cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Delete this title from the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#freeze-instance_method" title="#freeze (instance method)">#<strong>freeze</strong>(targets, users = false, cnx = self.cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Freeze the one or more computers for this title.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#frozen-instance_method" title="#frozen (instance method)">#<strong>frozen</strong>(cnx = self.cnx) ⇒ Hash{String => String} </a> </span> <span class="summary_desc"><div class='inline'><p>Fetch the frozen computers for this title.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#gui_urls-instance_method" title="#gui_urls (instance method)">#<strong>gui_urls</strong>(cnx = self.cnx) ⇒ Hash{String => String} </a> </span> <span class="summary_desc"><div class='inline'><p>Fetch a hash of URLs for the GUI pages for this title.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(data_hash) ⇒ Title </a> </span> <span class="note title constructor">constructor</span> <span class="summary_desc"><div class='inline'><p>Read in the contents of any version script given.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#patch_report_data-instance_method" title="#patch_report_data (instance method)">#<strong>patch_report_data</strong>(cnx = self.cnx) ⇒ Array<Hash> </a> </span> <span class="summary_desc"><div class='inline'><p>Get the patch report data for this title It's the JPAPI report data with each hash having a frozen: key added.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#release-instance_method" title="#release (instance method)">#<strong>release</strong>(cnx = self.cnx, version:) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Release a version of this title.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#repair-instance_method" title="#repair (instance method)">#<strong>repair</strong>(cnx = self.cnx, versions: false) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Repair this title, and optionally all its versions.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#thaw-instance_method" title="#thaw (instance method)">#<strong>thaw</strong>(targets, users = false, cnx = self.cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Thaw the one or more computers for this title.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#update-instance_method" title="#update (instance method)">#<strong>update</strong>(cnx = self.cnx) ⇒ Hash </a> </span> <span class="summary_desc"><div class='inline'><p>Update this title to the server.</p></div></span> </li> <li class="public "> <span class="summary_signature"> <a href="#upload_self_service_icon-instance_method" title="#upload_self_service_icon (instance method)">#<strong>upload_self_service_icon</strong>(upload_cnx) ⇒ Faraday::Response </a> </span> <span class="summary_desc"><div class='inline'><p>Upload an icon for self service.</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"> #<strong>initialize</strong>(data_hash) ⇒ <tt><span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Title</a></span></tt> </h3><div class="docstring"> <div class="discussion"> <p>Read in the contents of any version script given</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 134 135 136 137 138 139 140 141 142</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 134</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_data_hash'>data_hash</span><span class='rparen'>)</span> <span class='kw'>super</span> <span class='comment'># @self_service_icon = nil if @self_service_icon == Xolo::ITEM_UPLOADED </span> <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_version_script'>version_script</span> <span class='kw'>return</span> <span class='kw'>if</span> <span class='id identifier rubyid_version_script'>version_script</span> <span class='op'>==</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'>ITEM_UPLOADED</span> <span class='ivar'>@version_script</span> <span class='op'>=</span> <span class='id identifier rubyid_version_script'>version_script</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span> <span class='kw'>if</span> <span class='id identifier rubyid_version_script'>version_script</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:read</span><span class='rparen'>)</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="cnx=-instance_method"></span> <div class="method_details first"> <h3 class="signature first" id="cnx-instance_method"> #<strong>cnx</strong> ⇒ <tt>Object</tt> </h3><div class="docstring"> <div class="discussion"> <p>Attributes</p> <p>the server connection used to fetch this version</p> </div> </div> <div class="tags"> </div><table class="source_code"> <tr> <td> <pre class="lines"> 127 128 129</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 127</span> <span class='kw'>def</span> <span class='id identifier rubyid_cnx'>cnx</span> <span class='ivar'>@cnx</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="all_title_objects-class_method"> .<strong>all_title_objects</strong>(cnx) ⇒ <tt>Array<<span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Xolo::Admin::Title</a></span>></tt> </h3><div class="docstring"> <div class="discussion"> <p>Returns The currently known titles on the server.</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Array<<span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Xolo::Admin::Title</a></span>></tt>)</span> — <div class='inline'><p>The currently known titles on the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 66 67 68 69</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 66</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_all_title_objects'>all_title_objects</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_td'>td</span><span class='op'>|</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Admin.html" title="Xolo::Admin (module)">Admin</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Title</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Xolo::Admin::Title#initialize (method)">new</a></span></span> <span class='id identifier rubyid_td'>td</span> <span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="all_titles-class_method"> .<strong>all_titles</strong>(cnx) ⇒ <tt>Array<String></tt> </h3><div class="docstring"> <div class="discussion"> <p>Returns The currently known titles names on the server.</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Array<String></tt>)</span> — <div class='inline'><p>The currently known titles names on the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 59 60 61 62</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 59</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_all_titles'>all_titles</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_t'>t</span><span class='op'>|</span> <span class='id identifier rubyid_t'>t</span><span class='lbracket'>[</span><span class='symbol'>:title</span><span class='rbracket'>]</span> <span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="cli_opts-class_method"> .<strong>cli_opts</strong> ⇒ <tt>Hash{Symbol: Hash}</tt> </h3><div class="docstring"> <div class="discussion"> <p>Returns The ATTRIBUTES that are available as CLI & walkthru options.</p> </div> </div> <div class="tags"> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash{Symbol: Hash}</tt>)</span> — <div class='inline'><p>The ATTRIBUTES that are available as CLI & walkthru options</p></div> </li> </ul> </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/xolo/admin/title.rb', line 47</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cli_opts'>cli_opts</span> <span class='ivar'>@cli_opts</span> <span class='op'>||=</span> <span class='const'>ATTRIBUTES</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid__k'>_k</span><span class='comma'>,</span> <span class='id identifier rubyid_v'>v</span><span class='op'>|</span> <span class='id identifier rubyid_v'>v</span><span class='lbracket'>[</span><span class='symbol'>:cli</span><span class='rbracket'>]</span> <span class='rbrace'>}</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="delete-class_method"> .<strong>delete</strong>(title, cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Delete a title from the server</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>title</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the title to delete</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response data</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 99 100 101 102</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 99</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_title'>title</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="exist?-class_method"> .<strong>exist?</strong>(title, cnx) ⇒ <tt>Boolean</tt> </h3><div class="docstring"> <div class="discussion"> <p>Does a title exist on the server?</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>title</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the title</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Boolean</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 76 77 78</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 76</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_exist?'>exist?</span><span class='lparen'>(</span><span class='id identifier rubyid_title'>title</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_all_titles'>all_titles</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span> <span class='id identifier rubyid_title'>title</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="fetch-class_method"> .<strong>fetch</strong>(title, cnx) ⇒ <tt><span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Xolo::Admin::Title</a></span></tt> </h3><div class="docstring"> <div class="discussion"> <p>Fetch a title from the server</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>title</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the title to fetch</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt><span class='object_link'><a href="" title="Xolo::Admin::Title (class)">Xolo::Admin::Title</a></span></tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 85 86 87 88 89 90 91 92</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 85</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='id identifier rubyid_title'>title</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_title_obj'>title_obj</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='id identifier rubyid_title_obj'>title_obj</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span> <span class='id identifier rubyid_title_obj'>title_obj</span> <span class='kw'>rescue</span> <span class='const'>Faraday</span><span class='op'>::</span><span class='const'>ResourceNotFound</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'>NoSuchItemError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>No such title '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>'</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="latest_version-class_method"> .<strong>latest_version</strong>(title, cnx) ⇒ <tt>void</tt> </h3><div class="docstring"> <div class="discussion"> <p class="note returns_void">This method returns an undefined value.</p><p>the latest version of a title in Xolo</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>title</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the title we care about</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 109 110 111 112</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 109</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_latest_version'>latest_version</span><span class='lparen'>(</span><span class='id identifier rubyid_title'>title</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span><span class='lbracket'>[</span><span class='symbol'>:version_order</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="release_to_all_allowed?-class_method"> .<strong>release_to_all_allowed?</strong>(cnx) ⇒ <tt>Boolean</tt> </h3><div class="docstring"> <div class="discussion"> <p>Is the current admin allowed to set a title's release groups to 'all'?</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Boolean</tt>)</span> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 118 119 120 121</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 118</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_release_to_all_allowed?'>release_to_all_allowed?</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/auth/release_to_all_allowed</span><span class='tstring_end'>'</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</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="add-instance_method"> #<strong>add</strong>(cnx = self.cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Add this title to the server</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response body from the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 152 153 154 155</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 152</span> <span class='kw'>def</span> <span class='id identifier rubyid_add'>add</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_post'>post</span> <span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_to_h'>to_h</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="changelog-instance_method"> #<strong>changelog</strong>(cnx = self.cnx) ⇒ <tt>Array<Hash></tt> </h3><div class="docstring"> <div class="discussion"> <p>The change log is a list of hashes, each with keys: :time, :admin, :ipaddr, :version (may be nil), :action</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Array<Hash></tt>)</span> — <div class='inline'><p>The change log for this title</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 243 244 245 246</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 243</span> <span class='kw'>def</span> <span class='id identifier rubyid_changelog'>changelog</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/changelog</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="delete-instance_method"> #<strong>delete</strong>(cnx = self.cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Delete this title from the server</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response data</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 193 194 195</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 193</span> <span class='kw'>def</span> <span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span> <span class='id identifier rubyid_title'>title</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="freeze-instance_method"> #<strong>freeze</strong>(targets, users = false, cnx = self.cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Freeze the one or more computers for this title</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>computers</span> <span class='type'>(<tt>Array<String></tt>)</span> — <div class='inline'><p>the computers to freeze</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response data</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 202 203 204 205 206</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 202</span> <span class='kw'>def</span> <span class='id identifier rubyid_freeze'>freeze</span><span class='lparen'>(</span><span class='id identifier rubyid_targets'>targets</span><span class='comma'>,</span> <span class='id identifier rubyid_users'>users</span> <span class='op'>=</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>targets:</span> <span class='id identifier rubyid_targets'>targets</span><span class='comma'>,</span> <span class='label'>users:</span> <span class='id identifier rubyid_users'>users</span> <span class='rbrace'>}</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_put'>put</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/freeze</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="frozen-instance_method"> #<strong>frozen</strong>(cnx = self.cnx) ⇒ <tt>Hash{String => String}</tt> </h3><div class="docstring"> <div class="discussion"> <p>Fetch the frozen computers for this title</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash{String => String}</tt>)</span> — <div class='inline'><p>computer name => user name</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 223 224 225 226</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 223</span> <span class='kw'>def</span> <span class='id identifier rubyid_frozen'>frozen</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/frozen</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="gui_urls-instance_method"> #<strong>gui_urls</strong>(cnx = self.cnx) ⇒ <tt>Hash{String => String}</tt> </h3><div class="docstring"> <div class="discussion"> <p>Fetch a hash of URLs for the GUI pages for this title</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash{String => String}</tt>)</span> — <div class='inline'><p>page_name => url</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 232 233 234 235</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 232</span> <span class='kw'>def</span> <span class='id identifier rubyid_gui_urls'>gui_urls</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/urls</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="patch_report_data-instance_method"> #<strong>patch_report_data</strong>(cnx = self.cnx) ⇒ <tt>Array<Hash></tt> </h3><div class="docstring"> <div class="discussion"> <p>Get the patch report data for this title It's the JPAPI report data with each hash having a frozen: key added</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Array<Hash></tt>)</span> — <div class='inline'><p>Data for each computer with any version of this title installed</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 282 283 284 285</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 282</span> <span class='kw'>def</span> <span class='id identifier rubyid_patch_report_data'>patch_report_data</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/patch_report</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="release-instance_method"> #<strong>release</strong>(cnx = self.cnx, version:) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Release a version of this title.</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> <li> <span class='name'>version</span> <span class='type'>(<tt>String</tt>)</span> — <div class='inline'><p>the version to release</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response body from the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 171 172 173 174 175 176 177</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 171</span> <span class='kw'>def</span> <span class='id identifier rubyid_release'>release</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='comma'>,</span> <span class='label'>version:</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_patch'>patch</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/release/</span><span class='embexpr_beg'>#{</span><span class='const'>URI</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='period'>.</span><span class='id identifier rubyid_escape'>escape</span> <span class='id identifier rubyid_version'>version</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='rbrace'>}</span> <span class='comment'>### the CGI escape one doesn't seem to work with, e.g. "7.1.5 (84650)" </span> <span class='comment'># resp = cnx.patch "#{SERVER_ROUTE}/#{title}/release/#{CGI.escape version}", {} </span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="repair-instance_method"> #<strong>repair</strong>(cnx = self.cnx, versions: false) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Repair this title, and optionally all its versions</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> <li> <span class='name'>versions</span> <span class='type'>(<tt>Boolean</tt>)</span> <em class="default">(defaults to: <tt>false</tt>)</em> — <div class='inline'><p>if true, repair all versions of this title</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response body from the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 184 185 186 187</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 184</span> <span class='kw'>def</span> <span class='id identifier rubyid_repair'>repair</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='comma'>,</span> <span class='label'>versions:</span> <span class='kw'>false</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_post'>post</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/repair</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='lbrace'>{</span> <span class='label'>repair_versions:</span> <span class='id identifier rubyid_versions'>versions</span> <span class='rbrace'>}</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="thaw-instance_method"> #<strong>thaw</strong>(targets, users = false, cnx = self.cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Thaw the one or more computers for this title</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>computers</span> <span class='type'>(<tt>Array<String></tt>)</span> — <div class='inline'><p>the computers to freeze</p></div> </li> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response data</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 213 214 215 216 217</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 213</span> <span class='kw'>def</span> <span class='id identifier rubyid_thaw'>thaw</span><span class='lparen'>(</span><span class='id identifier rubyid_targets'>targets</span><span class='comma'>,</span> <span class='id identifier rubyid_users'>users</span> <span class='op'>=</span> <span class='kw'>false</span><span class='comma'>,</span> <span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>targets:</span> <span class='id identifier rubyid_targets'>targets</span><span class='comma'>,</span> <span class='label'>users:</span> <span class='id identifier rubyid_users'>users</span> <span class='rbrace'>}</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_put'>put</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/thaw</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="update-instance_method"> #<strong>update</strong>(cnx = self.cnx) ⇒ <tt>Hash</tt> </h3><div class="docstring"> <div class="discussion"> <p>Update this title to the server</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>cnx</span> <span class='type'>(<tt>Faraday::Connection</tt>)</span> <em class="default">(defaults to: <tt>self.cnx</tt>)</em> — <div class='inline'><p>The connection to use, must be logged in already</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Hash</tt>)</span> — <div class='inline'><p>the response body from the server</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 161 162 163 164</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 161</span> <span class='kw'>def</span> <span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_cnx'>cnx</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_cnx'>cnx</span><span class='rparen'>)</span> <span class='id identifier rubyid_resp'>resp</span> <span class='op'>=</span> <span class='id identifier rubyid_cnx'>cnx</span><span class='period'>.</span><span class='id identifier rubyid_put'>put</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_to_h'>to_h</span> <span class='id identifier rubyid_resp'>resp</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> <div class="method_details "> <h3 class="signature " id="upload_self_service_icon-instance_method"> #<strong>upload_self_service_icon</strong>(upload_cnx) ⇒ <tt>Faraday::Response</tt> </h3><div class="docstring"> <div class="discussion"> <p>Upload an icon for self service. At this point, the self_service_icon attribute should contain the local file path.</p> </div> </div> <div class="tags"> <p class="tag_title">Parameters:</p> <ul class="param"> <li> <span class='name'>upload_cnx</span> <span class='type'>(<tt><span class='object_link'><a href="Connection.html" title="Xolo::Admin::Connection (module)">Xolo::Admin::Connection</a></span></tt>)</span> — <div class='inline'><p>The server connection</p></div> </li> </ul> <p class="tag_title">Returns:</p> <ul class="return"> <li> <span class='type'>(<tt>Faraday::Response</tt>)</span> — <div class='inline'><p>The server response</p></div> </li> </ul> </div><table class="source_code"> <tr> <td> <pre class="lines"> 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274</pre> </td> <td> <pre class="code"><span class="info file"># File 'lib/xolo/admin/title.rb', line 256</span> <span class='kw'>def</span> <span class='id identifier rubyid_upload_self_service_icon'>upload_self_service_icon</span><span class='lparen'>(</span><span class='id identifier rubyid_upload_cnx'>upload_cnx</span><span class='rparen'>)</span> <span class='kw'>return</span> <span class='kw'>unless</span> <span class='id identifier rubyid_self_service_icon'>self_service_icon</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span> <span class='const'>Pathname</span> <span class='kw'>unless</span> <span class='id identifier rubyid_self_service_icon'>self_service_icon</span><span class='period'>.</span><span class='id identifier rubyid_readable?'>readable?</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'>NoSuchItemError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Can't upload self service icon '</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_self_service_icon'>self_service_icon</span><span class='embexpr_end'>}</span><span class='tstring_content'>': file doesn't exist or is not readable</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span> <span class='id identifier rubyid_mimetype'>mimetype</span> <span class='op'>=</span> <span class='backtick'>`</span><span class='tstring_content'>/usr/bin/file --brief --mime-type </span><span class='embexpr_beg'>#{</span><span class='const'>Shellwords</span><span class='period'>.</span><span class='id identifier rubyid_escape'>escape</span> <span class='id identifier rubyid_self_service_icon'>self_service_icon</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='embexpr_end'>}</span><span class='tstring_end'>`</span></span><span class='period'>.</span><span class='id identifier rubyid_chomp'>chomp</span> <span class='id identifier rubyid_upfile'>upfile</span> <span class='op'>=</span> <span class='const'>Faraday</span><span class='op'>::</span><span class='const'>Multipart</span><span class='op'>::</span><span class='const'>FilePart</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_self_service_icon'>self_service_icon</span><span class='period'>.</span><span class='id identifier rubyid_expand_path'>expand_path</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span> <span class='id identifier rubyid_mimetype'>mimetype</span><span class='rparen'>)</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>file:</span> <span class='id identifier rubyid_upfile'>upfile</span> <span class='rbrace'>}</span> <span class='id identifier rubyid_route'>route</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#SERVER_ROUTE-constant" title="Xolo::Admin::Title::SERVER_ROUTE (constant)">SERVER_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_title'>title</span><span class='embexpr_end'>}</span><span class='tstring_content'>/</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#UPLOAD_ICON_ROUTE-constant" title="Xolo::Admin::Title::UPLOAD_ICON_ROUTE (constant)">UPLOAD_ICON_ROUTE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='id identifier rubyid_upload_cnx'>upload_cnx</span><span class='period'>.</span><span class='id identifier rubyid_post'>post</span><span class='lparen'>(</span><span class='id identifier rubyid_route'>route</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_req'>req</span><span class='op'>|</span> <span class='id identifier rubyid_req'>req</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_content'>content</span> <span class='rbrace'>}</span> <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'>NoSuchItemError</span> <span class='id identifier rubyid_raise'>raise</span> <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../../Xolo.html" title="Xolo (module)">Xolo</a></span></span><span class='op'>::</span><span class='const'>ConnectionError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>end</span></pre> </td> </tr> </table> </div> </div> </div> <div id="footer"> Generated on Sat Jul 25 19:07:24 2026 by <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.9.44 (ruby-4.0.2). </div> </div> </body> </html>