coverage/index.html in contentful-2.15.4 vs coverage/index.html in contentful-2.16.0

- old
+ new

@@ -1,26587 +1 @@ -<!DOCTYPE html> -<html xmlns='http://www.w3.org/1999/xhtml'> - <head> - <title>Code coverage for Contentful.rb</title> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <script src='./assets/0.12.2/application.js' type='text/javascript'></script> - <link href='./assets/0.12.2/application.css' media='screen, projection, print' rel='stylesheet' type='text/css' /> - <link rel="shortcut icon" type="image/png" href="./assets/0.12.2/favicon_yellow.png" /> - <link rel="icon" type="image/png" href="./assets/0.12.2/favicon.png" /> - </head> - - <body> - <div id="loading"> - <img src="./assets/0.12.2/loading.gif" alt="loading"/> - </div> - <div id="wrapper" class="hide"> - <div class="timestamp">Generated <abbr class="timeago" title="2020-06-23T10:28:35+02:00">2020-06-23T10:28:35+02:00</abbr></div> - <ul class="group_tabs"></ul> - - <div id="content"> - <div class="file_list_container" id="AllFiles"> - <h2> - <span class="group_name">All Files</span> - (<span class="covered_percent"> - <span class="yellow"> - 83.17% -</span> - - </span> - covered at - <span class="covered_strength"> - <span class="green"> - 350.26 - </span> - </span> hits/line - ) - </h2> - - <a name="AllFiles"></a> - - <div> - <b>30</b> files in total. - </div> - - <div class="t-line-summary"> - <b>992</b> relevant lines, - <span class="green"><b>825</b> lines covered</span> and - <span class="red"><b>167</b> lines missed. </span> - (<span class="yellow"> - 83.17% -</span> -) - </div> - - - - <div class="file_list--responsive"> - <table class="file_list"> - <thead> - <tr> - <th>File</th> - <th class="cell--number">% covered</th> - <th class="cell--number">Lines</th> - <th class="cell--number">Relevant Lines</th> - <th class="cell--number">Lines covered</th> - <th class="cell--number">Lines missed</th> - <th class="cell--number">Avg. Hits / Line</th> - - </tr> - </thead> - <tbody> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#3fedb76a90c400a2ab9bbd654e039ccf6253d2a9" class="src_link" title="lib/contentful.rb">lib/contentful.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">3</td> - <td class="cell--number">3</td> - <td class="cell--number">3</td> - <td class="cell--number">0</td> - <td class="cell--number">1.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#b6c5821811d1187ec9381eec0b9cfb322e860a2d" class="src_link" title="lib/contentful/array.rb">lib/contentful/array.rb</a></td> - <td class="red strong cell--number t-file__coverage">52.78 %</td> - <td class="cell--number">83</td> - <td class="cell--number">36</td> - <td class="cell--number">19</td> - <td class="cell--number">17</td> - <td class="cell--number">16.47</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#c1c449b508149eb2edce536e631ce5a90be696e8" class="src_link" title="lib/contentful/array_like.rb">lib/contentful/array_like.rb</a></td> - <td class="red strong cell--number t-file__coverage">76.47 %</td> - <td class="cell--number">51</td> - <td class="cell--number">17</td> - <td class="cell--number">13</td> - <td class="cell--number">4</td> - <td class="cell--number">5.82</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#d0613614dae19c3fb1779f39f47a63e7c4ed55f7" class="src_link" title="lib/contentful/asset.rb">lib/contentful/asset.rb</a></td> - <td class="green strong cell--number t-file__coverage">91.11 %</td> - <td class="cell--number">109</td> - <td class="cell--number">45</td> - <td class="cell--number">41</td> - <td class="cell--number">4</td> - <td class="cell--number">150.91</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#ca50738290fab1babcf33a559944374dc5d716de" class="src_link" title="lib/contentful/base_resource.rb">lib/contentful/base_resource.rb</a></td> - <td class="green strong cell--number t-file__coverage">91.23 %</td> - <td class="cell--number">111</td> - <td class="cell--number">57</td> - <td class="cell--number">52</td> - <td class="cell--number">5</td> - <td class="cell--number">2125.96</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#6b0ca51ce3a888285f872933b4bc4ae2723aab7b" class="src_link" title="lib/contentful/client.rb">lib/contentful/client.rb</a></td> - <td class="yellow strong cell--number t-file__coverage">82.69 %</td> - <td class="cell--number">456</td> - <td class="cell--number">156</td> - <td class="cell--number">129</td> - <td class="cell--number">27</td> - <td class="cell--number">46.44</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#1292d4f31d978ae1cee231b3f7260c668c0634d5" class="src_link" title="lib/contentful/coercions.rb">lib/contentful/coercions.rb</a></td> - <td class="green strong cell--number t-file__coverage">93.15 %</td> - <td class="cell--number">175</td> - <td class="cell--number">73</td> - <td class="cell--number">68</td> - <td class="cell--number">5</td> - <td class="cell--number">32.08</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#4075088047199c07c796c654e9e7a78443f4b60c" class="src_link" title="lib/contentful/content_type.rb">lib/contentful/content_type.rb</a></td> - <td class="green strong cell--number t-file__coverage">94.44 %</td> - <td class="cell--number">33</td> - <td class="cell--number">18</td> - <td class="cell--number">17</td> - <td class="cell--number">1</td> - <td class="cell--number">37.39</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#830802c7c77e1b4ab0ef0b99bc7913fd3afe9bb7" class="src_link" title="lib/contentful/content_type_cache.rb">lib/contentful/content_type_cache.rb</a></td> - <td class="green strong cell--number t-file__coverage">91.67 %</td> - <td class="cell--number">26</td> - <td class="cell--number">12</td> - <td class="cell--number">11</td> - <td class="cell--number">1</td> - <td class="cell--number">268.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#056c9c1af53a536beddbeab7369d26cfc863f73e" class="src_link" title="lib/contentful/deleted_asset.rb">lib/contentful/deleted_asset.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">7</td> - <td class="cell--number">3</td> - <td class="cell--number">3</td> - <td class="cell--number">0</td> - <td class="cell--number">1.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#242d93eb996d6430a4adbe43f85a4a4e5887cd7b" class="src_link" title="lib/contentful/deleted_entry.rb">lib/contentful/deleted_entry.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">7</td> - <td class="cell--number">3</td> - <td class="cell--number">3</td> - <td class="cell--number">0</td> - <td class="cell--number">1.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#3b1d5362e4f458e8ce989558ae47ddc28b3acaa6" class="src_link" title="lib/contentful/entry.rb">lib/contentful/entry.rb</a></td> - <td class="green strong cell--number t-file__coverage">94.92 %</td> - <td class="cell--number">129</td> - <td class="cell--number">59</td> - <td class="cell--number">56</td> - <td class="cell--number">3</td> - <td class="cell--number">492.86</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#56d07721dbdd6cf2f2ff23c48d54ffc18ac99a35" class="src_link" title="lib/contentful/error.rb">lib/contentful/error.rb</a></td> - <td class="red strong cell--number t-file__coverage">69.47 %</td> - <td class="cell--number">211</td> - <td class="cell--number">95</td> - <td class="cell--number">66</td> - <td class="cell--number">29</td> - <td class="cell--number">0.71</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#2f7a9e1749c0a93c5a7c003ff017241255c3c924" class="src_link" title="lib/contentful/field.rb">lib/contentful/field.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">47</td> - <td class="cell--number">21</td> - <td class="cell--number">21</td> - <td class="cell--number">0</td> - <td class="cell--number">90.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#e6eaf0957906bf49880f9924c6f385f5cd1fcfcb" class="src_link" title="lib/contentful/fields_resource.rb">lib/contentful/fields_resource.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">139</td> - <td class="cell--number">65</td> - <td class="cell--number">65</td> - <td class="cell--number">0</td> - <td class="cell--number">645.52</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#04b3fd14c52ad40a24a41dffa5afc320d742aaf3" class="src_link" title="lib/contentful/file.rb">lib/contentful/file.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">20</td> - <td class="cell--number">10</td> - <td class="cell--number">10</td> - <td class="cell--number">0</td> - <td class="cell--number">388.40</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#326038585592bdbf23953c79bb097eab41f6ec04" class="src_link" title="lib/contentful/link.rb">lib/contentful/link.rb</a></td> - <td class="red strong cell--number t-file__coverage">66.67 %</td> - <td class="cell--number">17</td> - <td class="cell--number">6</td> - <td class="cell--number">4</td> - <td class="cell--number">2</td> - <td class="cell--number">0.67</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#35b57a9b22c1fcd953461401a180d834d2b8dea5" class="src_link" title="lib/contentful/locale.rb">lib/contentful/locale.rb</a></td> - <td class="red strong cell--number t-file__coverage">55.56 %</td> - <td class="cell--number">16</td> - <td class="cell--number">9</td> - <td class="cell--number">5</td> - <td class="cell--number">4</td> - <td class="cell--number">0.56</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#3d0cdf864bfb37890a1b5503b6cb711a85c3d49b" class="src_link" title="lib/contentful/location.rb">lib/contentful/location.rb</a></td> - <td class="red strong cell--number t-file__coverage">75.00 %</td> - <td class="cell--number">14</td> - <td class="cell--number">8</td> - <td class="cell--number">6</td> - <td class="cell--number">2</td> - <td class="cell--number">0.75</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#bbbba5eda9634eb37a81ea7388012e1a7a53afe1" class="src_link" title="lib/contentful/request.rb">lib/contentful/request.rb</a></td> - <td class="yellow strong cell--number t-file__coverage">88.00 %</td> - <td class="cell--number">61</td> - <td class="cell--number">25</td> - <td class="cell--number">22</td> - <td class="cell--number">3</td> - <td class="cell--number">42.56</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#b8f1801643b779a2e21c4d43a8820aa40431b875" class="src_link" title="lib/contentful/resource_builder.rb">lib/contentful/resource_builder.rb</a></td> - <td class="green strong cell--number t-file__coverage">94.62 %</td> - <td class="cell--number">168</td> - <td class="cell--number">93</td> - <td class="cell--number">88</td> - <td class="cell--number">5</td> - <td class="cell--number">553.00</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#5a24a097f420e75b7a65b182630651c35cd5508c" class="src_link" title="lib/contentful/resource_references.rb">lib/contentful/resource_references.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">18</td> - <td class="cell--number">6</td> - <td class="cell--number">6</td> - <td class="cell--number">0</td> - <td class="cell--number">1.50</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#969f6395b0ac18236f791301be37a3510deb670c" class="src_link" title="lib/contentful/response.rb">lib/contentful/response.rb</a></td> - <td class="red strong cell--number t-file__coverage">80.00 %</td> - <td class="cell--number">107</td> - <td class="cell--number">55</td> - <td class="cell--number">44</td> - <td class="cell--number">11</td> - <td class="cell--number">19.36</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#ccccc50b4170c449195a39307a1e569415956a0a" class="src_link" title="lib/contentful/space.rb">lib/contentful/space.rb</a></td> - <td class="red strong cell--number t-file__coverage">58.33 %</td> - <td class="cell--number">24</td> - <td class="cell--number">12</td> - <td class="cell--number">7</td> - <td class="cell--number">5</td> - <td class="cell--number">0.58</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#2352a80850808d433d28f0166f88e8227c663141" class="src_link" title="lib/contentful/support.rb">lib/contentful/support.rb</a></td> - <td class="green strong cell--number t-file__coverage">96.00 %</td> - <td class="cell--number">87</td> - <td class="cell--number">25</td> - <td class="cell--number">24</td> - <td class="cell--number">1</td> - <td class="cell--number">2986.92</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#1491e9d4a0595b3258b5cad069ffa162081ba868" class="src_link" title="lib/contentful/sync.rb">lib/contentful/sync.rb</a></td> - <td class="red strong cell--number t-file__coverage">44.74 %</td> - <td class="cell--number">85</td> - <td class="cell--number">38</td> - <td class="cell--number">17</td> - <td class="cell--number">21</td> - <td class="cell--number">0.45</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#f09793797afc8306b9404616d88504dd8c664967" class="src_link" title="lib/contentful/sync_page.rb">lib/contentful/sync_page.rb</a></td> - <td class="red strong cell--number t-file__coverage">57.89 %</td> - <td class="cell--number">50</td> - <td class="cell--number">19</td> - <td class="cell--number">11</td> - <td class="cell--number">8</td> - <td class="cell--number">0.58</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#050a52b24d2d26e6d3985502197b6b16430b6d57" class="src_link" title="spec/support/client.rb">spec/support/client.rb</a></td> - <td class="green strong cell--number t-file__coverage">100.00 %</td> - <td class="cell--number">6</td> - <td class="cell--number">2</td> - <td class="cell--number">2</td> - <td class="cell--number">0</td> - <td class="cell--number">32.50</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#e27718be0504682ee4e01674b758019cb26afa84" class="src_link" title="spec/support/json_responses.rb">spec/support/json_responses.rb</a></td> - <td class="red strong cell--number t-file__coverage">27.27 %</td> - <td class="cell--number">18</td> - <td class="cell--number">11</td> - <td class="cell--number">3</td> - <td class="cell--number">8</td> - <td class="cell--number">0.27</td> - - </tr> - - <tr class="t-file"> - <td class="strong t-file__name"><a href="#2a25af3e34af0ebdf7b10aa63fc4f4880c09bc14" class="src_link" title="spec/support/vcr.rb">spec/support/vcr.rb</a></td> - <td class="yellow strong cell--number t-file__coverage">90.00 %</td> - <td class="cell--number">16</td> - <td class="cell--number">10</td> - <td class="cell--number">9</td> - <td class="cell--number">1</td> - <td class="cell--number">7.10</td> - - </tr> - - </tbody> - </table> - </div> -</div> - - - - </div> - - <div id="footer"> - Generated by <a href="https://github.com/colszowka/simplecov">simplecov</a> v0.18.5 - and simplecov-html v0.12.2<br/> - using RSpec - </div> - - <div class="source_files"> - - <div class="source_table" id="3fedb76a90c400a2ab9bbd654e039ccf6253d2a9"> - <div class="header"> - <h3>lib/contentful.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>3</b> relevant lines. - <span class="green"><b>3</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;contentful/version&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;contentful/support&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;contentful/client&#39;</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="b6c5821811d1187ec9381eec0b9cfb322e860a2d"> - <div class="header"> - <h3>lib/contentful/array.rb</h3> - <h4> - <span class="red"> - 52.78% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>36</b> relevant lines. - <span class="green"><b>19</b> lines covered</span> and - <span class="red"><b>17</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;array_like&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # Resource Class for Arrays (e.g. search results)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # @see _ https://www.contentful.com/developers/documentation/content-delivery-api/#arrays</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # @note It also provides an #each method and includes Ruby&#39;s Enumerable module (gives you methods like #min, #first, etc)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Array &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> DEFAULT_LIMIT = 100</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby"> include Contentful::ArrayLike</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="14"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :total, :limit, :skip, :items, :endpoint, :query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="16"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item = nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> configuration = {</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> default_locale: Contentful::Client::DEFAULT_CONFIGURATION[:default_locale]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> },</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> endpoint = &#39;&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> query = {},</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> *)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="23"> - <span class="hits">83</span> - - - - - <code class="ruby"> super(item, configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="25"> - <span class="hits">83</span> - - - - - <code class="ruby"> @endpoint = endpoint</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="26"> - <span class="hits">83</span> - - - - - <code class="ruby"> @total = item.fetch(&#39;total&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="27"> - <span class="hits">83</span> - - - - - <code class="ruby"> @limit = item.fetch(&#39;limit&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="28"> - <span class="hits">83</span> - - - - - <code class="ruby"> @skip = item.fetch(&#39;skip&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="29"> - <span class="hits">83</span> - - - - - <code class="ruby"> @items = item.fetch(&#39;items&#39;, [])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="30"> - <span class="hits">83</span> - - - - - <code class="ruby"> @query = query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="34"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_dump</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="35"> - - - - - - <code class="ruby"> super.merge(endpoint: endpoint, query: query)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="39"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_load(raw_object)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="40"> - - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="41"> - - - - - - <code class="ruby"> @endpoint = raw_object[:endpoint]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="42"> - - - - - - <code class="ruby"> @total = raw.fetch(&#39;total&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="43"> - - - - - - <code class="ruby"> @limit = raw.fetch(&#39;limit&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="44"> - - - - - - <code class="ruby"> @skip = raw.fetch(&#39;skip&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="45"> - - - - - - <code class="ruby"> @query = raw_object[:query]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="46"> - - - - - - <code class="ruby"> @items = raw.fetch(&#39;items&#39;, []).map do |item|</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="47"> - - - - - - <code class="ruby"> require_relative &#39;resource_builder&#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="48"> - - - - - - <code class="ruby"> ResourceBuilder.new(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> item.raw,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> raw_object[:configuration].merge(includes_for_single: Support.includes_from_response(raw, false)),</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="51"> - - - - - - <code class="ruby"> item.respond_to?(:localized) ? item.localized : false,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> 0,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> raw_object[:configuration][:errors] || []</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"> ).run</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="59"> - <span class="hits">1</span> - - - - - <code class="ruby"> def inspect</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="60"> - - - - - - <code class="ruby"> &quot;&lt;#{repr_name} total=#{total} skip=#{skip} limit=#{limit}&gt;&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"> # Simplifies pagination</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"> # @return [Contentful::Array, false]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="66"> - <span class="hits">1</span> - - - - - <code class="ruby"> def next_page(client = nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="67"> - - - - - - <code class="ruby"> return false if client.nil?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="68"> - - - - - - <code class="ruby"> return false if items.first.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="70"> - - - - - - <code class="ruby"> new_skip = (skip || 0) + (limit || DEFAULT_LIMIT)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="72"> - - - - - - <code class="ruby"> plurals = {</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="73"> - - - - - - <code class="ruby"> &#39;Space&#39; =&gt; &#39;spaces&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"> &#39;ContentType&#39; =&gt; &#39;content_types&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> &#39;Entry&#39; =&gt; &#39;entries&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> &#39;Asset&#39; =&gt; &#39;assets&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> &#39;Locale&#39; =&gt; &#39;locales&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="80"> - - - - - - <code class="ruby"> client.public_send(plurals[items.first.type], query.merge(limit: limit, skip: new_skip))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="c1c449b508149eb2edce536e631ce5a90be696e8"> - <div class="header"> - <h3>lib/contentful/array_like.rb</h3> - <h4> - <span class="red"> - 76.47% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>17</b> relevant lines. - <span class="green"><b>13</b> lines covered</span> and - <span class="red"><b>4</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # Useful methods for array-like resources that can be included if an</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"> # :items property exists</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> module ArrayLike</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> include Enumerable</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Returns true for array-like resources</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> # @return [true]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> def array?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> true</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> # Delegates to items#each</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # @yield [Contentful::Entry, Contentful::Asset]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="17"> - <span class="hits">1</span> - - - - - <code class="ruby"> def each_item(&amp;block)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="18"> - <span class="hits">85</span> - - - - - <code class="ruby"> items.each(&amp;block)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="20"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias each each_item</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> # Delegates to items#empty?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> # @return [Boolean]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="25"> - <span class="hits">1</span> - - - - - <code class="ruby"> def empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3" data-linenumber="26"> - <span class="hits">3</span> - - - - - <code class="ruby"> items.empty?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"> # Delegetes to items#size</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> # @return [Number]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="32"> - <span class="hits">1</span> - - - - - <code class="ruby"> def size</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="33"> - - - - - - <code class="ruby"> items.size</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias length size</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> # Delegates to items#[]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> # @return [Contentful::Entry, Contentful::Asset]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="40"> - <span class="hits">1</span> - - - - - <code class="ruby"> def [](*args)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="41"> - - - - - - <code class="ruby"> items[*args]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # Delegates to items#last</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> # @return [Contentful::Entry, Contentful::Asset]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="47"> - <span class="hits">1</span> - - - - - <code class="ruby"> def last</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="48"> - - - - - - <code class="ruby"> items.last</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="d0613614dae19c3fb1779f39f47a63e7c4ed55f7"> - <div class="header"> - <h3>lib/contentful/asset.rb</h3> - <h4> - <span class="green"> - 91.11% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>45</b> relevant lines. - <span class="green"><b>41</b> lines covered</span> and - <span class="red"><b>4</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;fields_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;file&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;resource_references&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # Resource class for Asset.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/#assets</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Asset &lt; FieldsResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> include Contentful::ResourceReferences</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_dump</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="13"> - <span class="hits">14</span> - - - - - <code class="ruby"> super.merge(raw: raw)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="17"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_load(raw_object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="18"> - <span class="hits">14</span> - - - - - <code class="ruby"> super(raw_object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="19"> - <span class="hits">14</span> - - - - - <code class="ruby"> create_files!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="20"> - <span class="hits">14</span> - - - - - <code class="ruby"> define_asset_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="24"> - <span class="hits">1</span> - - - - - <code class="ruby"> def known_link?(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="28" data-linenumber="25"> - <span class="hits">28</span> - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="29"> - <span class="hits">1</span> - - - - - <code class="ruby"> def inspect</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="30"> - - - - - - <code class="ruby"> &quot;&lt;#{repr_name} id=&#39;#{sys[:id]}&#39; url=&#39;#{url}&#39;&gt;&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="33"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="538" data-linenumber="34"> - <span class="hits">538</span> - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="covered" data-hits="538" data-linenumber="35"> - <span class="hits">538</span> - - - - - <code class="ruby"> create_files!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="538" data-linenumber="36"> - <span class="hits">538</span> - - - - - <code class="ruby"> define_asset_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> # Generates a URL for the Contentful Image API</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> # @param [Hash] options</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> # @option options [Integer] :width</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> # @option options [Integer] :height</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # @option options [String] :format</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> # @option options [String] :quality</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> # @option options [String] :focus</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> # @option options [String] :fit</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"> # @option options [String] :fl File Layering - &#39;progressive&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> # @option options [String] :background</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> # @see _ https://www.contentful.com/developers/documentation/content-delivery-api/#image-asset-resizing</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> # @return [String] Image API URL</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="53"> - <span class="hits">1</span> - - - - - <code class="ruby"> def image_url(options = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="54"> - <span class="hits">4</span> - - - - - <code class="ruby"> query = build_query(options)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="56"> - <span class="hits">4</span> - - - - - <code class="ruby"> if query.empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="57"> - <span class="hits">4</span> - - - - - <code class="ruby"> file.url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="59"> - - - - - - <code class="ruby"> &quot;#{file.url}?#{URI.encode_www_form(query)}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="63"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias url image_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="65"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="67"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_query(options)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="69"> - <span class="hits">4</span> - - - - - <code class="ruby"> w: options[:w] || options[:width],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"> h: options[:h] || options[:height],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"> fm: options[:fm] || options[:format],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="72"> - - - - - - <code class="ruby"> q: options[:q] || options[:quality],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> f: options[:f] || options[:focus],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"> bg: options[:bg] || options[:background],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> r: options[:r] || options[:radius],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> fit: options[:fit],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> fl: options[:fl]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="36" data-linenumber="78"> - <span class="hits">36</span> - - - - - <code class="ruby"> }.reject { |_k, v| v.nil? }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> - - - - - <code class="ruby"> def create_files!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="82"> - <span class="hits">552</span> - - - - - <code class="ruby"> file_json = raw.fetch(&#39;fields&#39;, {}).fetch(&#39;file&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="83"> - <span class="hits">552</span> - - - - - <code class="ruby"> return if file_json.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1105" data-linenumber="85"> - <span class="hits">1105</span> - - - - - <code class="ruby"> is_localized = file_json.keys.none? { |f| %w[fileName contentType details url].include? f }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="86"> - <span class="hits">552</span> - - - - - <code class="ruby"> if is_localized</code> - </li> - </div> - - <div> - <li class="covered" data-hits="46" data-linenumber="87"> - <span class="hits">46</span> - - - - - <code class="ruby"> locales.each do |locale|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="47" data-linenumber="88"> - <span class="hits">47</span> - - - - - <code class="ruby"> @fields[locale][:file] = ::Contentful::File.new(file_json[locale.to_s] || {}, @configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="90"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="506" data-linenumber="91"> - <span class="hits">506</span> - - - - - <code class="ruby"> @fields[internal_resource_locale][:file] = ::Contentful::File.new(file_json, @configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="93"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="95"> - <span class="hits">1</span> - - - - - <code class="ruby"> def define_asset_methods!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="96"> - <span class="hits">552</span> - - - - - <code class="ruby"> define_singleton_method :title do</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="97"> - - - - - - <code class="ruby"> fields.fetch(:title, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="100"> - <span class="hits">552</span> - - - - - <code class="ruby"> define_singleton_method :description do</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="101"> - - - - - - <code class="ruby"> fields.fetch(:description, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="103"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="552" data-linenumber="104"> - <span class="hits">552</span> - - - - - <code class="ruby"> define_singleton_method :file do |wanted_locale = nil|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="105"> - <span class="hits">8</span> - - - - - <code class="ruby"> fields(wanted_locale)[:file]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="106"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="107"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="108"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="109"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="ca50738290fab1babcf33a559944374dc5d716de"> - <div class="header"> - <h3>lib/contentful/base_resource.rb</h3> - <h4> - <span class="green"> - 91.23% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>57</b> relevant lines. - <span class="green"><b>52</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="never" data-hits="" data-linenumber="1"> - - - - - - <code class="ruby"># frozen_string_literal: true</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;support&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # Base definition of a Contentful Resource containing Sys properties</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> class BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :raw, :default_locale, :sys</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"> # rubocop:disable Metrics/ParameterLists</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="11"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0, _errors = [])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="12"> - <span class="hits">3506</span> - - - - - <code class="ruby"> entries[&quot;#{item[&#39;sys&#39;][&#39;type&#39;]}:#{item[&#39;sys&#39;][&#39;id&#39;]}&quot;] = self if entries &amp;&amp; item.key?(&#39;sys&#39;)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="13"> - <span class="hits">3506</span> - - - - - <code class="ruby"> @raw = item</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="14"> - <span class="hits">3506</span> - - - - - <code class="ruby"> @default_locale = configuration[:default_locale]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="15"> - <span class="hits">3506</span> - - - - - <code class="ruby"> @depth = depth</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="16"> - <span class="hits">3506</span> - - - - - <code class="ruby"> @configuration = configuration</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="17"> - <span class="hits">3506</span> - - - - - <code class="ruby"> @sys = hydrate_sys</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="3506" data-linenumber="19"> - <span class="hits">3506</span> - - - - - <code class="ruby"> define_sys_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="23"> - <span class="hits">1</span> - - - - - <code class="ruby"> def inspect</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="24"> - - - - - - <code class="ruby"> &quot;&lt;#{repr_name} id=&#39;#{sys[:id]}&#39;&gt;&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> # Definition of equality</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="28"> - <span class="hits">1</span> - - - - - <code class="ruby"> def ==(other)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="29"> - - - - - - <code class="ruby"> self.class == other.class &amp;&amp; sys[:id] == other.sys[:id]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="33"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_dump</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="34"> - <span class="hits">50</span> - - - - - <code class="ruby"> entry_mapping = @configuration[:entry_mapping].each_with_object({}) do |(k, v), res|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="35"> - <span class="hits">8</span> - - - - - <code class="ruby"> res[k] = v.to_s</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> {</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> # loggers usually have a file handle that can&#39;t be marshalled, so let&#39;s not return that</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="40"> - <span class="hits">50</span> - - - - - <code class="ruby"> configuration: @configuration.merge(entry_mapping: entry_mapping, logger: nil),</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> raw: raw</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="46"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_load(raw_object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="47"> - <span class="hits">50</span> - - - - - <code class="ruby"> raw_object[:configuration][:entry_mapping] = raw_object[:configuration].fetch(:entry_mapping, {}).each_with_object({}) do |(k, v), res|</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"> begin</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="49"> - <span class="hits">8</span> - - - - - <code class="ruby"> v = v.to_s unless v.is_a?(::String)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="16" data-linenumber="50"> - <span class="hits">16</span> - - - - - <code class="ruby"> res[k] = v.split(&#39;::&#39;).inject(Object) { |o, c| o.const_get c }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"> rescue</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="52"> - <span class="hits">8</span> - - - - - <code class="ruby"> next</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="56"> - <span class="hits">50</span> - - - - - <code class="ruby"> @raw = raw_object[:raw]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="57"> - <span class="hits">50</span> - - - - - <code class="ruby"> @configuration = raw_object[:configuration]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="58"> - <span class="hits">50</span> - - - - - <code class="ruby"> @default_locale = @configuration[:default_locale]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="59"> - <span class="hits">50</span> - - - - - <code class="ruby"> @sys = hydrate_sys</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="60"> - <span class="hits">50</span> - - - - - <code class="ruby"> @depth = 0</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="61"> - <span class="hits">50</span> - - - - - <code class="ruby"> define_sys_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"> # Issues the request that was made to fetch this response again.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"> # Only works for Entry, Asset, ContentType and Space</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="66"> - <span class="hits">1</span> - - - - - <code class="ruby"> def reload(client = nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="67"> - - - - - - <code class="ruby"> return client.send(Support.snakify(self.class.name.split(&#39;::&#39;).last), id) unless client.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="69"> - - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="72"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="74"> - <span class="hits">1</span> - - - - - <code class="ruby"> def define_sys_methods!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3556" data-linenumber="75"> - <span class="hits">3556</span> - - - - - <code class="ruby"> @sys.each do |k, v|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="22579" data-linenumber="76"> - <span class="hits">22579</span> - - - - - <code class="ruby"> define_singleton_method(k) { v } unless self.class.method_defined?(k)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="80"> - <span class="hits">1</span> - - - - - <code class="ruby"> LINKS = %w[space contentType environment].freeze</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> - - - - - <code class="ruby"> TIMESTAMPS = %w[createdAt updatedAt deletedAt].freeze</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="83"> - <span class="hits">1</span> - - - - - <code class="ruby"> def hydrate_sys</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3556" data-linenumber="84"> - <span class="hits">3556</span> - - - - - <code class="ruby"> result = {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3556" data-linenumber="85"> - <span class="hits">3556</span> - - - - - <code class="ruby"> raw.fetch(&#39;sys&#39;, {}).each do |k, v|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="16318" data-linenumber="86"> - <span class="hits">16318</span> - - - - - <code class="ruby"> if LINKS.include?(k)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2078" data-linenumber="87"> - <span class="hits">2078</span> - - - - - <code class="ruby"> v = build_link(v)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14240" data-linenumber="88"> - <span class="hits">14240</span> - - - - - <code class="ruby"> elsif TIMESTAMPS.include?(k)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2594" data-linenumber="89"> - <span class="hits">2594</span> - - - - - <code class="ruby"> v = DateTime.parse(v)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="90"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="16318" data-linenumber="91"> - <span class="hits">16318</span> - - - - - <code class="ruby"> result[Support.snakify(k, @configuration[:use_camel_case]).to_sym] = v</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3556" data-linenumber="93"> - <span class="hits">3556</span> - - - - - <code class="ruby"> result</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="95"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="96"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="97"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="98"> - <span class="hits">1</span> - - - - - <code class="ruby"> def repr_name</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="99"> - - - - - - <code class="ruby"> self.class</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="100"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="101"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="102"> - <span class="hits">1</span> - - - - - <code class="ruby"> def internal_resource_locale</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3436" data-linenumber="103"> - <span class="hits">3436</span> - - - - - <code class="ruby"> sys.fetch(:locale, nil) || default_locale</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="105"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="106"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_link(item)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2171" data-linenumber="107"> - <span class="hits">2171</span> - - - - - <code class="ruby"> require_relative &#39;link&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2171" data-linenumber="108"> - <span class="hits">2171</span> - - - - - <code class="ruby"> ::Contentful::Link.new(item, @configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="109"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="110"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="111"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="6b0ca51ce3a888285f872933b4bc4ae2723aab7b"> - <div class="header"> - <h3>lib/contentful/client.rb</h3> - <h4> - <span class="yellow"> - 82.69% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>156</b> relevant lines. - <span class="green"><b>129</b> lines covered</span> and - <span class="red"><b>27</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;request&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;response&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;resource_builder&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;sync&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;content_type_cache&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;http&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;logger&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;rbconfig&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="11"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> # The client object is initialized with a space and a key and then used</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> # for querying resources from this space.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> # See README for details</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="15"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Client</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # Default configuration for Contentful::Client</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> DEFAULT_CONFIGURATION = {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="18"> - <span class="hits">1</span> - - - - - <code class="ruby"> secure: true,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> raise_errors: true,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> raise_for_empty_fields: true,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> dynamic_entries: :manual,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> api_url: &#39;cdn.contentful.com&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> api_version: 1,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> environment: &#39;master&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> authentication_mechanism: :header,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"> resource_builder: ResourceBuilder,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> resource_mapping: {},</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> entry_mapping: {},</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"> default_locale: &#39;en-US&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> raw_mode: false,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> gzip_encoded: true,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> logger: false,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> proxy_host: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> proxy_username: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> proxy_password: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> proxy_port: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> timeout_connect: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> timeout_read: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> timeout_write: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> max_rate_limit_retries: 1,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> max_rate_limit_wait: 60,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> max_include_resolution_depth: 20,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> use_camel_case: false,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> application_name: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> application_version: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> integration_name: nil,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> integration_version: nil</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="50"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :configuration, :logger, :proxy</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> # Wraps the actual HTTP request via proxy</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="54"> - <span class="hits">1</span> - - - - - <code class="ruby"> def self.get_http(url, query, headers = {}, proxy = {}, timeout = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="55"> - <span class="hits">85</span> - - - - - <code class="ruby"> http = HTTP[headers]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="56"> - <span class="hits">85</span> - - - - - <code class="ruby"> http = http.timeout(timeout) if timeout.any?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="57"> - <span class="hits">85</span> - - - - - <code class="ruby"> if proxy[:host]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="58"> - - - - - - <code class="ruby"> http.via(proxy[:host], proxy[:port], proxy[:username], proxy[:password]).get(url, params: query)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="59"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="60"> - <span class="hits">85</span> - - - - - <code class="ruby"> http.get(url, params: query)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"> # @see _ https://github.com/contentful/contentful.rb#client-configuration-options</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"> # @param [Hash] given_configuration</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"> # @option given_configuration [String] :space Required</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"> # @option given_configuration [String] :access_token Required</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> # @option given_configuration [String] :api_url Modifying this to &#39;preview.contentful.com&#39; gives you access to our Preview API</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"> # @option given_configuration [String] :api_version</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"> # @option given_configuration [String] :default_locale</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"> # @option given_configuration [String] :proxy_host</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="72"> - - - - - - <code class="ruby"> # @option given_configuration [String] :proxy_username</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> # @option given_configuration [String] :proxy_password</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :proxy_port</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :timeout_read</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :timeout_write</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :timeout_connect</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :max_rate_limit_retries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :max_rate_limit_wait</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"> # @option given_configuration [Number] :max_include_resolution_depth</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"> # @option given_configuration [Boolean] :use_camel_case</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"> # @option given_configuration [Boolean] :gzip_encoded</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"> # @option given_configuration [Boolean] :raw_mode</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"> # @option given_configuration [false, ::Logger] :logger</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby"> # @option given_configuration [::Logger::DEBUG, ::Logger::INFO, ::Logger::WARN, ::Logger::ERROR] :log_level</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"> # @option given_configuration [Boolean] :raise_errors</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="87"> - - - - - - <code class="ruby"> # @option given_configuration [Boolean] :raise_for_empty_fields</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="88"> - - - - - - <code class="ruby"> # @option given_configuration [::Array&lt;String&gt;] :dynamic_entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"> # @option given_configuration [::Hash&lt;String, Contentful::Resource&gt;] :resource_mapping</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="90"> - - - - - - <code class="ruby"> # @option given_configuration [::Hash&lt;String, Contentful::Resource&gt;] :entry_mapping</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="91"> - - - - - - <code class="ruby"> # @option given_configuration [String] :application_name</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> # @option given_configuration [String] :application_version</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="93"> - - - - - - <code class="ruby"> # @option given_configuration [String] :integration_name</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"> # @option given_configuration [String] :integration_version</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="95"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(given_configuration = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="96"> - <span class="hits">65</span> - - - - - <code class="ruby"> @configuration = default_configuration.merge(given_configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="97"> - <span class="hits">65</span> - - - - - <code class="ruby"> normalize_configuration!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="98"> - <span class="hits">65</span> - - - - - <code class="ruby"> validate_configuration!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="99"> - <span class="hits">65</span> - - - - - <code class="ruby"> setup_logger</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="100"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="101"> - <span class="hits">65</span> - - - - - <code class="ruby"> update_dynamic_entry_cache! if configuration[:dynamic_entries] == :auto</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="103"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="105"> - <span class="hits">1</span> - - - - - <code class="ruby"> def setup_logger</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="106"> - <span class="hits">65</span> - - - - - <code class="ruby"> @logger = configuration[:logger]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="107"> - <span class="hits">65</span> - - - - - <code class="ruby"> logger.level = configuration[:log_level] if logger &amp;&amp; configuration.key?(:log_level)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="108"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="109"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="110"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="111"> - <span class="hits">1</span> - - - - - <code class="ruby"> def proxy_params</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="112"> - - - - - - <code class="ruby"> {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="113"> - <span class="hits">85</span> - - - - - <code class="ruby"> host: configuration[:proxy_host],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="114"> - - - - - - <code class="ruby"> port: configuration[:proxy_port],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="115"> - - - - - - <code class="ruby"> username: configuration[:proxy_username],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="116"> - - - - - - <code class="ruby"> password: configuration[:proxy_password]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="117"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="118"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="119"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="120"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="121"> - <span class="hits">1</span> - - - - - <code class="ruby"> def timeout_params</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="122"> - - - - - - <code class="ruby"> {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="150" data-linenumber="123"> - <span class="hits">150</span> - - - - - <code class="ruby"> connect: configuration[:timeout_connect],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="124"> - - - - - - <code class="ruby"> read: configuration[:timeout_read],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="125"> - - - - - - <code class="ruby"> write: configuration[:timeout_write]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="450" data-linenumber="126"> - <span class="hits">450</span> - - - - - <code class="ruby"> }.reject { |_, value| value.nil? }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="127"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="128"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="129"> - - - - - - <code class="ruby"> # Returns the default configuration</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="130"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="131"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_configuration</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="132"> - <span class="hits">65</span> - - - - - <code class="ruby"> DEFAULT_CONFIGURATION.dup</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="133"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="134"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="135"> - - - - - - <code class="ruby"> # Gets the client&#39;s space</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="136"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="137"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="138"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="139"> - - - - - - <code class="ruby"> # @return [Contentful::Space]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="140"> - <span class="hits">1</span> - - - - - <code class="ruby"> def space(query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="141"> - - - - - - <code class="ruby"> Request.new(self, &#39;&#39;, query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="142"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="143"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="144"> - - - - - - <code class="ruby"> # Gets a specific content type</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="145"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="146"> - - - - - - <code class="ruby"> # @param [String] id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="147"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="148"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="149"> - - - - - - <code class="ruby"> # @return [Contentful::ContentType]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="150"> - <span class="hits">1</span> - - - - - <code class="ruby"> def content_type(id, query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="151"> - - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/content_types&#39;), query, id).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="152"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="153"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="154"> - - - - - - <code class="ruby"> # Gets a collection of content types</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="155"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="156"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="157"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="158"> - - - - - - <code class="ruby"> # @return [Contentful::Array&lt;Contentful::ContentType&gt;]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="159"> - <span class="hits">1</span> - - - - - <code class="ruby"> def content_types(query = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="22" data-linenumber="160"> - <span class="hits">22</span> - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/content_types&#39;), query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="161"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="162"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="163"> - - - - - - <code class="ruby"> # Gets a specific entry</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="164"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="165"> - - - - - - <code class="ruby"> # @param [String] id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="166"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="167"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="168"> - - - - - - <code class="ruby"> # @return [Contentful::Entry]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="169"> - <span class="hits">1</span> - - - - - <code class="ruby"> def entry(id, query = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="43" data-linenumber="170"> - <span class="hits">43</span> - - - - - <code class="ruby"> normalize_select!(query)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="43" data-linenumber="171"> - <span class="hits">43</span> - - - - - <code class="ruby"> query[&#39;sys.id&#39;] = id</code> - </li> - </div> - - <div> - <li class="covered" data-hits="43" data-linenumber="172"> - <span class="hits">43</span> - - - - - <code class="ruby"> entries = Request.new(self, environment_url(&#39;/entries&#39;), query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="173"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="43" data-linenumber="174"> - <span class="hits">43</span> - - - - - <code class="ruby"> return entries if configuration[:raw_mode]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="175"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="42" data-linenumber="176"> - <span class="hits">42</span> - - - - - <code class="ruby"> entries.first</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="177"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="178"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="179"> - - - - - - <code class="ruby"> # Gets a collection of entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="180"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="181"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="182"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="183"> - - - - - - <code class="ruby"> # @return [Contentful::Array&lt;Contentful::Entry&gt;]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="184"> - <span class="hits">1</span> - - - - - <code class="ruby"> def entries(query = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="20" data-linenumber="185"> - <span class="hits">20</span> - - - - - <code class="ruby"> normalize_select!(query)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="20" data-linenumber="186"> - <span class="hits">20</span> - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/entries&#39;), query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="187"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="188"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="189"> - - - - - - <code class="ruby"> # Gets a specific asset</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="190"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="191"> - - - - - - <code class="ruby"> # @param [String] id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="192"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="193"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="194"> - - - - - - <code class="ruby"> # @return [Contentful::Asset]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="195"> - <span class="hits">1</span> - - - - - <code class="ruby"> def asset(id, query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="196"> - - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/assets&#39;), query, id).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="197"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="198"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="199"> - - - - - - <code class="ruby"> # Gets a collection of assets</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="200"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="201"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="202"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="203"> - - - - - - <code class="ruby"> # @return [Contentful::Array&lt;Contentful::Asset&gt;]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="204"> - <span class="hits">1</span> - - - - - <code class="ruby"> def assets(query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="205"> - - - - - - <code class="ruby"> normalize_select!(query)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="206"> - - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/assets&#39;), query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="207"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="208"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="209"> - - - - - - <code class="ruby"> # Gets a collection of locales for the current environment</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="210"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="211"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="212"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="213"> - - - - - - <code class="ruby"> # @return [Contentful::Array&lt;Contentful::Locale&gt;]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="214"> - <span class="hits">1</span> - - - - - <code class="ruby"> def locales(query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="215"> - - - - - - <code class="ruby"> Request.new(self, environment_url(&#39;/locales&#39;), query).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="216"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="217"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="218"> - - - - - - <code class="ruby"> # Returns the base url for all of the client&#39;s requests</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="219"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="220"> - <span class="hits">1</span> - - - - - <code class="ruby"> def base_url</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="221"> - <span class="hits">85</span> - - - - - <code class="ruby"> &quot;http#{configuration[:secure] ? &#39;s&#39; : &#39;&#39;}://#{configuration[:api_url]}/spaces/#{configuration[:space]}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="222"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="223"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="224"> - - - - - - <code class="ruby"> # Returns the url aware of the currently selected environment</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="225"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="226"> - <span class="hits">1</span> - - - - - <code class="ruby"> def environment_url(path)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="227"> - <span class="hits">85</span> - - - - - <code class="ruby"> &quot;/environments/#{configuration[:environment]}#{path}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="228"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="229"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="230"> - - - - - - <code class="ruby"> # Returns the formatted part of the X-Contentful-User-Agent header</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="231"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="232"> - <span class="hits">1</span> - - - - - <code class="ruby"> def format_user_agent_header(key, values)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="258" data-linenumber="233"> - <span class="hits">258</span> - - - - - <code class="ruby"> header = &quot;#{key} #{values[:name]}&quot;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="258" data-linenumber="234"> - <span class="hits">258</span> - - - - - <code class="ruby"> header = &quot;#{header}/#{values[:version]}&quot; if values[:version]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="258" data-linenumber="235"> - <span class="hits">258</span> - - - - - <code class="ruby"> &quot;#{header};&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="236"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="237"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="238"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent sdk data</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="239"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="240"> - <span class="hits">1</span> - - - - - <code class="ruby"> def sdk_info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="241"> - <span class="hits">86</span> - - - - - <code class="ruby"> { name: &#39;contentful.rb&#39;, version: ::Contentful::VERSION }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="242"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="243"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="244"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent app data</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="245"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="246"> - <span class="hits">1</span> - - - - - <code class="ruby"> def app_info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="247"> - <span class="hits">86</span> - - - - - <code class="ruby"> { name: configuration[:application_name], version: configuration[:application_version] }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="248"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="249"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="250"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent integration data</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="251"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="252"> - <span class="hits">1</span> - - - - - <code class="ruby"> def integration_info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="253"> - <span class="hits">86</span> - - - - - <code class="ruby"> { name: configuration[:integration_name], version: configuration[:integration_version] }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="254"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="255"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="256"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent platform data</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="257"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="258"> - <span class="hits">1</span> - - - - - <code class="ruby"> def platform_info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="259"> - <span class="hits">86</span> - - - - - <code class="ruby"> { name: &#39;ruby&#39;, version: RUBY_VERSION }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="260"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="261"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="262"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent os data</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="263"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="264"> - <span class="hits">1</span> - - - - - <code class="ruby"> def os_info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="265"> - <span class="hits">86</span> - - - - - <code class="ruby"> os_name = case ::RbConfig::CONFIG[&#39;host_os&#39;]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="266"> - - - - - - <code class="ruby"> when /(cygwin|mingw|mswin|windows)/i then &#39;Windows&#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="267"> - - - - - - <code class="ruby"> when /(darwin|macruby|mac os)/i then &#39;macOS&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="268"> - <span class="hits">86</span> - - - - - <code class="ruby"> when /(linux|bsd|aix|solarix)/i then &#39;Linux&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="269"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="270"> - <span class="hits">86</span> - - - - - <code class="ruby"> { name: os_name, version: Gem::Platform.local.version }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="271"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="272"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="273"> - - - - - - <code class="ruby"> # Returns the X-Contentful-User-Agent</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="274"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="275"> - <span class="hits">1</span> - - - - - <code class="ruby"> def contentful_user_agent</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="276"> - - - - - - <code class="ruby"> header = {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="277"> - <span class="hits">86</span> - - - - - <code class="ruby"> &#39;sdk&#39; =&gt; sdk_info,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="278"> - - - - - - <code class="ruby"> &#39;app&#39; =&gt; app_info,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="279"> - - - - - - <code class="ruby"> &#39;integration&#39; =&gt; integration_info,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="280"> - - - - - - <code class="ruby"> &#39;platform&#39; =&gt; platform_info,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="281"> - - - - - - <code class="ruby"> &#39;os&#39; =&gt; os_info</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="282"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="283"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="284"> - <span class="hits">86</span> - - - - - <code class="ruby"> result = []</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="285"> - <span class="hits">86</span> - - - - - <code class="ruby"> header.each do |key, values|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="430" data-linenumber="286"> - <span class="hits">430</span> - - - - - <code class="ruby"> next unless values[:name]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="258" data-linenumber="287"> - <span class="hits">258</span> - - - - - <code class="ruby"> result &lt;&lt; format_user_agent_header(key, values)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="288"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="289"> - <span class="hits">86</span> - - - - - <code class="ruby"> result.join(&#39; &#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="290"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="291"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="292"> - - - - - - <code class="ruby"> # Returns the headers used for the HTTP requests</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="293"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="294"> - <span class="hits">1</span> - - - - - <code class="ruby"> def request_headers</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="295"> - <span class="hits">86</span> - - - - - <code class="ruby"> headers = { &#39;X-Contentful-User-Agent&#39; =&gt; contentful_user_agent }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="296"> - <span class="hits">86</span> - - - - - <code class="ruby"> headers[&#39;Authorization&#39;] = &quot;Bearer #{configuration[:access_token]}&quot; if configuration[:authentication_mechanism] == :header</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="297"> - <span class="hits">86</span> - - - - - <code class="ruby"> headers[&#39;Content-Type&#39;] = &quot;application/vnd.contentful.delivery.v#{configuration[:api_version].to_i}+json&quot; if configuration[:api_version]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="298"> - <span class="hits">86</span> - - - - - <code class="ruby"> headers[&#39;Accept-Encoding&#39;] = &#39;gzip&#39; if configuration[:gzip_encoded]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="299"> - <span class="hits">86</span> - - - - - <code class="ruby"> headers</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="300"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="301"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="302"> - - - - - - <code class="ruby"> # Patches a query hash with the client configurations for queries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="303"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="304"> - <span class="hits">1</span> - - - - - <code class="ruby"> def request_query(query)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="305"> - <span class="hits">85</span> - - - - - <code class="ruby"> if configuration[:authentication_mechanism] == :query_string</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="306"> - - - - - - <code class="ruby"> query[&#39;access_token&#39;] = configuration[:access_token]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="307"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="308"> - <span class="hits">85</span> - - - - - <code class="ruby"> query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="309"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="310"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="311"> - - - - - - <code class="ruby"> # Get a Contentful::Request object</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="312"> - - - - - - <code class="ruby"> # Set second parameter to false to deactivate Resource building and</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="313"> - - - - - - <code class="ruby"> # return Response objects instead</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="314"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="315"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="316"> - <span class="hits">1</span> - - - - - <code class="ruby"> def get(request, build_resource = true)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="317"> - <span class="hits">85</span> - - - - - <code class="ruby"> retries_left = configuration[:max_rate_limit_retries]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="318"> - <span class="hits">85</span> - - - - - <code class="ruby"> result = nil</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="319"> - - - - - - <code class="ruby"> begin</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="320"> - <span class="hits">85</span> - - - - - <code class="ruby"> response = run_request(request)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="321"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="322"> - <span class="hits">85</span> - - - - - <code class="ruby"> return response if !build_resource || configuration[:raw_mode]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="323"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="84" data-linenumber="324"> - <span class="hits">84</span> - - - - - <code class="ruby"> return fail_response(response) if response.status != :ok</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="325"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="326"> - <span class="hits">83</span> - - - - - <code class="ruby"> result = do_build_resource(response)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="327"> - - - - - - <code class="ruby"> rescue UnparsableResource =&gt; error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="328"> - - - - - - <code class="ruby"> raise error if configuration[:raise_errors]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="329"> - - - - - - <code class="ruby"> return error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="330"> - - - - - - <code class="ruby"> rescue Contentful::RateLimitExceeded =&gt; rate_limit_error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="331"> - - - - - - <code class="ruby"> reset_time = rate_limit_error.reset_time.to_i</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="332"> - - - - - - <code class="ruby"> if should_retry(retries_left, reset_time, configuration[:max_rate_limit_wait])</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="333"> - - - - - - <code class="ruby"> retries_left -= 1</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="334"> - - - - - - <code class="ruby"> logger.info(retry_message(retries_left, reset_time)) if logger</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="335"> - - - - - - <code class="ruby"> sleep(reset_time * Random.new.rand(1.0..1.2))</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="336"> - - - - - - <code class="ruby"> retry</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="337"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="338"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="339"> - - - - - - <code class="ruby"> raise</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="340"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="341"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="342"> - <span class="hits">83</span> - - - - - <code class="ruby"> result</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="343"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="344"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="345"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="346"> - <span class="hits">1</span> - - - - - <code class="ruby"> def retry_message(retries_left, reset_time)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="347"> - - - - - - <code class="ruby"> message = &#39;Contentful API Rate Limit Hit! &#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="348"> - - - - - - <code class="ruby"> message += &quot;Retrying - Retries left: #{retries_left}&quot;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="349"> - - - - - - <code class="ruby"> message += &quot;- Time until reset (seconds): #{reset_time}&quot;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="350"> - - - - - - <code class="ruby"> message</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="351"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="352"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="353"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="354"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fail_response(response)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="355"> - <span class="hits">1</span> - - - - - <code class="ruby"> fail response.object if configuration[:raise_errors]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="356"> - - - - - - <code class="ruby"> response.object</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="357"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="358"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="359"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="360"> - <span class="hits">1</span> - - - - - <code class="ruby"> def should_retry(retries_left, reset_time, max_wait)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="361"> - - - - - - <code class="ruby"> retries_left &gt; 0 &amp;&amp; max_wait &gt; reset_time</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="362"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="363"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="364"> - - - - - - <code class="ruby"> # Runs request and parses Response</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="365"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="366"> - <span class="hits">1</span> - - - - - <code class="ruby"> def run_request(request)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="367"> - <span class="hits">85</span> - - - - - <code class="ruby"> url = request.absolute? ? request.url : base_url + request.url</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="368"> - <span class="hits">85</span> - - - - - <code class="ruby"> logger.info(request: { url: url, query: request.query, header: request_headers }) if logger</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="369"> - <span class="hits">85</span> - - - - - <code class="ruby"> Response.new(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="370"> - - - - - - <code class="ruby"> self.class.get_http(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="371"> - - - - - - <code class="ruby"> url,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="372"> - - - - - - <code class="ruby"> request_query(request.query),</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="373"> - - - - - - <code class="ruby"> request_headers,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="374"> - - - - - - <code class="ruby"> proxy_params,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="375"> - - - - - - <code class="ruby"> timeout_params</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="376"> - - - - - - <code class="ruby"> ), request</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="377"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="378"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="379"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="380"> - - - - - - <code class="ruby"> # Runs Resource Builder</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="381"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="382"> - <span class="hits">1</span> - - - - - <code class="ruby"> def do_build_resource(response)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="383"> - <span class="hits">83</span> - - - - - <code class="ruby"> logger.debug(response: response) if logger</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="384"> - <span class="hits">83</span> - - - - - <code class="ruby"> configuration[:resource_builder].new(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="385"> - - - - - - <code class="ruby"> response.object,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="386"> - - - - - - <code class="ruby"> configuration.merge(endpoint: response.request.endpoint),</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="387"> - <span class="hits">83</span> - - - - - <code class="ruby"> (response.request.query || {}).fetch(:locale, nil) == &#39;*&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="388"> - - - - - - <code class="ruby"> 0,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="389"> - - - - - - <code class="ruby"> [],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="390"> - - - - - - <code class="ruby"> response.request.query || {}</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="391"> - - - - - - <code class="ruby"> ).run</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="392"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="393"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="394"> - - - - - - <code class="ruby"> # Use this method together with the client&#39;s :dynamic_entries configuration.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="395"> - - - - - - <code class="ruby"> # See README for details.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="396"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="397"> - <span class="hits">1</span> - - - - - <code class="ruby"> def update_dynamic_entry_cache!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="22" data-linenumber="398"> - <span class="hits">22</span> - - - - - <code class="ruby"> return if configuration[:raw_mode]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="22" data-linenumber="399"> - <span class="hits">22</span> - - - - - <code class="ruby"> content_types(limit: 1000).map do |ct|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="400"> - <span class="hits">59</span> - - - - - <code class="ruby"> ContentTypeCache.cache_set(configuration[:space], ct.id, ct)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="401"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="402"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="403"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="404"> - - - - - - <code class="ruby"> # Use this method to manually register a dynamic entry</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="405"> - - - - - - <code class="ruby"> # See examples/dynamic_entries.rb</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="406"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="407"> - <span class="hits">1</span> - - - - - <code class="ruby"> def register_dynamic_entry(key, klass)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="408"> - - - - - - <code class="ruby"> ContentTypeCache.cache_set(configuration[:space], key, klass)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="409"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="410"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="411"> - - - - - - <code class="ruby"> # Create a new synchronisation object</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="412"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="413"> - - - - - - <code class="ruby"> # @param [Hash, String] options Options or Sync URL</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="414"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="415"> - - - - - - <code class="ruby"> # @note You will need to call #each_page or #first_page on it</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="416"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="417"> - - - - - - <code class="ruby"> # @return [Contentful::Sync]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="418"> - <span class="hits">1</span> - - - - - <code class="ruby"> def sync(options = { initial: true })</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="419"> - - - - - - <code class="ruby"> Sync.new(self, options)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="420"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="421"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="422"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="423"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="424"> - - - - - - <code class="ruby"> # If the query contains the :select operator, we enforce :sys properties.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="425"> - - - - - - <code class="ruby"> # The SDK requires sys.type to function properly, but as other of our SDKs</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="426"> - - - - - - <code class="ruby"> # require more parts of the :sys properties, we decided that every SDK should</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="427"> - - - - - - <code class="ruby"> # include the complete :sys block to provide consistency accross our SDKs.</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="428"> - <span class="hits">1</span> - - - - - <code class="ruby"> def normalize_select!(query)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="63" data-linenumber="429"> - <span class="hits">63</span> - - - - - <code class="ruby"> return unless query.key?(:select)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="430"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="431"> - <span class="hits">6</span> - - - - - <code class="ruby"> query[:select] = query[:select].split(&#39;,&#39;).map(&amp;:strip) if query[:select].is_a? String</code> - </li> - </div> - - <div> - <li class="covered" data-hits="13" data-linenumber="432"> - <span class="hits">13</span> - - - - - <code class="ruby"> query[:select] = query[:select].reject { |p| p.start_with?(&#39;sys.&#39;) }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="433"> - <span class="hits">6</span> - - - - - <code class="ruby"> query[:select] &lt;&lt; &#39;sys&#39; unless query[:select].include?(&#39;sys&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="434"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="435"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="436"> - <span class="hits">1</span> - - - - - <code class="ruby"> def normalize_configuration!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="325" data-linenumber="437"> - <span class="hits">325</span> - - - - - <code class="ruby"> %i[space access_token api_url default_locale].each { |s| configuration[s] = configuration[s].to_s }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="438"> - <span class="hits">65</span> - - - - - <code class="ruby"> configuration[:authentication_mechanism] = configuration[:authentication_mechanism].to_sym</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="439"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="440"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="441"> - <span class="hits">1</span> - - - - - <code class="ruby"> def validate_configuration!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="442"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;You will need to initialize a client with a :space&#39; if configuration[:space].empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="443"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;You will need to initialize a client with an :access_token&#39; if configuration[:access_token].empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="444"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;The client configuration needs to contain an :api_url&#39; if configuration[:api_url].empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="445"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;The client configuration needs to contain a :default_locale&#39; if configuration[:default_locale].empty?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="446"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;The :api_version must be a positive number or nil&#39; unless configuration[:api_version].to_i &gt;= 0</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="447"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;The authentication mechanism must be :header or :query_string&#39; unless %i[header query_string].include?(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="448"> - - - - - - <code class="ruby"> configuration[:authentication_mechanism]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="449"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="450"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;The :dynamic_entries mode must be :auto or :manual&#39; unless %i[auto manual].include?(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="451"> - - - - - - <code class="ruby"> configuration[:dynamic_entries]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="452"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="covered" data-hits="65" data-linenumber="453"> - <span class="hits">65</span> - - - - - <code class="ruby"> fail ArgumentError, &#39;Timeout parameters must be all omitted or all present&#39; unless timeout_params.empty? || timeout_params.length == 3</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="454"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="455"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="456"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="1292d4f31d978ae1cee231b3f7260c668c0634d5"> - <div class="header"> - <h3>lib/contentful/coercions.rb</h3> - <h4> - <span class="green"> - 93.15% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>73</b> relevant lines. - <span class="green"><b>68</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;location&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;link&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # Basic Coercion</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class BaseCoercion</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :value, :options</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(value, options = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="61" data-linenumber="9"> - <span class="hits">61</span> - - - - - <code class="ruby"> @value = value</code> - </li> - </div> - - <div> - <li class="covered" data-hits="61" data-linenumber="10"> - <span class="hits">61</span> - - - - - <code class="ruby"> @options = options</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> # Coerces value</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="14"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="5" data-linenumber="15"> - <span class="hits">5</span> - - - - - <code class="ruby"> value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> # Coercion for String Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="20"> - <span class="hits">1</span> - - - - - <code class="ruby"> class StringCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> # Coerces value to String</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="22"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="43" data-linenumber="23"> - <span class="hits">43</span> - - - - - <code class="ruby"> value.to_s</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> # Coercion for Text Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="28"> - <span class="hits">1</span> - - - - - <code class="ruby"> class TextCoercion &lt; StringCoercion; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> # Coercion for Symbol Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="31"> - <span class="hits">1</span> - - - - - <code class="ruby"> class SymbolCoercion &lt; StringCoercion; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> # Coercion for Integer Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="34"> - <span class="hits">1</span> - - - - - <code class="ruby"> class IntegerCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> # Coerces value to Integer</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="36"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="37"> - <span class="hits">1</span> - - - - - <code class="ruby"> value.to_i</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> # Coercion for Float Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="42"> - <span class="hits">1</span> - - - - - <code class="ruby"> class FloatCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> # Coerces value to Float</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="44"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="45"> - <span class="hits">1</span> - - - - - <code class="ruby"> value.to_f</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> # Coercion for Boolean Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="50"> - <span class="hits">1</span> - - - - - <code class="ruby"> class BooleanCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"> # Coerces value to Boolean</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="52"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> # rubocop:disable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="54"> - - - - - - <code class="ruby"> !!value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"> # rubocop:enable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="59"> - - - - - - <code class="ruby"> # Coercion for Date Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="60"> - <span class="hits">1</span> - - - - - <code class="ruby"> class DateCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> # Coerces value to DateTime</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="62"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="63"> - - - - - - <code class="ruby"> return nil if value.nil?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="64"> - - - - - - <code class="ruby"> return value if value.is_a?(Date)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="66"> - - - - - - <code class="ruby"> DateTime.parse(value)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"> # Coercion for Location Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="71"> - <span class="hits">1</span> - - - - - <code class="ruby"> class LocationCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="72"> - - - - - - <code class="ruby"> # Coerces value to Location</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="73"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="74"> - - - - - - <code class="ruby"> Location.new(value)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> # Coercion for Object Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="79"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ObjectCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"> # Coerces value to hash, symbolizing each key</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="82"> - <span class="hits">2</span> - - - - - <code class="ruby"> JSON.parse(JSON.dump(value), symbolize_names: true)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"> # Coercion for Link Types</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="87"> - - - - - - <code class="ruby"> # Nothing should be done here as include resolution is handled within</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="88"> - - - - - - <code class="ruby"> # entries due to depth handling (explained within Entry).</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"> # Only present as a placeholder for proper resolution within ContentType.</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="90"> - <span class="hits">1</span> - - - - - <code class="ruby"> class LinkCoercion &lt; BaseCoercion; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="91"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> # Coercion for Array Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="93"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ArrayCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"> # Coerces value for each element</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="95"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(*)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="96"> - <span class="hits">2</span> - - - - - <code class="ruby"> value.map do |e|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3" data-linenumber="97"> - <span class="hits">3</span> - - - - - <code class="ruby"> options[:coercion_class].new(e).coerce</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="100"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="101"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> # Coercion for RichText Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="103"> - <span class="hits">1</span> - - - - - <code class="ruby"> class RichTextCoercion &lt; BaseCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"> # Resolves includes and removes unresolvable nodes</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="105"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="7" data-linenumber="106"> - <span class="hits">7</span> - - - - - <code class="ruby"> coerce_block(value, configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="107"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="108"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="109"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="110"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="111"> - <span class="hits">1</span> - - - - - <code class="ruby"> def link?(node)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="226" data-linenumber="112"> - <span class="hits">226</span> - - - - - <code class="ruby"> !node[&#39;data&#39;].is_a?(::Contentful::Entry) &amp;&amp;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="113"> - - - - - - <code class="ruby"> !node.fetch(&#39;data&#39;, {}).empty? &amp;&amp;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="114"> - - - - - - <code class="ruby"> node[&#39;data&#39;][&#39;target&#39;]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="115"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="116"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="117"> - <span class="hits">1</span> - - - - - <code class="ruby"> def content_block?(node)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="211" data-linenumber="118"> - <span class="hits">211</span> - - - - - <code class="ruby"> !node.fetch(&#39;content&#39;, []).empty?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="119"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="120"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="121"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce_block(block, configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="122"> - <span class="hits">125</span> - - - - - <code class="ruby"> return block unless block.is_a?(Hash) &amp;&amp; block.key?(&#39;content&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="123"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="124"> - <span class="hits">125</span> - - - - - <code class="ruby"> invalid_nodes = []</code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="125"> - <span class="hits">125</span> - - - - - <code class="ruby"> coerced_nodes = {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="126"> - <span class="hits">125</span> - - - - - <code class="ruby"> block[&#39;content&#39;].each_with_index do |node, index|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="226" data-linenumber="127"> - <span class="hits">226</span> - - - - - <code class="ruby"> if link?(node)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="15" data-linenumber="128"> - <span class="hits">15</span> - - - - - <code class="ruby"> link = coerce_link(node, configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="129"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="15" data-linenumber="130"> - <span class="hits">15</span> - - - - - <code class="ruby"> if !link.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="131"> - <span class="hits">14</span> - - - - - <code class="ruby"> node[&#39;data&#39;][&#39;target&#39;] = link</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="132"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="133"> - <span class="hits">1</span> - - - - - <code class="ruby"> invalid_nodes &lt;&lt; index</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="134"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="211" data-linenumber="135"> - <span class="hits">211</span> - - - - - <code class="ruby"> elsif content_block?(node)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="118" data-linenumber="136"> - <span class="hits">118</span> - - - - - <code class="ruby"> coerced_nodes[index] = coerce_block(node, configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="137"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="138"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="139"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="140"> - <span class="hits">125</span> - - - - - <code class="ruby"> coerced_nodes.each do |index, coerced_node|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="118" data-linenumber="141"> - <span class="hits">118</span> - - - - - <code class="ruby"> block[&#39;content&#39;][index] = coerced_node</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="142"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="143"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="144"> - <span class="hits">125</span> - - - - - <code class="ruby"> invalid_nodes.each do |index|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="145"> - <span class="hits">1</span> - - - - - <code class="ruby"> block[&#39;content&#39;].delete_at(index)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="146"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="147"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="125" data-linenumber="148"> - <span class="hits">125</span> - - - - - <code class="ruby"> block</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="149"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="150"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="151"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce_link(node, configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="15" data-linenumber="152"> - <span class="hits">15</span> - - - - - <code class="ruby"> return node unless node.key?(&#39;data&#39;) &amp;&amp; node[&#39;data&#39;].key?(&#39;target&#39;)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="15" data-linenumber="153"> - <span class="hits">15</span> - - - - - <code class="ruby"> return node[&#39;data&#39;][&#39;target&#39;] unless node[&#39;data&#39;][&#39;target&#39;].is_a?(::Hash)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="154"> - <span class="hits">14</span> - - - - - <code class="ruby"> return node unless node[&#39;data&#39;][&#39;target&#39;][&#39;sys&#39;][&#39;type&#39;] == &#39;Link&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="155"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="14" data-linenumber="156"> - <span class="hits">14</span> - - - - - <code class="ruby"> return nil if Support.unresolvable?(node[&#39;data&#39;][&#39;target&#39;], configuration[:errors])</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="157"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="13" data-linenumber="158"> - <span class="hits">13</span> - - - - - <code class="ruby"> resource = Support.resource_for_link(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="159"> - - - - - - <code class="ruby"> node[&#39;data&#39;][&#39;target&#39;],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="160"> - - - - - - <code class="ruby"> configuration[:includes_for_single]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="161"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="162"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="163"> - - - - - - <code class="ruby"> # Resource is valid but unreachable</code> - </li> - </div> - - <div> - <li class="covered" data-hits="13" data-linenumber="164"> - <span class="hits">13</span> - - - - - <code class="ruby"> return Link.new(node[&#39;data&#39;][&#39;target&#39;], configuration) if resource.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="165"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="166"> - <span class="hits">8</span> - - - - - <code class="ruby"> ResourceBuilder.new(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="167"> - - - - - - <code class="ruby"> resource,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="168"> - - - - - - <code class="ruby"> configuration,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="169"> - - - - - - <code class="ruby"> configuration[:localized],</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="170"> - - - - - - <code class="ruby"> configuration[:depth] + 1,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="171"> - - - - - - <code class="ruby"> configuration[:errors]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="172"> - - - - - - <code class="ruby"> ).run</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="173"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="174"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="175"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="4075088047199c07c796c654e9e7a78443f4b60c"> - <div class="header"> - <h3>lib/contentful/content_type.rb</h3> - <h4> - <span class="green"> - 94.44% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>18</b> relevant lines. - <span class="green"><b>17</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;field&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;support&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # Resource Class for Content Types</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/#content-types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ContentType &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :name, :description, :fields, :display_field</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="11"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item, *)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="12"> - <span class="hits">59</span> - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="14"> - <span class="hits">59</span> - - - - - <code class="ruby"> @name = item.fetch(&#39;name&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="15"> - <span class="hits">59</span> - - - - - <code class="ruby"> @description = item.fetch(&#39;description&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="239" data-linenumber="16"> - <span class="hits">239</span> - - - - - <code class="ruby"> @fields = item.fetch(&#39;fields&#39;, []).map { |field| Field.new(field) }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="17"> - <span class="hits">59</span> - - - - - <code class="ruby"> @display_field = item.fetch(&#39;displayField&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> # Field definition for field</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="21"> - <span class="hits">1</span> - - - - - <code class="ruby"> def field_for(field_id)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="187" data-linenumber="22"> - <span class="hits">187</span> - - - - - <code class="ruby"> fields.detect { |f| Support.snakify(f.id) == Support.snakify(field_id) }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="25"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias displayField display_field</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="27"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="29"> - <span class="hits">1</span> - - - - - <code class="ruby"> def repr_name</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="30"> - - - - - - <code class="ruby"> &quot;#{super}[#{name}]&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="830802c7c77e1b4ab0ef0b99bc7913fd3afe9bb7"> - <div class="header"> - <h3>lib/contentful/content_type_cache.rb</h3> - <h4> - <span class="green"> - 91.67% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>12</b> relevant lines. - <span class="green"><b>11</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # Cache for Content Types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ContentTypeCache</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> @cache = {}</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class &lt;&lt; self</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :cache</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"> # Clears the Content Type Cache</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="11"> - <span class="hits">1</span> - - - - - <code class="ruby"> def self.clear!</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="12"> - - - - - - <code class="ruby"> @cache = {}</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> # Gets a Content Type from the Cache</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="16"> - <span class="hits">1</span> - - - - - <code class="ruby"> def self.cache_get(space_id, content_type_id)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3090" data-linenumber="17"> - <span class="hits">3090</span> - - - - - <code class="ruby"> @cache.fetch(space_id, {}).fetch(content_type_id.to_sym, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> # Sets a Content Type in the Cache</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="21"> - <span class="hits">1</span> - - - - - <code class="ruby"> def self.cache_set(space_id, content_type_id, klass)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="22"> - <span class="hits">59</span> - - - - - <code class="ruby"> @cache[space_id] ||= {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="23"> - <span class="hits">59</span> - - - - - <code class="ruby"> @cache[space_id][content_type_id.to_sym] = klass</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="056c9c1af53a536beddbeab7369d26cfc863f73e"> - <div class="header"> - <h3>lib/contentful/deleted_asset.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>3</b> relevant lines. - <span class="green"><b>3</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # Resource class for deleted entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/http/#sync-item-types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class DeletedAsset &lt; BaseResource; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="242d93eb996d6430a4adbe43f85a4a4e5887cd7b"> - <div class="header"> - <h3>lib/contentful/deleted_entry.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>3</b> relevant lines. - <span class="green"><b>3</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # Resource class for deleted entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/http/#sync-item-types</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class DeletedEntry &lt; BaseResource; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="3b1d5362e4f458e8ce989558ae47ddc28b3acaa6"> - <div class="header"> - <h3>lib/contentful/entry.rb</h3> - <h4> - <span class="green"> - 94.92% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>59</b> relevant lines. - <span class="green"><b>56</b> lines covered</span> and - <span class="red"><b>3</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;error&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;fields_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;content_type_cache&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;resource_references&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Resource class for Entry.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> # @see _ https://www.contentful.com/developers/documentation/content-delivery-api/#entries</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Entry &lt; FieldsResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> include Contentful::ResourceReferences</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> # Returns true for resources that are entries</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="13"> - <span class="hits">1</span> - - - - - <code class="ruby"> def entry?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="14"> - <span class="hits">4</span> - - - - - <code class="ruby"> true</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="17"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="19"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(field_id, value, includes, errors, entries = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4278" data-linenumber="20"> - <span class="hits">4278</span> - - - - - <code class="ruby"> if Support.link?(value)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1164" data-linenumber="21"> - <span class="hits">1164</span> - - - - - <code class="ruby"> return nil if Support.unresolvable?(value, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1163" data-linenumber="22"> - <span class="hits">1163</span> - - - - - <code class="ruby"> return build_nested_resource(value, includes, entries, errors)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3114" data-linenumber="24"> - <span class="hits">3114</span> - - - - - <code class="ruby"> return coerce_link_array(value, includes, errors, entries) if Support.link_array?(value)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="3084" data-linenumber="26"> - <span class="hits">3084</span> - - - - - <code class="ruby"> content_type_key = Support.snakify(&#39;contentType&#39;, @configuration[:use_camel_case])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3084" data-linenumber="27"> - <span class="hits">3084</span> - - - - - <code class="ruby"> content_type = ContentTypeCache.cache_get(sys[:space].id, sys[content_type_key.to_sym].id)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="3084" data-linenumber="29"> - <span class="hits">3084</span> - - - - - <code class="ruby"> unless content_type.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="30"> - <span class="hits">58</span> - - - - - <code class="ruby"> content_type_field = content_type.field_for(field_id)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="31"> - <span class="hits">58</span> - - - - - <code class="ruby"> coercion_configuration = @configuration.merge(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> includes_for_single:</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> @configuration.fetch(:includes_for_single, []) + includes,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> _entries_cache: entries,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> localized: localized,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> depth: @depth,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> errors: errors</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="39"> - <span class="hits">58</span> - - - - - <code class="ruby"> return content_type_field.coerce(value, coercion_configuration) unless content_type_field.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="3026" data-linenumber="42"> - <span class="hits">3026</span> - - - - - <code class="ruby"> super(field_id, value, includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="45"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce_link_array(value, includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="30" data-linenumber="46"> - <span class="hits">30</span> - - - - - <code class="ruby"> items = []</code> - </li> - </div> - - <div> - <li class="covered" data-hits="30" data-linenumber="47"> - <span class="hits">30</span> - - - - - <code class="ruby"> value.each do |link|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="54" data-linenumber="48"> - <span class="hits">54</span> - - - - - <code class="ruby"> nested_resource = build_nested_resource(link, includes, entries, errors) unless Support.unresolvable?(link, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="54" data-linenumber="49"> - <span class="hits">54</span> - - - - - <code class="ruby"> items &lt;&lt; nested_resource unless nested_resource.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="30" data-linenumber="52"> - <span class="hits">30</span> - - - - - <code class="ruby"> items</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"> # Maximum include depth is 10 in the API, but we raise it to 20 (by default),</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> # in case one of the included items has a reference in an upper level,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"> # so we can keep the include chain for that object as well</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> # Any included object after the maximum include resolution depth will be just a Link</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="59"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_nested_resource(value, includes, entries, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1212" data-linenumber="60"> - <span class="hits">1212</span> - - - - - <code class="ruby"> if @depth &lt; @configuration.fetch(:max_include_resolution_depth, 20)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1123" data-linenumber="61"> - <span class="hits">1123</span> - - - - - <code class="ruby"> resource = Support.resource_for_link(value, includes)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1123" data-linenumber="62"> - <span class="hits">1123</span> - - - - - <code class="ruby"> return resolve_include(resource, includes, entries, errors) unless resource.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="93" data-linenumber="65"> - <span class="hits">93</span> - - - - - <code class="ruby"> build_link(value)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="68"> - <span class="hits">1</span> - - - - - <code class="ruby"> def resolve_include(resource, includes, entries, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1119" data-linenumber="69"> - <span class="hits">1119</span> - - - - - <code class="ruby"> require_relative &#39;resource_builder&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1119" data-linenumber="71"> - <span class="hits">1119</span> - - - - - <code class="ruby"> ResourceBuilder.new(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="72"> - - - - - - <code class="ruby"> resource,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> @configuration.merge(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"> includes_for_single:</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> @configuration.fetch(:includes_for_single, []) + includes,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> _entries_cache: entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> ),</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> localized,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"> @depth + 1,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"> errors</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"> ).run</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="84"> - <span class="hits">1</span> - - - - - <code class="ruby"> def known_link?(name)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="191" data-linenumber="85"> - <span class="hits">191</span> - - - - - <code class="ruby"> field_name = name.to_sym</code> - </li> - </div> - - <div> - <li class="covered" data-hits="191" data-linenumber="86"> - <span class="hits">191</span> - - - - - <code class="ruby"> return true if known_contentful_object?(fields[field_name])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="222" data-linenumber="87"> - <span class="hits">222</span> - - - - - <code class="ruby"> fields[field_name].is_a?(Enumerable) &amp;&amp; fields[field_name].any? { |object| known_contentful_object?(object) }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="88"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="90"> - <span class="hits">1</span> - - - - - <code class="ruby"> def known_contentful_object?(object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="254" data-linenumber="91"> - <span class="hits">254</span> - - - - - <code class="ruby"> (object.is_a?(Contentful::Entry) || object.is_a?(Contentful::Asset))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="93"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="94"> - <span class="hits">1</span> - - - - - <code class="ruby"> def method_missing(name, *args, &amp;block)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="95"> - <span class="hits">6</span> - - - - - <code class="ruby"> return empty_field_error(name) if content_type_field?(name)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="96"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="97"> - <span class="hits">2</span> - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="100"> - <span class="hits">1</span> - - - - - <code class="ruby"> def respond_to_missing?(name, include_private = false)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="101"> - - - - - - <code class="ruby"> content_type_field?(name) || super</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="103"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="104"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="105"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="106"> - <span class="hits">1</span> - - - - - <code class="ruby"> def content_type_field?(name)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="107"> - <span class="hits">6</span> - - - - - <code class="ruby"> content_type_key = Support.snakify(&#39;contentType&#39;, @configuration[:use_camel_case])</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="108"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="109"> - <span class="hits">6</span> - - - - - <code class="ruby"> content_type = ContentTypeCache.cache_get(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="110"> - - - - - - <code class="ruby"> sys[:space].id,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="111"> - - - - - - <code class="ruby"> sys[content_type_key.to_sym].id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="112"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="113"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="114"> - <span class="hits">6</span> - - - - - <code class="ruby"> return false if content_type.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="115"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="6" data-linenumber="116"> - <span class="hits">6</span> - - - - - <code class="ruby"> !content_type.field_for(name).nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="117"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="118"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="119"> - <span class="hits">1</span> - - - - - <code class="ruby"> def empty_field_error(name)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4" data-linenumber="120"> - <span class="hits">4</span> - - - - - <code class="ruby"> return nil unless @configuration[:raise_for_empty_fields]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="121"> - <span class="hits">2</span> - - - - - <code class="ruby"> fail EmptyFieldError, name</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="122"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="123"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="124"> - <span class="hits">1</span> - - - - - <code class="ruby"> def repr_name</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="125"> - - - - - - <code class="ruby"> content_type_key = Support.snakify(&#39;contentType&#39;, @configuration[:use_camel_case]).to_sym</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="126"> - - - - - - <code class="ruby"> &quot;#{super}[#{sys[content_type_key].id}]&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="127"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="128"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="129"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="56d07721dbdd6cf2f2ff23c48d54ffc18ac99a35"> - <div class="header"> - <h3>lib/contentful/error.rb</h3> - <h4> - <span class="red"> - 69.47% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>95</b> relevant lines. - <span class="green"><b>66</b> lines covered</span> and - <span class="red"><b>29</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # All errors raised by the contentful gem are either instances of Contentful::Error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"> # or inherit from Contentful::Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Error &lt; StandardError</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :response</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(response)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> @response = response</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> super best_available_message</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> # Shortcut for creating specialized error classes</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> # USAGE rescue Contentful::Error[404]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="14"> - <span class="hits">1</span> - - - - - <code class="ruby"> def self.[](error_status_code)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> errors = {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="16"> - <span class="hits">1</span> - - - - - <code class="ruby"> 400 =&gt; BadRequest,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> 401 =&gt; Unauthorized,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> 403 =&gt; AccessDenied,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> 404 =&gt; NotFound,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> 429 =&gt; RateLimitExceeded,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> 500 =&gt; ServerError,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> 502 =&gt; BadGateway,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> 503 =&gt; ServiceUnavailable</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="26"> - <span class="hits">1</span> - - - - - <code class="ruby"> errors.key?(error_status_code) ? errors[error_status_code] : Error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="29"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="31"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="32"> - - - - - - <code class="ruby"> &quot;The following error was received: #{@response.raw.body}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> - - - - - <code class="ruby"> def handle_details(details)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="36"> - - - - - - <code class="ruby"> details.to_s</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="39"> - <span class="hits">1</span> - - - - - <code class="ruby"> def additional_info?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="40"> - <span class="hits">1</span> - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="43"> - <span class="hits">1</span> - - - - - <code class="ruby"> def additional_info</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="44"> - - - - - - <code class="ruby"> []</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="47"> - <span class="hits">1</span> - - - - - <code class="ruby"> def best_available_message</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"> error_message = [</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="49"> - <span class="hits">1</span> - - - - - <code class="ruby"> &quot;HTTP status code: #{@response.raw.status}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> ]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> begin</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="53"> - <span class="hits">1</span> - - - - - <code class="ruby"> response_json = @response.load_json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="54"> - <span class="hits">1</span> - - - - - <code class="ruby"> message = response_json.fetch(&#39;message&#39;, default_error_message)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="55"> - <span class="hits">1</span> - - - - - <code class="ruby"> details = response_json.fetch(&#39;details&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="56"> - <span class="hits">1</span> - - - - - <code class="ruby"> request_id = response_json.fetch(&#39;requestId&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="58"> - <span class="hits">1</span> - - - - - <code class="ruby"> error_message &lt;&lt; &quot;Message: #{message}&quot;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="59"> - <span class="hits">1</span> - - - - - <code class="ruby"> error_message &lt;&lt; &quot;Details: #{handle_details(details)}&quot; if details</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="60"> - <span class="hits">1</span> - - - - - <code class="ruby"> error_message &lt;&lt; &quot;Request ID: #{request_id}&quot; if request_id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> rescue</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="62"> - - - - - - <code class="ruby"> error_message &lt;&lt; &quot;Message: #{default_error_message}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="65"> - <span class="hits">1</span> - - - - - <code class="ruby"> error_message &lt;&lt; additional_info if additional_info?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="67"> - <span class="hits">1</span> - - - - - <code class="ruby"> error_message.join(&quot;\n&quot;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="70"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"> # 400</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="72"> - <span class="hits">1</span> - - - - - <code class="ruby"> class BadRequest &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="73"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="75"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="76"> - <span class="hits">1</span> - - - - - <code class="ruby"> &#39;The request was malformed or missing a required parameter.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="79"> - <span class="hits">1</span> - - - - - <code class="ruby"> def handle_details(details)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="80"> - - - - - - <code class="ruby"> return details if details.is_a?(String)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="82"> - - - - - - <code class="ruby"> handle_detail = proc do |detail|</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="83"> - - - - - - <code class="ruby"> return detail if detail.is_a?(String)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="84"> - - - - - - <code class="ruby"> detail.fetch(&#39;details&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="87"> - - - - - - <code class="ruby"> inner_details = details[&#39;errors&#39;].map { |detail| handle_detail[detail] }.reject(&amp;:nil?)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="88"> - - - - - - <code class="ruby"> inner_details.join(&quot;\n\t&quot;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="90"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="91"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="92"> - - - - - - <code class="ruby"> # 401</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="93"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Unauthorized &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="94"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="95"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="96"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="97"> - - - - - - <code class="ruby"> &#39;The authorization token was invalid.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="100"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="101"> - - - - - - <code class="ruby"> # 403</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="102"> - <span class="hits">1</span> - - - - - <code class="ruby"> class AccessDenied &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="103"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="105"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="106"> - - - - - - <code class="ruby"> &#39;The specified token does not have access to the requested resource.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="107"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="108"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="109"> - <span class="hits">1</span> - - - - - <code class="ruby"> def handle_details(details)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="110"> - - - - - - <code class="ruby"> &quot;\n\tReasons:\n\t\t#{details[&#39;reasons&#39;].join(&quot;\n\t\t&quot;)}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="111"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="112"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="113"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="114"> - - - - - - <code class="ruby"> # 404</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="115"> - <span class="hits">1</span> - - - - - <code class="ruby"> class NotFound &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="116"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="117"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="118"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="119"> - - - - - - <code class="ruby"> &#39;The requested resource or endpoint could not be found.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="120"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="121"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="122"> - <span class="hits">1</span> - - - - - <code class="ruby"> def handle_details(details)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="123"> - - - - - - <code class="ruby"> return details if details.is_a?(String)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="124"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="125"> - - - - - - <code class="ruby"> type = details[&#39;type&#39;] || (details[&#39;sys&#39;] || {})[&#39;type&#39;]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="126"> - - - - - - <code class="ruby"> message = &quot;The requested #{type} could not be found.&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="127"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="128"> - - - - - - <code class="ruby"> resource_id = details.fetch(&#39;id&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="129"> - - - - - - <code class="ruby"> message += &quot; ID: #{resource_id}.&quot; if resource_id</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="130"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="131"> - - - - - - <code class="ruby"> message</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="132"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="133"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="134"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="135"> - - - - - - <code class="ruby"> # 429</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="136"> - <span class="hits">1</span> - - - - - <code class="ruby"> class RateLimitExceeded &lt; Error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="137"> - - - - - - <code class="ruby"> # Rate Limit Reset Header Key</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="138"> - <span class="hits">1</span> - - - - - <code class="ruby"> RATE_LIMIT_RESET_HEADER_KEY = &#39;x-contentful-ratelimit-reset&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="139"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="140"> - <span class="hits">1</span> - - - - - <code class="ruby"> def reset_time?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="141"> - - - - - - <code class="ruby"> # rubocop:disable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="142"> - - - - - - <code class="ruby"> !!reset_time</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="143"> - - - - - - <code class="ruby"> # rubocop:enable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="144"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="145"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="146"> - - - - - - <code class="ruby"> # Time until next available request, in seconds.</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="147"> - <span class="hits">1</span> - - - - - <code class="ruby"> def reset_time</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="148"> - - - - - - <code class="ruby"> @reset_time ||= @response.raw[RATE_LIMIT_RESET_HEADER_KEY]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="149"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="150"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="151"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="152"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="153"> - <span class="hits">1</span> - - - - - <code class="ruby"> def additional_info?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="154"> - - - - - - <code class="ruby"> reset_time?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="155"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="156"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="157"> - <span class="hits">1</span> - - - - - <code class="ruby"> def additional_info</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="158"> - - - - - - <code class="ruby"> [&quot;Time until reset (seconds): #{reset_time}&quot;]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="159"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="160"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="161"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="162"> - - - - - - <code class="ruby"> &#39;Rate limit exceeded. Too many requests.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="163"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="164"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="165"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="166"> - - - - - - <code class="ruby"> # 500</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="167"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ServerError &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="168"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="169"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="170"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="171"> - - - - - - <code class="ruby"> &#39;Internal server error.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="172"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="173"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="174"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="175"> - - - - - - <code class="ruby"> # 502</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="176"> - <span class="hits">1</span> - - - - - <code class="ruby"> class BadGateway &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="177"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="178"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="179"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="180"> - - - - - - <code class="ruby"> &#39;The requested space is hibernated.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="181"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="182"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="183"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="184"> - - - - - - <code class="ruby"> # 503</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="185"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ServiceUnavailable &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="186"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="187"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="188"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="189"> - - - - - - <code class="ruby"> &#39;The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="190"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="191"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="192"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="193"> - - - - - - <code class="ruby"> # Raised when response is no valid json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="194"> - <span class="hits">1</span> - - - - - <code class="ruby"> class UnparsableJson &lt; Error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="195"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="196"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="197"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_error_message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="198"> - - - - - - <code class="ruby"> @response.error_message</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="199"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="200"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="201"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="202"> - - - - - - <code class="ruby"> # Raised when response is not parsable as a Contentful::Resource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="203"> - <span class="hits">1</span> - - - - - <code class="ruby"> class UnparsableResource &lt; StandardError; end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="204"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="205"> - - - - - - <code class="ruby"> # Raised when an undefined field is requested</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="206"> - <span class="hits">1</span> - - - - - <code class="ruby"> class EmptyFieldError &lt; StandardError</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="207"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(name)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="208"> - <span class="hits">2</span> - - - - - <code class="ruby"> super(&quot;The field &#39;#{name}&#39; is empty and unavailable in the response&quot;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="209"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="210"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="211"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="2f7a9e1749c0a93c5a7c003ff017241255c3c924"> - <div class="header"> - <h3>lib/contentful/field.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>21</b> relevant lines. - <span class="green"><b>21</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;location&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;coercions&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # A ContentType&#39;s field schema</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # See https://www.contentful.com/developers/documentation/content-management-api/#resources-content-types-fields</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Field</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> # Coercions from Contentful Types to Ruby native types</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> KNOWN_TYPES = {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> &#39;String&#39; =&gt; StringCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> &#39;Text&#39; =&gt; TextCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> &#39;Symbol&#39; =&gt; SymbolCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> &#39;Integer&#39; =&gt; IntegerCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> &#39;Number&#39; =&gt; FloatCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> &#39;Boolean&#39; =&gt; BooleanCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> &#39;Date&#39; =&gt; DateCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> &#39;Location&#39; =&gt; LocationCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> &#39;Object&#39; =&gt; ObjectCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> &#39;Array&#39; =&gt; ArrayCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> &#39;Link&#39; =&gt; LinkCoercion,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> &#39;RichText&#39; =&gt; RichTextCoercion</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="24"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :raw, :id, :name, :type, :link_type, :items, :required, :localized</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="26"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(json)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="27"> - <span class="hits">199</span> - - - - - <code class="ruby"> @raw = json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="28"> - <span class="hits">199</span> - - - - - <code class="ruby"> @id = json.fetch(&#39;id&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="29"> - <span class="hits">199</span> - - - - - <code class="ruby"> @name = json.fetch(&#39;name&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="30"> - <span class="hits">199</span> - - - - - <code class="ruby"> @type = json.fetch(&#39;type&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="31"> - <span class="hits">199</span> - - - - - <code class="ruby"> @link_type = json.fetch(&#39;linkType&#39;, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="32"> - <span class="hits">199</span> - - - - - <code class="ruby"> @items = json.key?(&#39;items&#39;) ? Field.new(json.fetch(&#39;items&#39;, {})) : nil</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="33"> - <span class="hits">199</span> - - - - - <code class="ruby"> @required = json.fetch(&#39;required&#39;, false)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="34"> - <span class="hits">199</span> - - - - - <code class="ruby"> @localized = json.fetch(&#39;localized&#39;, false)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> # Coerces value to proper type</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="38"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(value, configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="39"> - <span class="hits">58</span> - - - - - <code class="ruby"> return value if type.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="40"> - <span class="hits">58</span> - - - - - <code class="ruby"> return value if value.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="42"> - <span class="hits">58</span> - - - - - <code class="ruby"> options = {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="43"> - <span class="hits">58</span> - - - - - <code class="ruby"> options[:coercion_class] = KNOWN_TYPES[items.type] unless items.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="58" data-linenumber="44"> - <span class="hits">58</span> - - - - - <code class="ruby"> KNOWN_TYPES[type].new(value, options).coerce(configuration)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="e6eaf0957906bf49880f9924c6f385f5cd1fcfcb"> - <div class="header"> - <h3>lib/contentful/fields_resource.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>65</b> relevant lines. - <span class="green"><b>65</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="never" data-hits="" data-linenumber="1"> - - - - - - <code class="ruby"># frozen_string_literal: true</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;support&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Base definition of a Contentful Resource containing Field properties</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> class FieldsResource &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :localized</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> # rubocop:disable Metrics/ParameterLists</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item, _configuration, localized = false, includes = [], entries = {}, depth = 0, errors = [])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="13"> - <span class="hits">1188</span> - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="15"> - <span class="hits">1188</span> - - - - - <code class="ruby"> @configuration[:errors] = errors</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="16"> - <span class="hits">1188</span> - - - - - <code class="ruby"> @localized = localized</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="17"> - <span class="hits">1188</span> - - - - - <code class="ruby"> @fields = hydrate_fields(includes, entries, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="18"> - <span class="hits">1188</span> - - - - - <code class="ruby"> define_fields_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> # Returns all fields of the asset</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> # @return [Hash] fields for Resource on selected locale</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="24"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fields(wanted_locale = nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1714" data-linenumber="25"> - <span class="hits">1714</span> - - - - - <code class="ruby"> wanted_locale = internal_resource_locale if wanted_locale.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1714" data-linenumber="26"> - <span class="hits">1714</span> - - - - - <code class="ruby"> @fields.fetch(wanted_locale.to_s, {})</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"> # Returns all fields of the asset with locales nested by field</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> # @return [Hash] fields for Resource grouped by field name</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="32"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fields_with_locales</code> - </li> - </div> - - <div> - <li class="covered" data-hits="5" data-linenumber="33"> - <span class="hits">5</span> - - - - - <code class="ruby"> remapped_fields = {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="5" data-linenumber="34"> - <span class="hits">5</span> - - - - - <code class="ruby"> locales.each do |locale|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="35"> - <span class="hits">8</span> - - - - - <code class="ruby"> fields(locale).each do |name, value|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="38" data-linenumber="36"> - <span class="hits">38</span> - - - - - <code class="ruby"> remapped_fields[name] ||= {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="38" data-linenumber="37"> - <span class="hits">38</span> - - - - - <code class="ruby"> remapped_fields[name][locale.to_sym] = value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="5" data-linenumber="41"> - <span class="hits">5</span> - - - - - <code class="ruby"> remapped_fields</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # Provides a list of the available locales for a Resource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="45"> - <span class="hits">1</span> - - - - - <code class="ruby"> def locales</code> - </li> - </div> - - <div> - <li class="covered" data-hits="52" data-linenumber="46"> - <span class="hits">52</span> - - - - - <code class="ruby"> @fields.keys</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="50"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_dump</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="51"> - <span class="hits">50</span> - - - - - <code class="ruby"> super.merge(raw: raw_with_links, localized: localized)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="55"> - <span class="hits">1</span> - - - - - <code class="ruby"> def marshal_load(raw_object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="56"> - <span class="hits">50</span> - - - - - <code class="ruby"> super(raw_object)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="57"> - <span class="hits">50</span> - - - - - <code class="ruby"> @localized = raw_object[:localized]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="58"> - <span class="hits">50</span> - - - - - <code class="ruby"> @fields = hydrate_fields(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="59"> - - - - - - <code class="ruby"> raw_object[:configuration].fetch(:includes_for_single, []),</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"> {},</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> raw_object[:configuration].fetch(:errors, [])</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="63"> - <span class="hits">50</span> - - - - - <code class="ruby"> define_fields_methods!</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="67"> - <span class="hits">1</span> - - - - - <code class="ruby"> def raw_with_links</code> - </li> - </div> - - <div> - <li class="covered" data-hits="269" data-linenumber="68"> - <span class="hits">269</span> - - - - - <code class="ruby"> links = fields.keys.select { |property| known_link?(property) }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="69"> - <span class="hits">50</span> - - - - - <code class="ruby"> processed_raw = raw.clone</code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="70"> - <span class="hits">50</span> - - - - - <code class="ruby"> raw[&#39;fields&#39;].each do |k, v|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="233" data-linenumber="71"> - <span class="hits">233</span> - - - - - <code class="ruby"> links_key = Support.snakify(k, @configuration[:use_camel_case])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="233" data-linenumber="72"> - <span class="hits">233</span> - - - - - <code class="ruby"> processed_raw[&#39;fields&#39;][k] = links.include?(links_key.to_sym) ? send(links_key) : v</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="50" data-linenumber="75"> - <span class="hits">50</span> - - - - - <code class="ruby"> processed_raw</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="77"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="78"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="80"> - <span class="hits">1</span> - - - - - <code class="ruby"> def define_fields_methods!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1238" data-linenumber="81"> - <span class="hits">1238</span> - - - - - <code class="ruby"> fields.each do |k, v|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="5660" data-linenumber="82"> - <span class="hits">5660</span> - - - - - <code class="ruby"> define_singleton_method(k) { v } unless self.class.method_defined?(k)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="86"> - <span class="hits">1</span> - - - - - <code class="ruby"> def hydrate_localized_fields(includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="94" data-linenumber="87"> - <span class="hits">94</span> - - - - - <code class="ruby"> locale = internal_resource_locale</code> - </li> - </div> - - <div> - <li class="covered" data-hits="94" data-linenumber="88"> - <span class="hits">94</span> - - - - - <code class="ruby"> result = { locale =&gt; {} }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="94" data-linenumber="89"> - <span class="hits">94</span> - - - - - <code class="ruby"> raw[&#39;fields&#39;].each do |name, locales|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="393" data-linenumber="90"> - <span class="hits">393</span> - - - - - <code class="ruby"> locales.each do |loc, value|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="441" data-linenumber="91"> - <span class="hits">441</span> - - - - - <code class="ruby"> result[loc] ||= {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="441" data-linenumber="92"> - <span class="hits">441</span> - - - - - <code class="ruby"> name = Support.snakify(name, @configuration[:use_camel_case])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="441" data-linenumber="93"> - <span class="hits">441</span> - - - - - <code class="ruby"> result[loc][name.to_sym] = coerce(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"> name,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="95"> - - - - - - <code class="ruby"> value,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="96"> - - - - - - <code class="ruby"> includes,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="97"> - - - - - - <code class="ruby"> errors,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="100"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="101"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="94" data-linenumber="103"> - <span class="hits">94</span> - - - - - <code class="ruby"> result</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="105"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="106"> - <span class="hits">1</span> - - - - - <code class="ruby"> def hydrate_nonlocalized_fields(includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1142" data-linenumber="107"> - <span class="hits">1142</span> - - - - - <code class="ruby"> locale = internal_resource_locale</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1142" data-linenumber="108"> - <span class="hits">1142</span> - - - - - <code class="ruby"> result = { locale =&gt; {} }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1142" data-linenumber="109"> - <span class="hits">1142</span> - - - - - <code class="ruby"> raw[&#39;fields&#39;].each do |name, value|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4943" data-linenumber="110"> - <span class="hits">4943</span> - - - - - <code class="ruby"> name = Support.snakify(name, @configuration[:use_camel_case])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4943" data-linenumber="111"> - <span class="hits">4943</span> - - - - - <code class="ruby"> result[locale][name.to_sym] = coerce(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="112"> - - - - - - <code class="ruby"> name,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="113"> - - - - - - <code class="ruby"> value,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="114"> - - - - - - <code class="ruby"> includes,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="115"> - - - - - - <code class="ruby"> errors,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="116"> - - - - - - <code class="ruby"> entries</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="117"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="118"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="119"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1142" data-linenumber="120"> - <span class="hits">1142</span> - - - - - <code class="ruby"> result</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="121"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="122"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="123"> - <span class="hits">1</span> - - - - - <code class="ruby"> def hydrate_fields(includes, entries, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1238" data-linenumber="124"> - <span class="hits">1238</span> - - - - - <code class="ruby"> return {} unless raw.key?(&#39;fields&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="125"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1236" data-linenumber="126"> - <span class="hits">1236</span> - - - - - <code class="ruby"> if localized</code> - </li> - </div> - - <div> - <li class="covered" data-hits="94" data-linenumber="127"> - <span class="hits">94</span> - - - - - <code class="ruby"> hydrate_localized_fields(includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="128"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1142" data-linenumber="129"> - <span class="hits">1142</span> - - - - - <code class="ruby"> hydrate_nonlocalized_fields(includes, errors, entries)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="130"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="131"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="132"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="133"> - <span class="hits">1</span> - - - - - <code class="ruby"> protected</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="134"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="135"> - <span class="hits">1</span> - - - - - <code class="ruby"> def coerce(_field_id, value, _includes, _errors, _entries)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4132" data-linenumber="136"> - <span class="hits">4132</span> - - - - - <code class="ruby"> value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="137"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="138"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="139"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="04b3fd14c52ad40a24a41dffa5afc320d742aaf3"> - <div class="header"> - <h3>lib/contentful/file.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>10</b> relevant lines. - <span class="green"><b>10</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # An Assets&#39;s file info</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby"> class File</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(json, configuration)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="553" data-linenumber="5"> - <span class="hits">553</span> - - - - - <code class="ruby"> @configuration = configuration</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="553" data-linenumber="7"> - <span class="hits">553</span> - - - - - <code class="ruby"> define_fields!(json)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby"> def define_fields!(json)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="553" data-linenumber="13"> - <span class="hits">553</span> - - - - - <code class="ruby"> json.each do |k, v|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2212" data-linenumber="14"> - <span class="hits">2212</span> - - - - - <code class="ruby"> define_singleton_method Support.snakify(k, @configuration[:use_camel_case]) do</code> - </li> - </div> - - <div> - <li class="covered" data-hits="8" data-linenumber="15"> - <span class="hits">8</span> - - - - - <code class="ruby"> v</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="326038585592bdbf23953c79bb097eab41f6ec04"> - <div class="header"> - <h3>lib/contentful/link.rb</h3> - <h4> - <span class="red"> - 66.67% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>6</b> relevant lines. - <span class="green"><b>4</b> lines covered</span> and - <span class="red"><b>2</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # Resource Class for Links</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/#links</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Link &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Queries contentful for the Resource the Link is refering to</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> # Takes an optional query hash</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> def resolve(client, query = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="10"> - - - - - - <code class="ruby"> id_and_query = [(id unless link_type == &#39;Space&#39;)].compact + [query]</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> client.public_send(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> Contentful::Support.snakify(link_type).to_sym,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> *id_and_query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="35b57a9b22c1fcd953461401a180d834d2b8dea5"> - <div class="header"> - <h3>lib/contentful/locale.rb</h3> - <h4> - <span class="red"> - 55.56% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>9</b> relevant lines. - <span class="green"><b>5</b> lines covered</span> and - <span class="red"><b>4</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # A Locale definition as included in Space</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # Read more about Localization at https://www.contentful.com/developers/documentation/content-delivery-api/#i18n</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Locale &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :code, :name, :default, :fallback_code</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item, *)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="10"> - - - - - - <code class="ruby"> @code = item.fetch(&#39;code&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> @name = item.fetch(&#39;name&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="12"> - - - - - - <code class="ruby"> @default = item.fetch(&#39;default&#39;, false)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="13"> - - - - - - <code class="ruby"> @fallback_code = item.fetch(&#39;fallbackCode&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="3d0cdf864bfb37890a1b5503b6cb711a85c3d49b"> - <div class="header"> - <h3>lib/contentful/location.rb</h3> - <h4> - <span class="red"> - 75.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>8</b> relevant lines. - <span class="green"><b>6</b> lines covered</span> and - <span class="red"><b>2</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # Location Field Type</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"> # You can directly query for them: https://www.contentful.com/developers/documentation/content-delivery-api/#search-filter-geo</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Location</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :lat, :lon</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias latitude lat</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> alias longitude lon</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(json)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="10"> - - - - - - <code class="ruby"> @lat = json.fetch(&#39;lat&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> @lon = json.fetch(&#39;lon&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="bbbba5eda9634eb37a81ea7388012e1a7a53afe1"> - <div class="header"> - <h3>lib/contentful/request.rb</h3> - <h4> - <span class="yellow"> - 88.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>25</b> relevant lines. - <span class="green"><b>22</b> lines covered</span> and - <span class="red"><b>3</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # This object represents a request that is to be made. It gets initialized by the client</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"> # with domain specific logic. The client later uses the Request&#39;s #url and #query methods</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # to execute the HTTP request.</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Request</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :client, :type, :query, :id, :endpoint</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(client, endpoint, query = {}, id = nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="9"> - <span class="hits">85</span> - - - - - <code class="ruby"> @client = client</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="10"> - <span class="hits">85</span> - - - - - <code class="ruby"> @endpoint = endpoint</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="12"> - <span class="hits">85</span> - - - - - <code class="ruby"> @query = (normalize_query(query) if query &amp;&amp; !query.empty?)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="14"> - <span class="hits">85</span> - - - - - <code class="ruby"> if id</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="15"> - - - - - - <code class="ruby"> @type = :single</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # Given the deprecation of `URI::escape` and `URI::encode`</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> # it is needed to replace it with `URI::encode_www_form_component`.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> # This method, does replace spaces with `+` instead of `%20`.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> # Therefore, to keep backwards compatibility, we&#39;re replacing the resulting `+`</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> # back with `%20`.</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="21"> - - - - - - <code class="ruby"> @id = URI.encode_www_form_component(id).gsub(&#39;+&#39;, &#39;%20&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="23"> - <span class="hits">85</span> - - - - - <code class="ruby"> @type = :multi</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="24"> - <span class="hits">85</span> - - - - - <code class="ruby"> @id = nil</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> # Returns the final URL, relative to a contentful space</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="29"> - <span class="hits">1</span> - - - - - <code class="ruby"> def url</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="30"> - <span class="hits">85</span> - - - - - <code class="ruby"> &quot;#{@endpoint}#{@type == :single ? &quot;/#{id}&quot; : &#39;&#39;}&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> # Delegates the actual HTTP work to the client</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="34"> - <span class="hits">1</span> - - - - - <code class="ruby"> def get</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="35"> - <span class="hits">85</span> - - - - - <code class="ruby"> client.get(self)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> # Returns true if endpoint is an absolute url</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="39"> - <span class="hits">1</span> - - - - - <code class="ruby"> def absolute?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="40"> - <span class="hits">85</span> - - - - - <code class="ruby"> @endpoint.start_with?(&#39;http&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> # Returns a new Request object with the same data</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="44"> - <span class="hits">1</span> - - - - - <code class="ruby"> def copy</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="45"> - - - - - - <code class="ruby"> Marshal.load(Marshal.dump(self))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="48"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="50"> - <span class="hits">1</span> - - - - - <code class="ruby"> def normalize_query(query)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="81" data-linenumber="51"> - <span class="hits">81</span> - - - - - <code class="ruby"> Hash[</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> query.map do |key, value|</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> [</code> - </li> - </div> - - <div> - <li class="covered" data-hits="104" data-linenumber="54"> - <span class="hits">104</span> - - - - - <code class="ruby"> key.to_sym,</code> - </li> - </div> - - <div> - <li class="covered" data-hits="104" data-linenumber="55"> - <span class="hits">104</span> - - - - - <code class="ruby"> value.is_a?(::Array) ? value.join(&#39;,&#39;) : value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> ]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> ]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="59"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="b8f1801643b779a2e21c4d43a8820aa40431b875"> - <div class="header"> - <h3>lib/contentful/resource_builder.rb</h3> - <h4> - <span class="green"> - 94.62% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>93</b> relevant lines. - <span class="green"><b>88</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;error&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;space&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;content_type&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;entry&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;asset&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;array&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;link&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;deleted_entry&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;deleted_asset&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;locale&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> # Transforms a Contentful::Response into a Contentful::Resource or a Contentful::Error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> # See example/resource_mapping.rb for advanced usage</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="15"> - <span class="hits">1</span> - - - - - <code class="ruby"> class ResourceBuilder</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # Default Resource Mapping</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> # @see _ README for more information on Resource Mapping</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> DEFAULT_RESOURCE_MAPPING = {</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="19"> - <span class="hits">1</span> - - - - - <code class="ruby"> &#39;Space&#39; =&gt; Space,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> &#39;ContentType&#39; =&gt; ContentType,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> &#39;Entry&#39; =&gt; Entry,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> &#39;Asset&#39; =&gt; Asset,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> &#39;Array&#39; =&gt; Array,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby"> &#39;Link&#39; =&gt; Link,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> &#39;DeletedEntry&#39; =&gt; DeletedEntry,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"> &#39;DeletedAsset&#39; =&gt; DeletedAsset,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> &#39;Locale&#39; =&gt; Locale</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> }.freeze</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"> # Default Entry Mapping</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> # @see _ README for more information on Entry Mapping</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="31"> - <span class="hits">1</span> - - - - - <code class="ruby"> DEFAULT_ENTRY_MAPPING = {}.freeze</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> # Buildable Resources</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="33"> - <span class="hits">1</span> - - - - - <code class="ruby"> BUILDABLES = %w[Entry Asset ContentType Space DeletedEntry DeletedAsset Locale].freeze</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :json, :default_locale, :endpoint, :depth, :localized, :resource_mapping, :entry_mapping, :resource, :query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="37"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(json, configuration = {}, localized = false, depth = 0, errors = [], query = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="38"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @json = json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="39"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @default_locale = configuration.fetch(:default_locale, ::Contentful::Client::DEFAULT_CONFIGURATION[:default_locale])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="40"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @resource_mapping = default_resource_mapping.merge(configuration.fetch(:resource_mapping, {}))</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="41"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @entry_mapping = default_entry_mapping.merge(configuration.fetch(:entry_mapping, {}))</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="42"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @includes_for_single = configuration.fetch(:includes_for_single, [])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="43"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @localized = localized</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="44"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @depth = depth</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="45"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @endpoint = configuration.fetch(:endpoint, nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="46"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @configuration = configuration</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="47"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @resource_cache = configuration[:_entries_cache] || {}</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="48"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @errors = errors</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="49"> - <span class="hits">1210</span> - - - - - <code class="ruby"> @query = query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> # Starts the parsing process.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"> # @return [Contentful::Resource, Contentful::Error]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="55"> - <span class="hits">1</span> - - - - - <code class="ruby"> def run</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="56"> - <span class="hits">1210</span> - - - - - <code class="ruby"> return build_array if array?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1127" data-linenumber="57"> - <span class="hits">1127</span> - - - - - <code class="ruby"> build_single</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> rescue UnparsableResource =&gt; error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="59"> - - - - - - <code class="ruby"> error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="62"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="64"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_array</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="65"> - <span class="hits">83</span> - - - - - <code class="ruby"> includes = fetch_includes || @includes_for_single</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="66"> - <span class="hits">83</span> - - - - - <code class="ruby"> errors = fetch_errors || @errors</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="68"> - <span class="hits">83</span> - - - - - <code class="ruby"> result = json[&#39;items&#39;].map do |item|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="120" data-linenumber="69"> - <span class="hits">120</span> - - - - - <code class="ruby"> next if Support.unresolvable?(item, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="120" data-linenumber="70"> - <span class="hits">120</span> - - - - - <code class="ruby"> build_item(item, includes, errors)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="72"> - <span class="hits">83</span> - - - - - <code class="ruby"> array_class = fetch_array_class</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="73"> - <span class="hits">83</span> - - - - - <code class="ruby"> array_class.new(json.merge(&#39;items&#39; =&gt; result), @configuration, endpoint, query)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="76"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_single</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1127" data-linenumber="77"> - <span class="hits">1127</span> - - - - - <code class="ruby"> return if Support.unresolvable?(json, @errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1127" data-linenumber="78"> - <span class="hits">1127</span> - - - - - <code class="ruby"> includes = @includes_for_single</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1127" data-linenumber="79"> - <span class="hits">1127</span> - - - - - <code class="ruby"> build_item(json, includes, @errors)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="82"> - <span class="hits">1</span> - - - - - <code class="ruby"> def build_item(item, includes = [], errors = [])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3150" data-linenumber="83"> - <span class="hits">3150</span> - - - - - <code class="ruby"> item_type = BUILDABLES.detect { |b| b == item[&#39;sys&#39;][&#39;type&#39;] }</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="84"> - <span class="hits">1247</span> - - - - - <code class="ruby"> fail UnparsableResource, &#39;Item type is not known, could not parse&#39; if item_type.nil?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="85"> - <span class="hits">1247</span> - - - - - <code class="ruby"> item_class = resource_class(item)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="87"> - <span class="hits">1247</span> - - - - - <code class="ruby"> reuse_entries = @configuration.fetch(:reuse_entries, false)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="88"> - <span class="hits">1247</span> - - - - - <code class="ruby"> resource_cache = @resource_cache ? @resource_cache : {}</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="89"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="90"> - <span class="hits">1247</span> - - - - - <code class="ruby"> id = &quot;#{item[&#39;sys&#39;][&#39;type&#39;]}:#{item[&#39;sys&#39;][&#39;id&#39;]}&quot;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="91"> - <span class="hits">1247</span> - - - - - <code class="ruby"> resource = if reuse_entries &amp;&amp; resource_cache.key?(id)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="92"> - <span class="hits">2</span> - - - - - <code class="ruby"> resource_cache[id]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="93"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1245" data-linenumber="94"> - <span class="hits">1245</span> - - - - - <code class="ruby"> item_class.new(item, @configuration, localized?, includes, resource_cache, depth, errors)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="95"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="96"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="97"> - <span class="hits">1247</span> - - - - - <code class="ruby"> resource</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="98"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="99"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="100"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_includes</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="101"> - <span class="hits">83</span> - - - - - <code class="ruby"> Support.includes_from_response(json)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="103"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="104"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_errors</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="105"> - <span class="hits">83</span> - - - - - <code class="ruby"> json.fetch(&#39;errors&#39;, [])</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="106"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="107"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="108"> - <span class="hits">1</span> - - - - - <code class="ruby"> def resource_class(item)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1247" data-linenumber="109"> - <span class="hits">1247</span> - - - - - <code class="ruby"> return fetch_custom_resource_class(item) if %w[Entry DeletedEntry Asset DeletedAsset].include?(item[&#39;sys&#39;][&#39;type&#39;])</code> - </li> - </div> - - <div> - <li class="covered" data-hits="59" data-linenumber="110"> - <span class="hits">59</span> - - - - - <code class="ruby"> resource_mapping[item[&#39;sys&#39;][&#39;type&#39;]]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="111"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="112"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="113"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_custom_resource_class(item)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1188" data-linenumber="114"> - <span class="hits">1188</span> - - - - - <code class="ruby"> case item[&#39;sys&#39;][&#39;type&#39;]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="115"> - - - - - - <code class="ruby"> when &#39;Entry&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="650" data-linenumber="116"> - <span class="hits">650</span> - - - - - <code class="ruby"> resource_class = entry_mapping[item[&#39;sys&#39;][&#39;contentType&#39;][&#39;sys&#39;][&#39;id&#39;]]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="650" data-linenumber="117"> - <span class="hits">650</span> - - - - - <code class="ruby"> return resource_class unless resource_class.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="118"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="643" data-linenumber="119"> - <span class="hits">643</span> - - - - - <code class="ruby"> fetch_custom_resource_mapping(item, &#39;Entry&#39;, Entry)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="120"> - - - - - - <code class="ruby"> when &#39;Asset&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="538" data-linenumber="121"> - <span class="hits">538</span> - - - - - <code class="ruby"> fetch_custom_resource_mapping(item, &#39;Asset&#39;, Asset)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="122"> - - - - - - <code class="ruby"> when &#39;DeletedEntry&#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="123"> - - - - - - <code class="ruby"> fetch_custom_resource_mapping(item, &#39;DeletedEntry&#39;, DeletedEntry)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="124"> - - - - - - <code class="ruby"> when &#39;DeletedAsset&#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="125"> - - - - - - <code class="ruby"> fetch_custom_resource_mapping(item, &#39;DeletedAsset&#39;, DeletedAsset)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="126"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="127"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="128"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="129"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_custom_resource_mapping(item, type, default_class)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1181" data-linenumber="130"> - <span class="hits">1181</span> - - - - - <code class="ruby"> resources = resource_mapping[type]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1181" data-linenumber="131"> - <span class="hits">1181</span> - - - - - <code class="ruby"> return default_class if resources.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="132"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1181" data-linenumber="133"> - <span class="hits">1181</span> - - - - - <code class="ruby"> return resources if resources.is_a?(Class)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="134"> - - - - - - <code class="ruby"> return resources[item] if resources.respond_to?(:call)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="135"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="136"> - - - - - - <code class="ruby"> default_class</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="137"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="138"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="139"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_array_class</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="140"> - <span class="hits">83</span> - - - - - <code class="ruby"> return SyncPage if sync?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="141"> - <span class="hits">83</span> - - - - - <code class="ruby"> ::Contentful::Array</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="142"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="143"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="144"> - <span class="hits">1</span> - - - - - <code class="ruby"> def localized?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1245" data-linenumber="145"> - <span class="hits">1245</span> - - - - - <code class="ruby"> return true if @localized</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1151" data-linenumber="146"> - <span class="hits">1151</span> - - - - - <code class="ruby"> return true if array? &amp;&amp; sync?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1151" data-linenumber="147"> - <span class="hits">1151</span> - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="148"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="149"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="150"> - <span class="hits">1</span> - - - - - <code class="ruby"> def array?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2361" data-linenumber="151"> - <span class="hits">2361</span> - - - - - <code class="ruby"> json.fetch(&#39;sys&#39;, {}).fetch(&#39;type&#39;, &#39;&#39;) == &#39;Array&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="152"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="153"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="154"> - <span class="hits">1</span> - - - - - <code class="ruby"> def sync?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="199" data-linenumber="155"> - <span class="hits">199</span> - - - - - <code class="ruby"> json.fetch(&#39;nextSyncUrl&#39;, nil) || json.fetch(&#39;nextPageUrl&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="156"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="157"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="158"> - - - - - - <code class="ruby"> # The default mapping for #detect_resource_class</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="159"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_resource_mapping</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="160"> - <span class="hits">1210</span> - - - - - <code class="ruby"> DEFAULT_RESOURCE_MAPPING</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="161"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="162"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="163"> - - - - - - <code class="ruby"> # The default entry mapping</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="164"> - <span class="hits">1</span> - - - - - <code class="ruby"> def default_entry_mapping</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1210" data-linenumber="165"> - <span class="hits">1210</span> - - - - - <code class="ruby"> DEFAULT_ENTRY_MAPPING</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="166"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="167"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="168"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="5a24a097f420e75b7a65b182630651c35cd5508c"> - <div class="header"> - <h3>lib/contentful/resource_references.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>6</b> relevant lines. - <span class="green"><b>6</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"> # Method to retrieve references (incoming links) for a given entry or asset</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby"> module ResourceReferences</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # Gets a collection of entries which links to current entry</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # @param [Contentful::Client] client</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # @param [Hash] query</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> # @return [Contentful::Array&lt;Contentful::Entry&gt;, false]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> def incoming_references(client = nil, query = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="11"> - <span class="hits">2</span> - - - - - <code class="ruby"> return false unless client</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="13"> - <span class="hits">2</span> - - - - - <code class="ruby"> query = is_a?(Contentful::Entry) ? query.merge(links_to_entry: id) : query.merge(links_to_asset: id)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="2" data-linenumber="15"> - <span class="hits">2</span> - - - - - <code class="ruby"> client.entries(query)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="969f6395b0ac18236f791301be37a3510deb670c"> - <div class="header"> - <h3>lib/contentful/response.rb</h3> - <h4> - <span class="red"> - 80.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>55</b> relevant lines. - <span class="green"><b>44</b> lines covered</span> and - <span class="red"><b>11</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;error&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;multi_json&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;zlib&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # An object representing an answer by the contentful service. It is later used</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # to build a Resource, which is done by the ResourceBuilder.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> # The Response parses the http response (as returned by the underlying http library) to</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"> # a JSON object. Responses can be asked the following methods:</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> # - #raw (raw HTTP response by the HTTP library)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> # - #object (the parsed JSON object)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> # - #request (the request the response is refering to)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> # It also sets a #status which can be one of:</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> # - :ok (seems to be a valid resource object)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> # - :contentful_error (valid error object)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> # - :not_contentful (valid json, but missing the contentful&#39;s sys property)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> # - :unparsable_json (invalid json)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> # Error Repsonses also contain a:</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> # - :error_message</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="23"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Response</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="24"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :raw, :object, :status, :error_message, :request</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="26"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(raw, request = nil)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="27"> - <span class="hits">85</span> - - - - - <code class="ruby"> @raw = raw</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="28"> - <span class="hits">85</span> - - - - - <code class="ruby"> @request = request</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="29"> - <span class="hits">85</span> - - - - - <code class="ruby"> @status = :ok</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="31"> - <span class="hits">85</span> - - - - - <code class="ruby"> if valid_http_response?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="84" data-linenumber="32"> - <span class="hits">84</span> - - - - - <code class="ruby"> parse_json!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="33"> - <span class="hits">1</span> - - - - - <code class="ruby"> elsif no_content_response?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="34"> - - - - - - <code class="ruby"> @status = :no_content</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> - - - - - <code class="ruby"> elsif invalid_response?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="36"> - <span class="hits">1</span> - - - - - <code class="ruby"> parse_contentful_error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="37"> - - - - - - <code class="ruby"> elsif service_unavailable_response?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="38"> - - - - - - <code class="ruby"> service_unavailable_error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="40"> - - - - - - <code class="ruby"> parse_http_error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # Returns the JSON body of the response</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="45"> - <span class="hits">1</span> - - - - - <code class="ruby"> def load_json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="46"> - <span class="hits">86</span> - - - - - <code class="ruby"> MultiJson.load(unzip_response(raw))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="49"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="51"> - <span class="hits">1</span> - - - - - <code class="ruby"> def error_object?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="52"> - <span class="hits">1</span> - - - - - <code class="ruby"> object[&#39;sys&#39;][&#39;type&#39;] == &#39;Error&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="55"> - <span class="hits">1</span> - - - - - <code class="ruby"> def parse_contentful_error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="56"> - <span class="hits">1</span> - - - - - <code class="ruby"> @object = load_json</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="57"> - <span class="hits">1</span> - - - - - <code class="ruby"> @error_message = object[&#39;message&#39;] if error_object?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="58"> - <span class="hits">1</span> - - - - - <code class="ruby"> parse_http_error</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="59"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="61"> - <span class="hits">1</span> - - - - - <code class="ruby"> def valid_http_response?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="85" data-linenumber="62"> - <span class="hits">85</span> - - - - - <code class="ruby"> [200, 201].include?(raw.status)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="65"> - <span class="hits">1</span> - - - - - <code class="ruby"> def service_unavailable_response?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="66"> - - - - - - <code class="ruby"> @raw.status == 503</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="69"> - <span class="hits">1</span> - - - - - <code class="ruby"> def service_unavailable_error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="70"> - - - - - - <code class="ruby"> @status = :error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="71"> - - - - - - <code class="ruby"> @error_message = &#39;503 - Service Unavailable&#39;</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="72"> - - - - - - <code class="ruby"> @object = Error[@raw.status].new(self)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="74"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="75"> - <span class="hits">1</span> - - - - - <code class="ruby"> def parse_http_error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="76"> - <span class="hits">1</span> - - - - - <code class="ruby"> @status = :error</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="77"> - <span class="hits">1</span> - - - - - <code class="ruby"> @object = Error[raw.status].new(self)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="78"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="80"> - <span class="hits">1</span> - - - - - <code class="ruby"> def invalid_response?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> - - - - - <code class="ruby"> [400, 404].include?(raw.status)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="84"> - <span class="hits">1</span> - - - - - <code class="ruby"> def no_content_response?</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="85"> - <span class="hits">1</span> - - - - - <code class="ruby"> raw.to_s == &#39;&#39; &amp;&amp; raw.status == 204</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="87"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="88"> - <span class="hits">1</span> - - - - - <code class="ruby"> def parse_json!</code> - </li> - </div> - - <div> - <li class="covered" data-hits="84" data-linenumber="89"> - <span class="hits">84</span> - - - - - <code class="ruby"> @object = load_json</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="90"> - - - - - - <code class="ruby"> rescue MultiJson::LoadError =&gt; error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="91"> - - - - - - <code class="ruby"> @error_message = error.message</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="92"> - - - - - - <code class="ruby"> @status = :error</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="93"> - - - - - - <code class="ruby"> UnparsableJson.new(self)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="94"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="95"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="96"> - <span class="hits">1</span> - - - - - <code class="ruby"> def unzip_response(response)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="97"> - <span class="hits">86</span> - - - - - <code class="ruby"> parsed_response = response.to_s</code> - </li> - </div> - - <div> - <li class="covered" data-hits="86" data-linenumber="98"> - <span class="hits">86</span> - - - - - <code class="ruby"> if response.headers[&#39;Content-Encoding&#39;].eql?(&#39;gzip&#39;)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="49" data-linenumber="99"> - <span class="hits">49</span> - - - - - <code class="ruby"> sio = StringIO.new(parsed_response)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="49" data-linenumber="100"> - <span class="hits">49</span> - - - - - <code class="ruby"> gz = Zlib::GzipReader.new(sio)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="49" data-linenumber="101"> - <span class="hits">49</span> - - - - - <code class="ruby"> gz.read</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="102"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="covered" data-hits="37" data-linenumber="103"> - <span class="hits">37</span> - - - - - <code class="ruby"> parsed_response</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="104"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="105"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="106"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="107"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="ccccc50b4170c449195a39307a1e569415956a0a"> - <div class="header"> - <h3>lib/contentful/space.rb</h3> - <h4> - <span class="red"> - 58.33% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>12</b> relevant lines. - <span class="green"><b>7</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;locale&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # Resource class for Space.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby"> # https://www.contentful.com/developers/documentation/content-delivery-api/#spaces</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Space &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :name, :locales</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item, *)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> super</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="13"> - - - - - - <code class="ruby"> @name = item.fetch(&#39;name&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="14"> - - - - - - <code class="ruby"> @locales = item.fetch(&#39;locales&#39;, []).map { |locale| Locale.new(locale) }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="18"> - <span class="hits">1</span> - - - - - <code class="ruby"> def reload(client = nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="19"> - - - - - - <code class="ruby"> return client.space unless client.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="21"> - - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="24"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="2352a80850808d433d28f0166f88e8227c663141"> - <div class="header"> - <h3>lib/contentful/support.rb</h3> - <h4> - <span class="green"> - 96.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>25</b> relevant lines. - <span class="green"><b>24</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="never" data-hits="" data-linenumber="1"> - - - - - - <code class="ruby"># frozen_string_literal: true</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> # Utility methods used by the contentful gem</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> module Support</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class &lt;&lt; self</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Transforms CamelCase into snake_case (taken from zucker)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"> # @param [String] object camelCaseName</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"> # @param [Boolean] skip if true, skips returns original object</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> # @return [String] snake_case_name</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="13"> - <span class="hits">1</span> - - - - - <code class="ruby"> def snakify(object, skip = false)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="27483" data-linenumber="14"> - <span class="hits">27483</span> - - - - - <code class="ruby"> return object if skip</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="15"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="26508" data-linenumber="16"> - <span class="hits">26508</span> - - - - - <code class="ruby"> String(object)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> .gsub(/::/, &#39;/&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> .gsub(/([A-Z]+)([A-Z][a-z])/, &#39;\1_\2&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> .gsub(/([a-z\d])([A-Z])/, &#39;\1_\2&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> .tr(&#39;-&#39;, &#39;_&#39;)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> .downcase</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="23"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="24"> - <span class="hits">1</span> - - - - - <code class="ruby"> def unresolvable?(value, errors)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="2479" data-linenumber="25"> - <span class="hits">2479</span> - - - - - <code class="ruby"> return true if value.nil?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="2862" data-linenumber="27"> - <span class="hits">2862</span> - - - - - <code class="ruby"> errors.any? { |i| i.fetch(&#39;details&#39;, {}).fetch(&#39;id&#39;, nil) == value[&#39;sys&#39;][&#39;id&#39;] }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> # Checks if value is a link</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> # @param value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> # @return [true, false]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> - - - - - <code class="ruby"> def link?(value)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="4895" data-linenumber="36"> - <span class="hits">4895</span> - - - - - <code class="ruby"> value.is_a?(::Hash) &amp;&amp;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="37"> - - - - - - <code class="ruby"> value.fetch(&#39;sys&#39;, {}).fetch(&#39;type&#39;, &#39;&#39;) == &#39;Link&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> # Checks if value is an array of links</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> # @param value</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # @return [true, false]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="45"> - <span class="hits">1</span> - - - - - <code class="ruby"> def link_array?(value)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3114" data-linenumber="46"> - <span class="hits">3114</span> - - - - - <code class="ruby"> return link?(value[0]) if value.is_a?(::Array) &amp;&amp; !value.empty?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="2497" data-linenumber="48"> - <span class="hits">2497</span> - - - - - <code class="ruby"> false</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"> # Returns the resource that matches the link</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="52"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="53"> - - - - - - <code class="ruby"> # @param [Hash] link</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="54"> - - - - - - <code class="ruby"> # @param [::Array] includes</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> # @return [Hash]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="57"> - <span class="hits">1</span> - - - - - <code class="ruby"> def resource_for_link(link, includes)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1136" data-linenumber="58"> - <span class="hits">1136</span> - - - - - <code class="ruby"> includes.detect do |i|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="3111" data-linenumber="59"> - <span class="hits">3111</span> - - - - - <code class="ruby"> i[&#39;sys&#39;][&#39;id&#39;] == link[&#39;sys&#39;][&#39;id&#39;] &amp;&amp;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="60"> - - - - - - <code class="ruby"> i[&#39;sys&#39;][&#39;type&#39;] == link[&#39;sys&#39;][&#39;linkType&#39;]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="62"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="64"> - - - - - - <code class="ruby"> # Returns combined include array from an API Response</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="65"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"> # @param [Hash] json JSON Response</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="67"> - - - - - - <code class="ruby"> # @param [Bool] raw Response pre-proccessed?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"> # @return [Array]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="70"> - <span class="hits">1</span> - - - - - <code class="ruby"> def includes_from_response(json, raw = true)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="71"> - <span class="hits">83</span> - - - - - <code class="ruby"> includes = if raw</code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="72"> - <span class="hits">83</span> - - - - - <code class="ruby"> json[&#39;items&#39;].dup</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="73"> - - - - - - <code class="ruby"> else</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="74"> - - - - - - <code class="ruby"> json[&#39;items&#39;].map(&amp;:raw)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="77"> - <span class="hits">83</span> - - - - - <code class="ruby"> %w[Entry Asset].each do |type|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="166" data-linenumber="78"> - <span class="hits">166</span> - - - - - <code class="ruby"> if json.fetch(&#39;includes&#39;, {}).key?(type)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="81" data-linenumber="79"> - <span class="hits">81</span> - - - - - <code class="ruby"> includes.concat(json[&#39;includes&#39;].fetch(type, []))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="81"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="82"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="83" data-linenumber="83"> - <span class="hits">83</span> - - - - - <code class="ruby"> includes</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="86"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="87"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="1491e9d4a0595b3258b5cad069ffa162081ba868"> - <div class="header"> - <h3>lib/contentful/sync.rb</h3> - <h4> - <span class="red"> - 44.74% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>38</b> relevant lines. - <span class="green"><b>17</b> lines covered</span> and - <span class="red"><b>21</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;resource_builder&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;deleted_entry&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;deleted_asset&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;sync_page&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="7"> - - - - - - <code class="ruby"> # Resource class for Sync.</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"> # @see _ https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/synchronization</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> class Sync</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :next_sync_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="11"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="12"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(client, options_or_url)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="13"> - - - - - - <code class="ruby"> @client = client</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="14"> - - - - - - <code class="ruby"> @next_sync_url = nil</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="15"> - - - - - - <code class="ruby"> @first_page_options_or_url = options_or_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby"> # Iterates over all pages of the current sync</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="19"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> # @note Please Keep in Mind: Iterating fires a new request for each page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> # @yield [Contentful::SyncPage]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="23"> - <span class="hits">1</span> - - - - - <code class="ruby"> def each_page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="24"> - - - - - - <code class="ruby"> page = first_page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="25"> - - - - - - <code class="ruby"> yield page if block_given?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="27"> - - - - - - <code class="ruby"> until completed?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="28"> - - - - - - <code class="ruby"> page = page.next_page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="29"> - - - - - - <code class="ruby"> yield page if block_given?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="30"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="31"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"> # Returns the first sync result page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> # @return [Contentful::SyncPage]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="36"> - <span class="hits">1</span> - - - - - <code class="ruby"> def first_page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="37"> - - - - - - <code class="ruby"> get(@first_page_options_or_url)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="39"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> # Returns false as long as last sync page has not been reached</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"> # @return [Boolean]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="43"> - <span class="hits">1</span> - - - - - <code class="ruby"> def completed?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> # rubocop:disable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="45"> - - - - - - <code class="ruby"> !!next_sync_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="46"> - - - - - - <code class="ruby"> # rubocop:enable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="47"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> # Directly iterates over all resources that have changed</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="51"> - - - - - - <code class="ruby"> # @yield [Contentful::Entry, Contentful::Asset]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="52"> - <span class="hits">1</span> - - - - - <code class="ruby"> def each_item(&amp;block)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="53"> - - - - - - <code class="ruby"> each_page do |page|</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="54"> - - - - - - <code class="ruby"> page.each_item(&amp;block)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="55"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="56"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="57"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="58"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="59"> - <span class="hits">1</span> - - - - - <code class="ruby"> def get(options_or_url)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="60"> - - - - - - <code class="ruby"> page = fetch_page(options_or_url)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="61"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="62"> - - - - - - <code class="ruby"> return page if @client.configuration[:raw_mode]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="63"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="64"> - - - - - - <code class="ruby"> link_page_to_sync! page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="65"> - - - - - - <code class="ruby"> update_sync_state_from! page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="66"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="67"> - - - - - - <code class="ruby"> page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="68"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="69"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="70"> - <span class="hits">1</span> - - - - - <code class="ruby"> private</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="71"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="72"> - <span class="hits">1</span> - - - - - <code class="ruby"> def fetch_page(options_or_url)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="73"> - - - - - - <code class="ruby"> return Request.new(@client, options_or_url).get if options_or_url.is_a? String</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="74"> - - - - - - <code class="ruby"> Request.new(@client, @client.environment_url(&#39;/sync&#39;), options_or_url).get</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="75"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="76"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="77"> - <span class="hits">1</span> - - - - - <code class="ruby"> def link_page_to_sync!(page)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="78"> - - - - - - <code class="ruby"> page.instance_variable_set :@sync, self</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="79"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="80"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> - - - - - <code class="ruby"> def update_sync_state_from!(page)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="82"> - - - - - - <code class="ruby"> @next_sync_url = page.next_sync_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="83"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="84"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="85"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="f09793797afc8306b9404616d88504dd8c664967"> - <div class="header"> - <h3>lib/contentful/sync_page.rb</h3> - <h4> - <span class="red"> - 57.89% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>19</b> relevant lines. - <span class="green"><b>11</b> lines covered</span> and - <span class="red"><b>8</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;base_resource&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="2"> - <span class="hits">1</span> - - - - - <code class="ruby">require_relative &#39;array_like&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby">module Contentful</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> # Wrapper Class for Sync results</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> class SyncPage &lt; BaseResource</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> include Contentful::ArrayLike</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> - - - - - <code class="ruby"> attr_reader :sync, :items, :next_sync_url, :next_page_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="11"> - <span class="hits">1</span> - - - - - <code class="ruby"> def initialize(item,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby"> configuration = {</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"> default_locale: Contentful::Client::DEFAULT_CONFIGURATION[:default_locale]</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="14"> - - - - - - <code class="ruby"> }, *)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="15"> - - - - - - <code class="ruby"> super(item, configuration, true)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="17"> - - - - - - <code class="ruby"> @items = item.fetch(&#39;items&#39;, [])</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="18"> - - - - - - <code class="ruby"> @next_sync_url = item.fetch(&#39;nextSyncUrl&#39;, nil)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="19"> - - - - - - <code class="ruby"> @next_page_url = item.fetch(&#39;nextPageUrl&#39;, nil)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="20"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="21"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="22"> - - - - - - <code class="ruby"> # @private</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="23"> - <span class="hits">1</span> - - - - - <code class="ruby"> def inspect</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="24"> - - - - - - <code class="ruby"> &quot;&lt;#{repr_name} next_sync_url=&#39;#{next_sync_url}&#39; last_page=#{last_page?}&gt;&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="25"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="26"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="27"> - - - - - - <code class="ruby"> # Requests next sync page from API</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="28"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="29"> - - - - - - <code class="ruby"> # @return [Contentful::SyncPage, void]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="30"> - <span class="hits">1</span> - - - - - <code class="ruby"> def next_page</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="31"> - - - - - - <code class="ruby"> sync.get(next_page_url) if next_page?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="32"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="33"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="34"> - - - - - - <code class="ruby"> # Returns wether there is a next sync page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="35"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="36"> - - - - - - <code class="ruby"> # @return [Boolean]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="37"> - <span class="hits">1</span> - - - - - <code class="ruby"> def next_page?</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="38"> - - - - - - <code class="ruby"> # rubocop:disable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="39"> - - - - - - <code class="ruby"> !!next_page_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="40"> - - - - - - <code class="ruby"> # rubocop:enable Style/DoubleNegation</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="41"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="42"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="43"> - - - - - - <code class="ruby"> # Returns wether it is the last sync page</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="44"> - - - - - - <code class="ruby"> #</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="45"> - - - - - - <code class="ruby"> # @return [Boolean]</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="46"> - <span class="hits">1</span> - - - - - <code class="ruby"> def last_page?</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="47"> - - - - - - <code class="ruby"> !next_page_url</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="48"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="49"> - - - - - - <code class="ruby"> end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="50"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="050a52b24d2d26e6d3985502197b6b16430b6d57"> - <div class="header"> - <h3>spec/support/client.rb</h3> - <h4> - <span class="green"> - 100.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>2</b> relevant lines. - <span class="green"><b>2</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">def create_client(options = {})</code> - </li> - </div> - - <div> - <li class="covered" data-hits="64" data-linenumber="2"> - <span class="hits">64</span> - - - - - <code class="ruby"> Contentful::Client.new({</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="3"> - - - - - - <code class="ruby"> space: &#39;cfexampleapi&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="4"> - - - - - - <code class="ruby"> access_token: &#39;b4c0n73n7fu1&#39;,</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="5"> - - - - - - <code class="ruby"> }.merge(options))</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="6"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="e27718be0504682ee4e01674b758019cb26afa84"> - <div class="header"> - <h3>spec/support/json_responses.rb</h3> - <h4> - <span class="red"> - 27.27% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>11</b> relevant lines. - <span class="green"><b>3</b> lines covered</span> and - <span class="red"><b>8</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;multi_json&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">def raw_fixture(which, status = 200, _as_json = false, headers = {})</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="4"> - - - - - - <code class="ruby"> object = Object.new</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="5"> - - - - - - <code class="ruby"> allow(object).to receive(:status) { status }</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="6"> - - - - - - <code class="ruby"> allow(object).to receive(:headers) { headers }</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="7"> - - - - - - <code class="ruby"> allow(object).to receive(:to_s) { File.read File.dirname(__FILE__) + &quot;/../fixtures/json_responses/#{which}.json&quot; }</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="8"> - - - - - - <code class="ruby"> allow(object).to receive(:body) { object.to_s }</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="9"> - - - - - - <code class="ruby"> allow(object).to receive(:[]) { |key| object.headers[key] }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="10"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="11"> - - - - - - <code class="ruby"> object</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="14"> - <span class="hits">1</span> - - - - - <code class="ruby">def json_fixture(which, _as_json = false)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="15"> - - - - - - <code class="ruby"> MultiJson.load(</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby"> File.read File.dirname(__FILE__) + &quot;/../fixtures/json_responses/#{which}.json&quot;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="17"> - - - - - - <code class="ruby"> )</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="18"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - <div class="source_table" id="2a25af3e34af0ebdf7b10aa63fc4f4880c09bc14"> - <div class="header"> - <h3>spec/support/vcr.rb</h3> - <h4> - <span class="yellow"> - 90.0% -</span> - - lines covered - </h4> - - - - <div class="t-line-summary"> - <b>10</b> relevant lines. - <span class="green"><b>9</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> - </div> - - - - </div> - - <pre> - <ol> - - <div> - <li class="covered" data-hits="1" data-linenumber="1"> - <span class="hits">1</span> - - - - - <code class="ruby">require &#39;vcr&#39;</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="2"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="3"> - <span class="hits">1</span> - - - - - <code class="ruby">VCR.configure do |c|</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="4"> - <span class="hits">1</span> - - - - - <code class="ruby"> c.cassette_library_dir = &#39;spec/fixtures/vcr_cassettes&#39;</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="5"> - <span class="hits">1</span> - - - - - <code class="ruby"> c.ignore_localhost = true</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="6"> - <span class="hits">1</span> - - - - - <code class="ruby"> c.hook_into :webmock</code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="7"> - <span class="hits">1</span> - - - - - <code class="ruby"> c.default_cassette_options = { record: :once }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="8"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="9"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="10"> - <span class="hits">1</span> - - - - - <code class="ruby">def vcr(name, &amp;block)</code> - </li> - </div> - - <div> - <li class="covered" data-hits="63" data-linenumber="11"> - <span class="hits">63</span> - - - - - <code class="ruby"> VCR.use_cassette(name, &amp;block)</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="12"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="13"> - - - - - - <code class="ruby"></code> - </li> - </div> - - <div> - <li class="covered" data-hits="1" data-linenumber="14"> - <span class="hits">1</span> - - - - - <code class="ruby">def expect_vcr(name, &amp;block)</code> - </li> - </div> - - <div> - <li class="missed" data-hits="0" data-linenumber="15"> - - - - - - <code class="ruby"> expect { VCR.use_cassette(name, &amp;block) }</code> - </li> - </div> - - <div> - <li class="never" data-hits="" data-linenumber="16"> - - - - - - <code class="ruby">end</code> - </li> - </div> - - </ol> - </pre> -</div> - - - </div> - </div> - </body> -</html> \ No newline at end of file