mirror of
https://github.com/wahyd4/Libr.git
synced 2026-08-16 00:06:32 +10:00
3887 lines
109 KiB
HTML
3887 lines
109 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns='http://www.w3.org/1999/xhtml'>
|
|
<head>
|
|
<title>Code coverage for Libr</title>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
<script src='./assets/0.7.1/application.js' type='text/javascript'></script>
|
|
<link href='./assets/0.7.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
|
<link rel="shortcut icon" type="image/png" href="./assets/0.7.1/favicon_red.png" />
|
|
<link rel="icon" type="image/png" href="./assets/0.7.1/favicon.png" />
|
|
</head>
|
|
|
|
<body>
|
|
<div id="loading">
|
|
<img src="./assets/0.7.1/loading.gif" alt="loading"/>
|
|
</div>
|
|
<div id="wrapper" style="display:none;">
|
|
<div class="timestamp">Generated <abbr class="timeago" title="2013-02-17T11:13:56+08:00">2013-02-17T11:13:56+08: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="red">47.55%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="green">
|
|
1.85
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="AllFiles"></a>
|
|
<div>
|
|
<b>17</b> files in total.
|
|
<b>286</b> relevant lines.
|
|
<span class="green"><b>136</b> lines covered</span> and
|
|
<span class="red"><b>150</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#79685b474e332eeadf7ceaac5fd6dacd0c9cec3f" class="src_link" title="app/controllers/application_controller.rb">app/controllers/application_controller.rb</a></td>
|
|
<td class="red strong">38.46 %</td>
|
|
<td>23</td>
|
|
<td>13</td>
|
|
<td>5</td>
|
|
<td>8</td>
|
|
<td>0.4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#5dce27aaa31072c35246a36f89dfb6349be23fb0" class="src_link" title="app/controllers/book_controller.rb">app/controllers/book_controller.rb</a></td>
|
|
<td class="red strong">22.86 %</td>
|
|
<td>54</td>
|
|
<td>35</td>
|
|
<td>8</td>
|
|
<td>27</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#a7f1851ee69d9647ad2f5599c726e64dee1418cb" class="src_link" title="app/controllers/home_controller.rb">app/controllers/home_controller.rb</a></td>
|
|
<td class="red strong">39.13 %</td>
|
|
<td>35</td>
|
|
<td>23</td>
|
|
<td>9</td>
|
|
<td>14</td>
|
|
<td>0.4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#71c436e7dc5ab369efee3f2665c17c2f02b16941" class="src_link" title="app/controllers/search_controller.rb">app/controllers/search_controller.rb</a></td>
|
|
<td class="red strong">50.0 %</td>
|
|
<td>7</td>
|
|
<td>4</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0.5</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#b43672f5ac6cf104f72c05047ff88d33c5355e94" class="src_link" title="app/controllers/user_controller.rb">app/controllers/user_controller.rb</a></td>
|
|
<td class="red strong">23.44 %</td>
|
|
<td>101</td>
|
|
<td>64</td>
|
|
<td>15</td>
|
|
<td>49</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#350502ede828c3f496bfa1a5ea0af026c7480871" class="src_link" title="app/helpers/application_helper.rb">app/helpers/application_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#00c3a7371f80d7ea985c932e9ac8bff8b720c4af" class="src_link" title="app/helpers/book_helper.rb">app/helpers/book_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#f991f40e187899558eec5b23ca8227bcc79610ca" class="src_link" title="app/helpers/home_helper.rb">app/helpers/home_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>4</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#1308b5f9658e492fffbe89456abe973a322dbbcd" class="src_link" title="app/helpers/search_helper.rb">app/helpers/search_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#fbd8d9053e7fb370524e7ea6c90641ef03fa0719" class="src_link" title="app/helpers/user_helper.rb">app/helpers/user_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>4</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#3be750af1bd340e184510e5262180acff12392f1" class="src_link" title="app/models/book.rb">app/models/book.rb</a></td>
|
|
<td class="green strong">96.3 %</td>
|
|
<td>43</td>
|
|
<td>27</td>
|
|
<td>26</td>
|
|
<td>1</td>
|
|
<td>10.8</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#7b11b3877921eb2063a4b57bb871ea93c959c448" class="src_link" title="app/models/book_instance.rb">app/models/book_instance.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>24</td>
|
|
<td>14</td>
|
|
<td>14</td>
|
|
<td>0</td>
|
|
<td>6.6</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#0756aaae5e2c55e77f60d7fdfbd2b2aaf5e6d636" class="src_link" title="app/models/borrow_record.rb">app/models/borrow_record.rb</a></td>
|
|
<td class="red strong">64.29 %</td>
|
|
<td>25</td>
|
|
<td>14</td>
|
|
<td>9</td>
|
|
<td>5</td>
|
|
<td>0.9</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#04a51e003c9a94e2519a7a5b3de0518373293b46" class="src_link" title="app/models/user.rb">app/models/user.rb</a></td>
|
|
<td class="yellow strong">86.21 %</td>
|
|
<td>55</td>
|
|
<td>29</td>
|
|
<td>25</td>
|
|
<td>4</td>
|
|
<td>5.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#08d5ae159524b19dd71cb66b84309861ce408b2c" class="src_link" title="app/models/user_to_book.rb">app/models/user_to_book.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>7</td>
|
|
<td>4</td>
|
|
<td>4</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#61661167c37b44c8d60f4c4050d1d691acc6cc10" class="src_link" title="lib/douban_auth.rb">lib/douban_auth.rb</a></td>
|
|
<td class="red strong">24.0 %</td>
|
|
<td>48</td>
|
|
<td>25</td>
|
|
<td>6</td>
|
|
<td>19</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#4a590c64cb4377b9ea4d94d12f4256a142384c4f" class="src_link" title="lib/qq_auth.rb">lib/qq_auth.rb</a></td>
|
|
<td class="red strong">27.59 %</td>
|
|
<td>55</td>
|
|
<td>29</td>
|
|
<td>8</td>
|
|
<td>21</td>
|
|
<td>0.3</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="file_list_container" id="Controllers">
|
|
<h2>
|
|
<span class="group_name">Controllers</span>
|
|
(<span class="covered_percent"><span class="red">28.06%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="red">
|
|
0.34
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Controllers"></a>
|
|
<div>
|
|
<b>5</b> files in total.
|
|
<b>139</b> relevant lines.
|
|
<span class="green"><b>39</b> lines covered</span> and
|
|
<span class="red"><b>100</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#79685b474e332eeadf7ceaac5fd6dacd0c9cec3f" class="src_link" title="app/controllers/application_controller.rb">app/controllers/application_controller.rb</a></td>
|
|
<td class="red strong">38.46 %</td>
|
|
<td>23</td>
|
|
<td>13</td>
|
|
<td>5</td>
|
|
<td>8</td>
|
|
<td>0.4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#5dce27aaa31072c35246a36f89dfb6349be23fb0" class="src_link" title="app/controllers/book_controller.rb">app/controllers/book_controller.rb</a></td>
|
|
<td class="red strong">22.86 %</td>
|
|
<td>54</td>
|
|
<td>35</td>
|
|
<td>8</td>
|
|
<td>27</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#a7f1851ee69d9647ad2f5599c726e64dee1418cb" class="src_link" title="app/controllers/home_controller.rb">app/controllers/home_controller.rb</a></td>
|
|
<td class="red strong">39.13 %</td>
|
|
<td>35</td>
|
|
<td>23</td>
|
|
<td>9</td>
|
|
<td>14</td>
|
|
<td>0.4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#71c436e7dc5ab369efee3f2665c17c2f02b16941" class="src_link" title="app/controllers/search_controller.rb">app/controllers/search_controller.rb</a></td>
|
|
<td class="red strong">50.0 %</td>
|
|
<td>7</td>
|
|
<td>4</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
<td>0.5</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#b43672f5ac6cf104f72c05047ff88d33c5355e94" class="src_link" title="app/controllers/user_controller.rb">app/controllers/user_controller.rb</a></td>
|
|
<td class="red strong">23.44 %</td>
|
|
<td>101</td>
|
|
<td>64</td>
|
|
<td>15</td>
|
|
<td>49</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="file_list_container" id="Models">
|
|
<h2>
|
|
<span class="group_name">Models</span>
|
|
(<span class="covered_percent"><span class="yellow">88.64%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="green">
|
|
4.86
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Models"></a>
|
|
<div>
|
|
<b>5</b> files in total.
|
|
<b>88</b> relevant lines.
|
|
<span class="green"><b>78</b> lines covered</span> and
|
|
<span class="red"><b>10</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#3be750af1bd340e184510e5262180acff12392f1" class="src_link" title="app/models/book.rb">app/models/book.rb</a></td>
|
|
<td class="green strong">96.3 %</td>
|
|
<td>43</td>
|
|
<td>27</td>
|
|
<td>26</td>
|
|
<td>1</td>
|
|
<td>10.8</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#7b11b3877921eb2063a4b57bb871ea93c959c448" class="src_link" title="app/models/book_instance.rb">app/models/book_instance.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>24</td>
|
|
<td>14</td>
|
|
<td>14</td>
|
|
<td>0</td>
|
|
<td>6.6</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#0756aaae5e2c55e77f60d7fdfbd2b2aaf5e6d636" class="src_link" title="app/models/borrow_record.rb">app/models/borrow_record.rb</a></td>
|
|
<td class="red strong">64.29 %</td>
|
|
<td>25</td>
|
|
<td>14</td>
|
|
<td>9</td>
|
|
<td>5</td>
|
|
<td>0.9</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#04a51e003c9a94e2519a7a5b3de0518373293b46" class="src_link" title="app/models/user.rb">app/models/user.rb</a></td>
|
|
<td class="yellow strong">86.21 %</td>
|
|
<td>55</td>
|
|
<td>29</td>
|
|
<td>25</td>
|
|
<td>4</td>
|
|
<td>5.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#08d5ae159524b19dd71cb66b84309861ce408b2c" class="src_link" title="app/models/user_to_book.rb">app/models/user_to_book.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>7</td>
|
|
<td>4</td>
|
|
<td>4</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="file_list_container" id="Mailers">
|
|
<h2>
|
|
<span class="group_name">Mailers</span>
|
|
(<span class="covered_percent"><span class="green">100.0%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="red">
|
|
0.0
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Mailers"></a>
|
|
<div>
|
|
<b>0</b> files in total.
|
|
<b>0.0</b> relevant lines.
|
|
<span class="green"><b>0.0</b> lines covered</span> and
|
|
<span class="red"><b>0.0</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="file_list_container" id="Helpers">
|
|
<h2>
|
|
<span class="group_name">Helpers</span>
|
|
(<span class="covered_percent"><span class="green">100.0%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="yellow">
|
|
1.0
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Helpers"></a>
|
|
<div>
|
|
<b>5</b> files in total.
|
|
<b>5</b> relevant lines.
|
|
<span class="green"><b>5</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#350502ede828c3f496bfa1a5ea0af026c7480871" class="src_link" title="app/helpers/application_helper.rb">app/helpers/application_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#00c3a7371f80d7ea985c932e9ac8bff8b720c4af" class="src_link" title="app/helpers/book_helper.rb">app/helpers/book_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#f991f40e187899558eec5b23ca8227bcc79610ca" class="src_link" title="app/helpers/home_helper.rb">app/helpers/home_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>4</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#1308b5f9658e492fffbe89456abe973a322dbbcd" class="src_link" title="app/helpers/search_helper.rb">app/helpers/search_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#fbd8d9053e7fb370524e7ea6c90641ef03fa0719" class="src_link" title="app/helpers/user_helper.rb">app/helpers/user_helper.rb</a></td>
|
|
<td class="green strong">100.0 %</td>
|
|
<td>4</td>
|
|
<td>1</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td>1.0</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="file_list_container" id="Libraries">
|
|
<h2>
|
|
<span class="group_name">Libraries</span>
|
|
(<span class="covered_percent"><span class="red">25.93%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="red">
|
|
0.25
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Libraries"></a>
|
|
<div>
|
|
<b>2</b> files in total.
|
|
<b>54</b> relevant lines.
|
|
<span class="green"><b>14</b> lines covered</span> and
|
|
<span class="red"><b>40</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#61661167c37b44c8d60f4c4050d1d691acc6cc10" class="src_link" title="lib/douban_auth.rb">lib/douban_auth.rb</a></td>
|
|
<td class="red strong">24.0 %</td>
|
|
<td>48</td>
|
|
<td>25</td>
|
|
<td>6</td>
|
|
<td>19</td>
|
|
<td>0.2</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="strong"><a href="#4a590c64cb4377b9ea4d94d12f4256a142384c4f" class="src_link" title="lib/qq_auth.rb">lib/qq_auth.rb</a></td>
|
|
<td class="red strong">27.59 %</td>
|
|
<td>55</td>
|
|
<td>29</td>
|
|
<td>8</td>
|
|
<td>21</td>
|
|
<td>0.3</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
<div class="file_list_container" id="Plugins">
|
|
<h2>
|
|
<span class="group_name">Plugins</span>
|
|
(<span class="covered_percent"><span class="green">100.0%</span></span>
|
|
covered at
|
|
<span class="covered_strength">
|
|
<span class="red">
|
|
0.0
|
|
</span>
|
|
</span> hits/line)
|
|
</h2>
|
|
<a name="Plugins"></a>
|
|
<div>
|
|
<b>0</b> files in total.
|
|
<b>0.0</b> relevant lines.
|
|
<span class="green"><b>0.0</b> lines covered</span> and
|
|
<span class="red"><b>0.0</b> lines missed </span>
|
|
</div>
|
|
<table class="file_list">
|
|
<thead>
|
|
<tr>
|
|
<th>File</th>
|
|
<th>% covered</th>
|
|
<th>Lines</th>
|
|
<th>Relevant Lines</th>
|
|
<th>Lines covered</th>
|
|
<th>Lines missed</th>
|
|
<th>Avg. Hits / Line</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="footer">
|
|
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.7.1
|
|
and simplecov-html v0.7.1<br/>
|
|
using RSpec
|
|
</div>
|
|
|
|
<div class="source_files">
|
|
|
|
<div class="source_table" id="79685b474e332eeadf7ceaac5fd6dacd0c9cec3f">
|
|
<div class="header">
|
|
<h3>app/controllers/application_controller.rb</h3>
|
|
<h4><span class="red">38.46 %</span> covered</h4>
|
|
<div>
|
|
<b>13</b> relevant lines.
|
|
<span class="green"><b>5</b> lines covered</span> and
|
|
<span class="red"><b>8</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class ApplicationController < ActionController::Base</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> protect_from_forgery</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> before_filter :current_user</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"> @current_user = nil</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"> if session[:name]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="9">
|
|
|
|
|
|
<code class="ruby"> @current_user = User.find_by_name session[:name]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="13">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def sign_in(name,avatar)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> if session[:name] == name</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"> unless User.find_by_name name</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="18">
|
|
|
|
|
|
<code class="ruby"> User.create_user(name,avatar)</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> session[:name] = name</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="5dce27aaa31072c35246a36f89dfb6349be23fb0">
|
|
<div class="header">
|
|
<h3>app/controllers/book_controller.rb</h3>
|
|
<h4><span class="red">22.86 %</span> covered</h4>
|
|
<div>
|
|
<b>35</b> relevant lines.
|
|
<span class="green"><b>8</b> lines covered</span> and
|
|
<span class="red"><b>27</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class BookController < ApplicationController</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> before_filter :current_user</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> skip_before_filter :verify_authenticity_token ,:only => [:add_to_lib]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def view</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"> @book = Book.find_by_id params[:id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby"> @can_borrow = @book.book_instances.count > @book.current_borrowers.count</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"> @records =BorrowRecord.records_of @book</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="9">
|
|
|
|
|
|
<code class="ruby"> @borrowers = @book.total_borrowers.uniq</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> @owners = @book.users</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="13">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def search</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> unless params[:arg] == nil</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"> @books = Book.where("name like ?","%#{params[:arg]}%")</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> render json: @books</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"> else</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="18">
|
|
|
|
|
|
<code class="ruby"> render json: {msg:'wrong'}</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="22">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def borrow</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"> unless @current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> redirect_to '/login',alert: "You need login to do the action."</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"> book = Book.find_by_id params[:id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="28">
|
|
|
|
|
|
<code class="ruby"> if book.users.count <= book.current_borrowers.count</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="29">
|
|
|
|
|
|
<code class="ruby"> @msg = 'Sorry, there is no more book for lend.'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="30">
|
|
|
|
|
|
<code class="ruby"> else</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> #book.borrowers << @current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"> @current_user.borrow book</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="33">
|
|
|
|
|
|
<code class="ruby"> @msg = 'Borrowed success.'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, notice: @msg</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="36">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="38">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def new</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="39">
|
|
|
|
|
|
<code class="ruby"> render :add</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="42">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def add_to_lib</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby"> unless @current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="44">
|
|
|
|
|
|
<code class="ruby"> redirect_to '/login',alert: "You need login to do the action."</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="45">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="46">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="47">
|
|
|
|
|
|
<code class="ruby"> unless book = Book.find_by_isbn(params[:isbn])</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="48">
|
|
|
|
|
|
<code class="ruby"> book = Book.create name:params[:title], image:params[:image],isbn: params[:isbn]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="49">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="50">
|
|
|
|
|
|
<code class="ruby"> book.new_instance_for @current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="51">
|
|
|
|
|
|
<code class="ruby"> @msg = 'This book has been succeed to add to library.'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="52">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, notice: @msg</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="53">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="54">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="a7f1851ee69d9647ad2f5599c726e64dee1418cb">
|
|
<div class="header">
|
|
<h3>app/controllers/home_controller.rb</h3>
|
|
<h4><span class="red">39.13 %</span> covered</h4>
|
|
<div>
|
|
<b>23</b> relevant lines.
|
|
<span class="green"><b>9</b> lines covered</span> and
|
|
<span class="red"><b>14</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require "douban_auth"</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require "qq_auth"</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class HomeController < ApplicationController</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> include Douban_Auth</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="6">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> include QQAuth</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> before_filter :current_user</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="9">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def index</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> @books = Book.order('id DESC').limit(20)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> @top_10_owners = BookInstance.select('user_id').group('user_id').order('count("user_id") DESC').limit(10).map! { |instance|</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"> User.find_by_id instance.user_id</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> @top_10_borrowers = BorrowRecord.select('user_id').group('user_id').order('count("user_id") DESC').limit(10).map! { |record|</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"> User.find_by_id record.user_id</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="18">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="20">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def douban_callback</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"> token = access_token params[:code]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"> user_info = fetch_user_info token</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> sign_in(user_info['name'], user_info['avatar'])</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby"> redirect_to '/'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="28">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def qq_callback</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="29">
|
|
|
|
|
|
<code class="ruby"> token = qq_auth_token params[:code]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="30">
|
|
|
|
|
|
<code class="ruby"> qq_openid = fetch_qq_open_id token</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> user_info = fetch_qq_user_info token, qq_openid</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"> sign_in(user_info['nickname'], user_info['figureurl_1'])</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="33">
|
|
|
|
|
|
<code class="ruby"> redirect_to '/'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="71c436e7dc5ab369efee3f2665c17c2f02b16941">
|
|
<div class="header">
|
|
<h3>app/controllers/search_controller.rb</h3>
|
|
<h4><span class="red">50.0 %</span> covered</h4>
|
|
<div>
|
|
<b>4</b> relevant lines.
|
|
<span class="green"><b>2</b> lines covered</span> and
|
|
<span class="red"><b>2</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class SearchController < ApplicationController</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def do_search</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby"> @books = Book.where('name ilike ?',"%#{params[:keyword]}%").limit(24)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="5">
|
|
|
|
|
|
<code class="ruby"> render :view</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="b43672f5ac6cf104f72c05047ff88d33c5355e94">
|
|
<div class="header">
|
|
<h3>app/controllers/user_controller.rb</h3>
|
|
<h4><span class="red">23.44 %</span> covered</h4>
|
|
<div>
|
|
<b>64</b> relevant lines.
|
|
<span class="green"><b>15</b> lines covered</span> and
|
|
<span class="red"><b>49</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require "douban_auth"</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require "qq_auth"</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class UserController < ApplicationController</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> before_filter :current_user</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="6">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> include Douban_Auth</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> include QQAuth</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="9">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def login</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> render :layout => false</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="13">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def auth_douban</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> url = auth_url.to_s</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"> redirect_to url</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="18">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def auth_qq</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> url = qq_auth_url.to_s</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> redirect_to url</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="23">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def logout</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> session[:name] = nil</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby"> redirect_to '/'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="28">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def books</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="29">
|
|
|
|
|
|
<code class="ruby"> query = params[:query]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="30">
|
|
|
|
|
|
<code class="ruby"> @user = User.find_by_id params[:id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> case query</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"> when 'borrowed'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="33">
|
|
|
|
|
|
<code class="ruby"> @books = @user.borrowed_and_not_returned_books</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> puts "sssssss" +@books.size.to_s</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby"> when 'wanted'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="36">
|
|
|
|
|
|
<code class="ruby"> @books = nil</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"> else</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="38">
|
|
|
|
|
|
<code class="ruby"> @books = @user.books</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="39">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> @query = query</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"> render :books</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="42">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="44">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def return_book</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="45">
|
|
|
|
|
|
<code class="ruby"> instance = BookInstance.find_by_id params[:instance_id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="46">
|
|
|
|
|
|
<code class="ruby"> if @current_user.borrowed_and_not_returned_books.include? instance</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="47">
|
|
|
|
|
|
<code class="ruby"> @current_user.return_book instance</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="48">
|
|
|
|
|
|
<code class="ruby"> @message = 'Return book success.'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="49">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :alert => @message</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="50">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="51">
|
|
|
|
|
|
<code class="ruby"> else</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="52">
|
|
|
|
|
|
<code class="ruby"> @message = "Can't find your borrow record."</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="53">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="54">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :notice => @message</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="55">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="56">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="57">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def view</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="58">
|
|
|
|
|
|
<code class="ruby"> @user = User.find_by_id params[:id]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="59">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="60">
|
|
|
|
|
|
<code class="ruby"> @total_borrowed_books = @user.borrowed_books</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="61">
|
|
|
|
|
|
<code class="ruby"> @total_books = @user.book_instances</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="62">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="63">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="64">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def delete_book</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="65">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="66">
|
|
|
|
|
|
<code class="ruby"> user = User.find_by_id params[:user_id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="67">
|
|
|
|
|
|
<code class="ruby"> if user != @current_user</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="68">
|
|
|
|
|
|
<code class="ruby"> @message = "error,illagle."</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="69">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :notice => @message</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="70">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="71">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="72">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="73">
|
|
|
|
|
|
<code class="ruby"> instance = BookInstance.find_by_id params[:instance_id]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="74">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="75">
|
|
|
|
|
|
<code class="ruby"> if instance.current_borrower !=nil</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="76">
|
|
|
|
|
|
<code class="ruby"> @message = 'This book can"t be delete, because there is still have a borrower'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="77">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :notice => @message</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="78">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="79">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="80">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="81">
|
|
|
|
|
|
<code class="ruby"> if instance != nil && user.book_instances.include?(instance)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="82">
|
|
|
|
|
|
<code class="ruby"> @current_user.book_instances.destroy instance</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="83">
|
|
|
|
|
|
<code class="ruby"> @message = 'delete book success'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="84">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :alert => @message</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="85">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="86">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="87">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="88">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def update</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="89">
|
|
|
|
|
|
<code class="ruby"> user = User.find_by_id params[:id]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="90">
|
|
|
|
|
|
<code class="ruby"> if User.check_email_existed params[:email]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="91">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :notice => 'Email address already has been taken,please choose another one.'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="92">
|
|
|
|
|
|
<code class="ruby"> return</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="93">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="94">
|
|
|
|
|
|
<code class="ruby"> @current_user.update_name params[:username]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="95">
|
|
|
|
|
|
<code class="ruby"> @current_user.update_email params[:email]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="96">
|
|
|
|
|
|
<code class="ruby"> @current_user.update_location params[:city]</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="97">
|
|
|
|
|
|
<code class="ruby"> redirect_to :back, :alert => 'Update information success.'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="98">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="99">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="100">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="101">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="350502ede828c3f496bfa1a5ea0af026c7480871">
|
|
<div class="header">
|
|
<h3>app/helpers/application_helper.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>1</b> relevant lines.
|
|
<span class="green"><b>1</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module ApplicationHelper</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="00c3a7371f80d7ea985c932e9ac8bff8b720c4af">
|
|
<div class="header">
|
|
<h3>app/helpers/book_helper.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>1</b> relevant lines.
|
|
<span class="green"><b>1</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module BookHelper</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="f991f40e187899558eec5b23ca8227bcc79610ca">
|
|
<div class="header">
|
|
<h3>app/helpers/home_helper.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>1</b> relevant lines.
|
|
<span class="green"><b>1</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module HomeHelper</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="1308b5f9658e492fffbe89456abe973a322dbbcd">
|
|
<div class="header">
|
|
<h3>app/helpers/search_helper.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>1</b> relevant lines.
|
|
<span class="green"><b>1</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module SearchHelper</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="fbd8d9053e7fb370524e7ea6c90641ef03fa0719">
|
|
<div class="header">
|
|
<h3>app/helpers/user_helper.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>1</b> relevant lines.
|
|
<span class="green"><b>1</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module UserHelper</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="3be750af1bd340e184510e5262180acff12392f1">
|
|
<div class="header">
|
|
<h3>app/models/book.rb</h3>
|
|
<h4><span class="green">96.3 %</span> covered</h4>
|
|
<div>
|
|
<b>27</b> relevant lines.
|
|
<span class="green"><b>26</b> lines covered</span> and
|
|
<span class="red"><b>1</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class Book < ActiveRecord::Base</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> attr_accessible :author, :image, :isbn, :name ,:id</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> validates_presence_of :image,:isbn, :name,message: 'cannot be blank.'</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> validates_uniqueness_of :isbn, :image,message: 'should be unique.'</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :book_instances</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="6">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :users, through: :book_instances</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="8">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def current_borrowers</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="10" data-linenumber="9">
|
|
<span class="hits">10</span>
|
|
|
|
<code class="ruby"> borrowers = []</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="10" data-linenumber="10">
|
|
<span class="hits">10</span>
|
|
|
|
<code class="ruby"> book_instances.each{|instance|</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="18" data-linenumber="11">
|
|
<span class="hits">18</span>
|
|
|
|
<code class="ruby"> if instance.borrowed?</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="12">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> borrowers << instance.current_borrower</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="10" data-linenumber="15">
|
|
<span class="hits">10</span>
|
|
|
|
<code class="ruby"> borrowers</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="18">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def total_borrowers</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="19">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> borrowers = []</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="20">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> book_instances.each{|instance|</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="16" data-linenumber="21">
|
|
<span class="hits">16</span>
|
|
|
|
<code class="ruby"> unless instance.borrowers.empty?</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="22">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> borrowers += instance.borrowers</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="25">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> borrowers</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="28">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def available_instance</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="30" data-linenumber="29">
|
|
<span class="hits">30</span>
|
|
|
|
<code class="ruby"> avail_instance = nil</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="30" data-linenumber="30">
|
|
<span class="hits">30</span>
|
|
|
|
<code class="ruby"> book_instances.each do |instance|</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="36" data-linenumber="31">
|
|
<span class="hits">36</span>
|
|
|
|
<code class="ruby"> unless instance.borrowed?</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="26" data-linenumber="32">
|
|
<span class="hits">26</span>
|
|
|
|
<code class="ruby"> avail_instance = instance</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="26" data-linenumber="33">
|
|
<span class="hits">26</span>
|
|
|
|
<code class="ruby"> break</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="30" data-linenumber="36">
|
|
<span class="hits">30</span>
|
|
|
|
<code class="ruby"> avail_instance</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="38">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="39">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def new_instance_for(user)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> book_instances.create user_id: user.id, book_id: id</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="42">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="7b11b3877921eb2063a4b57bb871ea93c959c448">
|
|
<div class="header">
|
|
<h3>app/models/book_instance.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>14</b> relevant lines.
|
|
<span class="green"><b>14</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class BookInstance < ActiveRecord::Base</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> attr_accessible :book_id, :user_id, :public</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> validates_presence_of :book_id, :user_id</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :book</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :user</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> delegate :name, :image,:isbn, to: :book, prefix:false</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="8">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> delegate :name, to: :user,prefix: true</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="9">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="10">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :borrow_records</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="11">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :borrowers,:source => :user , through: :borrow_records</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="14">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def borrowed?</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="66" data-linenumber="15">
|
|
<span class="hits">66</span>
|
|
|
|
<code class="ruby"> !borrow_records.where(return_date: nil).empty?</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="18">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def current_borrower</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="19">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> if borrowed?</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="8" data-linenumber="20">
|
|
<span class="hits">8</span>
|
|
|
|
<code class="ruby"> User.find_by_id borrow_records.where(return_date: nil)[0].user_id</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="0756aaae5e2c55e77f60d7fdfbd2b2aaf5e6d636">
|
|
<div class="header">
|
|
<h3>app/models/borrow_record.rb</h3>
|
|
<h4><span class="red">64.29 %</span> covered</h4>
|
|
<div>
|
|
<b>14</b> relevant lines.
|
|
<span class="green"><b>9</b> lines covered</span> and
|
|
<span class="red"><b>5</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class BorrowRecord < ActiveRecord::Base</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> attr_accessible :borrow_date, :return_date, :user_id, :book_instance_id</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> validates_presence_of :user_id,:book_instance_id</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :user</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :book_instance</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> delegate :name, :avatar, to: :user,prefix: true</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="9">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def self.records_of(book)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> total_records = []</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> book.book_instances.each do |instance|</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"> records = BorrowRecord.includes(:user).where("book_instance_id = ?", instance.id).where(return_date:nil)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"> total_records += records</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"> total_records</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="18">
|
|
|
|
|
|
<code class="ruby"> #def self.create_record(user_id,book_id)</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> # BorrowRecord.create user_id: user_id, book_id: book_id, borrow_date: DateTime.now</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> #end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="22">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def return_book</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="23">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> update_attribute(:return_date,DateTime.now)</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="04a51e003c9a94e2519a7a5b3de0518373293b46">
|
|
<div class="header">
|
|
<h3>app/models/user.rb</h3>
|
|
<h4><span class="yellow">86.21 %</span> covered</h4>
|
|
<div>
|
|
<b>29</b> relevant lines.
|
|
<span class="green"><b>25</b> lines covered</span> and
|
|
<span class="red"><b>4</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class User < ActiveRecord::Base</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> attr_accessible :email, :name, :avatar, :id, :location</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="4">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :book_instances</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :borrow_records</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="9">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> has_many :borrowed_books, :source => :book_instance, through: :borrow_records</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="12">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def self.create_user(name, avatar)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"> User.create name: name, avatar: avatar</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="16">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def borrow(book)</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="24" data-linenumber="17">
|
|
<span class="hits">24</span>
|
|
|
|
<code class="ruby"> instance = book.available_instance</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="24" data-linenumber="18">
|
|
<span class="hits">24</span>
|
|
|
|
<code class="ruby"> unless instance == nil</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="22" data-linenumber="19">
|
|
<span class="hits">22</span>
|
|
|
|
<code class="ruby"> borrow_records.create user_id: id, book_instance_id: instance.id, borrow_date: DateTime.now</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="23">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def borrowed_and_not_returned_books</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="14" data-linenumber="24">
|
|
<span class="hits">14</span>
|
|
|
|
<code class="ruby"> records = borrow_records.where(return_date: nil).order('id DESC')</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="24" data-linenumber="25">
|
|
<span class="hits">24</span>
|
|
|
|
<code class="ruby"> records.map { |record| record = BookInstance.find_by_id record.book_instance_id }</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="28">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="29">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def books</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="2" data-linenumber="30">
|
|
<span class="hits">2</span>
|
|
|
|
<code class="ruby"> book_instances</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="33">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def return_book (instance)</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="34">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> record = BorrowRecord.where(user_id: id, book_instance_id: instance.id, return_date: nil)[0]</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="35">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> record.return_book</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="36">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="38">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def update_name(name)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="39">
|
|
|
|
|
|
<code class="ruby"> update_attributes name: name</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="42">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def update_email(email)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby"> update_attributes email: email</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="44">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="45">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="46">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def update_location(location)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="47">
|
|
|
|
|
|
<code class="ruby"> update_attributes location: location</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="48">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="49">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="50">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def self.check_email_existed(email)</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="51">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> flag = false</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="52">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> flag = true if User.find_by_email email</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="4" data-linenumber="53">
|
|
<span class="hits">4</span>
|
|
|
|
<code class="ruby"> flag</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="54">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="55">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="08d5ae159524b19dd71cb66b84309861ce408b2c">
|
|
<div class="header">
|
|
<h3>app/models/user_to_book.rb</h3>
|
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
<div>
|
|
<b>4</b> relevant lines.
|
|
<span class="green"><b>4</b> lines covered</span> and
|
|
<span class="red"><b>0</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">class UserToBook < ActiveRecord::Base</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="2">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="3">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> attr_accessible :user, :book</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :user</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> belongs_to :book</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="61661167c37b44c8d60f4c4050d1d691acc6cc10">
|
|
<div class="header">
|
|
<h3>lib/douban_auth.rb</h3>
|
|
<h4><span class="red">24.0 %</span> covered</h4>
|
|
<div>
|
|
<b>25</b> relevant lines.
|
|
<span class="green"><b>6</b> lines covered</span> and
|
|
<span class="red"><b>19</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require 'net/http'</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require 'net/https'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module Douban_Auth</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="5">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="7">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def auth_url</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"> response_type = 'code'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="9">
|
|
|
|
|
|
<code class="ruby"> scope = 'douban_basic_common,book_basic_r'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> url = 'https://www.douban.com/service/auth2/auth?client_id=' +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"> ::ENV['CLIENT_ID'] +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"> '&redirect_uri=' + ::ENV['REDIRECT_URI'] +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> '&response_type=' + response_type + '&scope=' + scope</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="16">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="18">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def access_token(code)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> my_code = 'Bearer '+ code.to_s</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> http = Net::HTTP.new('www.douban.com', 443)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> http.use_ssl = true</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"> path ='/service/auth2/token'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"> data ='client_id='+ ::ENV['CLIENT_ID']+'&client_secret='+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"> ::ENV['CLIENT_SECRET']+'&redirect_uri='+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby"> ::ENV['REDIRECT_URI']+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> '&grant_type=authorization_code&code='+code</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"> headers = {</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="28">
|
|
|
|
|
|
<code class="ruby"> 'Authorization' => my_code</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="29">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="30">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> response = http.post(path, data, headers)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"> response = JSON.parse response.body</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="33">
|
|
|
|
|
|
<code class="ruby"> response['access_token']</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="36">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def fetch_user_info(token)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"> http = Net::HTTP.new('api.douban.com', 443)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="38">
|
|
|
|
|
|
<code class="ruby"> http.use_ssl = true</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="39">
|
|
|
|
|
|
<code class="ruby"> path ='/v2/user/~me'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> header = {</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"> "Authorization" => "Bearer #{token}"</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="42">
|
|
|
|
|
|
<code class="ruby"> }</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby"> response = http.get(path, header)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="44">
|
|
|
|
|
|
<code class="ruby"> response = JSON.parse response.body</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="45">
|
|
|
|
|
|
<code class="ruby"> response</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="46">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="47">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="48">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
<div class="source_table" id="4a590c64cb4377b9ea4d94d12f4256a142384c4f">
|
|
<div class="header">
|
|
<h3>lib/qq_auth.rb</h3>
|
|
<h4><span class="red">27.59 %</span> covered</h4>
|
|
<div>
|
|
<b>29</b> relevant lines.
|
|
<span class="green"><b>8</b> lines covered</span> and
|
|
<span class="red"><b>21</b> lines missed.</span>
|
|
</div>
|
|
</div>
|
|
|
|
<pre>
|
|
<ol>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="1">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require 'net/http'</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="2">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">require 'net/https'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="3">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="4">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby">module QQAuth</code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="5">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def qq_auth_url</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="6">
|
|
|
|
|
|
<code class="ruby"> response_type = 'code'</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="7">
|
|
|
|
|
|
<code class="ruby"> scope = 'get_user_info'</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="8">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="9">
|
|
|
|
|
|
<code class="ruby"> url = 'https://graph.qq.com/oauth2.0/authorize?client_id=' + ::ENV['QQ_CLIENT_ID'] +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="10">
|
|
|
|
|
|
<code class="ruby"> '&redirect_uri=' + ::ENV['QQ_REDIRECT_URI'] +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="11">
|
|
|
|
|
|
<code class="ruby"> '&response_type=' + response_type +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="12">
|
|
|
|
|
|
<code class="ruby"> '&scope=' + scope + "&state=libr_test"</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="13">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="14">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="15">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="16">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def qq_auth_token(code)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="17">
|
|
|
|
|
|
<code class="ruby"> http = Net::HTTP.new('graph.qq.com', 443)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="18">
|
|
|
|
|
|
<code class="ruby"> http.use_ssl = true</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="19">
|
|
|
|
|
|
<code class="ruby"> path ='/oauth2.0/token?' +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="20">
|
|
|
|
|
|
<code class="ruby"> 'client_id='+ ::ENV['QQ_CLIENT_ID']+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="21">
|
|
|
|
|
|
<code class="ruby"> '&client_secret='+ ::ENV['QQ_CLIENT_SECRET']+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="22">
|
|
|
|
|
|
<code class="ruby"> '&redirect_uri='+::ENV['QQ_REDIRECT_URI']+</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="23">
|
|
|
|
|
|
<code class="ruby"> '&grant_type=authorization_code&code='+code</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="24">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="25">
|
|
|
|
|
|
<code class="ruby"> response = http.get(path)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="26">
|
|
|
|
|
|
<code class="ruby"> token = response.body.to_s.split('&')[0].split('=')[1]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="27">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="28">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="29">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="30">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def fetch_qq_open_id(access_token)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="31">
|
|
|
|
|
|
<code class="ruby"> http = Net::HTTP.new('graph.qq.com', 443)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="32">
|
|
|
|
|
|
<code class="ruby"> http.use_ssl = true</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="33">
|
|
|
|
|
|
<code class="ruby"> path ='/oauth2.0/me?' +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="34">
|
|
|
|
|
|
<code class="ruby"> 'access_token='+access_token</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="35">
|
|
|
|
|
|
<code class="ruby"> response = http.get(path)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="36">
|
|
|
|
|
|
<code class="ruby"> get_open_id response.body</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="37">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="38">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="39">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def fetch_qq_user_info(access_token, openid)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="40">
|
|
|
|
|
|
<code class="ruby"> http = Net::HTTP.new('graph.qq.com', 443)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="41">
|
|
|
|
|
|
<code class="ruby"> http.use_ssl = true</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="42">
|
|
|
|
|
|
<code class="ruby"> path ='/user/get_user_info?' +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="43">
|
|
|
|
|
|
<code class="ruby"> 'access_token='+access_token +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="44">
|
|
|
|
|
|
<code class="ruby"> '&oauth_consumer_key=' +::ENV['QQ_CLIENT_ID'] +</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="45">
|
|
|
|
|
|
<code class="ruby"> '&openid=' +openid</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="46">
|
|
|
|
|
|
<code class="ruby"> response = http.get(path)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="47">
|
|
|
|
|
|
<code class="ruby"> response = JSON.parse response.body</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="48">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="49">
|
|
|
|
|
|
<code class="ruby"></code>
|
|
</li>
|
|
|
|
<li class="covered" data-hits="1" data-linenumber="50">
|
|
<span class="hits">1</span>
|
|
|
|
<code class="ruby"> def get_open_id (str)</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="51">
|
|
|
|
|
|
<code class="ruby"> upper = str.index ('"openid":"')</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="52">
|
|
|
|
|
|
<code class="ruby"> lower = str.index('"} );')</code>
|
|
</li>
|
|
|
|
<li class="missed" data-hits="0" data-linenumber="53">
|
|
|
|
|
|
<code class="ruby"> str[(upper+10)..(lower-1)]</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="54">
|
|
|
|
|
|
<code class="ruby"> end</code>
|
|
</li>
|
|
|
|
<li class="never" data-hits="" data-linenumber="55">
|
|
|
|
|
|
<code class="ruby">end</code>
|
|
</li>
|
|
|
|
</ol>
|
|
</pre>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|