- <!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: HWSSettings
-
- — 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#!HWSSettings.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 (H)</a> »
-
-
- <span class="title">HWSSettings</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: HWSSettings
-
-
-
- </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">HWSSettings</li>
-
- </ul>
- <a href="#" class="inheritanceTree">show all</a>
-
- </dd>
-
-
-
-
-
-
-
-
-
- <dt class="r2 last">Defined in:</dt>
- <dd class="r2 last">lib/hws_settings.rb</dd>
-
- </dl>
- <div class="clear"></div>
-
- <h2>Overview</h2><div class="docstring">
- <div class="discussion">
-
- <p>A Rack middleware application that creates a single configuration for Helix
- Web Services.</p>
-
- <p>Most web services are modular Sinatra applications, which does come with
- it's own settings mechanism. We should try to avoid those settings in
- most cases. Perhaps only if those settings are only relevant to the logic
- directly within the Sinatra app.</p>
-
- <p>Many other settings, like the port setting of the associated Helix
- Versioning Engine, should be exposed and overridable by the client
- application. These settings should be defined here.</p>
-
- <p>This class provides middleware that will inject an
- <code>hws_settings</code> object into each request. This
- <code>hws_settings</code> object is seeded by values declared on this
- class. When the system starts, our system config file is read in, and
- default system values are overridden. On any request, these settings can be
- overridden by the user.</p>
-
- <p>Additionally, there are “system” settings that are only overridable from
- the system config file. Client classes should reference this class
- directly: HWSSettings.system.</p>
-
- <h2 id="label-Naming+Conventions">Naming Conventions</h2>
-
- <p>Use uppercase letters, numbers, or underscores only.</p>
-
- <h2 id="label-HTTP+Header+Override+Syntax">HTTP Header Override Syntax</h2>
-
- <p>We allow per-request overrides of settings via HTTP headers.</p>
-
- <p>The key format of the custom setting is:</p>
-
- <p><code>X-PERFORCE-HELIX_WEB_SERVICES-{key}</code></p>
-
- <p>For example:</p>
-
- <pre class="code ruby"><code class="ruby">X-PERFORCE-HELIX_WEB_SERVICES-P4HOST: perforce.mycompany.com
- X-PERFORCE-HELIX_WEB_SERVICES-P4CHARSET: auto</code></pre>
-
- <p>Please note that headers will be converted by Rack to all uppercase, hence
- our naming conventions.</p>
-
- <h2 id="label-System+Config+File">System Config File</h2>
-
- <p>The system configuration is stored in the
- <code>/etc/perforce/helix_web_services.conf</code> file. This is a YAML
- file, and we override any locally defined variables with values found in
- this file. ()If you specify a value in this file we do not locally define,
- we ignore it.)</p>
-
- <p>Example values in /etc/perforce/helix_web_services.conf:</p>
-
- <pre class="code ruby"><code class="ruby">P4HOST: 'perforce.mycompany.com'
- P4PORT: '9991'</code></pre>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div>
- <h2>Constant Summary</h2>
-
- <dl class="constants">
-
- <dt id="SYSTEM_CONFIG_PATH-constant" class="">SYSTEM_CONFIG_PATH =
-
- </dt>
- <dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>/etc/perforce/helix_web_services.conf</span><span class='tstring_end'>'</span></span></pre></dd>
-
- </dl>
-
-
-
-
-
-
-
-
-
- <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="#overrides-class_method" title="overrides (class method)">+ (Object) <strong>overrides</strong> </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>Return the system overrides in our system configuration file.</p>
- </div></span>
-
- </li>
-
-
- <li class="public ">
- <span class="summary_signature">
-
- <a href="#settings-class_method" title="settings (class method)">+ (Object) <strong>settings</strong> </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>Returns baseline settings with system overrides applied.</p>
- </div></span>
-
- </li>
-
-
- <li class="public ">
- <span class="summary_signature">
-
- <a href="#settings_handle-class_method" title="settings_handle (class method)">+ (Object) <strong>settings_handle</strong> </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>You can tweak the default settings directly here in code.</p>
- </div></span>
-
- </li>
-
-
- <li class="public ">
- <span class="summary_signature">
-
- <a href="#system-class_method" title="system (class method)">+ (Object) <strong>system</strong> </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>Returns our system settings overridden by local configuration in overrides.</p>
- </div></span>
-
- </li>
-
-
- <li class="public ">
- <span class="summary_signature">
-
- <a href="#system_handle-class_method" title="system_handle (class method)">+ (Object) <strong>system_handle</strong> </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>In case your code wants to edit the system classes directly.</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="#call-instance_method" title="#call (instance method)">- (Object) <strong>call</strong>(env) </a>
-
-
-
- </span>
-
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'></div></span>
-
- </li>
-
-
- <li class="public ">
- <span class="summary_signature">
-
- <a href="#initialize-instance_method" title="#initialize (instance method)">- (HWSSettings) <strong>initialize</strong>(app) </a>
-
-
-
- </span>
-
-
- <span class="note title constructor">constructor</span>
-
-
-
-
-
-
-
-
- <span class="summary_desc"><div class='inline'>
- <p>A new instance of HWSSettings.</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="HWSSettings (class)">HWSSettings</a></span></tt>) <strong>initialize</strong>(app)
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>Returns a new instance of HWSSettings</p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 158
- 159
- 160</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 158</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_app'>app</span><span class='rparen'>)</span>
- <span class='ivar'>@app</span> <span class='op'>=</span> <span class='id identifier rubyid_app'>app</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="overrides-class_method">
-
- + (<tt>Object</tt>) <strong>overrides</strong>
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>Return the system overrides in our system configuration file.</p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 145
- 146
- 147</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 145</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_overrides'>overrides</span>
- <span class='kw'>return</span> <span class='ivar'>@overrides</span> <span class='op'>||=</span> <span class='id identifier rubyid_init_overrides'>init_overrides</span>
- <span class='kw'>end</span></pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="method_details ">
- <h3 class="signature " id="settings-class_method">
-
- + (<tt>Object</tt>) <strong>settings</strong>
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>Returns baseline settings with system overrides applied.</p>
-
- <p>This is a copy of state. If you want to alter the default settings in code
- instead of via config files, use the <code>settings_handle</code></p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 107</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_settings'>settings</span>
- <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='const'>OpenStruct</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@settings</span><span class='rparen'>)</span>
- <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span>
- <span class='kw'>if</span> <span class='id identifier rubyid_overrides'>overrides</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
- <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_overrides'>overrides</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
- <span class='kw'>end</span>
- <span class='kw'>end</span>
- <span class='id identifier rubyid_s'>s</span>
- <span class='kw'>end</span></pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="method_details ">
- <h3 class="signature " id="settings_handle-class_method">
-
- + (<tt>Object</tt>) <strong>settings_handle</strong>
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>You can tweak the default settings directly here in code.</p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 118
- 119
- 120</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 118</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_settings_handle'>settings_handle</span>
- <span class='ivar'>@settings</span>
- <span class='kw'>end</span></pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="method_details ">
- <h3 class="signature " id="system-class_method">
-
- + (<tt>Object</tt>) <strong>system</strong>
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>Returns our system settings overridden by local configuration in overrides.</p>
-
- <p>This is a <em>copy</em> of the class system settings, suitable for editing
- and passing on.</p>
-
- <p>See the official guide for declared options.</p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 128</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_system'>system</span>
- <span class='id identifier rubyid_s'>s</span> <span class='op'>=</span> <span class='const'>OpenStruct</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@system</span><span class='rparen'>)</span>
- <span class='id identifier rubyid_s'>s</span><span class='period'>.</span><span class='id identifier rubyid_each_pair'>each_pair</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span>
- <span class='kw'>if</span> <span class='id identifier rubyid_overrides'>overrides</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
- <span class='id identifier rubyid_s'>s</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_overrides'>overrides</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='rbracket'>]</span>
- <span class='kw'>end</span>
- <span class='kw'>end</span>
- <span class='id identifier rubyid_s'>s</span>
- <span class='kw'>end</span></pre>
- </td>
- </tr>
- </table>
- </div>
-
- <div class="method_details ">
- <h3 class="signature " id="system_handle-class_method">
-
- + (<tt>Object</tt>) <strong>system_handle</strong>
-
-
-
-
-
- </h3><div class="docstring">
- <div class="discussion">
-
- <p>In case your code wants to edit the system classes directly. Typically used
- for test initialization.</p>
-
-
- </div>
- </div>
- <div class="tags">
-
-
- </div><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 140
- 141
- 142</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 140</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_system_handle'>system_handle</span>
- <span class='ivar'>@system</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="call-instance_method">
-
- - (<tt>Object</tt>) <strong>call</strong>(env)
-
-
-
-
-
- </h3><table class="source_code">
- <tr>
- <td>
- <pre class="lines">
-
-
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175</pre>
- </td>
- <td>
- <pre class="code"><span class="info file"># File 'lib/hws_settings.rb', line 162</span>
-
- <span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</span>
- <span class='id identifier rubyid_hws_settings'>hws_settings</span> <span class='op'>=</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_settings'>settings</span>
-
- <span class='id identifier rubyid_env'>env</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_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
- <span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^HTTP_X_PERFORCE_HELIX_WEB_SERVICES_(.*)$</span><span class='regexp_end'>/</span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_key'>key</span><span class='rparen'>)</span>
- <span class='kw'>if</span> <span class='id identifier rubyid_match'>match</span>
- <span class='id identifier rubyid_hws_settings'>hws_settings</span><span class='lbracket'>[</span><span class='id identifier rubyid_match'>match</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
- <span class='kw'>end</span>
- <span class='kw'>end</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'>hws_settings</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_hws_settings'>hws_settings</span>
-
- <span class='ivar'>@app</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_env'>env</span><span class='rparen'>)</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. |
10 years ago
|
|