coverage/index.html in contentful-2.9.3 vs coverage/index.html in contentful-2.9.4

- old
+ new

@@ -3,40 +3,40 @@ <head> <title>Code coverage for Delivery.rb</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script src='./assets/0.10.2/application.js' type='text/javascript'></script> <link href='./assets/0.10.2/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'> - <link rel="shortcut icon" type="image/png" href="./assets/0.10.2/favicon_yellow.png" /> + <link rel="shortcut icon" type="image/png" href="./assets/0.10.2/favicon_red.png" /> <link rel="icon" type="image/png" href="./assets/0.10.2/favicon.png" /> </head> <body> <div id="loading"> <img src="./assets/0.10.2/loading.gif" alt="loading"/> </div> <div id="wrapper" style="display:none;"> - <div class="timestamp">Generated <abbr class="timeago" title="2018-09-12T13:32:20+02:00">2018-09-12T13:32:20+02:00</abbr></div> + <div class="timestamp">Generated <abbr class="timeago" title="2018-10-09T14:13:35+02:00">2018-10-09T14:13: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">82.67%</span></span> + (<span class="covered_percent"><span class="red">50.32%</span></span> covered at <span class="covered_strength"> <span class="green"> - 303.89 + 2.61 </span> </span> hits/line) </h2> <a name="AllFiles"></a> <div> <b>30</b> files in total. <b>952</b> relevant lines. - <span class="green"><b>787</b> lines covered</span> and - <span class="red"><b>165</b> lines missed </span> + <span class="green"><b>479</b> lines covered</span> and + <span class="red"><b>473</b> lines missed </span> </div> <table class="file_list"> <thead> <tr> <th>File</th> @@ -60,86 +60,86 @@ <td>1.0</td> </tr> <tr> <td class="strong"><a href="#1c9cd9f08977d8378a5d40be4bcddd0f07adc70d" class="src_link" title="lib/contentful/array.rb">lib/contentful/array.rb</a></td> - <td class="red strong">52.94 %</td> + <td class="red strong">35.29 %</td> <td>76</td> <td>34</td> - <td>18</td> - <td>16</td> - <td>10.2</td> + <td>12</td> + <td>22</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#bc50260d115630bb3b54a3ab26a820be409e35fe" class="src_link" title="lib/contentful/array_like.rb">lib/contentful/array_like.rb</a></td> - <td class="red strong">76.47 %</td> + <td class="red strong">64.71 %</td> <td>51</td> <td>17</td> - <td>13</td> - <td>4</td> - <td>4.2</td> + <td>11</td> + <td>6</td> + <td>0.6</td> </tr> <tr> <td class="strong"><a href="#167545c06de91266c75254299e80bf4aa23830c5" class="src_link" title="lib/contentful/asset.rb">lib/contentful/asset.rb</a></td> - <td class="green strong">92.5 %</td> + <td class="red strong">40.0 %</td> <td>103</td> <td>40</td> - <td>37</td> - <td>3</td> - <td>138.9</td> + <td>16</td> + <td>24</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#c9e25d4e0351ac49d13d793c5d0d6e10c428977b" class="src_link" title="lib/contentful/base_resource.rb">lib/contentful/base_resource.rb</a></td> - <td class="yellow strong">88.0 %</td> + <td class="red strong">34.0 %</td> <td>94</td> <td>50</td> - <td>44</td> - <td>6</td> - <td>2032.2</td> + <td>17</td> + <td>33</td> + <td>0.3</td> </tr> <tr> <td class="strong"><a href="#b0e31f234acd83c871a193ce29ed6b38e9adc98e" class="src_link" title="lib/contentful/client.rb">lib/contentful/client.rb</a></td> - <td class="yellow strong">82.12 %</td> + <td class="red strong">32.45 %</td> <td>434</td> <td>151</td> - <td>124</td> - <td>27</td> - <td>29.6</td> + <td>49</td> + <td>102</td> + <td>0.3</td> </tr> <tr> <td class="strong"><a href="#beb22ab5c60eaaa44a2cba4f526b8a2630d7a31a" class="src_link" title="lib/contentful/coercions.rb">lib/contentful/coercions.rb</a></td> - <td class="green strong">92.86 %</td> - <td>168</td> + <td class="red strong">45.71 %</td> + <td>170</td> <td>70</td> - <td>65</td> - <td>5</td> - <td>16.4</td> + <td>32</td> + <td>38</td> + <td>0.5</td> </tr> <tr> <td class="strong"><a href="#14469a10a1dbe8c3a1825151ed33eb9240571afb" class="src_link" title="lib/contentful/content_type.rb">lib/contentful/content_type.rb</a></td> - <td class="green strong">94.44 %</td> + <td class="red strong">61.11 %</td> <td>33</td> <td>18</td> - <td>17</td> - <td>1</td> - <td>19.6</td> + <td>11</td> + <td>7</td> + <td>0.6</td> </tr> <tr> <td class="strong"><a href="#a46b40f2e6381b7f2ac84d26e7bc008d4e6985eb" class="src_link" title="lib/contentful/content_type_cache.rb">lib/contentful/content_type_cache.rb</a></td> - <td class="green strong">91.67 %</td> + <td class="red strong">66.67 %</td> <td>26</td> <td>12</td> - <td>11</td> - <td>1</td> - <td>229.4</td> + <td>8</td> + <td>4</td> + <td>0.7</td> </tr> <tr> <td class="strong"><a href="#1dea44e36966a52d67e8c4ee9f13f956e974f16f" class="src_link" title="lib/contentful/deleted_asset.rb">lib/contentful/deleted_asset.rb</a></td> <td class="green strong">100.0 %</td> @@ -160,56 +160,56 @@ <td>1.0</td> </tr> <tr> <td class="strong"><a href="#97df464094b50c0508a4a014acd1a9beace447a1" class="src_link" title="lib/contentful/entry.rb">lib/contentful/entry.rb</a></td> - <td class="green strong">95.45 %</td> + <td class="red strong">36.36 %</td> <td>99</td> <td>44</td> - <td>42</td> - <td>2</td> - <td>546.5</td> + <td>16</td> + <td>28</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#98433a4cac96676bcf6b420f480c3d946ae0d0cb" class="src_link" title="lib/contentful/error.rb">lib/contentful/error.rb</a></td> - <td class="red strong">68.82 %</td> + <td class="green strong">98.92 %</td> <td>204</td> <td>93</td> - <td>64</td> - <td>29</td> - <td>0.7</td> + <td>92</td> + <td>1</td> + <td>10.8</td> </tr> <tr> <td class="strong"><a href="#4f89ce6a6221e537edb751b920a159e36a286ebd" class="src_link" title="lib/contentful/field.rb">lib/contentful/field.rb</a></td> - <td class="green strong">100.0 %</td> + <td class="red strong">38.1 %</td> <td>47</td> <td>21</td> - <td>21</td> - <td>0</td> - <td>40.2</td> + <td>8</td> + <td>13</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#eecf0f806597fc4b233727ac4e855ef0a80b0ade" class="src_link" title="lib/contentful/fields_resource.rb">lib/contentful/fields_resource.rb</a></td> - <td class="green strong">100.0 %</td> + <td class="red strong">29.23 %</td> <td>138</td> <td>65</td> - <td>65</td> - <td>0</td> - <td>540.3</td> + <td>19</td> + <td>46</td> + <td>0.3</td> </tr> <tr> <td class="strong"><a href="#5ed9fab05507df717ba26956cbb2b69097c50f41" class="src_link" title="lib/contentful/file.rb">lib/contentful/file.rb</a></td> - <td class="green strong">100.0 %</td> + <td class="red strong">50.0 %</td> <td>20</td> <td>10</td> - <td>10</td> - <td>0</td> - <td>346.9</td> + <td>5</td> + <td>5</td> + <td>0.5</td> </tr> <tr> <td class="strong"><a href="#f0b3585d50697809ca059b22b439d1c92b144124" class="src_link" title="lib/contentful/link.rb">lib/contentful/link.rb</a></td> <td class="red strong">66.67 %</td> @@ -240,46 +240,46 @@ <td>0.8</td> </tr> <tr> <td class="strong"><a href="#283a9b245e7a50ed1ed0ff2acf5bf3df054a6b05" class="src_link" title="lib/contentful/request.rb">lib/contentful/request.rb</a></td> - <td class="yellow strong">88.0 %</td> + <td class="red strong">40.0 %</td> <td>56</td> <td>25</td> - <td>22</td> - <td>3</td> - <td>29.4</td> + <td>10</td> + <td>15</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#ea1894a682921dc1a4b4d4255935538a0067cdfd" class="src_link" title="lib/contentful/resource_builder.rb">lib/contentful/resource_builder.rb</a></td> - <td class="green strong">94.57 %</td> + <td class="red strong">34.78 %</td> <td>166</td> <td>92</td> - <td>87</td> - <td>5</td> - <td>484.2</td> + <td>32</td> + <td>60</td> + <td>0.3</td> </tr> <tr> <td class="strong"><a href="#e5da896cf0ec7b470de392efaedd4669444f03b9" class="src_link" title="lib/contentful/resource_references.rb">lib/contentful/resource_references.rb</a></td> - <td class="green strong">100.0 %</td> + <td class="red strong">50.0 %</td> <td>18</td> <td>6</td> - <td>6</td> - <td>0</td> - <td>1.5</td> + <td>3</td> + <td>3</td> + <td>0.5</td> </tr> <tr> <td class="strong"><a href="#a54a8ab8e00230a5d92a5eb8a7e43f264a700db2" class="src_link" title="lib/contentful/response.rb">lib/contentful/response.rb</a></td> - <td class="red strong">80.0 %</td> + <td class="green strong">92.73 %</td> <td>107</td> <td>55</td> - <td>44</td> - <td>11</td> - <td>13.9</td> + <td>51</td> + <td>4</td> + <td>11.6</td> </tr> <tr> <td class="strong"><a href="#42827798fb56cb87d145e81d9ae46dfe97e9818b" class="src_link" title="lib/contentful/space.rb">lib/contentful/space.rb</a></td> <td class="red strong">58.33 %</td> @@ -290,16 +290,16 @@ <td>0.6</td> </tr> <tr> <td class="strong"><a href="#a300a2b740de48d4aa41783c879260ce3e4785ba" class="src_link" title="lib/contentful/support.rb">lib/contentful/support.rb</a></td> - <td class="green strong">96.0 %</td> + <td class="red strong">36.0 %</td> <td>85</td> <td>25</td> - <td>24</td> - <td>1</td> - <td>2529.3</td> + <td>9</td> + <td>16</td> + <td>0.4</td> </tr> <tr> <td class="strong"><a href="#84dd5a82215a9c45df06f943a5b88003a007c2e3" class="src_link" title="lib/contentful/sync.rb">lib/contentful/sync.rb</a></td> <td class="red strong">44.74 %</td> @@ -320,36 +320,36 @@ <td>0.6</td> </tr> <tr> <td class="strong"><a href="#5eb25a1b26ae65158e1a7386a20084d608b4951d" class="src_link" title="spec/support/client.rb">spec/support/client.rb</a></td> - <td class="green strong">100.0 %</td> + <td class="red strong">50.0 %</td> <td>6</td> <td>2</td> - <td>2</td> - <td>0</td> - <td>24.0</td> + <td>1</td> + <td>1</td> + <td>0.5</td> </tr> <tr> <td class="strong"><a href="#a4ba320676b73b8644cffc9dbb12bbe8e19a9934" class="src_link" title="spec/support/json_responses.rb">spec/support/json_responses.rb</a></td> - <td class="red strong">27.27 %</td> + <td class="green strong">90.91 %</td> <td>18</td> <td>11</td> - <td>3</td> - <td>8</td> - <td>0.3</td> + <td>10</td> + <td>1</td> + <td>47.4</td> </tr> <tr> <td class="strong"><a href="#027342a1ab3607ccd90fe9e5972948d26cbc8bed" class="src_link" title="spec/support/vcr.rb">spec/support/vcr.rb</a></td> - <td class="yellow strong">90.0 %</td> + <td class="red strong">80.0 %</td> <td>16</td> <td>10</td> - <td>9</td> - <td>1</td> - <td>5.6</td> + <td>8</td> + <td>2</td> + <td>0.8</td> </tr> </tbody> </table> </div> @@ -404,15 +404,15 @@ <div class="source_table" id="1c9cd9f08977d8378a5d40be4bcddd0f07adc70d"> <div class="header"> <h3>lib/contentful/array.rb</h3> - <h4><span class="red">52.94 %</span> covered</h4> + <h4><span class="red">35.29 %</span> covered</h4> <div> <b>34</b> relevant lines. - <span class="green"><b>18</b> lines covered</span> and - <span class="red"><b>16</b> lines missed.</span> + <span class="green"><b>12</b> lines covered</span> and + <span class="red"><b>22</b> lines missed.</span> </div> </div> <pre> <ol> @@ -535,49 +535,49 @@ <code class="ruby"> endpoint = &#39;&#39;, *)</code> </li> - <li class="covered" data-hits="56" data-linenumber="21"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="21"> + <code class="ruby"> super(item, configuration)</code> </li> <li class="never" data-hits="" data-linenumber="22"> <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="23"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="23"> + <code class="ruby"> @endpoint = endpoint</code> </li> - <li class="covered" data-hits="56" data-linenumber="24"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="24"> + <code class="ruby"> @total = item.fetch(&#39;total&#39;, nil)</code> </li> - <li class="covered" data-hits="56" data-linenumber="25"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="25"> + <code class="ruby"> @limit = item.fetch(&#39;limit&#39;, nil)</code> </li> - <li class="covered" data-hits="56" data-linenumber="26"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="26"> + <code class="ruby"> @skip = item.fetch(&#39;skip&#39;, nil)</code> </li> - <li class="covered" data-hits="56" data-linenumber="27"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="27"> + <code class="ruby"> @items = item.fetch(&#39;items&#39;, [])</code> </li> <li class="never" data-hits="" data-linenumber="28"> @@ -879,15 +879,15 @@ <div class="source_table" id="bc50260d115630bb3b54a3ab26a820be409e35fe"> <div class="header"> <h3>lib/contentful/array_like.rb</h3> - <h4><span class="red">76.47 %</span> covered</h4> + <h4><span class="red">64.71 %</span> covered</h4> <div> <b>17</b> relevant lines. - <span class="green"><b>13</b> lines covered</span> and - <span class="red"><b>4</b> lines missed.</span> + <span class="green"><b>11</b> lines covered</span> and + <span class="red"><b>6</b> lines missed.</span> </div> </div> <pre> <ol> @@ -992,13 +992,13 @@ <span class="hits">1</span> <code class="ruby"> def each_item(&amp;block)</code> </li> - <li class="covered" data-hits="58" data-linenumber="18"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="18"> + <code class="ruby"> items.each(&amp;block)</code> </li> <li class="never" data-hits="" data-linenumber="19"> @@ -1040,13 +1040,13 @@ <span class="hits">1</span> <code class="ruby"> def empty?</code> </li> - <li class="covered" data-hits="3" data-linenumber="26"> - <span class="hits">3</span> + <li class="missed" data-hits="0" data-linenumber="26"> + <code class="ruby"> items.empty?</code> </li> <li class="never" data-hits="" data-linenumber="27"> @@ -1204,15 +1204,15 @@ <div class="source_table" id="167545c06de91266c75254299e80bf4aa23830c5"> <div class="header"> <h3>lib/contentful/asset.rb</h3> - <h4><span class="green">92.5 %</span> covered</h4> + <h4><span class="red">40.0 %</span> covered</h4> <div> <b>40</b> relevant lines. - <span class="green"><b>37</b> lines covered</span> and - <span class="red"><b>3</b> lines missed.</span> + <span class="green"><b>16</b> lines covered</span> and + <span class="red"><b>24</b> lines missed.</span> </div> </div> <pre> <ol> @@ -1287,13 +1287,13 @@ <span class="hits">1</span> <code class="ruby"> def marshal_dump</code> </li> - <li class="covered" data-hits="10" data-linenumber="13"> - <span class="hits">10</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> {</code> </li> <li class="never" data-hits="" data-linenumber="14"> @@ -1335,25 +1335,25 @@ <span class="hits">1</span> <code class="ruby"> def marshal_load(raw_object)</code> </li> - <li class="covered" data-hits="10" data-linenumber="21"> - <span class="hits">10</span> + <li class="missed" data-hits="0" data-linenumber="21"> + <code class="ruby"> super(raw_object)</code> </li> - <li class="covered" data-hits="10" data-linenumber="22"> - <span class="hits">10</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> create_files!</code> </li> - <li class="covered" data-hits="10" data-linenumber="23"> - <span class="hits">10</span> + <li class="missed" data-hits="0" data-linenumber="23"> + <code class="ruby"> define_asset_methods!</code> </li> <li class="never" data-hits="" data-linenumber="24"> @@ -1401,25 +1401,25 @@ <span class="hits">1</span> <code class="ruby"> def initialize(*)</code> </li> - <li class="covered" data-hits="483" data-linenumber="32"> - <span class="hits">483</span> + <li class="missed" data-hits="0" data-linenumber="32"> + <code class="ruby"> super</code> </li> - <li class="covered" data-hits="483" data-linenumber="33"> - <span class="hits">483</span> + <li class="missed" data-hits="0" data-linenumber="33"> + <code class="ruby"> create_files!</code> </li> - <li class="covered" data-hits="483" data-linenumber="34"> - <span class="hits">483</span> + <li class="missed" data-hits="0" data-linenumber="34"> + <code class="ruby"> define_asset_methods!</code> </li> <li class="never" data-hits="" data-linenumber="35"> @@ -1521,31 +1521,31 @@ <span class="hits">1</span> <code class="ruby"> def image_url(options = {})</code> </li> - <li class="covered" data-hits="4" data-linenumber="52"> - <span class="hits">4</span> + <li class="missed" data-hits="0" data-linenumber="52"> + <code class="ruby"> query = build_query(options)</code> </li> <li class="never" data-hits="" data-linenumber="53"> <code class="ruby"></code> </li> - <li class="covered" data-hits="4" data-linenumber="54"> - <span class="hits">4</span> + <li class="missed" data-hits="0" data-linenumber="54"> + <code class="ruby"> if query.empty?</code> </li> - <li class="covered" data-hits="4" data-linenumber="55"> - <span class="hits">4</span> + <li class="missed" data-hits="0" data-linenumber="55"> + <code class="ruby"> file.url</code> </li> <li class="never" data-hits="" data-linenumber="56"> @@ -1665,13 +1665,13 @@ <code class="ruby"> fl: options[:fl]</code> </li> - <li class="covered" data-hits="40" data-linenumber="76"> - <span class="hits">40</span> + <li class="missed" data-hits="0" data-linenumber="76"> + <code class="ruby"> }.reject { |_k, v| v.nil? }</code> </li> <li class="never" data-hits="" data-linenumber="77"> @@ -1689,49 +1689,49 @@ <span class="hits">1</span> <code class="ruby"> def create_files!</code> </li> - <li class="covered" data-hits="493" data-linenumber="80"> - <span class="hits">493</span> + <li class="missed" data-hits="0" data-linenumber="80"> + <code class="ruby"> file_json = raw.fetch(&#39;fields&#39;, {}).fetch(&#39;file&#39;, nil)</code> </li> - <li class="covered" data-hits="493" data-linenumber="81"> - <span class="hits">493</span> + <li class="missed" data-hits="0" data-linenumber="81"> + <code class="ruby"> return if file_json.nil?</code> </li> <li class="never" data-hits="" data-linenumber="82"> <code class="ruby"></code> </li> - <li class="covered" data-hits="987" data-linenumber="83"> - <span class="hits">987</span> + <li class="missed" data-hits="0" data-linenumber="83"> + <code class="ruby"> is_localized = file_json.keys.none? { |f| %w[fileName contentType details url].include? f }</code> </li> - <li class="covered" data-hits="493" data-linenumber="84"> - <span class="hits">493</span> + <li class="missed" data-hits="0" data-linenumber="84"> + <code class="ruby"> if is_localized</code> </li> - <li class="covered" data-hits="46" data-linenumber="85"> - <span class="hits">46</span> + <li class="missed" data-hits="0" data-linenumber="85"> + <code class="ruby"> locales.each do |locale|</code> </li> - <li class="covered" data-hits="47" data-linenumber="86"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="86"> + <code class="ruby"> @fields[locale][:file] = ::Contentful::File.new(file_json[locale.to_s] || {}, @configuration)</code> </li> <li class="never" data-hits="" data-linenumber="87"> @@ -1743,13 +1743,13 @@ <code class="ruby"> else</code> </li> - <li class="covered" data-hits="447" data-linenumber="89"> - <span class="hits">447</span> + <li class="missed" data-hits="0" data-linenumber="89"> + <code class="ruby"> @fields[internal_resource_locale][:file] = ::Contentful::File.new(file_json, @configuration)</code> </li> <li class="never" data-hits="" data-linenumber="90"> @@ -1773,13 +1773,13 @@ <span class="hits">1</span> <code class="ruby"> def define_asset_methods!</code> </li> - <li class="covered" data-hits="493" data-linenumber="94"> - <span class="hits">493</span> + <li class="missed" data-hits="0" data-linenumber="94"> + <code class="ruby"> define_singleton_method :description do</code> </li> <li class="missed" data-hits="0" data-linenumber="95"> @@ -1797,19 +1797,19 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="493" data-linenumber="98"> - <span class="hits">493</span> + <li class="missed" data-hits="0" data-linenumber="98"> + <code class="ruby"> define_singleton_method :file do |wanted_locale = nil|</code> </li> - <li class="covered" data-hits="6" data-linenumber="99"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="99"> + <code class="ruby"> fields(wanted_locale)[:file]</code> </li> <li class="never" data-hits="" data-linenumber="100"> @@ -1841,15 +1841,15 @@ <div class="source_table" id="c9e25d4e0351ac49d13d793c5d0d6e10c428977b"> <div class="header"> <h3>lib/contentful/base_resource.rb</h3> - <h4><span class="yellow">88.0 %</span> covered</h4> + <h4><span class="red">34.0 %</span> covered</h4> <div> <b>50</b> relevant lines. - <span class="green"><b>44</b> lines covered</span> and - <span class="red"><b>6</b> lines missed.</span> + <span class="green"><b>17</b> lines covered</span> and + <span class="red"><b>33</b> lines missed.</span> </div> </div> <pre> <ol> @@ -1906,55 +1906,55 @@ <span class="hits">1</span> <code class="ruby"> def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0, _errors = [])</code> </li> - <li class="covered" data-hits="2902" data-linenumber="10"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="10"> + <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> - <li class="covered" data-hits="2902" data-linenumber="11"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="11"> + <code class="ruby"> @raw = item</code> </li> - <li class="covered" data-hits="2902" data-linenumber="12"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="12"> + <code class="ruby"> @default_locale = configuration[:default_locale]</code> </li> - <li class="covered" data-hits="2902" data-linenumber="13"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> @depth = depth</code> </li> - <li class="covered" data-hits="2902" data-linenumber="14"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> @configuration = configuration</code> </li> - <li class="covered" data-hits="2902" data-linenumber="15"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="15"> + <code class="ruby"> @sys = hydrate_sys</code> </li> <li class="never" data-hits="" data-linenumber="16"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2902" data-linenumber="17"> - <span class="hits">2902</span> + <li class="missed" data-hits="0" data-linenumber="17"> + <code class="ruby"> define_sys_methods!</code> </li> <li class="never" data-hits="" data-linenumber="18"> @@ -2086,43 +2086,43 @@ <span class="hits">1</span> <code class="ruby"> def marshal_load(raw_object)</code> </li> - <li class="covered" data-hits="31" data-linenumber="40"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="40"> + <code class="ruby"> @raw = raw_object[:raw]</code> </li> - <li class="covered" data-hits="31" data-linenumber="41"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="41"> + <code class="ruby"> @configuration = raw_object[:configuration]</code> </li> - <li class="covered" data-hits="31" data-linenumber="42"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="42"> + <code class="ruby"> @default_locale = @configuration[:default_locale]</code> </li> - <li class="covered" data-hits="31" data-linenumber="43"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="43"> + <code class="ruby"> @sys = hydrate_sys</code> </li> - <li class="covered" data-hits="31" data-linenumber="44"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> @depth = 0</code> </li> - <li class="covered" data-hits="31" data-linenumber="45"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="45"> + <code class="ruby"> define_sys_methods!</code> </li> <li class="never" data-hits="" data-linenumber="46"> @@ -2200,25 +2200,25 @@ <span class="hits">1</span> <code class="ruby"> def define_sys_methods!</code> </li> - <li class="covered" data-hits="2933" data-linenumber="59"> - <span class="hits">2933</span> + <li class="missed" data-hits="0" data-linenumber="59"> + <code class="ruby"> @sys.each do |k, v|</code> </li> - <li class="covered" data-hits="13586" data-linenumber="60"> - <span class="hits">13586</span> + <li class="missed" data-hits="0" data-linenumber="60"> + <code class="ruby"> define_singleton_method k do</code> </li> - <li class="covered" data-hits="6409" data-linenumber="61"> - <span class="hits">6409</span> + <li class="missed" data-hits="0" data-linenumber="61"> + <code class="ruby"> v</code> </li> <li class="never" data-hits="" data-linenumber="62"> @@ -2248,67 +2248,67 @@ <span class="hits">1</span> <code class="ruby"> def hydrate_sys</code> </li> - <li class="covered" data-hits="2933" data-linenumber="67"> - <span class="hits">2933</span> + <li class="missed" data-hits="0" data-linenumber="67"> + <code class="ruby"> result = {}</code> </li> - <li class="covered" data-hits="2933" data-linenumber="68"> - <span class="hits">2933</span> + <li class="missed" data-hits="0" data-linenumber="68"> + <code class="ruby"> raw.fetch(&#39;sys&#39;, {}).each do |k, v|</code> </li> - <li class="covered" data-hits="13586" data-linenumber="69"> - <span class="hits">13586</span> + <li class="missed" data-hits="0" data-linenumber="69"> + <code class="ruby"> if %w[space contentType environment].include?(k)</code> </li> - <li class="covered" data-hits="1708" data-linenumber="70"> - <span class="hits">1708</span> + <li class="missed" data-hits="0" data-linenumber="70"> + <code class="ruby"> v = build_link(v)</code> </li> - <li class="covered" data-hits="11878" data-linenumber="71"> - <span class="hits">11878</span> + <li class="missed" data-hits="0" data-linenumber="71"> + <code class="ruby"> elsif %w[createdAt updatedAt deletedAt].include?(k)</code> </li> - <li class="covered" data-hits="2208" data-linenumber="72"> - <span class="hits">2208</span> + <li class="missed" data-hits="0" data-linenumber="72"> + <code class="ruby"> v = DateTime.parse(v)</code> </li> <li class="never" data-hits="" data-linenumber="73"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="13586" data-linenumber="74"> - <span class="hits">13586</span> + <li class="missed" data-hits="0" data-linenumber="74"> + <code class="ruby"> result[Support.snakify(k, @configuration[:use_camel_case]).to_sym] = v</code> </li> <li class="never" data-hits="" data-linenumber="75"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="2933" data-linenumber="76"> - <span class="hits">2933</span> + <li class="missed" data-hits="0" data-linenumber="76"> + <code class="ruby"> result</code> </li> <li class="never" data-hits="" data-linenumber="77"> @@ -2362,13 +2362,13 @@ <span class="hits">1</span> <code class="ruby"> def internal_resource_locale</code> </li> - <li class="covered" data-hits="2852" data-linenumber="86"> - <span class="hits">2852</span> + <li class="missed" data-hits="0" data-linenumber="86"> + <code class="ruby"> sys.fetch(:locale, nil) || default_locale</code> </li> <li class="never" data-hits="" data-linenumber="87"> @@ -2386,19 +2386,19 @@ <span class="hits">1</span> <code class="ruby"> def build_link(item)</code> </li> - <li class="covered" data-hits="1773" data-linenumber="90"> - <span class="hits">1773</span> + <li class="missed" data-hits="0" data-linenumber="90"> + <code class="ruby"> require_relative &#39;link&#39;</code> </li> - <li class="covered" data-hits="1773" data-linenumber="91"> - <span class="hits">1773</span> + <li class="missed" data-hits="0" data-linenumber="91"> + <code class="ruby"> ::Contentful::Link.new(item, @configuration)</code> </li> <li class="never" data-hits="" data-linenumber="92"> @@ -2424,15 +2424,15 @@ <div class="source_table" id="b0e31f234acd83c871a193ce29ed6b38e9adc98e"> <div class="header"> <h3>lib/contentful/client.rb</h3> - <h4><span class="yellow">82.12 %</span> covered</h4> + <h4><span class="red">32.45 %</span> covered</h4> <div> <b>151</b> relevant lines. - <span class="green"><b>124</b> lines covered</span> and - <span class="red"><b>27</b> lines missed.</span> + <span class="green"><b>49</b> lines covered</span> and + <span class="red"><b>102</b> lines missed.</span> </div> </div> <pre> <ol> @@ -2741,13 +2741,13 @@ <span class="hits">1</span> <code class="ruby"> def self.get_http(url, query, headers = {}, proxy = {})</code> </li> - <li class="covered" data-hits="58" data-linenumber="52"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="52"> + <code class="ruby"> if proxy[:host]</code> </li> <li class="missed" data-hits="0" data-linenumber="53"> @@ -2759,13 +2759,13 @@ <code class="ruby"> else</code> </li> - <li class="covered" data-hits="58" data-linenumber="55"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="55"> + <code class="ruby"> HTTP[headers].get(url, params: query)</code> </li> <li class="never" data-hits="" data-linenumber="56"> @@ -2951,43 +2951,43 @@ <span class="hits">1</span> <code class="ruby"> def initialize(given_configuration = {})</code> </li> - <li class="covered" data-hits="47" data-linenumber="87"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="87"> + <code class="ruby"> @configuration = default_configuration.merge(given_configuration)</code> </li> - <li class="covered" data-hits="47" data-linenumber="88"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="88"> + <code class="ruby"> normalize_configuration!</code> </li> - <li class="covered" data-hits="47" data-linenumber="89"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="89"> + <code class="ruby"> validate_configuration!</code> </li> - <li class="covered" data-hits="47" data-linenumber="90"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="90"> + <code class="ruby"> setup_logger</code> </li> <li class="never" data-hits="" data-linenumber="91"> <code class="ruby"></code> </li> - <li class="covered" data-hits="47" data-linenumber="92"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="92"> + <code class="ruby"> update_dynamic_entry_cache! if configuration[:dynamic_entries] == :auto</code> </li> <li class="never" data-hits="" data-linenumber="93"> @@ -3011,19 +3011,19 @@ <span class="hits">1</span> <code class="ruby"> def setup_logger</code> </li> - <li class="covered" data-hits="47" data-linenumber="97"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="97"> + <code class="ruby"> @logger = configuration[:logger]</code> </li> - <li class="covered" data-hits="47" data-linenumber="98"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="98"> + <code class="ruby"> logger.level = configuration[:log_level] if logger</code> </li> <li class="never" data-hits="" data-linenumber="99"> @@ -3047,13 +3047,13 @@ <span class="hits">1</span> <code class="ruby"> def proxy_params</code> </li> - <li class="covered" data-hits="58" data-linenumber="103"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="103"> + <code class="ruby"> {</code> </li> <li class="never" data-hits="" data-linenumber="104"> @@ -3113,13 +3113,13 @@ <span class="hits">1</span> <code class="ruby"> def default_configuration</code> </li> - <li class="covered" data-hits="47" data-linenumber="114"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="114"> + <code class="ruby"> DEFAULT_CONFIGURATION.dup</code> </li> <li class="never" data-hits="" data-linenumber="115"> @@ -3281,13 +3281,13 @@ <span class="hits">1</span> <code class="ruby"> def content_types(query = {})</code> </li> - <li class="covered" data-hits="11" data-linenumber="142"> - <span class="hits">11</span> + <li class="missed" data-hits="0" data-linenumber="142"> + <code class="ruby"> Request.new(self, environment_url(&#39;/content_types&#39;), query).get</code> </li> <li class="never" data-hits="" data-linenumber="143"> @@ -3341,49 +3341,49 @@ <span class="hits">1</span> <code class="ruby"> def entry(id, query = {})</code> </li> - <li class="covered" data-hits="29" data-linenumber="152"> - <span class="hits">29</span> + <li class="missed" data-hits="0" data-linenumber="152"> + <code class="ruby"> normalize_select!(query)</code> </li> - <li class="covered" data-hits="29" data-linenumber="153"> - <span class="hits">29</span> + <li class="missed" data-hits="0" data-linenumber="153"> + <code class="ruby"> query[&#39;sys.id&#39;] = id</code> </li> - <li class="covered" data-hits="29" data-linenumber="154"> - <span class="hits">29</span> + <li class="missed" data-hits="0" data-linenumber="154"> + <code class="ruby"> entries = Request.new(self, environment_url(&#39;/entries&#39;), query).get</code> </li> <li class="never" data-hits="" data-linenumber="155"> <code class="ruby"></code> </li> - <li class="covered" data-hits="29" data-linenumber="156"> - <span class="hits">29</span> + <li class="missed" data-hits="0" data-linenumber="156"> + <code class="ruby"> return entries if configuration[:raw_mode]</code> </li> <li class="never" data-hits="" data-linenumber="157"> <code class="ruby"></code> </li> - <li class="covered" data-hits="28" data-linenumber="158"> - <span class="hits">28</span> + <li class="missed" data-hits="0" data-linenumber="158"> + <code class="ruby"> entries.first</code> </li> <li class="never" data-hits="" data-linenumber="159"> @@ -3431,19 +3431,19 @@ <span class="hits">1</span> <code class="ruby"> def entries(query = {})</code> </li> - <li class="covered" data-hits="18" data-linenumber="167"> - <span class="hits">18</span> + <li class="missed" data-hits="0" data-linenumber="167"> + <code class="ruby"> normalize_select!(query)</code> </li> - <li class="covered" data-hits="18" data-linenumber="168"> - <span class="hits">18</span> + <li class="missed" data-hits="0" data-linenumber="168"> + <code class="ruby"> Request.new(self, environment_url(&#39;/entries&#39;), query).get</code> </li> <li class="never" data-hits="" data-linenumber="169"> @@ -3647,13 +3647,13 @@ <span class="hits">1</span> <code class="ruby"> def base_url</code> </li> - <li class="covered" data-hits="58" data-linenumber="203"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="203"> + <code class="ruby"> &quot;http#{configuration[:secure] ? &#39;s&#39; : &#39;&#39;}://#{configuration[:api_url]}/spaces/#{configuration[:space]}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="204"> @@ -3683,13 +3683,13 @@ <span class="hits">1</span> <code class="ruby"> def environment_url(path)</code> </li> - <li class="covered" data-hits="58" data-linenumber="209"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="209"> + <code class="ruby"> &quot;/environments/#{configuration[:environment]}#{path}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="210"> @@ -3719,25 +3719,25 @@ <span class="hits">1</span> <code class="ruby"> def format_user_agent_header(key, values)</code> </li> - <li class="covered" data-hits="174" data-linenumber="215"> - <span class="hits">174</span> + <li class="missed" data-hits="0" data-linenumber="215"> + <code class="ruby"> header = &quot;#{key} #{values[:name]}&quot;</code> </li> - <li class="covered" data-hits="174" data-linenumber="216"> - <span class="hits">174</span> + <li class="missed" data-hits="0" data-linenumber="216"> + <code class="ruby"> header = &quot;#{header}/#{values[:version]}&quot; if values[:version]</code> </li> - <li class="covered" data-hits="174" data-linenumber="217"> - <span class="hits">174</span> + <li class="missed" data-hits="0" data-linenumber="217"> + <code class="ruby"> &quot;#{header};&quot;</code> </li> <li class="never" data-hits="" data-linenumber="218"> @@ -3767,13 +3767,13 @@ <span class="hits">1</span> <code class="ruby"> def sdk_info</code> </li> - <li class="covered" data-hits="58" data-linenumber="223"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="223"> + <code class="ruby"> { name: &#39;contentful.rb&#39;, version: ::Contentful::VERSION }</code> </li> <li class="never" data-hits="" data-linenumber="224"> @@ -3803,13 +3803,13 @@ <span class="hits">1</span> <code class="ruby"> def app_info</code> </li> - <li class="covered" data-hits="58" data-linenumber="229"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="229"> + <code class="ruby"> { name: configuration[:application_name], version: configuration[:application_version] }</code> </li> <li class="never" data-hits="" data-linenumber="230"> @@ -3839,13 +3839,13 @@ <span class="hits">1</span> <code class="ruby"> def integration_info</code> </li> - <li class="covered" data-hits="58" data-linenumber="235"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="235"> + <code class="ruby"> { name: configuration[:integration_name], version: configuration[:integration_version] }</code> </li> <li class="never" data-hits="" data-linenumber="236"> @@ -3875,13 +3875,13 @@ <span class="hits">1</span> <code class="ruby"> def platform_info</code> </li> - <li class="covered" data-hits="58" data-linenumber="241"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="241"> + <code class="ruby"> { name: &#39;ruby&#39;, version: RUBY_VERSION }</code> </li> <li class="never" data-hits="" data-linenumber="242"> @@ -3911,25 +3911,25 @@ <span class="hits">1</span> <code class="ruby"> def os_info</code> </li> - <li class="covered" data-hits="58" data-linenumber="247"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="247"> + <code class="ruby"> os_name = case ::RbConfig::CONFIG[&#39;host_os&#39;]</code> </li> <li class="missed" data-hits="0" data-linenumber="248"> <code class="ruby"> when /(cygwin|mingw|mswin|windows)/i then &#39;Windows&#39;</code> </li> - <li class="covered" data-hits="58" data-linenumber="249"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="249"> + <code class="ruby"> when /(darwin|macruby|mac os)/i then &#39;macOS&#39;</code> </li> <li class="missed" data-hits="0" data-linenumber="250"> @@ -3941,13 +3941,13 @@ <code class="ruby"> end</code> </li> - <li class="covered" data-hits="58" data-linenumber="252"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="252"> + <code class="ruby"> { name: os_name, version: Gem::Platform.local.version }</code> </li> <li class="never" data-hits="" data-linenumber="253"> @@ -3977,13 +3977,13 @@ <span class="hits">1</span> <code class="ruby"> def contentful_user_agent</code> </li> - <li class="covered" data-hits="58" data-linenumber="258"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="258"> + <code class="ruby"> header = {</code> </li> <li class="never" data-hits="" data-linenumber="259"> @@ -4025,43 +4025,43 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="58" data-linenumber="266"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="266"> + <code class="ruby"> result = []</code> </li> - <li class="covered" data-hits="58" data-linenumber="267"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="267"> + <code class="ruby"> header.each do |key, values|</code> </li> - <li class="covered" data-hits="290" data-linenumber="268"> - <span class="hits">290</span> + <li class="missed" data-hits="0" data-linenumber="268"> + <code class="ruby"> next unless values[:name]</code> </li> - <li class="covered" data-hits="174" data-linenumber="269"> - <span class="hits">174</span> + <li class="missed" data-hits="0" data-linenumber="269"> + <code class="ruby"> result &lt;&lt; format_user_agent_header(key, values)</code> </li> <li class="never" data-hits="" data-linenumber="270"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="58" data-linenumber="271"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="271"> + <code class="ruby"> result.join(&#39; &#39;)</code> </li> <li class="never" data-hits="" data-linenumber="272"> @@ -4091,37 +4091,37 @@ <span class="hits">1</span> <code class="ruby"> def request_headers</code> </li> - <li class="covered" data-hits="58" data-linenumber="277"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="277"> + <code class="ruby"> headers = { &#39;X-Contentful-User-Agent&#39; =&gt; contentful_user_agent }</code> </li> - <li class="covered" data-hits="58" data-linenumber="278"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="278"> + <code class="ruby"> headers[&#39;Authorization&#39;] = &quot;Bearer #{configuration[:access_token]}&quot; if configuration[:authentication_mechanism] == :header</code> </li> - <li class="covered" data-hits="58" data-linenumber="279"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="279"> + <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> - <li class="covered" data-hits="58" data-linenumber="280"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="280"> + <code class="ruby"> headers[&#39;Accept-Encoding&#39;] = &#39;gzip&#39; if configuration[:gzip_encoded]</code> </li> - <li class="covered" data-hits="58" data-linenumber="281"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="281"> + <code class="ruby"> headers</code> </li> <li class="never" data-hits="" data-linenumber="282"> @@ -4151,13 +4151,13 @@ <span class="hits">1</span> <code class="ruby"> def request_query(query)</code> </li> - <li class="covered" data-hits="58" data-linenumber="287"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="287"> + <code class="ruby"> if configuration[:authentication_mechanism] == :query_string</code> </li> <li class="missed" data-hits="0" data-linenumber="288"> @@ -4169,13 +4169,13 @@ <code class="ruby"> end</code> </li> - <li class="covered" data-hits="58" data-linenumber="290"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="290"> + <code class="ruby"> query</code> </li> <li class="never" data-hits="" data-linenumber="291"> @@ -4223,67 +4223,67 @@ <span class="hits">1</span> <code class="ruby"> def get(request, build_resource = true)</code> </li> - <li class="covered" data-hits="58" data-linenumber="299"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="299"> + <code class="ruby"> retries_left = configuration[:max_rate_limit_retries]</code> </li> - <li class="covered" data-hits="58" data-linenumber="300"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="300"> + <code class="ruby"> result = nil</code> </li> - <li class="covered" data-hits="58" data-linenumber="301"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="301"> + <code class="ruby"> begin</code> </li> - <li class="covered" data-hits="58" data-linenumber="302"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="302"> + <code class="ruby"> response = run_request(request)</code> </li> <li class="never" data-hits="" data-linenumber="303"> <code class="ruby"></code> </li> - <li class="covered" data-hits="58" data-linenumber="304"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="304"> + <code class="ruby"> return response if !build_resource || configuration[:raw_mode]</code> </li> <li class="never" data-hits="" data-linenumber="305"> <code class="ruby"></code> </li> - <li class="covered" data-hits="57" data-linenumber="306"> - <span class="hits">57</span> + <li class="missed" data-hits="0" data-linenumber="306"> + <code class="ruby"> return fail_response(response) if response.status != :ok</code> </li> <li class="never" data-hits="" data-linenumber="307"> <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="308"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="308"> + <code class="ruby"> result = do_build_resource(response)</code> </li> <li class="never" data-hits="" data-linenumber="309"> @@ -4373,13 +4373,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="324"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="324"> + <code class="ruby"> result</code> </li> <li class="never" data-hits="" data-linenumber="325"> @@ -4451,13 +4451,13 @@ <span class="hits">1</span> <code class="ruby"> def fail_response(response)</code> </li> - <li class="covered" data-hits="1" data-linenumber="337"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="337"> + <code class="ruby"> fail response.object if configuration[:raise_errors]</code> </li> <li class="missed" data-hits="0" data-linenumber="338"> @@ -4523,25 +4523,25 @@ <span class="hits">1</span> <code class="ruby"> def run_request(request)</code> </li> - <li class="covered" data-hits="58" data-linenumber="349"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="349"> + <code class="ruby"> url = request.absolute? ? request.url : base_url + request.url</code> </li> - <li class="covered" data-hits="58" data-linenumber="350"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="350"> + <code class="ruby"> logger.info(request: { url: url, query: request.query, header: request_headers }) if logger</code> </li> - <li class="covered" data-hits="58" data-linenumber="351"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="351"> + <code class="ruby"> Response.new(</code> </li> <li class="never" data-hits="" data-linenumber="352"> @@ -4613,13 +4613,13 @@ <span class="hits">1</span> <code class="ruby"> def do_build_resource(response)</code> </li> - <li class="covered" data-hits="56" data-linenumber="364"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="364"> + <code class="ruby"> logger.debug(response: response) if logger</code> </li> <li class="never" data-hits="" data-linenumber="365"> @@ -4637,25 +4637,25 @@ <code class="ruby"> configuration.merge(endpoint: response.request.endpoint),</code> </li> - <li class="covered" data-hits="56" data-linenumber="368"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="368"> + <code class="ruby"> (response.request.query || {}).fetch(:locale, nil) == &#39;*&#39;,</code> </li> <li class="never" data-hits="" data-linenumber="369"> <code class="ruby"> 0</code> </li> - <li class="covered" data-hits="56" data-linenumber="370"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="370"> + <code class="ruby"> ).run</code> </li> <li class="never" data-hits="" data-linenumber="371"> @@ -4691,25 +4691,25 @@ <span class="hits">1</span> <code class="ruby"> def update_dynamic_entry_cache!</code> </li> - <li class="covered" data-hits="11" data-linenumber="377"> - <span class="hits">11</span> + <li class="missed" data-hits="0" data-linenumber="377"> + <code class="ruby"> return if configuration[:raw_mode]</code> </li> - <li class="covered" data-hits="11" data-linenumber="378"> - <span class="hits">11</span> + <li class="missed" data-hits="0" data-linenumber="378"> + <code class="ruby"> content_types(limit: 1000).map do |ct|</code> </li> - <li class="covered" data-hits="27" data-linenumber="379"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="379"> + <code class="ruby"> ContentTypeCache.cache_set(configuration[:space], ct.id, ct)</code> </li> <li class="never" data-hits="" data-linenumber="380"> @@ -4877,37 +4877,37 @@ <span class="hits">1</span> <code class="ruby"> def normalize_select!(query)</code> </li> - <li class="covered" data-hits="47" data-linenumber="408"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="408"> + <code class="ruby"> return unless query.key?(:select)</code> </li> <li class="never" data-hits="" data-linenumber="409"> <code class="ruby"></code> </li> - <li class="covered" data-hits="6" data-linenumber="410"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="410"> + <code class="ruby"> query[:select] = query[:select].split(&#39;,&#39;).map(&amp;:strip) if query[:select].is_a? String</code> </li> - <li class="covered" data-hits="13" data-linenumber="411"> - <span class="hits">13</span> + <li class="missed" data-hits="0" data-linenumber="411"> + <code class="ruby"> query[:select] = query[:select].reject { |p| p.start_with?(&#39;sys.&#39;) }</code> </li> - <li class="covered" data-hits="6" data-linenumber="412"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="412"> + <code class="ruby"> query[:select] &lt;&lt; &#39;sys&#39; unless query[:select].include?(&#39;sys&#39;)</code> </li> <li class="never" data-hits="" data-linenumber="413"> @@ -4925,19 +4925,19 @@ <span class="hits">1</span> <code class="ruby"> def normalize_configuration!</code> </li> - <li class="covered" data-hits="235" data-linenumber="416"> - <span class="hits">235</span> + <li class="missed" data-hits="0" data-linenumber="416"> + <code class="ruby"> %i[space access_token api_url default_locale].each { |s| configuration[s] = configuration[s].to_s }</code> </li> - <li class="covered" data-hits="47" data-linenumber="417"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="417"> + <code class="ruby"> configuration[:authentication_mechanism] = configuration[:authentication_mechanism].to_sym</code> </li> <li class="never" data-hits="" data-linenumber="418"> @@ -4955,43 +4955,43 @@ <span class="hits">1</span> <code class="ruby"> def validate_configuration!</code> </li> - <li class="covered" data-hits="47" data-linenumber="421"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="421"> + <code class="ruby"> fail ArgumentError, &#39;You will need to initialize a client with a :space&#39; if configuration[:space].empty?</code> </li> - <li class="covered" data-hits="47" data-linenumber="422"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="422"> + <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> - <li class="covered" data-hits="47" data-linenumber="423"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="423"> + <code class="ruby"> fail ArgumentError, &#39;The client configuration needs to contain an :api_url&#39; if configuration[:api_url].empty?</code> </li> - <li class="covered" data-hits="47" data-linenumber="424"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="424"> + <code class="ruby"> fail ArgumentError, &#39;The client configuration needs to contain a :default_locale&#39; if configuration[:default_locale].empty?</code> </li> - <li class="covered" data-hits="47" data-linenumber="425"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="425"> + <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> - <li class="covered" data-hits="47" data-linenumber="426"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="426"> + <code class="ruby"> fail ArgumentError, &#39;The authentication mechanism must be :header or :query_string&#39; unless %i[header query_string].include?(</code> </li> <li class="never" data-hits="" data-linenumber="427"> @@ -5003,13 +5003,13 @@ <code class="ruby"> )</code> </li> - <li class="covered" data-hits="47" data-linenumber="429"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="429"> + <code class="ruby"> fail ArgumentError, &#39;The :dynamic_entries mode must be :auto or :manual&#39; unless %i[auto manual].include?(</code> </li> <li class="never" data-hits="" data-linenumber="430"> @@ -5047,15 +5047,15 @@ <div class="source_table" id="beb22ab5c60eaaa44a2cba4f526b8a2630d7a31a"> <div class="header"> <h3>lib/contentful/coercions.rb</h3> - <h4><span class="green">92.86 %</span> covered</h4> + <h4><span class="red">45.71 %</span> covered</h4> <div> <b>70</b> relevant lines. - <span class="green"><b>65</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> + <span class="green"><b>32</b> lines covered</span> and + <span class="red"><b>38</b> lines missed.</span> </div> </div> <pre> <ol> @@ -5100,19 +5100,19 @@ <span class="hits">1</span> <code class="ruby"> def initialize(value, options = {})</code> </li> - <li class="covered" data-hits="43" data-linenumber="8"> - <span class="hits">43</span> + <li class="missed" data-hits="0" data-linenumber="8"> + <code class="ruby"> @value = value</code> </li> - <li class="covered" data-hits="43" data-linenumber="9"> - <span class="hits">43</span> + <li class="missed" data-hits="0" data-linenumber="9"> + <code class="ruby"> @options = options</code> </li> <li class="never" data-hits="" data-linenumber="10"> @@ -5136,13 +5136,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="4" data-linenumber="14"> - <span class="hits">4</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> value</code> </li> <li class="never" data-hits="" data-linenumber="15"> @@ -5184,13 +5184,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="31" data-linenumber="22"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> value.to_s</code> </li> <li class="never" data-hits="" data-linenumber="23"> @@ -5268,13 +5268,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="1" data-linenumber="36"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="36"> + <code class="ruby"> value.to_i</code> </li> <li class="never" data-hits="" data-linenumber="37"> @@ -5316,13 +5316,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="1" data-linenumber="44"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> value.to_f</code> </li> <li class="never" data-hits="" data-linenumber="45"> @@ -5538,13 +5538,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="2" data-linenumber="81"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="81"> + <code class="ruby"> JSON.parse(JSON.dump(value), symbolize_names: true)</code> </li> <li class="never" data-hits="" data-linenumber="82"> @@ -5622,19 +5622,19 @@ <span class="hits">1</span> <code class="ruby"> def coerce(*)</code> </li> - <li class="covered" data-hits="1" data-linenumber="95"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="95"> + <code class="ruby"> value.map do |e|</code> </li> - <li class="covered" data-hits="2" data-linenumber="96"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="96"> + <code class="ruby"> options[:coercion_class].new(e).coerce</code> </li> <li class="never" data-hits="" data-linenumber="97"> @@ -5682,13 +5682,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(configuration)</code> </li> - <li class="covered" data-hits="3" data-linenumber="105"> - <span class="hits">3</span> + <li class="missed" data-hits="0" data-linenumber="105"> + <code class="ruby"> coerce_block(value, configuration)</code> </li> <li class="never" data-hits="" data-linenumber="106"> @@ -5718,353 +5718,365 @@ <span class="hits">1</span> <code class="ruby"> def link?(node)</code> </li> - <li class="covered" data-hits="105" data-linenumber="111"> - <span class="hits">105</span> + <li class="missed" data-hits="0" data-linenumber="111"> - <code class="ruby"> !node.fetch(&#39;data&#39;, {}).empty? &amp;&amp; node[&#39;data&#39;][&#39;target&#39;]</code> + + <code class="ruby"> !node[&#39;data&#39;].is_a?(::Contentful::Entry) &amp;&amp;</code> </li> <li class="never" data-hits="" data-linenumber="112"> - <code class="ruby"> end</code> + <code class="ruby"> !node.fetch(&#39;data&#39;, {}).empty? &amp;&amp;</code> </li> <li class="never" data-hits="" data-linenumber="113"> + <code class="ruby"> node[&#39;data&#39;][&#39;target&#39;]</code> + </li> + + <li class="never" data-hits="" data-linenumber="114"> + + + <code class="ruby"> end</code> + </li> + + <li class="never" data-hits="" data-linenumber="115"> + + <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="114"> + <li class="covered" data-hits="1" data-linenumber="116"> <span class="hits">1</span> <code class="ruby"> def content_block?(node)</code> </li> - <li class="covered" data-hits="98" data-linenumber="115"> - <span class="hits">98</span> + <li class="missed" data-hits="0" data-linenumber="117"> + <code class="ruby"> !node.fetch(&#39;content&#39;, []).empty?</code> </li> - <li class="never" data-hits="" data-linenumber="116"> + <li class="never" data-hits="" data-linenumber="118"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="117"> + <li class="never" data-hits="" data-linenumber="119"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="118"> + <li class="covered" data-hits="1" data-linenumber="120"> <span class="hits">1</span> <code class="ruby"> def coerce_block(block, configuration)</code> </li> - <li class="covered" data-hits="59" data-linenumber="119"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="121"> + <code class="ruby"> return block unless block.is_a?(Hash) &amp;&amp; block.key?(&#39;content&#39;)</code> </li> - <li class="never" data-hits="" data-linenumber="120"> + <li class="never" data-hits="" data-linenumber="122"> <code class="ruby"></code> </li> - <li class="covered" data-hits="59" data-linenumber="121"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="123"> + <code class="ruby"> invalid_nodes = []</code> </li> - <li class="covered" data-hits="59" data-linenumber="122"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="124"> + <code class="ruby"> coerced_nodes = {}</code> </li> - <li class="covered" data-hits="59" data-linenumber="123"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="125"> + <code class="ruby"> block[&#39;content&#39;].each_with_index do |node, index|</code> </li> - <li class="covered" data-hits="105" data-linenumber="124"> - <span class="hits">105</span> + <li class="missed" data-hits="0" data-linenumber="126"> + <code class="ruby"> if link?(node)</code> </li> - <li class="covered" data-hits="7" data-linenumber="125"> - <span class="hits">7</span> + <li class="missed" data-hits="0" data-linenumber="127"> + <code class="ruby"> link = coerce_link(node, configuration)</code> </li> - <li class="never" data-hits="" data-linenumber="126"> + <li class="never" data-hits="" data-linenumber="128"> <code class="ruby"></code> </li> - <li class="covered" data-hits="7" data-linenumber="127"> - <span class="hits">7</span> + <li class="missed" data-hits="0" data-linenumber="129"> + <code class="ruby"> if !link.nil?</code> </li> - <li class="covered" data-hits="6" data-linenumber="128"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="130"> + <code class="ruby"> node[&#39;data&#39;] = link</code> </li> - <li class="never" data-hits="" data-linenumber="129"> + <li class="never" data-hits="" data-linenumber="131"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="1" data-linenumber="130"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="132"> + <code class="ruby"> invalid_nodes &lt;&lt; index</code> </li> - <li class="never" data-hits="" data-linenumber="131"> + <li class="never" data-hits="" data-linenumber="133"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="98" data-linenumber="132"> - <span class="hits">98</span> + <li class="missed" data-hits="0" data-linenumber="134"> + <code class="ruby"> elsif content_block?(node)</code> </li> - <li class="covered" data-hits="56" data-linenumber="133"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="135"> + <code class="ruby"> coerced_nodes[index] = coerce_block(node, configuration)</code> </li> - <li class="never" data-hits="" data-linenumber="134"> + <li class="never" data-hits="" data-linenumber="136"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="135"> + <li class="never" data-hits="" data-linenumber="137"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="136"> + <li class="never" data-hits="" data-linenumber="138"> <code class="ruby"></code> </li> - <li class="covered" data-hits="59" data-linenumber="137"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="139"> + <code class="ruby"> coerced_nodes.each do |index, coerced_node|</code> </li> - <li class="covered" data-hits="56" data-linenumber="138"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="140"> + <code class="ruby"> block[&#39;content&#39;][index] = coerced_node</code> </li> - <li class="never" data-hits="" data-linenumber="139"> + <li class="never" data-hits="" data-linenumber="141"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="140"> + <li class="never" data-hits="" data-linenumber="142"> <code class="ruby"></code> </li> - <li class="covered" data-hits="59" data-linenumber="141"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="143"> + <code class="ruby"> invalid_nodes.each do |index|</code> </li> - <li class="covered" data-hits="1" data-linenumber="142"> - <span class="hits">1</span> + <li class="missed" data-hits="0" data-linenumber="144"> + <code class="ruby"> block[&#39;content&#39;].delete_at(index)</code> </li> - <li class="never" data-hits="" data-linenumber="143"> + <li class="never" data-hits="" data-linenumber="145"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="144"> + <li class="never" data-hits="" data-linenumber="146"> <code class="ruby"></code> </li> - <li class="covered" data-hits="59" data-linenumber="145"> - <span class="hits">59</span> + <li class="missed" data-hits="0" data-linenumber="147"> + <code class="ruby"> block</code> </li> - <li class="never" data-hits="" data-linenumber="146"> + <li class="never" data-hits="" data-linenumber="148"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="147"> + <li class="never" data-hits="" data-linenumber="149"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="148"> + <li class="covered" data-hits="1" data-linenumber="150"> <span class="hits">1</span> <code class="ruby"> def coerce_link(node, configuration)</code> </li> - <li class="covered" data-hits="7" data-linenumber="149"> - <span class="hits">7</span> + <li class="missed" data-hits="0" data-linenumber="151"> + <code class="ruby"> return node unless node.key?(&#39;data&#39;) &amp;&amp; node[&#39;data&#39;].key?(&#39;target&#39;)</code> </li> - <li class="covered" data-hits="7" data-linenumber="150"> - <span class="hits">7</span> + <li class="missed" data-hits="0" data-linenumber="152"> + <code class="ruby"> return node unless node[&#39;data&#39;][&#39;target&#39;][&#39;sys&#39;][&#39;type&#39;] == &#39;Link&#39;</code> </li> - <li class="never" data-hits="" data-linenumber="151"> + <li class="never" data-hits="" data-linenumber="153"> <code class="ruby"></code> </li> - <li class="covered" data-hits="7" data-linenumber="152"> - <span class="hits">7</span> + <li class="missed" data-hits="0" data-linenumber="154"> + <code class="ruby"> return nil if Support.unresolvable?(node[&#39;data&#39;][&#39;target&#39;], configuration[:errors])</code> </li> - <li class="never" data-hits="" data-linenumber="153"> + <li class="never" data-hits="" data-linenumber="155"> <code class="ruby"></code> </li> - <li class="covered" data-hits="6" data-linenumber="154"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="156"> + <code class="ruby"> resource = Support.resource_for_link(</code> </li> - <li class="never" data-hits="" data-linenumber="155"> + <li class="never" data-hits="" data-linenumber="157"> <code class="ruby"> node[&#39;data&#39;][&#39;target&#39;],</code> </li> - <li class="never" data-hits="" data-linenumber="156"> + <li class="never" data-hits="" data-linenumber="158"> <code class="ruby"> configuration[:includes_for_single]</code> </li> - <li class="never" data-hits="" data-linenumber="157"> + <li class="never" data-hits="" data-linenumber="159"> <code class="ruby"> )</code> </li> - <li class="never" data-hits="" data-linenumber="158"> + <li class="never" data-hits="" data-linenumber="160"> <code class="ruby"></code> </li> - <li class="never" data-hits="" data-linenumber="159"> + <li class="never" data-hits="" data-linenumber="161"> <code class="ruby"> ResourceBuilder.new(</code> </li> - <li class="never" data-hits="" data-linenumber="160"> + <li class="never" data-hits="" data-linenumber="162"> <code class="ruby"> resource,</code> </li> - <li class="never" data-hits="" data-linenumber="161"> + <li class="never" data-hits="" data-linenumber="163"> <code class="ruby"> configuration,</code> </li> - <li class="never" data-hits="" data-linenumber="162"> + <li class="never" data-hits="" data-linenumber="164"> <code class="ruby"> configuration[:localized],</code> </li> - <li class="never" data-hits="" data-linenumber="163"> + <li class="never" data-hits="" data-linenumber="165"> <code class="ruby"> configuration[:depth] + 1,</code> </li> - <li class="never" data-hits="" data-linenumber="164"> + <li class="never" data-hits="" data-linenumber="166"> <code class="ruby"> configuration[:errors]</code> </li> - <li class="covered" data-hits="6" data-linenumber="165"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="167"> + <code class="ruby"> ).run</code> </li> - <li class="never" data-hits="" data-linenumber="166"> + <li class="never" data-hits="" data-linenumber="168"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="167"> + <li class="never" data-hits="" data-linenumber="169"> <code class="ruby"> end</code> </li> - <li class="never" data-hits="" data-linenumber="168"> + <li class="never" data-hits="" data-linenumber="170"> <code class="ruby">end</code> </li> @@ -6074,15 +6086,15 @@ <div class="source_table" id="14469a10a1dbe8c3a1825151ed33eb9240571afb"> <div class="header"> <h3>lib/contentful/content_type.rb</h3> - <h4><span class="green">94.44 %</span> covered</h4> + <h4><span class="red">61.11 %</span> covered</h4> <div> <b>18</b> relevant lines. - <span class="green"><b>17</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> + <span class="green"><b>11</b> lines covered</span> and + <span class="red"><b>7</b> lines missed.</span> </div> </div> <pre> <ol> @@ -6151,43 +6163,43 @@ <span class="hits">1</span> <code class="ruby"> def initialize(item, *)</code> </li> - <li class="covered" data-hits="27" data-linenumber="12"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="12"> + <code class="ruby"> super</code> </li> <li class="never" data-hits="" data-linenumber="13"> <code class="ruby"></code> </li> - <li class="covered" data-hits="27" data-linenumber="14"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> @name = item.fetch(&#39;name&#39;, nil)</code> </li> - <li class="covered" data-hits="27" data-linenumber="15"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="15"> + <code class="ruby"> @description = item.fetch(&#39;description&#39;, nil)</code> </li> - <li class="covered" data-hits="97" data-linenumber="16"> - <span class="hits">97</span> + <li class="missed" data-hits="0" data-linenumber="16"> + <code class="ruby"> @fields = item.fetch(&#39;fields&#39;, []).map { |field| Field.new(field) }</code> </li> - <li class="covered" data-hits="27" data-linenumber="17"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="17"> + <code class="ruby"> @display_field = item.fetch(&#39;displayField&#39;, nil)</code> </li> <li class="never" data-hits="" data-linenumber="18"> @@ -6211,13 +6223,13 @@ <span class="hits">1</span> <code class="ruby"> def field_for(field_id)</code> </li> - <li class="covered" data-hits="136" data-linenumber="22"> - <span class="hits">136</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> fields.detect { |f| Support.snakify(f.id) == Support.snakify(field_id) }</code> </li> <li class="never" data-hits="" data-linenumber="23"> @@ -6291,15 +6303,15 @@ <div class="source_table" id="a46b40f2e6381b7f2ac84d26e7bc008d4e6985eb"> <div class="header"> <h3>lib/contentful/content_type_cache.rb</h3> - <h4><span class="green">91.67 %</span> covered</h4> + <h4><span class="red">66.67 %</span> covered</h4> <div> <b>12</b> relevant lines. - <span class="green"><b>11</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> + <span class="green"><b>8</b> lines covered</span> and + <span class="red"><b>4</b> lines missed.</span> </div> </div> <pre> <ol> @@ -6398,13 +6410,13 @@ <span class="hits">1</span> <code class="ruby"> def self.cache_get(space_id, content_type_id)</code> </li> - <li class="covered" data-hits="2691" data-linenumber="17"> - <span class="hits">2691</span> + <li class="missed" data-hits="0" data-linenumber="17"> + <code class="ruby"> @cache.fetch(space_id, {}).fetch(content_type_id.to_sym, nil)</code> </li> <li class="never" data-hits="" data-linenumber="18"> @@ -6428,19 +6440,19 @@ <span class="hits">1</span> <code class="ruby"> def self.cache_set(space_id, content_type_id, klass)</code> </li> - <li class="covered" data-hits="27" data-linenumber="22"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> @cache[space_id] ||= {}</code> </li> - <li class="covered" data-hits="27" data-linenumber="23"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="23"> + <code class="ruby"> @cache[space_id][content_type_id.to_sym] = klass</code> </li> <li class="never" data-hits="" data-linenumber="24"> @@ -6588,15 +6600,15 @@ <div class="source_table" id="97df464094b50c0508a4a014acd1a9beace447a1"> <div class="header"> <h3>lib/contentful/entry.rb</h3> - <h4><span class="green">95.45 %</span> covered</h4> + <h4><span class="red">36.36 %</span> covered</h4> <div> <b>44</b> relevant lines. - <span class="green"><b>42</b> lines covered</span> and - <span class="red"><b>2</b> lines missed.</span> + <span class="green"><b>16</b> lines covered</span> and + <span class="red"><b>28</b> lines missed.</span> </div> </div> <pre> <ol> @@ -6671,13 +6683,13 @@ <span class="hits">1</span> <code class="ruby"> def entry?</code> </li> - <li class="covered" data-hits="4" data-linenumber="13"> - <span class="hits">4</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> true</code> </li> <li class="never" data-hits="" data-linenumber="14"> @@ -6707,73 +6719,73 @@ <span class="hits">1</span> <code class="ruby"> def coerce(field_id, value, includes, errors, entries = {})</code> </li> - <li class="covered" data-hits="3743" data-linenumber="19"> - <span class="hits">3743</span> + <li class="missed" data-hits="0" data-linenumber="19"> + <code class="ruby"> if Support.link?(value) &amp;&amp; !Support.unresolvable?(value, errors)</code> </li> - <li class="covered" data-hits="1038" data-linenumber="20"> - <span class="hits">1038</span> + <li class="missed" data-hits="0" data-linenumber="20"> + <code class="ruby"> return build_nested_resource(value, includes, entries, errors)</code> </li> <li class="never" data-hits="" data-linenumber="21"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="2705" data-linenumber="22"> - <span class="hits">2705</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> return coerce_link_array(value, includes, errors, entries) if Support.link_array?(value)</code> </li> <li class="never" data-hits="" data-linenumber="23"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2691" data-linenumber="24"> - <span class="hits">2691</span> + <li class="missed" data-hits="0" data-linenumber="24"> + <code class="ruby"> content_type_key = Support.snakify(&#39;contentType&#39;, @configuration[:use_camel_case])</code> </li> - <li class="covered" data-hits="2691" data-linenumber="25"> - <span class="hits">2691</span> + <li class="missed" data-hits="0" data-linenumber="25"> + <code class="ruby"> content_type = ContentTypeCache.cache_get(sys[:space].id, sys[content_type_key.to_sym].id)</code> </li> <li class="never" data-hits="" data-linenumber="26"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2691" data-linenumber="27"> - <span class="hits">2691</span> + <li class="missed" data-hits="0" data-linenumber="27"> + <code class="ruby"> unless content_type.nil?</code> </li> - <li class="covered" data-hits="41" data-linenumber="28"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="28"> + <code class="ruby"> content_type_field = content_type.field_for(field_id)</code> </li> - <li class="covered" data-hits="41" data-linenumber="29"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="29"> + <code class="ruby"> coercion_configuration = @configuration.merge(</code> </li> <li class="never" data-hits="" data-linenumber="30"> @@ -6815,13 +6827,13 @@ <code class="ruby"> )</code> </li> - <li class="covered" data-hits="41" data-linenumber="37"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="37"> + <code class="ruby"> return content_type_field.coerce(value, coercion_configuration) unless content_type_field.nil?</code> </li> <li class="never" data-hits="" data-linenumber="38"> @@ -6833,13 +6845,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="2650" data-linenumber="40"> - <span class="hits">2650</span> + <li class="missed" data-hits="0" data-linenumber="40"> + <code class="ruby"> super(field_id, value, includes, errors, entries)</code> </li> <li class="never" data-hits="" data-linenumber="41"> @@ -6857,31 +6869,31 @@ <span class="hits">1</span> <code class="ruby"> def coerce_link_array(value, includes, errors, entries)</code> </li> - <li class="covered" data-hits="14" data-linenumber="44"> - <span class="hits">14</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> items = []</code> </li> - <li class="covered" data-hits="14" data-linenumber="45"> - <span class="hits">14</span> + <li class="missed" data-hits="0" data-linenumber="45"> + <code class="ruby"> value.each do |link|</code> </li> - <li class="covered" data-hits="26" data-linenumber="46"> - <span class="hits">26</span> + <li class="missed" data-hits="0" data-linenumber="46"> + <code class="ruby"> nested_resource = build_nested_resource(link, includes, entries, errors) unless Support.unresolvable?(link, errors)</code> </li> - <li class="covered" data-hits="26" data-linenumber="47"> - <span class="hits">26</span> + <li class="missed" data-hits="0" data-linenumber="47"> + <code class="ruby"> items &lt;&lt; nested_resource unless nested_resource.nil?</code> </li> <li class="never" data-hits="" data-linenumber="48"> @@ -6893,13 +6905,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="14" data-linenumber="50"> - <span class="hits">14</span> + <li class="missed" data-hits="0" data-linenumber="50"> + <code class="ruby"> items</code> </li> <li class="never" data-hits="" data-linenumber="51"> @@ -6941,25 +6953,25 @@ <span class="hits">1</span> <code class="ruby"> def build_nested_resource(value, includes, entries, errors)</code> </li> - <li class="covered" data-hits="1062" data-linenumber="58"> - <span class="hits">1062</span> + <li class="missed" data-hits="0" data-linenumber="58"> + <code class="ruby"> if @depth &lt; @configuration.fetch(:max_include_resolution_depth, 20)</code> </li> - <li class="covered" data-hits="997" data-linenumber="59"> - <span class="hits">997</span> + <li class="missed" data-hits="0" data-linenumber="59"> + <code class="ruby"> resource = Support.resource_for_link(value, includes)</code> </li> - <li class="covered" data-hits="997" data-linenumber="60"> - <span class="hits">997</span> + <li class="missed" data-hits="0" data-linenumber="60"> + <code class="ruby"> return resolve_include(resource, includes, entries, errors) unless resource.nil?</code> </li> <li class="never" data-hits="" data-linenumber="61"> @@ -6971,13 +6983,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="65" data-linenumber="63"> - <span class="hits">65</span> + <li class="missed" data-hits="0" data-linenumber="63"> + <code class="ruby"> build_link(value)</code> </li> <li class="never" data-hits="" data-linenumber="64"> @@ -6995,13 +7007,13 @@ <span class="hits">1</span> <code class="ruby"> def resolve_include(resource, includes, entries, errors)</code> </li> - <li class="covered" data-hits="997" data-linenumber="67"> - <span class="hits">997</span> + <li class="missed" data-hits="0" data-linenumber="67"> + <code class="ruby"> require_relative &#39;resource_builder&#39;</code> </li> <li class="never" data-hits="" data-linenumber="68"> @@ -7067,13 +7079,13 @@ <code class="ruby"> errors</code> </li> - <li class="covered" data-hits="997" data-linenumber="79"> - <span class="hits">997</span> + <li class="missed" data-hits="0" data-linenumber="79"> + <code class="ruby"> ).run</code> </li> <li class="never" data-hits="" data-linenumber="80"> @@ -7091,25 +7103,25 @@ <span class="hits">1</span> <code class="ruby"> def known_link?(name)</code> </li> - <li class="covered" data-hits="108" data-linenumber="83"> - <span class="hits">108</span> + <li class="missed" data-hits="0" data-linenumber="83"> + <code class="ruby"> field_name = name.to_sym</code> </li> - <li class="covered" data-hits="108" data-linenumber="84"> - <span class="hits">108</span> + <li class="missed" data-hits="0" data-linenumber="84"> + <code class="ruby"> return true if known_contentful_object?(fields[field_name])</code> </li> - <li class="covered" data-hits="124" data-linenumber="85"> - <span class="hits">124</span> + <li class="missed" data-hits="0" data-linenumber="85"> + <code class="ruby"> fields[field_name].is_a?(Enumerable) &amp;&amp; fields[field_name].any? { |object| known_contentful_object?(object) }</code> </li> <li class="never" data-hits="" data-linenumber="86"> @@ -7127,13 +7139,13 @@ <span class="hits">1</span> <code class="ruby"> def known_contentful_object?(object)</code> </li> - <li class="covered" data-hits="144" data-linenumber="89"> - <span class="hits">144</span> + <li class="missed" data-hits="0" data-linenumber="89"> + <code class="ruby"> (object.is_a?(Contentful::Entry) || object.is_a?(Contentful::Asset))</code> </li> <li class="never" data-hits="" data-linenumber="90"> @@ -7201,15 +7213,15 @@ <div class="source_table" id="98433a4cac96676bcf6b420f480c3d946ae0d0cb"> <div class="header"> <h3>lib/contentful/error.rb</h3> - <h4><span class="red">68.82 %</span> covered</h4> + <h4><span class="green">98.92 %</span> covered</h4> <div> <b>93</b> relevant lines. - <span class="green"><b>64</b> lines covered</span> and - <span class="red"><b>29</b> lines missed.</span> + <span class="green"><b>92</b> lines covered</span> and + <span class="red"><b>1</b> lines missed.</span> </div> </div> <pre> <ol> @@ -7254,18 +7266,18 @@ <span class="hits">1</span> <code class="ruby"> def initialize(response)</code> </li> - <li class="covered" data-hits="1" data-linenumber="8"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="8"> + <span class="hits">51</span> <code class="ruby"> @response = response</code> </li> - <li class="covered" data-hits="1" data-linenumber="9"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="9"> + <span class="hits">51</span> <code class="ruby"> super best_available_message</code> </li> <li class="never" data-hits="" data-linenumber="10"> @@ -7296,12 +7308,12 @@ <span class="hits">1</span> <code class="ruby"> def self.[](error_status_code)</code> </li> - <li class="covered" data-hits="1" data-linenumber="15"> - <span class="hits">1</span> + <li class="covered" data-hits="54" data-linenumber="15"> + <span class="hits">54</span> <code class="ruby"> errors = {</code> </li> <li class="never" data-hits="" data-linenumber="16"> @@ -7362,12 +7374,12 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="26"> - <span class="hits">1</span> + <li class="covered" data-hits="54" data-linenumber="26"> + <span class="hits">54</span> <code class="ruby"> errors.key?(error_status_code) ? errors[error_status_code] : Error</code> </li> <li class="never" data-hits="" data-linenumber="27"> @@ -7398,13 +7410,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="32"> + <li class="covered" data-hits="13" data-linenumber="32"> + <span class="hits">13</span> - <code class="ruby"> &quot;The following error was received: #{@response.raw.body}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="33"> @@ -7422,13 +7434,13 @@ <span class="hits">1</span> <code class="ruby"> def handle_details(details)</code> </li> - <li class="missed" data-hits="0" data-linenumber="36"> + <li class="covered" data-hits="9" data-linenumber="36"> + <span class="hits">9</span> - <code class="ruby"> details.to_s</code> </li> <li class="never" data-hits="" data-linenumber="37"> @@ -7446,12 +7458,12 @@ <span class="hits">1</span> <code class="ruby"> def additional_info?</code> </li> - <li class="covered" data-hits="1" data-linenumber="40"> - <span class="hits">1</span> + <li class="covered" data-hits="47" data-linenumber="40"> + <span class="hits">47</span> <code class="ruby"> false</code> </li> <li class="never" data-hits="" data-linenumber="41"> @@ -7494,12 +7506,12 @@ <span class="hits">1</span> <code class="ruby"> def best_available_message</code> </li> - <li class="covered" data-hits="1" data-linenumber="48"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="48"> + <span class="hits">51</span> <code class="ruby"> error_message = [</code> </li> <li class="never" data-hits="" data-linenumber="49"> @@ -7518,73 +7530,73 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="52"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="52"> + <span class="hits">51</span> <code class="ruby"> begin</code> </li> - <li class="covered" data-hits="1" data-linenumber="53"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="53"> + <span class="hits">51</span> <code class="ruby"> response_json = @response.load_json</code> </li> - <li class="covered" data-hits="1" data-linenumber="54"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="54"> + <span class="hits">49</span> <code class="ruby"> message = response_json.fetch(&#39;message&#39;, default_error_message)</code> </li> - <li class="covered" data-hits="1" data-linenumber="55"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="55"> + <span class="hits">49</span> <code class="ruby"> details = response_json.fetch(&#39;details&#39;, nil)</code> </li> - <li class="covered" data-hits="1" data-linenumber="56"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="56"> + <span class="hits">49</span> <code class="ruby"> request_id = response_json.fetch(&#39;requestId&#39;, nil)</code> </li> <li class="never" data-hits="" data-linenumber="57"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="58"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="58"> + <span class="hits">49</span> <code class="ruby"> error_message &lt;&lt; &quot;Message: #{message}&quot;</code> </li> - <li class="covered" data-hits="1" data-linenumber="59"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="59"> + <span class="hits">49</span> <code class="ruby"> error_message &lt;&lt; &quot;Details: #{handle_details(details)}&quot; if details</code> </li> - <li class="covered" data-hits="1" data-linenumber="60"> - <span class="hits">1</span> + <li class="covered" data-hits="49" data-linenumber="60"> + <span class="hits">49</span> <code class="ruby"> error_message &lt;&lt; &quot;Request ID: #{request_id}&quot; if request_id</code> </li> <li class="never" data-hits="" data-linenumber="61"> <code class="ruby"> rescue</code> </li> - <li class="missed" data-hits="0" data-linenumber="62"> + <li class="covered" data-hits="2" data-linenumber="62"> + <span class="hits">2</span> - <code class="ruby"> error_message &lt;&lt; &quot;Message: #{default_error_message}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="63"> @@ -7596,24 +7608,24 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="65"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="65"> + <span class="hits">51</span> <code class="ruby"> error_message &lt;&lt; additional_info if additional_info?</code> </li> <li class="never" data-hits="" data-linenumber="66"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1" data-linenumber="67"> - <span class="hits">1</span> + <li class="covered" data-hits="51" data-linenumber="67"> + <span class="hits">51</span> <code class="ruby"> error_message.join(&quot;\n&quot;)</code> </li> <li class="never" data-hits="" data-linenumber="68"> @@ -7662,12 +7674,12 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="covered" data-hits="1" data-linenumber="76"> - <span class="hits">1</span> + <li class="covered" data-hits="8" data-linenumber="76"> + <span class="hits">8</span> <code class="ruby"> &#39;The request was malformed or missing a required parameter.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="77"> @@ -7686,37 +7698,37 @@ <span class="hits">1</span> <code class="ruby"> def handle_details(details)</code> </li> - <li class="missed" data-hits="0" data-linenumber="80"> + <li class="covered" data-hits="6" data-linenumber="80"> + <span class="hits">6</span> - <code class="ruby"> return details if details.is_a?(String)</code> </li> <li class="never" data-hits="" data-linenumber="81"> <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="82"> + <li class="covered" data-hits="4" data-linenumber="82"> + <span class="hits">4</span> - <code class="ruby"> handle_detail = proc do |detail|</code> </li> - <li class="missed" data-hits="0" data-linenumber="83"> + <li class="covered" data-hits="4" data-linenumber="83"> + <span class="hits">4</span> - <code class="ruby"> return detail if detail.is_a?(String)</code> </li> - <li class="missed" data-hits="0" data-linenumber="84"> + <li class="covered" data-hits="2" data-linenumber="84"> + <span class="hits">2</span> - <code class="ruby"> detail.fetch(&#39;details&#39;, nil)</code> </li> <li class="never" data-hits="" data-linenumber="85"> @@ -7728,19 +7740,19 @@ <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="87"> + <li class="covered" data-hits="8" data-linenumber="87"> + <span class="hits">8</span> - <code class="ruby"> inner_details = details[&#39;errors&#39;].map { |detail| handle_detail[detail] }.reject(&amp;:nil?)</code> </li> - <li class="missed" data-hits="0" data-linenumber="88"> + <li class="covered" data-hits="2" data-linenumber="88"> + <span class="hits">2</span> - <code class="ruby"> inner_details.join(&quot;\n\t&quot;)</code> </li> <li class="never" data-hits="" data-linenumber="89"> @@ -7788,13 +7800,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="97"> + <li class="covered" data-hits="2" data-linenumber="97"> + <span class="hits">2</span> - <code class="ruby"> &#39;The authorization token was invalid.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="98"> @@ -7842,13 +7854,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="106"> + <li class="covered" data-hits="4" data-linenumber="106"> + <span class="hits">4</span> - <code class="ruby"> &#39;The specified token does not have access to the requested resource.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="107"> @@ -7866,13 +7878,13 @@ <span class="hits">1</span> <code class="ruby"> def handle_details(details)</code> </li> - <li class="missed" data-hits="0" data-linenumber="110"> + <li class="covered" data-hits="2" data-linenumber="110"> + <span class="hits">2</span> - <code class="ruby"> &quot;\n\tReasons:\n\t\t#{details[&#39;reasons&#39;].join(&quot;\n\t\t&quot;)}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="111"> @@ -7920,13 +7932,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="119"> + <li class="covered" data-hits="12" data-linenumber="119"> + <span class="hits">12</span> - <code class="ruby"> &#39;The requested resource or endpoint could not be found.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="120"> @@ -7944,61 +7956,61 @@ <span class="hits">1</span> <code class="ruby"> def handle_details(details)</code> </li> - <li class="missed" data-hits="0" data-linenumber="123"> + <li class="covered" data-hits="10" data-linenumber="123"> + <span class="hits">10</span> - <code class="ruby"> return details if details.is_a?(String)</code> </li> <li class="never" data-hits="" data-linenumber="124"> <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="125"> + <li class="covered" data-hits="8" data-linenumber="125"> + <span class="hits">8</span> - <code class="ruby"> type = details[&#39;type&#39;] || (details[&#39;sys&#39;] || {})[&#39;type&#39;]</code> </li> - <li class="missed" data-hits="0" data-linenumber="126"> + <li class="covered" data-hits="8" data-linenumber="126"> + <span class="hits">8</span> - <code class="ruby"> message = &quot;The requested #{type} could not be found.&quot;</code> </li> <li class="never" data-hits="" data-linenumber="127"> <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="128"> + <li class="covered" data-hits="8" data-linenumber="128"> + <span class="hits">8</span> - <code class="ruby"> resource_id = details.fetch(&#39;id&#39;, nil)</code> </li> - <li class="missed" data-hits="0" data-linenumber="129"> + <li class="covered" data-hits="8" data-linenumber="129"> + <span class="hits">8</span> - <code class="ruby"> message += &quot; ID: #{resource_id}.&quot; if resource_id</code> </li> <li class="never" data-hits="" data-linenumber="130"> <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="131"> + <li class="covered" data-hits="8" data-linenumber="131"> + <span class="hits">8</span> - <code class="ruby"> message</code> </li> <li class="never" data-hits="" data-linenumber="132"> @@ -8058,13 +8070,13 @@ <code class="ruby"> # rubocop:disable Style/DoubleNegation</code> </li> - <li class="missed" data-hits="0" data-linenumber="142"> + <li class="covered" data-hits="4" data-linenumber="142"> + <span class="hits">4</span> - <code class="ruby"> !!reset_time</code> </li> <li class="never" data-hits="" data-linenumber="143"> @@ -8094,13 +8106,13 @@ <span class="hits">1</span> <code class="ruby"> def reset_time</code> </li> - <li class="missed" data-hits="0" data-linenumber="148"> + <li class="covered" data-hits="6" data-linenumber="148"> + <span class="hits">6</span> - <code class="ruby"> @reset_time ||= @response.raw[RATE_LIMIT_RESET_HEADER_KEY]</code> </li> <li class="never" data-hits="" data-linenumber="149"> @@ -8130,13 +8142,13 @@ <span class="hits">1</span> <code class="ruby"> def additional_info?</code> </li> - <li class="missed" data-hits="0" data-linenumber="154"> + <li class="covered" data-hits="4" data-linenumber="154"> + <span class="hits">4</span> - <code class="ruby"> reset_time?</code> </li> <li class="never" data-hits="" data-linenumber="155"> @@ -8154,13 +8166,13 @@ <span class="hits">1</span> <code class="ruby"> def additional_info</code> </li> - <li class="missed" data-hits="0" data-linenumber="158"> + <li class="covered" data-hits="2" data-linenumber="158"> + <span class="hits">2</span> - <code class="ruby"> [&quot;Time until reset (seconds): #{reset_time}&quot;]</code> </li> <li class="never" data-hits="" data-linenumber="159"> @@ -8178,13 +8190,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="162"> + <li class="covered" data-hits="4" data-linenumber="162"> + <span class="hits">4</span> - <code class="ruby"> &#39;Rate limit exceeded. Too many requests.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="163"> @@ -8232,13 +8244,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="171"> + <li class="covered" data-hits="2" data-linenumber="171"> + <span class="hits">2</span> - <code class="ruby"> &#39;Internal server error.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="172"> @@ -8286,13 +8298,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="180"> + <li class="covered" data-hits="2" data-linenumber="180"> + <span class="hits">2</span> - <code class="ruby"> &#39;The requested space is hibernated.&#39;</code> </li> <li class="never" data-hits="" data-linenumber="181"> @@ -8340,14 +8352,14 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="189"> + <li class="covered" data-hits="2" data-linenumber="189"> + <span class="hits">2</span> - - <code class="ruby"> &#39;The request was malformed or missing a required parameter.&#39;</code> + <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> <li class="never" data-hits="" data-linenumber="190"> @@ -8394,13 +8406,13 @@ <span class="hits">1</span> <code class="ruby"> def default_error_message</code> </li> - <li class="missed" data-hits="0" data-linenumber="198"> + <li class="covered" data-hits="2" data-linenumber="198"> + <span class="hits">2</span> - <code class="ruby"> @response.error_message</code> </li> <li class="never" data-hits="" data-linenumber="199"> @@ -8444,15 +8456,15 @@ <div class="source_table" id="4f89ce6a6221e537edb751b920a159e36a286ebd"> <div class="header"> <h3>lib/contentful/field.rb</h3> - <h4><span class="green">100.0 %</span> covered</h4> + <h4><span class="red">38.1 %</span> covered</h4> <div> <b>21</b> relevant lines. - <span class="green"><b>21</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> + <span class="green"><b>8</b> lines covered</span> and + <span class="red"><b>13</b> lines missed.</span> </div> </div> <pre> <ol> @@ -8611,55 +8623,55 @@ <span class="hits">1</span> <code class="ruby"> def initialize(json)</code> </li> - <li class="covered" data-hits="79" data-linenumber="27"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="27"> + <code class="ruby"> @raw = json</code> </li> - <li class="covered" data-hits="79" data-linenumber="28"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="28"> + <code class="ruby"> @id = json.fetch(&#39;id&#39;, nil)</code> </li> - <li class="covered" data-hits="79" data-linenumber="29"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="29"> + <code class="ruby"> @name = json.fetch(&#39;name&#39;, nil)</code> </li> - <li class="covered" data-hits="79" data-linenumber="30"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="30"> + <code class="ruby"> @type = json.fetch(&#39;type&#39;, nil)</code> </li> - <li class="covered" data-hits="79" data-linenumber="31"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="31"> + <code class="ruby"> @link_type = json.fetch(&#39;linkType&#39;, nil)</code> </li> - <li class="covered" data-hits="79" data-linenumber="32"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="32"> + <code class="ruby"> @items = json.key?(&#39;items&#39;) ? Field.new(json.fetch(&#39;items&#39;, {})) : nil</code> </li> - <li class="covered" data-hits="79" data-linenumber="33"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="33"> + <code class="ruby"> @required = json.fetch(&#39;required&#39;, false)</code> </li> - <li class="covered" data-hits="79" data-linenumber="34"> - <span class="hits">79</span> + <li class="missed" data-hits="0" data-linenumber="34"> + <code class="ruby"> @localized = json.fetch(&#39;localized&#39;, false)</code> </li> <li class="never" data-hits="" data-linenumber="35"> @@ -8683,43 +8695,43 @@ <span class="hits">1</span> <code class="ruby"> def coerce(value, configuration)</code> </li> - <li class="covered" data-hits="41" data-linenumber="39"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="39"> + <code class="ruby"> return value if type.nil?</code> </li> - <li class="covered" data-hits="41" data-linenumber="40"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="40"> + <code class="ruby"> return value if value.nil?</code> </li> <li class="never" data-hits="" data-linenumber="41"> <code class="ruby"></code> </li> - <li class="covered" data-hits="41" data-linenumber="42"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="42"> + <code class="ruby"> options = {}</code> </li> - <li class="covered" data-hits="41" data-linenumber="43"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="43"> + <code class="ruby"> options[:coercion_class] = KNOWN_TYPES[items.type] unless items.nil?</code> </li> - <li class="covered" data-hits="41" data-linenumber="44"> - <span class="hits">41</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> KNOWN_TYPES[type].new(value, options).coerce(configuration)</code> </li> <li class="never" data-hits="" data-linenumber="45"> @@ -8745,15 +8757,15 @@ <div class="source_table" id="eecf0f806597fc4b233727ac4e855ef0a80b0ade"> <div class="header"> <h3>lib/contentful/fields_resource.rb</h3> - <h4><span class="green">100.0 %</span> covered</h4> + <h4><span class="red">29.23 %</span> covered</h4> <div> <b>65</b> relevant lines. - <span class="green"><b>65</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> + <span class="green"><b>19</b> lines covered</span> and + <span class="red"><b>46</b> lines missed.</span> </div> </div> <pre> <ol> @@ -8816,37 +8828,37 @@ <span class="hits">1</span> <code class="ruby"> def initialize(item, _configuration, localized = false, includes = [], entries = {}, depth = 0, errors = [])</code> </li> - <li class="covered" data-hits="1046" data-linenumber="11"> - <span class="hits">1046</span> + <li class="missed" data-hits="0" data-linenumber="11"> + <code class="ruby"> super</code> </li> <li class="never" data-hits="" data-linenumber="12"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1046" data-linenumber="13"> - <span class="hits">1046</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> @localized = localized</code> </li> - <li class="covered" data-hits="1046" data-linenumber="14"> - <span class="hits">1046</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> @fields = hydrate_fields(includes, entries, errors)</code> </li> - <li class="covered" data-hits="1046" data-linenumber="15"> - <span class="hits">1046</span> + <li class="missed" data-hits="0" data-linenumber="15"> + <code class="ruby"> define_fields_methods!</code> </li> <li class="never" data-hits="" data-linenumber="16"> @@ -8882,19 +8894,19 @@ <span class="hits">1</span> <code class="ruby"> def fields(wanted_locale = nil)</code> </li> - <li class="covered" data-hits="1350" data-linenumber="22"> - <span class="hits">1350</span> + <li class="missed" data-hits="0" data-linenumber="22"> + <code class="ruby"> wanted_locale = internal_resource_locale if wanted_locale.nil?</code> </li> - <li class="covered" data-hits="1350" data-linenumber="23"> - <span class="hits">1350</span> + <li class="missed" data-hits="0" data-linenumber="23"> + <code class="ruby"> @fields.fetch(wanted_locale.to_s, {})</code> </li> <li class="never" data-hits="" data-linenumber="24"> @@ -8930,37 +8942,37 @@ <span class="hits">1</span> <code class="ruby"> def fields_with_locales</code> </li> - <li class="covered" data-hits="5" data-linenumber="30"> - <span class="hits">5</span> + <li class="missed" data-hits="0" data-linenumber="30"> + <code class="ruby"> remapped_fields = {}</code> </li> - <li class="covered" data-hits="5" data-linenumber="31"> - <span class="hits">5</span> + <li class="missed" data-hits="0" data-linenumber="31"> + <code class="ruby"> locales.each do |locale|</code> </li> - <li class="covered" data-hits="8" data-linenumber="32"> - <span class="hits">8</span> + <li class="missed" data-hits="0" data-linenumber="32"> + <code class="ruby"> fields(locale).each do |name, value|</code> </li> - <li class="covered" data-hits="38" data-linenumber="33"> - <span class="hits">38</span> + <li class="missed" data-hits="0" data-linenumber="33"> + <code class="ruby"> remapped_fields[name] ||= {}</code> </li> - <li class="covered" data-hits="38" data-linenumber="34"> - <span class="hits">38</span> + <li class="missed" data-hits="0" data-linenumber="34"> + <code class="ruby"> remapped_fields[name][locale.to_sym] = value</code> </li> <li class="never" data-hits="" data-linenumber="35"> @@ -8978,13 +8990,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="5" data-linenumber="38"> - <span class="hits">5</span> + <li class="missed" data-hits="0" data-linenumber="38"> + <code class="ruby"> remapped_fields</code> </li> <li class="never" data-hits="" data-linenumber="39"> @@ -9008,13 +9020,13 @@ <span class="hits">1</span> <code class="ruby"> def locales</code> </li> - <li class="covered" data-hits="52" data-linenumber="43"> - <span class="hits">52</span> + <li class="missed" data-hits="0" data-linenumber="43"> + <code class="ruby"> @fields.keys</code> </li> <li class="never" data-hits="" data-linenumber="44"> @@ -9038,13 +9050,13 @@ <span class="hits">1</span> <code class="ruby"> def marshal_dump</code> </li> - <li class="covered" data-hits="21" data-linenumber="48"> - <span class="hits">21</span> + <li class="missed" data-hits="0" data-linenumber="48"> + <code class="ruby"> {</code> </li> <li class="never" data-hits="" data-linenumber="49"> @@ -9092,31 +9104,31 @@ <span class="hits">1</span> <code class="ruby"> def marshal_load(raw_object)</code> </li> - <li class="covered" data-hits="31" data-linenumber="57"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="57"> + <code class="ruby"> super(raw_object)</code> </li> - <li class="covered" data-hits="31" data-linenumber="58"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="58"> + <code class="ruby"> @localized = raw_object[:localized]</code> </li> - <li class="covered" data-hits="31" data-linenumber="59"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="59"> + <code class="ruby"> @fields = hydrate_fields(raw_object[:configuration].fetch(:includes_for_single, []), {}, [])</code> </li> - <li class="covered" data-hits="31" data-linenumber="60"> - <span class="hits">31</span> + <li class="missed" data-hits="0" data-linenumber="60"> + <code class="ruby"> define_fields_methods!</code> </li> <li class="never" data-hits="" data-linenumber="61"> @@ -9140,37 +9152,37 @@ <span class="hits">1</span> <code class="ruby"> def raw_with_links</code> </li> - <li class="covered" data-hits="129" data-linenumber="65"> - <span class="hits">129</span> + <li class="missed" data-hits="0" data-linenumber="65"> + <code class="ruby"> links = fields.keys.select { |property| known_link?(property) }</code> </li> - <li class="covered" data-hits="21" data-linenumber="66"> - <span class="hits">21</span> + <li class="missed" data-hits="0" data-linenumber="66"> + <code class="ruby"> processed_raw = raw.clone</code> </li> - <li class="covered" data-hits="21" data-linenumber="67"> - <span class="hits">21</span> + <li class="missed" data-hits="0" data-linenumber="67"> + <code class="ruby"> raw[&#39;fields&#39;].each do |k, v|</code> </li> - <li class="covered" data-hits="122" data-linenumber="68"> - <span class="hits">122</span> + <li class="missed" data-hits="0" data-linenumber="68"> + <code class="ruby"> links_key = Support.snakify(k, @configuration[:use_camel_case])</code> </li> - <li class="covered" data-hits="122" data-linenumber="69"> - <span class="hits">122</span> + <li class="missed" data-hits="0" data-linenumber="69"> + <code class="ruby"> processed_raw[&#39;fields&#39;][k] = links.include?(links_key.to_sym) ? send(links_key) : v</code> </li> <li class="never" data-hits="" data-linenumber="70"> @@ -9182,13 +9194,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="21" data-linenumber="72"> - <span class="hits">21</span> + <li class="missed" data-hits="0" data-linenumber="72"> + <code class="ruby"> processed_raw</code> </li> <li class="never" data-hits="" data-linenumber="73"> @@ -9218,25 +9230,25 @@ <span class="hits">1</span> <code class="ruby"> def define_fields_methods!</code> </li> - <li class="covered" data-hits="1077" data-linenumber="78"> - <span class="hits">1077</span> + <li class="missed" data-hits="0" data-linenumber="78"> + <code class="ruby"> fields.each do |k, v|</code> </li> - <li class="covered" data-hits="4683" data-linenumber="79"> - <span class="hits">4683</span> + <li class="missed" data-hits="0" data-linenumber="79"> + <code class="ruby"> define_singleton_method k do</code> </li> - <li class="covered" data-hits="261" data-linenumber="80"> - <span class="hits">261</span> + <li class="missed" data-hits="0" data-linenumber="80"> + <code class="ruby"> v</code> </li> <li class="never" data-hits="" data-linenumber="81"> @@ -9266,49 +9278,49 @@ <span class="hits">1</span> <code class="ruby"> def hydrate_localized_fields(includes, errors, entries)</code> </li> - <li class="covered" data-hits="94" data-linenumber="86"> - <span class="hits">94</span> + <li class="missed" data-hits="0" data-linenumber="86"> + <code class="ruby"> locale = internal_resource_locale</code> </li> - <li class="covered" data-hits="94" data-linenumber="87"> - <span class="hits">94</span> + <li class="missed" data-hits="0" data-linenumber="87"> + <code class="ruby"> result = { locale =&gt; {} }</code> </li> - <li class="covered" data-hits="94" data-linenumber="88"> - <span class="hits">94</span> + <li class="missed" data-hits="0" data-linenumber="88"> + <code class="ruby"> raw[&#39;fields&#39;].each do |name, locales|</code> </li> - <li class="covered" data-hits="393" data-linenumber="89"> - <span class="hits">393</span> + <li class="missed" data-hits="0" data-linenumber="89"> + <code class="ruby"> locales.each do |loc, value|</code> </li> - <li class="covered" data-hits="441" data-linenumber="90"> - <span class="hits">441</span> + <li class="missed" data-hits="0" data-linenumber="90"> + <code class="ruby"> result[loc] ||= {}</code> </li> - <li class="covered" data-hits="441" data-linenumber="91"> - <span class="hits">441</span> + <li class="missed" data-hits="0" data-linenumber="91"> + <code class="ruby"> name = Support.snakify(name, @configuration[:use_camel_case])</code> </li> - <li class="covered" data-hits="441" data-linenumber="92"> - <span class="hits">441</span> + <li class="missed" data-hits="0" data-linenumber="92"> + <code class="ruby"> result[loc][name.to_sym] = coerce(</code> </li> <li class="never" data-hits="" data-linenumber="93"> @@ -9362,13 +9374,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="94" data-linenumber="102"> - <span class="hits">94</span> + <li class="missed" data-hits="0" data-linenumber="102"> + <code class="ruby"> result</code> </li> <li class="never" data-hits="" data-linenumber="103"> @@ -9386,37 +9398,37 @@ <span class="hits">1</span> <code class="ruby"> def hydrate_nonlocalized_fields(includes, errors, entries)</code> </li> - <li class="covered" data-hits="981" data-linenumber="106"> - <span class="hits">981</span> + <li class="missed" data-hits="0" data-linenumber="106"> + <code class="ruby"> result = { locale =&gt; {} }</code> </li> - <li class="covered" data-hits="981" data-linenumber="107"> - <span class="hits">981</span> + <li class="missed" data-hits="0" data-linenumber="107"> + <code class="ruby"> locale = internal_resource_locale</code> </li> - <li class="covered" data-hits="981" data-linenumber="108"> - <span class="hits">981</span> + <li class="missed" data-hits="0" data-linenumber="108"> + <code class="ruby"> raw[&#39;fields&#39;].each do |name, value|</code> </li> - <li class="covered" data-hits="4290" data-linenumber="109"> - <span class="hits">4290</span> + <li class="missed" data-hits="0" data-linenumber="109"> + <code class="ruby"> name = Support.snakify(name, @configuration[:use_camel_case])</code> </li> - <li class="covered" data-hits="4290" data-linenumber="110"> - <span class="hits">4290</span> + <li class="missed" data-hits="0" data-linenumber="110"> + <code class="ruby"> result[locale][name.to_sym] = coerce(</code> </li> <li class="never" data-hits="" data-linenumber="111"> @@ -9464,13 +9476,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="981" data-linenumber="119"> - <span class="hits">981</span> + <li class="missed" data-hits="0" data-linenumber="119"> + <code class="ruby"> result</code> </li> <li class="never" data-hits="" data-linenumber="120"> @@ -9488,43 +9500,43 @@ <span class="hits">1</span> <code class="ruby"> def hydrate_fields(includes, entries, errors)</code> </li> - <li class="covered" data-hits="1077" data-linenumber="123"> - <span class="hits">1077</span> + <li class="missed" data-hits="0" data-linenumber="123"> + <code class="ruby"> return {} unless raw.key?(&#39;fields&#39;)</code> </li> <li class="never" data-hits="" data-linenumber="124"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1075" data-linenumber="125"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="125"> + <code class="ruby"> if localized</code> </li> - <li class="covered" data-hits="94" data-linenumber="126"> - <span class="hits">94</span> + <li class="missed" data-hits="0" data-linenumber="126"> + <code class="ruby"> hydrate_localized_fields(includes, errors, entries)</code> </li> <li class="never" data-hits="" data-linenumber="127"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="981" data-linenumber="128"> - <span class="hits">981</span> + <li class="missed" data-hits="0" data-linenumber="128"> + <code class="ruby"> hydrate_nonlocalized_fields(includes, errors, entries)</code> </li> <li class="never" data-hits="" data-linenumber="129"> @@ -9560,13 +9572,13 @@ <span class="hits">1</span> <code class="ruby"> def coerce(_field_id, value, _includes, _errors, _entries)</code> </li> - <li class="covered" data-hits="3638" data-linenumber="135"> - <span class="hits">3638</span> + <li class="missed" data-hits="0" data-linenumber="135"> + <code class="ruby"> value</code> </li> <li class="never" data-hits="" data-linenumber="136"> @@ -9592,15 +9604,15 @@ <div class="source_table" id="5ed9fab05507df717ba26956cbb2b69097c50f41"> <div class="header"> <h3>lib/contentful/file.rb</h3> - <h4><span class="green">100.0 %</span> covered</h4> + <h4><span class="red">50.0 %</span> covered</h4> <div> <b>10</b> relevant lines. - <span class="green"><b>10</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> + <span class="green"><b>5</b> lines covered</span> and + <span class="red"><b>5</b> lines missed.</span> </div> </div> <pre> <ol> @@ -9627,25 +9639,25 @@ <span class="hits">1</span> <code class="ruby"> def initialize(json, configuration)</code> </li> - <li class="covered" data-hits="494" data-linenumber="5"> - <span class="hits">494</span> + <li class="missed" data-hits="0" data-linenumber="5"> + <code class="ruby"> @configuration = configuration</code> </li> <li class="never" data-hits="" data-linenumber="6"> <code class="ruby"></code> </li> - <li class="covered" data-hits="494" data-linenumber="7"> - <span class="hits">494</span> + <li class="missed" data-hits="0" data-linenumber="7"> + <code class="ruby"> define_fields!(json)</code> </li> <li class="never" data-hits="" data-linenumber="8"> @@ -9675,25 +9687,25 @@ <span class="hits">1</span> <code class="ruby"> def define_fields!(json)</code> </li> - <li class="covered" data-hits="494" data-linenumber="13"> - <span class="hits">494</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> json.each do |k, v|</code> </li> - <li class="covered" data-hits="1976" data-linenumber="14"> - <span class="hits">1976</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> define_singleton_method Support.snakify(k, @configuration[:use_camel_case]) do</code> </li> - <li class="covered" data-hits="6" data-linenumber="15"> - <span class="hits">6</span> + <li class="missed" data-hits="0" data-linenumber="15"> + <code class="ruby"> v</code> </li> <li class="never" data-hits="" data-linenumber="16"> @@ -10070,15 +10082,15 @@ <div class="source_table" id="283a9b245e7a50ed1ed0ff2acf5bf3df054a6b05"> <div class="header"> <h3>lib/contentful/request.rb</h3> - <h4><span class="yellow">88.0 %</span> covered</h4> + <h4><span class="red">40.0 %</span> covered</h4> <div> <b>25</b> relevant lines. - <span class="green"><b>22</b> lines covered</span> and - <span class="red"><b>3</b> lines missed.</span> + <span class="green"><b>10</b> lines covered</span> and + <span class="red"><b>15</b> lines missed.</span> </div> </div> <pre> <ol> @@ -10129,43 +10141,43 @@ <span class="hits">1</span> <code class="ruby"> def initialize(client, endpoint, query = {}, id = nil)</code> </li> - <li class="covered" data-hits="58" data-linenumber="9"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="9"> + <code class="ruby"> @client = client</code> </li> - <li class="covered" data-hits="58" data-linenumber="10"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="10"> + <code class="ruby"> @endpoint = endpoint</code> </li> <li class="never" data-hits="" data-linenumber="11"> <code class="ruby"></code> </li> - <li class="covered" data-hits="58" data-linenumber="12"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="12"> + <code class="ruby"> @query = (normalize_query(query) if query &amp;&amp; !query.empty?)</code> </li> <li class="never" data-hits="" data-linenumber="13"> <code class="ruby"></code> </li> - <li class="covered" data-hits="58" data-linenumber="14"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="14"> + <code class="ruby"> if id</code> </li> <li class="missed" data-hits="0" data-linenumber="15"> @@ -10183,19 +10195,19 @@ <code class="ruby"> else</code> </li> - <li class="covered" data-hits="58" data-linenumber="18"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="18"> + <code class="ruby"> @type = :multi</code> </li> - <li class="covered" data-hits="58" data-linenumber="19"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="19"> + <code class="ruby"> @id = nil</code> </li> <li class="never" data-hits="" data-linenumber="20"> @@ -10225,13 +10237,13 @@ <span class="hits">1</span> <code class="ruby"> def url</code> </li> - <li class="covered" data-hits="58" data-linenumber="25"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="25"> + <code class="ruby"> &quot;#{@endpoint}#{@type == :single ? &quot;/#{id}&quot; : &#39;&#39;}&quot;</code> </li> <li class="never" data-hits="" data-linenumber="26"> @@ -10255,13 +10267,13 @@ <span class="hits">1</span> <code class="ruby"> def get</code> </li> - <li class="covered" data-hits="58" data-linenumber="30"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="30"> + <code class="ruby"> client.get(self)</code> </li> <li class="never" data-hits="" data-linenumber="31"> @@ -10285,13 +10297,13 @@ <span class="hits">1</span> <code class="ruby"> def absolute?</code> </li> - <li class="covered" data-hits="58" data-linenumber="35"> - <span class="hits">58</span> + <li class="missed" data-hits="0" data-linenumber="35"> + <code class="ruby"> @endpoint.start_with?(&#39;http&#39;)</code> </li> <li class="never" data-hits="" data-linenumber="36"> @@ -10351,37 +10363,37 @@ <span class="hits">1</span> <code class="ruby"> def normalize_query(query)</code> </li> - <li class="covered" data-hits="54" data-linenumber="46"> - <span class="hits">54</span> + <li class="missed" data-hits="0" data-linenumber="46"> + <code class="ruby"> Hash[</code> </li> <li class="never" data-hits="" data-linenumber="47"> <code class="ruby"> query.map do |key, value|</code> </li> - <li class="covered" data-hits="75" data-linenumber="48"> - <span class="hits">75</span> + <li class="missed" data-hits="0" data-linenumber="48"> + <code class="ruby"> [</code> </li> <li class="never" data-hits="" data-linenumber="49"> <code class="ruby"> key.to_sym,</code> </li> - <li class="covered" data-hits="75" data-linenumber="50"> - <span class="hits">75</span> + <li class="missed" data-hits="0" data-linenumber="50"> + <code class="ruby"> value.is_a?(::Array) ? value.join(&#39;,&#39;) : value</code> </li> <li class="never" data-hits="" data-linenumber="51"> @@ -10425,15 +10437,15 @@ <div class="source_table" id="ea1894a682921dc1a4b4d4255935538a0067cdfd"> <div class="header"> <h3>lib/contentful/resource_builder.rb</h3> - <h4><span class="green">94.57 %</span> covered</h4> + <h4><span class="red">34.78 %</span> covered</h4> <div> <b>92</b> relevant lines. - <span class="green"><b>87</b> lines covered</span> and - <span class="red"><b>5</b> lines missed.</span> + <span class="green"><b>32</b> lines covered</span> and + <span class="red"><b>60</b> lines missed.</span> </div> </div> <pre> <ol> @@ -10646,73 +10658,73 @@ <span class="hits">1</span> <code class="ruby"> def initialize(json, configuration = {}, localized = false, depth = 0, errors = [])</code> </li> - <li class="covered" data-hits="1059" data-linenumber="36"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="36"> + <code class="ruby"> @json = json</code> </li> - <li class="covered" data-hits="1059" data-linenumber="37"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="37"> + <code class="ruby"> @default_locale = configuration.fetch(:default_locale, ::Contentful::Client::DEFAULT_CONFIGURATION[:default_locale])</code> </li> - <li class="covered" data-hits="1059" data-linenumber="38"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="38"> + <code class="ruby"> @resource_mapping = default_resource_mapping.merge(configuration.fetch(:resource_mapping, {}))</code> </li> - <li class="covered" data-hits="1059" data-linenumber="39"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="39"> + <code class="ruby"> @entry_mapping = default_entry_mapping.merge(configuration.fetch(:entry_mapping, {}))</code> </li> - <li class="covered" data-hits="1059" data-linenumber="40"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="40"> + <code class="ruby"> @includes_for_single = configuration.fetch(:includes_for_single, [])</code> </li> - <li class="covered" data-hits="1059" data-linenumber="41"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="41"> + <code class="ruby"> @localized = localized</code> </li> - <li class="covered" data-hits="1059" data-linenumber="42"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="42"> + <code class="ruby"> @depth = depth</code> </li> - <li class="covered" data-hits="1059" data-linenumber="43"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="43"> + <code class="ruby"> @endpoint = configuration.fetch(:endpoint, nil)</code> </li> - <li class="covered" data-hits="1059" data-linenumber="44"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> @configuration = configuration</code> </li> - <li class="covered" data-hits="1059" data-linenumber="45"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="45"> + <code class="ruby"> @resource_cache = configuration[:_entries_cache] || {}</code> </li> - <li class="covered" data-hits="1059" data-linenumber="46"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="46"> + <code class="ruby"> @errors = errors</code> </li> <li class="never" data-hits="" data-linenumber="47"> @@ -10748,19 +10760,19 @@ <span class="hits">1</span> <code class="ruby"> def run</code> </li> - <li class="covered" data-hits="1059" data-linenumber="53"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="53"> + <code class="ruby"> return build_array if array?</code> </li> - <li class="covered" data-hits="1003" data-linenumber="54"> - <span class="hits">1003</span> + <li class="missed" data-hits="0" data-linenumber="54"> + <code class="ruby"> build_single</code> </li> <li class="never" data-hits="" data-linenumber="55"> @@ -10802,61 +10814,61 @@ <span class="hits">1</span> <code class="ruby"> def build_array</code> </li> - <li class="covered" data-hits="56" data-linenumber="62"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="62"> + <code class="ruby"> includes = fetch_includes || @includes_for_single</code> </li> - <li class="covered" data-hits="56" data-linenumber="63"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="63"> + <code class="ruby"> errors = fetch_errors || @errors</code> </li> <li class="never" data-hits="" data-linenumber="64"> <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="65"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="65"> + <code class="ruby"> result = json[&#39;items&#39;].map do |item|</code> </li> - <li class="covered" data-hits="72" data-linenumber="66"> - <span class="hits">72</span> + <li class="missed" data-hits="0" data-linenumber="66"> + <code class="ruby"> next if Support.unresolvable?(item, errors)</code> </li> - <li class="covered" data-hits="72" data-linenumber="67"> - <span class="hits">72</span> + <li class="missed" data-hits="0" data-linenumber="67"> + <code class="ruby"> build_item(item, includes, errors)</code> </li> <li class="never" data-hits="" data-linenumber="68"> <code class="ruby"> end</code> </li> - <li class="covered" data-hits="56" data-linenumber="69"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="69"> + <code class="ruby"> array_class = fetch_array_class</code> </li> - <li class="covered" data-hits="56" data-linenumber="70"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="70"> + <code class="ruby"> array_class.new(json.dup.merge(&#39;items&#39; =&gt; result), @configuration, endpoint)</code> </li> <li class="never" data-hits="" data-linenumber="71"> @@ -10874,25 +10886,25 @@ <span class="hits">1</span> <code class="ruby"> def build_single</code> </li> - <li class="covered" data-hits="1003" data-linenumber="74"> - <span class="hits">1003</span> + <li class="missed" data-hits="0" data-linenumber="74"> + <code class="ruby"> return if Support.unresolvable?(json, @errors)</code> </li> - <li class="covered" data-hits="1003" data-linenumber="75"> - <span class="hits">1003</span> + <li class="missed" data-hits="0" data-linenumber="75"> + <code class="ruby"> includes = @includes_for_single</code> </li> - <li class="covered" data-hits="1003" data-linenumber="76"> - <span class="hits">1003</span> + <li class="missed" data-hits="0" data-linenumber="76"> + <code class="ruby"> build_item(json, includes, @errors)</code> </li> <li class="never" data-hits="" data-linenumber="77"> @@ -10910,85 +10922,85 @@ <span class="hits">1</span> <code class="ruby"> def build_item(item, includes = [], errors = [])</code> </li> - <li class="covered" data-hits="1075" data-linenumber="80"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="80"> + <code class="ruby"> buildables = %w[Entry Asset ContentType Space DeletedEntry DeletedAsset Locale]</code> </li> - <li class="covered" data-hits="2687" data-linenumber="81"> - <span class="hits">2687</span> + <li class="missed" data-hits="0" data-linenumber="81"> + <code class="ruby"> item_type = buildables.detect { |b| b.to_s == item[&#39;sys&#39;][&#39;type&#39;] }</code> </li> - <li class="covered" data-hits="1075" data-linenumber="82"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="82"> + <code class="ruby"> fail UnparsableResource, &#39;Item type is not known, could not parse&#39; if item_type.nil?</code> </li> - <li class="covered" data-hits="1075" data-linenumber="83"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="83"> + <code class="ruby"> item_class = resource_class(item)</code> </li> <li class="never" data-hits="" data-linenumber="84"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1075" data-linenumber="85"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="85"> + <code class="ruby"> reuse_entries = @configuration.fetch(:reuse_entries, false)</code> </li> - <li class="covered" data-hits="1075" data-linenumber="86"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="86"> + <code class="ruby"> resource_cache = @resource_cache ? @resource_cache : {}</code> </li> <li class="never" data-hits="" data-linenumber="87"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1075" data-linenumber="88"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="88"> + <code class="ruby"> id = &quot;#{item[&#39;sys&#39;][&#39;type&#39;]}:#{item[&#39;sys&#39;][&#39;id&#39;]}&quot;</code> </li> - <li class="covered" data-hits="1075" data-linenumber="89"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="89"> + <code class="ruby"> resource = if reuse_entries &amp;&amp; resource_cache.key?(id)</code> </li> - <li class="covered" data-hits="2" data-linenumber="90"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="90"> + <code class="ruby"> resource_cache[id]</code> </li> <li class="never" data-hits="" data-linenumber="91"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="1073" data-linenumber="92"> - <span class="hits">1073</span> + <li class="missed" data-hits="0" data-linenumber="92"> + <code class="ruby"> item_class.new(item, @configuration, localized?, includes, resource_cache, depth, errors)</code> </li> <li class="never" data-hits="" data-linenumber="93"> @@ -11000,13 +11012,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="1075" data-linenumber="95"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="95"> + <code class="ruby"> resource</code> </li> <li class="never" data-hits="" data-linenumber="96"> @@ -11024,13 +11036,13 @@ <span class="hits">1</span> <code class="ruby"> def fetch_includes</code> </li> - <li class="covered" data-hits="56" data-linenumber="99"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="99"> + <code class="ruby"> Support.includes_from_response(json)</code> </li> <li class="never" data-hits="" data-linenumber="100"> @@ -11048,13 +11060,13 @@ <span class="hits">1</span> <code class="ruby"> def fetch_errors</code> </li> - <li class="covered" data-hits="56" data-linenumber="103"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="103"> + <code class="ruby"> json.fetch(&#39;errors&#39;, [])</code> </li> <li class="never" data-hits="" data-linenumber="104"> @@ -11072,19 +11084,19 @@ <span class="hits">1</span> <code class="ruby"> def resource_class(item)</code> </li> - <li class="covered" data-hits="1075" data-linenumber="107"> - <span class="hits">1075</span> + <li class="missed" data-hits="0" data-linenumber="107"> + <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> - <li class="covered" data-hits="27" data-linenumber="108"> - <span class="hits">27</span> + <li class="missed" data-hits="0" data-linenumber="108"> + <code class="ruby"> resource_mapping[item[&#39;sys&#39;][&#39;type&#39;]]</code> </li> <li class="never" data-hits="" data-linenumber="109"> @@ -11102,55 +11114,55 @@ <span class="hits">1</span> <code class="ruby"> def fetch_custom_resource_class(item)</code> </li> - <li class="covered" data-hits="1048" data-linenumber="112"> - <span class="hits">1048</span> + <li class="missed" data-hits="0" data-linenumber="112"> + <code class="ruby"> case item[&#39;sys&#39;][&#39;type&#39;]</code> </li> <li class="never" data-hits="" data-linenumber="113"> <code class="ruby"> when &#39;Entry&#39;</code> </li> - <li class="covered" data-hits="565" data-linenumber="114"> - <span class="hits">565</span> + <li class="missed" data-hits="0" data-linenumber="114"> + <code class="ruby"> resource_class = entry_mapping[item[&#39;sys&#39;][&#39;contentType&#39;][&#39;sys&#39;][&#39;id&#39;]]</code> </li> - <li class="covered" data-hits="565" data-linenumber="115"> - <span class="hits">565</span> + <li class="missed" data-hits="0" data-linenumber="115"> + <code class="ruby"> return resource_class unless resource_class.nil?</code> </li> <li class="never" data-hits="" data-linenumber="116"> <code class="ruby"></code> </li> - <li class="covered" data-hits="565" data-linenumber="117"> - <span class="hits">565</span> + <li class="missed" data-hits="0" data-linenumber="117"> + <code class="ruby"> fetch_custom_resource_mapping(item, &#39;Entry&#39;, Entry)</code> </li> <li class="never" data-hits="" data-linenumber="118"> <code class="ruby"> when &#39;Asset&#39;</code> </li> - <li class="covered" data-hits="483" data-linenumber="119"> - <span class="hits">483</span> + <li class="missed" data-hits="0" data-linenumber="119"> + <code class="ruby"> fetch_custom_resource_mapping(item, &#39;Asset&#39;, Asset)</code> </li> <li class="never" data-hits="" data-linenumber="120"> @@ -11198,31 +11210,31 @@ <span class="hits">1</span> <code class="ruby"> def fetch_custom_resource_mapping(item, type, default_class)</code> </li> - <li class="covered" data-hits="1048" data-linenumber="128"> - <span class="hits">1048</span> + <li class="missed" data-hits="0" data-linenumber="128"> + <code class="ruby"> resources = resource_mapping[type]</code> </li> - <li class="covered" data-hits="1048" data-linenumber="129"> - <span class="hits">1048</span> + <li class="missed" data-hits="0" data-linenumber="129"> + <code class="ruby"> return default_class if resources.nil?</code> </li> <li class="never" data-hits="" data-linenumber="130"> <code class="ruby"></code> </li> - <li class="covered" data-hits="1048" data-linenumber="131"> - <span class="hits">1048</span> + <li class="missed" data-hits="0" data-linenumber="131"> + <code class="ruby"> return resources if resources.is_a?(Class)</code> </li> <li class="missed" data-hits="0" data-linenumber="132"> @@ -11258,19 +11270,19 @@ <span class="hits">1</span> <code class="ruby"> def fetch_array_class</code> </li> - <li class="covered" data-hits="56" data-linenumber="138"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="138"> + <code class="ruby"> return SyncPage if sync?</code> </li> - <li class="covered" data-hits="56" data-linenumber="139"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="139"> + <code class="ruby"> ::Contentful::Array</code> </li> <li class="never" data-hits="" data-linenumber="140"> @@ -11288,25 +11300,25 @@ <span class="hits">1</span> <code class="ruby"> def localized?</code> </li> - <li class="covered" data-hits="1073" data-linenumber="143"> - <span class="hits">1073</span> + <li class="missed" data-hits="0" data-linenumber="143"> + <code class="ruby"> return true if @localized</code> </li> - <li class="covered" data-hits="979" data-linenumber="144"> - <span class="hits">979</span> + <li class="missed" data-hits="0" data-linenumber="144"> + <code class="ruby"> return true if array? &amp;&amp; sync?</code> </li> - <li class="covered" data-hits="979" data-linenumber="145"> - <span class="hits">979</span> + <li class="missed" data-hits="0" data-linenumber="145"> + <code class="ruby"> false</code> </li> <li class="never" data-hits="" data-linenumber="146"> @@ -11324,13 +11336,13 @@ <span class="hits">1</span> <code class="ruby"> def array?</code> </li> - <li class="covered" data-hits="2038" data-linenumber="149"> - <span class="hits">2038</span> + <li class="missed" data-hits="0" data-linenumber="149"> + <code class="ruby"> json.fetch(&#39;sys&#39;, {}).fetch(&#39;type&#39;, &#39;&#39;) == &#39;Array&#39;</code> </li> <li class="never" data-hits="" data-linenumber="150"> @@ -11348,13 +11360,13 @@ <span class="hits">1</span> <code class="ruby"> def sync?</code> </li> - <li class="covered" data-hits="124" data-linenumber="153"> - <span class="hits">124</span> + <li class="missed" data-hits="0" data-linenumber="153"> + <code class="ruby"> json.fetch(&#39;nextSyncUrl&#39;, nil) || json.fetch(&#39;nextPageUrl&#39;, nil)</code> </li> <li class="never" data-hits="" data-linenumber="154"> @@ -11378,13 +11390,13 @@ <span class="hits">1</span> <code class="ruby"> def default_resource_mapping</code> </li> - <li class="covered" data-hits="1059" data-linenumber="158"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="158"> + <code class="ruby"> DEFAULT_RESOURCE_MAPPING.dup</code> </li> <li class="never" data-hits="" data-linenumber="159"> @@ -11408,13 +11420,13 @@ <span class="hits">1</span> <code class="ruby"> def default_entry_mapping</code> </li> - <li class="covered" data-hits="1059" data-linenumber="163"> - <span class="hits">1059</span> + <li class="missed" data-hits="0" data-linenumber="163"> + <code class="ruby"> DEFAULT_ENTRY_MAPPING.dup</code> </li> <li class="never" data-hits="" data-linenumber="164"> @@ -11440,15 +11452,15 @@ <div class="source_table" id="e5da896cf0ec7b470de392efaedd4669444f03b9"> <div class="header"> <h3>lib/contentful/resource_references.rb</h3> - <h4><span class="green">100.0 %</span> covered</h4> + <h4><span class="red">50.0 %</span> covered</h4> <div> <b>6</b> relevant lines. - <span class="green"><b>6</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> + <span class="green"><b>3</b> lines covered</span> and + <span class="red"><b>3</b> lines missed.</span> </div> </div> <pre> <ol> @@ -11511,37 +11523,37 @@ <span class="hits">1</span> <code class="ruby"> def incoming_references(client = nil, query = {})</code> </li> - <li class="covered" data-hits="2" data-linenumber="11"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="11"> + <code class="ruby"> return false unless client</code> </li> <li class="never" data-hits="" data-linenumber="12"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2" data-linenumber="13"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="13"> + <code class="ruby"> query = is_a?(Contentful::Entry) ? query.merge(links_to_entry: id) : query.merge(links_to_asset: id)</code> </li> <li class="never" data-hits="" data-linenumber="14"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2" data-linenumber="15"> - <span class="hits">2</span> + <li class="missed" data-hits="0" data-linenumber="15"> + <code class="ruby"> client.entries(query)</code> </li> <li class="never" data-hits="" data-linenumber="16"> @@ -11567,15 +11579,15 @@ <div class="source_table" id="a54a8ab8e00230a5d92a5eb8a7e43f264a700db2"> <div class="header"> <h3>lib/contentful/response.rb</h3> - <h4><span class="red">80.0 %</span> covered</h4> + <h4><span class="green">92.73 %</span> covered</h4> <div> <b>55</b> relevant lines. - <span class="green"><b>44</b> lines covered</span> and - <span class="red"><b>11</b> lines missed.</span> + <span class="green"><b>51</b> lines covered</span> and + <span class="red"><b>4</b> lines missed.</span> </div> </div> <pre> <ol> @@ -11734,91 +11746,91 @@ <span class="hits">1</span> <code class="ruby"> def initialize(raw, request = nil)</code> </li> - <li class="covered" data-hits="58" data-linenumber="27"> - <span class="hits">58</span> + <li class="covered" data-hits="25" data-linenumber="27"> + <span class="hits">25</span> <code class="ruby"> @raw = raw</code> </li> - <li class="covered" data-hits="58" data-linenumber="28"> - <span class="hits">58</span> + <li class="covered" data-hits="25" data-linenumber="28"> + <span class="hits">25</span> <code class="ruby"> @request = request</code> </li> - <li class="covered" data-hits="58" data-linenumber="29"> - <span class="hits">58</span> + <li class="covered" data-hits="25" data-linenumber="29"> + <span class="hits">25</span> <code class="ruby"> @status = :ok</code> </li> <li class="never" data-hits="" data-linenumber="30"> <code class="ruby"></code> </li> - <li class="covered" data-hits="58" data-linenumber="31"> - <span class="hits">58</span> + <li class="covered" data-hits="25" data-linenumber="31"> + <span class="hits">25</span> <code class="ruby"> if valid_http_response?</code> </li> - <li class="covered" data-hits="57" data-linenumber="32"> - <span class="hits">57</span> + <li class="covered" data-hits="1" data-linenumber="32"> + <span class="hits">1</span> <code class="ruby"> parse_json!</code> </li> - <li class="covered" data-hits="1" data-linenumber="33"> - <span class="hits">1</span> + <li class="covered" data-hits="24" data-linenumber="33"> + <span class="hits">24</span> <code class="ruby"> elsif no_content_response?</code> </li> <li class="missed" data-hits="0" data-linenumber="34"> <code class="ruby"> @status = :no_content</code> </li> - <li class="covered" data-hits="1" data-linenumber="35"> - <span class="hits">1</span> + <li class="covered" data-hits="24" data-linenumber="35"> + <span class="hits">24</span> <code class="ruby"> elsif invalid_response?</code> </li> - <li class="covered" data-hits="1" data-linenumber="36"> - <span class="hits">1</span> + <li class="covered" data-hits="11" data-linenumber="36"> + <span class="hits">11</span> <code class="ruby"> parse_contentful_error</code> </li> - <li class="missed" data-hits="0" data-linenumber="37"> + <li class="covered" data-hits="13" data-linenumber="37"> + <span class="hits">13</span> - <code class="ruby"> elsif service_unavailable_response?</code> </li> - <li class="missed" data-hits="0" data-linenumber="38"> + <li class="covered" data-hits="1" data-linenumber="38"> + <span class="hits">1</span> - <code class="ruby"> service_unavailable_error</code> </li> <li class="never" data-hits="" data-linenumber="39"> <code class="ruby"> else</code> </li> - <li class="missed" data-hits="0" data-linenumber="40"> + <li class="covered" data-hits="12" data-linenumber="40"> + <span class="hits">12</span> - <code class="ruby"> parse_http_error</code> </li> <li class="never" data-hits="" data-linenumber="41"> @@ -11848,12 +11860,12 @@ <span class="hits">1</span> <code class="ruby"> def load_json</code> </li> - <li class="covered" data-hits="59" data-linenumber="46"> - <span class="hits">59</span> + <li class="covered" data-hits="63" data-linenumber="46"> + <span class="hits">63</span> <code class="ruby"> MultiJson.load(unzip_response(raw))</code> </li> <li class="never" data-hits="" data-linenumber="47"> @@ -11884,12 +11896,12 @@ <span class="hits">1</span> <code class="ruby"> def error_object?</code> </li> - <li class="covered" data-hits="1" data-linenumber="52"> - <span class="hits">1</span> + <li class="covered" data-hits="11" data-linenumber="52"> + <span class="hits">11</span> <code class="ruby"> object[&#39;sys&#39;][&#39;type&#39;] == &#39;Error&#39;</code> </li> <li class="never" data-hits="" data-linenumber="53"> @@ -11908,24 +11920,24 @@ <span class="hits">1</span> <code class="ruby"> def parse_contentful_error</code> </li> - <li class="covered" data-hits="1" data-linenumber="56"> - <span class="hits">1</span> + <li class="covered" data-hits="11" data-linenumber="56"> + <span class="hits">11</span> <code class="ruby"> @object = load_json</code> </li> - <li class="covered" data-hits="1" data-linenumber="57"> - <span class="hits">1</span> + <li class="covered" data-hits="11" data-linenumber="57"> + <span class="hits">11</span> <code class="ruby"> @error_message = object[&#39;message&#39;] if error_object?</code> </li> - <li class="covered" data-hits="1" data-linenumber="58"> - <span class="hits">1</span> + <li class="covered" data-hits="11" data-linenumber="58"> + <span class="hits">11</span> <code class="ruby"> parse_http_error</code> </li> <li class="never" data-hits="" data-linenumber="59"> @@ -11944,12 +11956,12 @@ <span class="hits">1</span> <code class="ruby"> def valid_http_response?</code> </li> - <li class="covered" data-hits="58" data-linenumber="62"> - <span class="hits">58</span> + <li class="covered" data-hits="25" data-linenumber="62"> + <span class="hits">25</span> <code class="ruby"> [200, 201].include?(raw.status)</code> </li> <li class="never" data-hits="" data-linenumber="63"> @@ -11968,13 +11980,13 @@ <span class="hits">1</span> <code class="ruby"> def service_unavailable_response?</code> </li> - <li class="missed" data-hits="0" data-linenumber="66"> + <li class="covered" data-hits="13" data-linenumber="66"> + <span class="hits">13</span> - <code class="ruby"> @raw.status == 503</code> </li> <li class="never" data-hits="" data-linenumber="67"> @@ -11992,25 +12004,25 @@ <span class="hits">1</span> <code class="ruby"> def service_unavailable_error</code> </li> - <li class="missed" data-hits="0" data-linenumber="70"> + <li class="covered" data-hits="1" data-linenumber="70"> + <span class="hits">1</span> - <code class="ruby"> @status = :error</code> </li> - <li class="missed" data-hits="0" data-linenumber="71"> + <li class="covered" data-hits="1" data-linenumber="71"> + <span class="hits">1</span> - <code class="ruby"> @error_message = &#39;503 - Service Unavailable&#39;</code> </li> - <li class="missed" data-hits="0" data-linenumber="72"> + <li class="covered" data-hits="1" data-linenumber="72"> + <span class="hits">1</span> - <code class="ruby"> @object = Error[@raw.status].new(self)</code> </li> <li class="never" data-hits="" data-linenumber="73"> @@ -12028,18 +12040,18 @@ <span class="hits">1</span> <code class="ruby"> def parse_http_error</code> </li> - <li class="covered" data-hits="1" data-linenumber="76"> - <span class="hits">1</span> + <li class="covered" data-hits="23" data-linenumber="76"> + <span class="hits">23</span> <code class="ruby"> @status = :error</code> </li> - <li class="covered" data-hits="1" data-linenumber="77"> - <span class="hits">1</span> + <li class="covered" data-hits="23" data-linenumber="77"> + <span class="hits">23</span> <code class="ruby"> @object = Error[raw.status].new(self)</code> </li> <li class="never" data-hits="" data-linenumber="78"> @@ -12058,12 +12070,12 @@ <span class="hits">1</span> <code class="ruby"> def invalid_response?</code> </li> - <li class="covered" data-hits="1" data-linenumber="81"> - <span class="hits">1</span> + <li class="covered" data-hits="24" data-linenumber="81"> + <span class="hits">24</span> <code class="ruby"> [400, 404].include?(raw.status)</code> </li> <li class="never" data-hits="" data-linenumber="82"> @@ -12082,12 +12094,12 @@ <span class="hits">1</span> <code class="ruby"> def no_content_response?</code> </li> - <li class="covered" data-hits="1" data-linenumber="85"> - <span class="hits">1</span> + <li class="covered" data-hits="24" data-linenumber="85"> + <span class="hits">24</span> <code class="ruby"> raw.to_s == &#39;&#39; &amp;&amp; raw.status == 204</code> </li> <li class="never" data-hits="" data-linenumber="86"> @@ -12106,37 +12118,37 @@ <span class="hits">1</span> <code class="ruby"> def parse_json!</code> </li> - <li class="covered" data-hits="57" data-linenumber="89"> - <span class="hits">57</span> + <li class="covered" data-hits="1" data-linenumber="89"> + <span class="hits">1</span> <code class="ruby"> @object = load_json</code> </li> <li class="never" data-hits="" data-linenumber="90"> <code class="ruby"> rescue MultiJson::LoadError =&gt; error</code> </li> - <li class="missed" data-hits="0" data-linenumber="91"> + <li class="covered" data-hits="1" data-linenumber="91"> + <span class="hits">1</span> - <code class="ruby"> @error_message = error.message</code> </li> - <li class="missed" data-hits="0" data-linenumber="92"> + <li class="covered" data-hits="1" data-linenumber="92"> + <span class="hits">1</span> - <code class="ruby"> @status = :error</code> </li> - <li class="missed" data-hits="0" data-linenumber="93"> + <li class="covered" data-hits="1" data-linenumber="93"> + <span class="hits">1</span> - <code class="ruby"> UnparsableJson.new(self)</code> </li> <li class="never" data-hits="" data-linenumber="94"> @@ -12154,48 +12166,48 @@ <span class="hits">1</span> <code class="ruby"> def unzip_response(response)</code> </li> - <li class="covered" data-hits="59" data-linenumber="97"> - <span class="hits">59</span> + <li class="covered" data-hits="63" data-linenumber="97"> + <span class="hits">63</span> <code class="ruby"> parsed_response = response.to_s</code> </li> - <li class="covered" data-hits="59" data-linenumber="98"> - <span class="hits">59</span> + <li class="covered" data-hits="63" data-linenumber="98"> + <span class="hits">63</span> <code class="ruby"> if response.headers[&#39;Content-Encoding&#39;].eql?(&#39;gzip&#39;)</code> </li> - <li class="covered" data-hits="48" data-linenumber="99"> - <span class="hits">48</span> + <li class="missed" data-hits="0" data-linenumber="99"> + <code class="ruby"> sio = StringIO.new(parsed_response)</code> </li> - <li class="covered" data-hits="48" data-linenumber="100"> - <span class="hits">48</span> + <li class="missed" data-hits="0" data-linenumber="100"> + <code class="ruby"> gz = Zlib::GzipReader.new(sio)</code> </li> - <li class="covered" data-hits="48" data-linenumber="101"> - <span class="hits">48</span> + <li class="missed" data-hits="0" data-linenumber="101"> + <code class="ruby"> gz.read</code> </li> <li class="never" data-hits="" data-linenumber="102"> <code class="ruby"> else</code> </li> - <li class="covered" data-hits="11" data-linenumber="103"> - <span class="hits">11</span> + <li class="covered" data-hits="63" data-linenumber="103"> + <span class="hits">63</span> <code class="ruby"> parsed_response</code> </li> <li class="never" data-hits="" data-linenumber="104"> @@ -12391,15 +12403,15 @@ <div class="source_table" id="a300a2b740de48d4aa41783c879260ce3e4785ba"> <div class="header"> <h3>lib/contentful/support.rb</h3> - <h4><span class="green">96.0 %</span> covered</h4> + <h4><span class="red">36.0 %</span> covered</h4> <div> <b>25</b> relevant lines. - <span class="green"><b>24</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> + <span class="green"><b>9</b> lines covered</span> and + <span class="red"><b>16</b> lines missed.</span> </div> </div> <pre> <ol> @@ -12468,13 +12480,13 @@ <span class="hits">1</span> <code class="ruby"> def snakify(object, skip = false)</code> </li> - <li class="covered" data-hits="23296" data-linenumber="12"> - <span class="hits">23296</span> + <li class="missed" data-hits="0" data-linenumber="12"> + <code class="ruby"> return object if skip</code> </li> <li class="never" data-hits="" data-linenumber="13"> @@ -12510,13 +12522,13 @@ <code class="ruby"> .tr(&#39;-&#39;, &#39;_&#39;)</code> </li> - <li class="covered" data-hits="22423" data-linenumber="19"> - <span class="hits">22423</span> + <li class="missed" data-hits="0" data-linenumber="19"> + <code class="ruby"> .downcase</code> </li> <li class="never" data-hits="" data-linenumber="20"> @@ -12534,25 +12546,25 @@ <span class="hits">1</span> <code class="ruby"> def unresolvable?(value, errors)</code> </li> - <li class="covered" data-hits="2146" data-linenumber="23"> - <span class="hits">2146</span> + <li class="missed" data-hits="0" data-linenumber="23"> + <code class="ruby"> return true if value.nil?</code> </li> <li class="never" data-hits="" data-linenumber="24"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2162" data-linenumber="25"> - <span class="hits">2162</span> + <li class="missed" data-hits="0" data-linenumber="25"> + <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> <li class="never" data-hits="" data-linenumber="26"> @@ -12600,13 +12612,13 @@ <span class="hits">1</span> <code class="ruby"> def link?(value)</code> </li> - <li class="covered" data-hits="4275" data-linenumber="34"> - <span class="hits">4275</span> + <li class="missed" data-hits="0" data-linenumber="34"> + <code class="ruby"> value.is_a?(::Hash) &amp;&amp;</code> </li> <li class="never" data-hits="" data-linenumber="35"> @@ -12660,25 +12672,25 @@ <span class="hits">1</span> <code class="ruby"> def link_array?(value)</code> </li> - <li class="covered" data-hits="2705" data-linenumber="44"> - <span class="hits">2705</span> + <li class="missed" data-hits="0" data-linenumber="44"> + <code class="ruby"> return link?(value[0]) if value.is_a?(::Array) &amp;&amp; !value.empty?</code> </li> <li class="never" data-hits="" data-linenumber="45"> <code class="ruby"></code> </li> - <li class="covered" data-hits="2173" data-linenumber="46"> - <span class="hits">2173</span> + <li class="missed" data-hits="0" data-linenumber="46"> + <code class="ruby"> false</code> </li> <li class="never" data-hits="" data-linenumber="47"> @@ -12732,19 +12744,19 @@ <span class="hits">1</span> <code class="ruby"> def resource_for_link(link, includes)</code> </li> - <li class="covered" data-hits="1003" data-linenumber="56"> - <span class="hits">1003</span> + <li class="missed" data-hits="0" data-linenumber="56"> + <code class="ruby"> includes.detect do |i|</code> </li> - <li class="covered" data-hits="2638" data-linenumber="57"> - <span class="hits">2638</span> + <li class="missed" data-hits="0" data-linenumber="57"> + <code class="ruby"> i[&#39;sys&#39;][&#39;id&#39;] == link[&#39;sys&#39;][&#39;id&#39;] &amp;&amp;</code> </li> <li class="never" data-hits="" data-linenumber="58"> @@ -12810,19 +12822,19 @@ <span class="hits">1</span> <code class="ruby"> def includes_from_response(json, raw = true)</code> </li> - <li class="covered" data-hits="56" data-linenumber="69"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="69"> + <code class="ruby"> includes = if raw</code> </li> - <li class="covered" data-hits="56" data-linenumber="70"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="70"> + <code class="ruby"> json[&#39;items&#39;].dup</code> </li> <li class="never" data-hits="" data-linenumber="71"> @@ -12846,25 +12858,25 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="75"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="75"> + <code class="ruby"> %w[Entry Asset].each do |type|</code> </li> - <li class="covered" data-hits="112" data-linenumber="76"> - <span class="hits">112</span> + <li class="missed" data-hits="0" data-linenumber="76"> + <code class="ruby"> if json.fetch(&#39;includes&#39;, {}).key?(type)</code> </li> - <li class="covered" data-hits="66" data-linenumber="77"> - <span class="hits">66</span> + <li class="missed" data-hits="0" data-linenumber="77"> + <code class="ruby"> includes.concat(json[&#39;includes&#39;].fetch(type, []))</code> </li> <li class="never" data-hits="" data-linenumber="78"> @@ -12882,13 +12894,13 @@ <code class="ruby"></code> </li> - <li class="covered" data-hits="56" data-linenumber="81"> - <span class="hits">56</span> + <li class="missed" data-hits="0" data-linenumber="81"> + <code class="ruby"> includes</code> </li> <li class="never" data-hits="" data-linenumber="82"> @@ -13768,15 +13780,15 @@ <div class="source_table" id="5eb25a1b26ae65158e1a7386a20084d608b4951d"> <div class="header"> <h3>spec/support/client.rb</h3> - <h4><span class="green">100.0 %</span> covered</h4> + <h4><span class="red">50.0 %</span> covered</h4> <div> <b>2</b> relevant lines. - <span class="green"><b>2</b> lines covered</span> and - <span class="red"><b>0</b> lines missed.</span> + <span class="green"><b>1</b> lines covered</span> and + <span class="red"><b>1</b> lines missed.</span> </div> </div> <pre> <ol> @@ -13785,13 +13797,13 @@ <span class="hits">1</span> <code class="ruby">def create_client(options = {})</code> </li> - <li class="covered" data-hits="47" data-linenumber="2"> - <span class="hits">47</span> + <li class="missed" data-hits="0" data-linenumber="2"> + <code class="ruby"> Contentful::Client.new({</code> </li> <li class="never" data-hits="" data-linenumber="3"> @@ -13823,15 +13835,15 @@ <div class="source_table" id="a4ba320676b73b8644cffc9dbb12bbe8e19a9934"> <div class="header"> <h3>spec/support/json_responses.rb</h3> - <h4><span class="red">27.27 %</span> covered</h4> + <h4><span class="green">90.91 %</span> covered</h4> <div> <b>11</b> relevant lines. - <span class="green"><b>3</b> lines covered</span> and - <span class="red"><b>8</b> lines missed.</span> + <span class="green"><b>10</b> lines covered</span> and + <span class="red"><b>1</b> lines missed.</span> </div> </div> <pre> <ol> @@ -13852,55 +13864,55 @@ <span class="hits">1</span> <code class="ruby">def raw_fixture(which, status = 200, _as_json = false, headers = {})</code> </li> - <li class="missed" data-hits="0" data-linenumber="4"> + <li class="covered" data-hits="25" data-linenumber="4"> + <span class="hits">25</span> - <code class="ruby"> object = Object.new</code> </li> - <li class="missed" data-hits="0" data-linenumber="5"> + <li class="covered" data-hits="184" data-linenumber="5"> + <span class="hits">184</span> - <code class="ruby"> allow(object).to receive(:status) { status }</code> </li> - <li class="missed" data-hits="0" data-linenumber="6"> + <li class="covered" data-hits="92" data-linenumber="6"> + <span class="hits">92</span> - <code class="ruby"> allow(object).to receive(:headers) { headers }</code> </li> - <li class="missed" data-hits="0" data-linenumber="7"> + <li class="covered" data-hits="125" data-linenumber="7"> + <span class="hits">125</span> - <code class="ruby"> allow(object).to receive(:to_s) { File.read File.dirname(__FILE__) + &quot;/../fixtures/json_responses/#{which}.json&quot; }</code> </li> - <li class="missed" data-hits="0" data-linenumber="8"> + <li class="covered" data-hits="38" data-linenumber="8"> + <span class="hits">38</span> - <code class="ruby"> allow(object).to receive(:body) { object.to_s }</code> </li> - <li class="missed" data-hits="0" data-linenumber="9"> + <li class="covered" data-hits="29" data-linenumber="9"> + <span class="hits">29</span> - <code class="ruby"> allow(object).to receive(:[]) { |key| object.headers[key] }</code> </li> <li class="never" data-hits="" data-linenumber="10"> <code class="ruby"></code> </li> - <li class="missed" data-hits="0" data-linenumber="11"> + <li class="covered" data-hits="25" data-linenumber="11"> + <span class="hits">25</span> - <code class="ruby"> object</code> </li> <li class="never" data-hits="" data-linenumber="12"> @@ -13950,15 +13962,15 @@ <div class="source_table" id="027342a1ab3607ccd90fe9e5972948d26cbc8bed"> <div class="header"> <h3>spec/support/vcr.rb</h3> - <h4><span class="yellow">90.0 %</span> covered</h4> + <h4><span class="red">80.0 %</span> covered</h4> <div> <b>10</b> relevant lines. - <span class="green"><b>9</b> lines covered</span> and - <span class="red"><b>1</b> lines missed.</span> + <span class="green"><b>8</b> lines covered</span> and + <span class="red"><b>2</b> lines missed.</span> </div> </div> <pre> <ol> @@ -14021,11 +14033,11 @@ <span class="hits">1</span> <code class="ruby">def vcr(name, &amp;block)</code> </li> - <li class="covered" data-hits="48" data-linenumber="11"> - <span class="hits">48</span> + <li class="missed" data-hits="0" data-linenumber="11"> + <code class="ruby"> VCR.use_cassette(name, &amp;block)</code> </li> <li class="never" data-hits="" data-linenumber="12">