Files
danbooru/coverage/index.html
2011-01-19 14:28:22 -05:00

89553 lines
1.6 MiB

<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Code coverage for Danbooru</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src='./assets/0.3.9/jquery-1.4.2.min.js' type='text/javascript'></script>
<script src='./assets/0.3.9/jquery.dataTables.min.js' type='text/javascript'></script>
<script src='./assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js' type='text/javascript'></script>
<script src='./assets/0.3.9/jquery.timeago.js' type='text/javascript'></script>
<script src='./assets/0.3.9/jquery.url.js' type='text/javascript'></script>
<script src='./assets/0.3.9/app.js' type='text/javascript'></script>
<link href='./assets/0.3.9/stylesheet.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
<link href='./assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
<link href='./assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" type="image/png" href="./assets/0.3.9/favicon.png" />
<link rel="icon" type="image/png" href="./assets/0.3.9/favicon.png" />
</head>
<body>
<div id="loading">
<img src="./assets/0.3.9/loading.gif" alt="loading"/>
</div>
<div id="wrapper" style="display:none;">
<div class="timestamp">Generated <abbr class="timeago" title="2011-01-14T17:58:09-05:00">2011-01-14T17:58:09-05:00</abbr></div>
<ul class="group_tabs"></ul>
<div id="content">
<div class="file_list_container" id="AllFiles">
<h2>
All Files
(<span class="red">45.88%</span>)
</h2>
<a name="AllFiles"></a>
<div>
<b>141</b> files in total.
<b>3579</b> relevant lines.
<span class="green"><b>1642</b> lines covered</span> and
<span class="red"><b>1937</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#6d07ff847709abc6a17c7821ac356c9a3495bb2d" class="src_link" title="./app/controllers/admin/posts_controller.rb">./app/controllers/admin/posts_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ad23d5e7f78f934e418e04682e77a4056ab9aa70" class="src_link" title="./app/controllers/admin/users_controller.rb">./app/controllers/admin/users_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>7</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#96609befd01de224fa76258290108cde6a8acba9" class="src_link" title="./app/controllers/advertisement_hits_controller.rb">./app/controllers/advertisement_hits_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>12</td>
<td>8</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td><a href="#d43bd3bfd0e94fa9f3f8774304f84df5a49b5b83" class="src_link" title="./app/controllers/advertisements_controller.rb">./app/controllers/advertisements_controller.rb</a></td>
<td class="red">33.33 %</td>
<td>58</td>
<td>33</td>
<td>11</td>
<td>22</td>
</tr>
<tr>
<td><a href="#4a25e7ff1c5198a87fe2df4ecd8c5899abc80402" class="src_link" title="./app/controllers/application_controller.rb">./app/controllers/application_controller.rb</a></td>
<td class="red">67.44 %</td>
<td>75</td>
<td>43</td>
<td>29</td>
<td>14</td>
</tr>
<tr>
<td><a href="#e3a0e679ad6b24b158b2fce7e714b905d5ce3029" class="src_link" title="./app/controllers/artist_versions_controller.rb">./app/controllers/artist_versions_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>9</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#a1a97cd9d3093075d9608b3526b7d0f0c3b9eb9c" class="src_link" title="./app/controllers/artists_controller.rb">./app/controllers/artists_controller.rb</a></td>
<td class="red">34.48 %</td>
<td>47</td>
<td>29</td>
<td>10</td>
<td>19</td>
</tr>
<tr>
<td><a href="#cec51ae5903a199379fbf496df2c91e1870cc1a4" class="src_link" title="./app/controllers/bans_controller.rb">./app/controllers/bans_controller.rb</a></td>
<td class="red">34.62 %</td>
<td>46</td>
<td>26</td>
<td>9</td>
<td>17</td>
</tr>
<tr>
<td><a href="#628336a38cba2a45cb6a0b686f3480b0c27ecab4" class="src_link" title="./app/controllers/comment_votes_controller.rb">./app/controllers/comment_votes_controller.rb</a></td>
<td class="red">40.0 %</td>
<td>8</td>
<td>5</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td><a href="#fc5032b4ea709c4e5efaee98be921ed369bc8e1d" class="src_link" title="./app/controllers/comments_controller.rb">./app/controllers/comments_controller.rb</a></td>
<td class="red">31.03 %</td>
<td>46</td>
<td>29</td>
<td>9</td>
<td>20</td>
</tr>
<tr>
<td><a href="#a82afabd8bb37a3b4cad70a5e772b7510ea197ac" class="src_link" title="./app/controllers/dmails_controller.rb">./app/controllers/dmails_controller.rb</a></td>
<td class="red">36.67 %</td>
<td>47</td>
<td>30</td>
<td>11</td>
<td>19</td>
</tr>
<tr>
<td><a href="#45d7435b06dd93171ff53a1395e2c466be99ab80" class="src_link" title="./app/controllers/dtext_controller.rb">./app/controllers/dtext_controller.rb</a></td>
<td class="red">66.67 %</td>
<td>5</td>
<td>3</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td><a href="#47723bf5f2d65b26d10f846cb59aa97fd920b204" class="src_link" title="./app/controllers/favorites_controller.rb">./app/controllers/favorites_controller.rb</a></td>
<td class="red">36.36 %</td>
<td>25</td>
<td>11</td>
<td>4</td>
<td>7</td>
</tr>
<tr>
<td><a href="#bf53d3f8b6f081755292fd15a414be2d6806ecc6" class="src_link" title="./app/controllers/forum_posts_controller.rb">./app/controllers/forum_posts_controller.rb</a></td>
<td class="red">37.14 %</td>
<td>53</td>
<td>35</td>
<td>13</td>
<td>22</td>
</tr>
<tr>
<td><a href="#4ef109f8a698d0702791bd744170c12f8e6aae45" class="src_link" title="./app/controllers/forum_topics_controller.rb">./app/controllers/forum_topics_controller.rb</a></td>
<td class="red">37.14 %</td>
<td>53</td>
<td>35</td>
<td>13</td>
<td>22</td>
</tr>
<tr>
<td><a href="#63a58e7a793865b23ea8750598380f0a6a714362" class="src_link" title="./app/controllers/ip_bans_controller.rb">./app/controllers/ip_bans_controller.rb</a></td>
<td class="red">42.86 %</td>
<td>23</td>
<td>14</td>
<td>6</td>
<td>8</td>
</tr>
<tr>
<td><a href="#5115fbb389d66cea4431775eabe3ef5340d3de64" class="src_link" title="./app/controllers/janitor_trials_controller.rb">./app/controllers/janitor_trials_controller.rb</a></td>
<td class="red">34.78 %</td>
<td>36</td>
<td>23</td>
<td>8</td>
<td>15</td>
</tr>
<tr>
<td><a href="#fe911e3e24ca9976105b220b89975a89f8cd55f4" class="src_link" title="./app/controllers/notes_controller.rb">./app/controllers/notes_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>39</td>
<td>26</td>
<td>26</td>
<td>0</td>
</tr>
<tr>
<td><a href="#52e2f662c3f5ba48f2a129063381e9e61aaccdf1" class="src_link" title="./app/controllers/pool_versions_controller.rb">./app/controllers/pool_versions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>4</td>
<td>2</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6d9dc917dd4cf2345086a52ba1d98633493988dc" class="src_link" title="./app/controllers/pools_controller.rb">./app/controllers/pools_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>25</td>
<td>9</td>
<td>9</td>
<td>0</td>
</tr>
<tr>
<td><a href="#b684abcd113d2f94ee4faf40b3d9edd12b90d0b3" class="src_link" title="./app/controllers/post_histories_controller.rb">./app/controllers/post_histories_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>6</td>
<td>4</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><a href="#78825818da58deebfd3bab17e66911c0954b9669" class="src_link" title="./app/controllers/post_moderation_details_controller.rb">./app/controllers/post_moderation_details_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#5896aee1a615de38514fe3d98b5317692faf3cf2" class="src_link" title="./app/controllers/post_votes_controller.rb">./app/controllers/post_votes_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>11</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#3089b5e6520cd87c814cbbea356c32f99fe3a32e" class="src_link" title="./app/controllers/posts_controller.rb">./app/controllers/posts_controller.rb</a></td>
<td class="red">40.0 %</td>
<td>37</td>
<td>25</td>
<td>10</td>
<td>15</td>
</tr>
<tr>
<td><a href="#233e077b62dbc2fe43d80c0a0e78b9fdadac8733" class="src_link" title="./app/controllers/sessions_controller.rb">./app/controllers/sessions_controller.rb</a></td>
<td class="red">33.33 %</td>
<td>20</td>
<td>12</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td><a href="#4ba48a55d68b75a363d2ef7a1b4131c7183838f4" class="src_link" title="./app/controllers/static_controller.rb">./app/controllers/static_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#1aec60685f812090959e4e7e37e4bbaf0e2a47fa" class="src_link" title="./app/controllers/tag_aliases_controller.rb">./app/controllers/tag_aliases_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>22</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ba46008846b77f7d029af0bdcb994224201262c5" class="src_link" title="./app/controllers/tag_implications_controller.rb">./app/controllers/tag_implications_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>19</td>
<td>7</td>
<td>7</td>
<td>0</td>
</tr>
<tr>
<td><a href="#097e0a885e01d3f8173a0682a9198c8e2270ef37" class="src_link" title="./app/controllers/tag_subscriptions_controller.rb">./app/controllers/tag_subscriptions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>22</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6d7a51282bec356004c89184407c7db9ed546186" class="src_link" title="./app/controllers/tags_controller.rb">./app/controllers/tags_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f3d7496232a82a4d7546daf3a91c6df1f39e71e2" class="src_link" title="./app/controllers/unapprovals_controller.rb">./app/controllers/unapprovals_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#423d29ef4ce4737aa36698a5c1ebcdf92ba9da54" class="src_link" title="./app/controllers/uploads_controller.rb">./app/controllers/uploads_controller.rb</a></td>
<td class="red">38.1 %</td>
<td>33</td>
<td>21</td>
<td>8</td>
<td>13</td>
</tr>
<tr>
<td><a href="#77557d8bc6ffe0148491f127348885c4ba65f6b8" class="src_link" title="./app/controllers/user_feedback_controller.rb">./app/controllers/user_feedback_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>19</td>
<td>7</td>
<td>7</td>
<td>0</td>
</tr>
<tr>
<td><a href="#4e719f7433d787da18ea24f91d5ec72fe519ea6f" class="src_link" title="./app/controllers/user_maintenance_controller.rb">./app/controllers/user_maintenance_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>10</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#e21af68f968ceec96a839fa4516d19095bb83eb0" class="src_link" title="./app/controllers/users_controller.rb">./app/controllers/users_controller.rb</a></td>
<td class="red">45.45 %</td>
<td>40</td>
<td>22</td>
<td>10</td>
<td>12</td>
</tr>
<tr>
<td><a href="#19dc5bf082f9247197ce8239b6d9fef668d20f77" class="src_link" title="./app/controllers/wiki_page_versions_controller.rb">./app/controllers/wiki_page_versions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>4</td>
<td>2</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td><a href="#591bfbee4fffb7f7b5fff8ef6606bf086eb7208c" class="src_link" title="./app/controllers/wiki_pages_controller.rb">./app/controllers/wiki_pages_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>25</td>
<td>9</td>
<td>9</td>
<td>0</td>
</tr>
<tr>
<td><a href="#3ca775aa7a26fba702bb6a0a7ce5f85c22a5897d" class="src_link" title="./app/helpers/admin/users_helper.rb">./app/helpers/admin/users_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#df585084bf79af07498b39e17498f762448bc042" class="src_link" title="./app/helpers/advertisements_helper.rb">./app/helpers/advertisements_helper.rb</a></td>
<td class="red">33.33 %</td>
<td>28</td>
<td>9</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td><a href="#736773261d46e3ede18933a49db906dabccf2c44" class="src_link" title="./app/helpers/application_helper.rb">./app/helpers/application_helper.rb</a></td>
<td class="red">50.0 %</td>
<td>52</td>
<td>26</td>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td><a href="#12a738b45dd557484e7de3fdf0fb68bf479af67d" class="src_link" title="./app/helpers/artist_versions_helper.rb">./app/helpers/artist_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0d47367e5d4e4c0be2a24a99efa7ea0b90d7bd32" class="src_link" title="./app/helpers/artists_helper.rb">./app/helpers/artists_helper.rb</a></td>
<td class="red">33.33 %</td>
<td>17</td>
<td>9</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td><a href="#e45e7c98c94b442a0d26d97ce42c63a2df4e1b4c" class="src_link" title="./app/helpers/bans_helper.rb">./app/helpers/bans_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#7e3a7a18688eb6f19850089ded58fbce7d13b828" class="src_link" title="./app/helpers/comment_votes_helper.rb">./app/helpers/comment_votes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#425b7ee8b3c086322502fbecab604c7a09fcf774" class="src_link" title="./app/helpers/comments_helper.rb">./app/helpers/comments_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#16a15dde471196af28251beb2694721db2289013" class="src_link" title="./app/helpers/dmails_helper.rb">./app/helpers/dmails_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#1c2daf372f8bbb403e043bfd86ffb4dcf324cc9a" class="src_link" title="./app/helpers/favorites_helper.rb">./app/helpers/favorites_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#602bf4255d156f067870ea4ce35beef02b965379" class="src_link" title="./app/helpers/forum_posts_helper.rb">./app/helpers/forum_posts_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#653d40b600d438d4e11ad8246d7800ba63be945e" class="src_link" title="./app/helpers/forum_topics_helper.rb">./app/helpers/forum_topics_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f32054fcb565b8449ef48abdda73127a602cdfea" class="src_link" title="./app/helpers/janitor_trials_helper.rb">./app/helpers/janitor_trials_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#e909a0c003555d0303d60c2662eb779a3d69d27e" class="src_link" title="./app/helpers/notes_helper.rb">./app/helpers/notes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0f63771c80cf0b30a1e5478521d6e35f1d57937e" class="src_link" title="./app/helpers/pool_versions_helper.rb">./app/helpers/pool_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#df4f784cf48107145502017a3345f0c0f578770f" class="src_link" title="./app/helpers/pools_helper.rb">./app/helpers/pools_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#2035e8ff331469153ec6de3c0fe66b79bf27f78c" class="src_link" title="./app/helpers/post_moderation_details_helper.rb">./app/helpers/post_moderation_details_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#cd7009954b2f5976d791e904617634634de90554" class="src_link" title="./app/helpers/post_versions_helper.rb">./app/helpers/post_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#3090c1c2152951dde49e16e74bcaca32b43e5e6b" class="src_link" title="./app/helpers/post_votes_helper.rb">./app/helpers/post_votes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#a51be11de47be3ba889d81c9008396bcd29c72ba" class="src_link" title="./app/helpers/posts_helper.rb">./app/helpers/posts_helper.rb</a></td>
<td class="red">20.0 %</td>
<td>16</td>
<td>10</td>
<td>2</td>
<td>8</td>
</tr>
<tr>
<td><a href="#e79259500ff06cb04ca326aaf956bd68116b8723" class="src_link" title="./app/helpers/sessions_helper.rb">./app/helpers/sessions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f4649e55051099c65f495736e92c273d58fbb9fa" class="src_link" title="./app/helpers/tag_aliases_helper.rb">./app/helpers/tag_aliases_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#685f312ead1bad2f68b68f5f70a676af52472218" class="src_link" title="./app/helpers/tag_implications_helper.rb">./app/helpers/tag_implications_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#13e368f8ea75afcb1fd0c86bec4ac99e3e591230" class="src_link" title="./app/helpers/tag_subscriptions_helper.rb">./app/helpers/tag_subscriptions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ab7af2789a718f85af3c143cf1b73adde856dcc3" class="src_link" title="./app/helpers/tags_helper.rb">./app/helpers/tags_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f298ba8aaca3b30fa2bceee6d6d0254c01eb00b2" class="src_link" title="./app/helpers/unapprovals_helper.rb">./app/helpers/unapprovals_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0fadc549ffca3a14c694ef82c3b376773d767beb" class="src_link" title="./app/helpers/uploads_helper.rb">./app/helpers/uploads_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#8719c7e3c7abe6f85b94fc6d8ac27ecebf86b0ef" class="src_link" title="./app/helpers/user_feedback_helper.rb">./app/helpers/user_feedback_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#24a101554ff8d134b19a01ec86507f9c912df64e" class="src_link" title="./app/helpers/users_helper.rb">./app/helpers/users_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6932a5b3612482db83bc2642e043760898489fe0" class="src_link" title="./app/helpers/wiki_page_versions_helper.rb">./app/helpers/wiki_page_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#47523142575a8ffab96dcbaccd4ead4992cf2c87" class="src_link" title="./app/helpers/wiki_pages_helper.rb">./app/helpers/wiki_pages_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#a0fb7e3126df79ccf235c856a86839a42f85095d" class="src_link" title="./app/logical/anonymous_user.rb">./app/logical/anonymous_user.rb</a></td>
<td class="red">52.54 %</td>
<td>120</td>
<td>59</td>
<td>31</td>
<td>28</td>
</tr>
<tr>
<td><a href="#a4a79980c92e8415caa93e72a415be7823a956a3" class="src_link" title="./app/logical/cache.rb">./app/logical/cache.rb</a></td>
<td class="red">67.24 %</td>
<td>83</td>
<td>58</td>
<td>39</td>
<td>19</td>
</tr>
<tr>
<td><a href="#b6b671810d3a60ce5d002345ab0da3b58a96fd62" class="src_link" title="./app/logical/current_user.rb">./app/logical/current_user.rb</a></td>
<td class="red">53.85 %</td>
<td>48</td>
<td>26</td>
<td>14</td>
<td>12</td>
</tr>
<tr>
<td><a href="#9ad66bff92da7291350669d67d782a42c3b9aaae" class="src_link" title="./app/logical/d_text.rb">./app/logical/d_text.rb</a></td>
<td class="red">10.84 %</td>
<td>148</td>
<td>83</td>
<td>9</td>
<td>74</td>
</tr>
<tr>
<td><a href="#c97912f72b814ea6c75e7008d835019e9fcf19d8" class="src_link" title="./app/logical/date_tag.rb">./app/logical/date_tag.rb</a></td>
<td class="red">38.46 %</td>
<td>72</td>
<td>39</td>
<td>15</td>
<td>24</td>
</tr>
<tr>
<td><a href="#a19e8a76c18977de52c2f28f3128d155800ea017" class="src_link" title="./app/logical/download.rb">./app/logical/download.rb</a></td>
<td class="red">16.67 %</td>
<td>88</td>
<td>48</td>
<td>8</td>
<td>40</td>
</tr>
<tr>
<td><a href="#457ad8525331a1d9482a98986bb00071297ec3b1" class="src_link" title="./app/logical/favorite.rb">./app/logical/favorite.rb</a></td>
<td class="red">35.14 %</td>
<td>64</td>
<td>37</td>
<td>13</td>
<td>24</td>
</tr>
<tr>
<td><a href="#69e04849616ee1cc9227324f85437a4490d25c84" class="src_link" title="./app/logical/pixiv_proxy.rb">./app/logical/pixiv_proxy.rb</a></td>
<td class="red">11.86 %</td>
<td>94</td>
<td>59</td>
<td>7</td>
<td>52</td>
</tr>
<tr>
<td><a href="#52a2c9e9a037927222c2797b53459f664f69ea19" class="src_link" title="./app/logical/post_sets/base.rb">./app/logical/post_sets/base.rb</a></td>
<td class="red">52.38 %</td>
<td>39</td>
<td>21</td>
<td>11</td>
<td>10</td>
</tr>
<tr>
<td><a href="#083cc208597872330d2bae54acb3e77a7a6d673e" class="src_link" title="./app/logical/post_sets/favorite.rb">./app/logical/post_sets/favorite.rb</a></td>
<td class="red">58.33 %</td>
<td>22</td>
<td>12</td>
<td>7</td>
<td>5</td>
</tr>
<tr>
<td><a href="#d80335f895054647ad516d5607016bc480812d56" class="src_link" title="./app/logical/post_sets/post.rb">./app/logical/post_sets/post.rb</a></td>
<td class="red">36.54 %</td>
<td>92</td>
<td>52</td>
<td>19</td>
<td>33</td>
</tr>
<tr>
<td><a href="#6cf579dbe272c15724294cd974911218b5882011" class="src_link" title="./app/logical/related_tag_calculator.rb">./app/logical/related_tag_calculator.rb</a></td>
<td class="red">24.0 %</td>
<td>50</td>
<td>25</td>
<td>6</td>
<td>19</td>
</tr>
<tr>
<td><a href="#c50ee24500f9b104363ecc1565af18b49aa2eb32" class="src_link" title="./app/logical/remote_server.rb">./app/logical/remote_server.rb</a></td>
<td class="red">44.44 %</td>
<td>35</td>
<td>18</td>
<td>8</td>
<td>10</td>
</tr>
<tr>
<td><a href="#1fd95f18e08c25b139bcfd5a2321c5e72d3af6d3" class="src_link" title="./app/models/advertisement.rb">./app/models/advertisement.rb</a></td>
<td class="red">38.1 %</td>
<td>77</td>
<td>42</td>
<td>16</td>
<td>26</td>
</tr>
<tr>
<td><a href="#2254540fdb7ecd1be0dc0596881d065ca569fc98" class="src_link" title="./app/models/advertisement_hit.rb">./app/models/advertisement_hit.rb</a></td>
<td class="green">100.0 %</td>
<td>5</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#c160285f538e9448ad9b938575a262d3e14abc0a" class="src_link" title="./app/models/artist.rb">./app/models/artist.rb</a></td>
<td class="red">44.26 %</td>
<td>222</td>
<td>122</td>
<td>54</td>
<td>68</td>
</tr>
<tr>
<td><a href="#dc64fd297f8115cfd0085100e7de63dfe23613ec" class="src_link" title="./app/models/artist_url.rb">./app/models/artist_url.rb</a></td>
<td class="red">34.78 %</td>
<td>37</td>
<td>23</td>
<td>8</td>
<td>15</td>
</tr>
<tr>
<td><a href="#4246a154873cea9f66614f75a2c01e50c3b2f02e" class="src_link" title="./app/models/artist_version.rb">./app/models/artist_version.rb</a></td>
<td class="red">80.0 %</td>
<td>8</td>
<td>5</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td><a href="#2b6e88e45978cfc4662efcf8bfb17bb454d2cfb4" class="src_link" title="./app/models/ban.rb">./app/models/ban.rb</a></td>
<td class="red">34.21 %</td>
<td>57</td>
<td>38</td>
<td>13</td>
<td>25</td>
</tr>
<tr>
<td><a href="#bc3b82f51cfa81cfc6b6f7f0fb3ac0887c341002" class="src_link" title="./app/models/comment.rb">./app/models/comment.rb</a></td>
<td class="red">54.29 %</td>
<td>57</td>
<td>35</td>
<td>19</td>
<td>16</td>
</tr>
<tr>
<td><a href="#cfd3e4aa331e5a947dc33d9ee5f1375c09d0027a" class="src_link" title="./app/models/comment_vote.rb">./app/models/comment_vote.rb</a></td>
<td class="red">80.0 %</td>
<td>16</td>
<td>10</td>
<td>8</td>
<td>2</td>
</tr>
<tr>
<td><a href="#db79c61187ae0b81dc7df66f3c36c1872b5e2ecc" class="src_link" title="./app/models/dmail.rb">./app/models/dmail.rb</a></td>
<td class="red">53.73 %</td>
<td>106</td>
<td>67</td>
<td>36</td>
<td>31</td>
</tr>
<tr>
<td><a href="#35d460f6a40dff2e470c40199d38fb0bc7f66083" class="src_link" title="./app/models/forum_post.rb">./app/models/forum_post.rb</a></td>
<td class="red">77.78 %</td>
<td>27</td>
<td>18</td>
<td>14</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3051e2f09c8b2b7df6a01e0efb25998b526f213a" class="src_link" title="./app/models/forum_topic.rb">./app/models/forum_topic.rb</a></td>
<td class="yellow">83.33 %</td>
<td>25</td>
<td>18</td>
<td>15</td>
<td>3</td>
</tr>
<tr>
<td><a href="#999cc2bce390fc8c4505fb5db5cf0244dc92bc17" class="src_link" title="./app/models/ip_ban.rb">./app/models/ip_ban.rb</a></td>
<td class="red">58.82 %</td>
<td>32</td>
<td>17</td>
<td>10</td>
<td>7</td>
</tr>
<tr>
<td><a href="#ce0449e5338b54330806cf95fa7037d5dd33b2c5" class="src_link" title="./app/models/janitor_trial.rb">./app/models/janitor_trial.rb</a></td>
<td class="red">61.11 %</td>
<td>33</td>
<td>18</td>
<td>11</td>
<td>7</td>
</tr>
<tr>
<td><a href="#430eb3ff2bd026840179b9a343d49ee217c9c883" class="src_link" title="./app/models/jobs/backup_to_s3.rb">./app/models/jobs/backup_to_s3.rb</a></td>
<td class="red">21.43 %</td>
<td>27</td>
<td>14</td>
<td>3</td>
<td>11</td>
</tr>
<tr>
<td><a href="#cfe90f260f4e25fd7dc2baa50fc0c704248bb59c" class="src_link" title="./app/models/jobs/calculate_post_count.rb">./app/models/jobs/calculate_post_count.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#9ec16ae4b518622003a0e280b675b8f582abe5ee" class="src_link" title="./app/models/jobs/calculate_related_tags.rb">./app/models/jobs/calculate_related_tags.rb</a></td>
<td class="red">42.86 %</td>
<td>12</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#9ca89603ed0a071269ba3e550afd57a783b531fd" class="src_link" title="./app/models/jobs/calculate_uploaded_tags.rb">./app/models/jobs/calculate_uploaded_tags.rb</a></td>
<td class="red">37.5 %</td>
<td>13</td>
<td>8</td>
<td>3</td>
<td>5</td>
</tr>
<tr>
<td><a href="#fac06c350bf70aa8cae1b379efaa098ea5dd1b7d" class="src_link" title="./app/models/jobs/create_tag_alias.rb">./app/models/jobs/create_tag_alias.rb</a></td>
<td class="red">75.0 %</td>
<td>12</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#74e368a2befc8d5d6b3836ab1265ac59923ac641" class="src_link" title="./app/models/jobs/create_tag_implication.rb">./app/models/jobs/create_tag_implication.rb</a></td>
<td class="red">75.0 %</td>
<td>12</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#7ae6af5a1ff157d201372c413a5fa637912b51f0" class="src_link" title="./app/models/jobs/fix_pixiv_uploads.rb">./app/models/jobs/fix_pixiv_uploads.rb</a></td>
<td class="red">42.86 %</td>
<td>13</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#1226ed400471b6440bb04a32aafc7710dff69dd4" class="src_link" title="./app/models/jobs/mass_tag_edit.rb">./app/models/jobs/mass_tag_edit.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#22140c5677ce15d7106dfa1645546b7af1a80326" class="src_link" title="./app/models/jobs/process_tag_subscriptions.rb">./app/models/jobs/process_tag_subscriptions.rb</a></td>
<td class="red">50.0 %</td>
<td>10</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#fe4ef796d6ae40377be478b4bd58fbb2e159241f" class="src_link" title="./app/models/jobs/process_uploads.rb">./app/models/jobs/process_uploads.rb</a></td>
<td class="red">60.0 %</td>
<td>9</td>
<td>5</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<td><a href="#aad40b1336188d72b0c2341193beec67188f75c6" class="src_link" title="./app/models/note.rb">./app/models/note.rb</a></td>
<td class="red">67.65 %</td>
<td>116</td>
<td>68</td>
<td>46</td>
<td>22</td>
</tr>
<tr>
<td><a href="#f4f67df7eea16ced47bc03d8117d48c9b7222619" class="src_link" title="./app/models/note_version.rb">./app/models/note_version.rb</a></td>
<td class="red">66.67 %</td>
<td>5</td>
<td>3</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td><a href="#372b4d0ab63284a9735e07b965fe188499591601" class="src_link" title="./app/models/pool.rb">./app/models/pool.rb</a></td>
<td class="red">37.7 %</td>
<td>99</td>
<td>61</td>
<td>23</td>
<td>38</td>
</tr>
<tr>
<td><a href="#d1fae20ee21a45b76d5ff45291d4d5304fe6ba6b" class="src_link" title="./app/models/pool_version.rb">./app/models/pool_version.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#d04cbd817a434b39e0b01f892e7b187686382313" class="src_link" title="./app/models/post.rb">./app/models/post.rb</a></td>
<td class="red">51.38 %</td>
<td>814</td>
<td>436</td>
<td>224</td>
<td>212</td>
</tr>
<tr>
<td><a href="#78aedc58a2dbe13c3c2d4612266e7800adb27144" class="src_link" title="./app/models/post_history.rb">./app/models/post_history.rb</a></td>
<td class="red">50.0 %</td>
<td>114</td>
<td>60</td>
<td>30</td>
<td>30</td>
</tr>
<tr>
<td><a href="#501f92af635abd19a6bca7f690331107d8455f87" class="src_link" title="./app/models/post_moderation_detail.rb">./app/models/post_moderation_detail.rb</a></td>
<td class="red">45.45 %</td>
<td>19</td>
<td>11</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td><a href="#12b6c31e481d5330f60ca9477a459a241ba441af" class="src_link" title="./app/models/post_vote.rb">./app/models/post_vote.rb</a></td>
<td class="red">61.54 %</td>
<td>20</td>
<td>13</td>
<td>8</td>
<td>5</td>
</tr>
<tr>
<td><a href="#336a19eddad8ff80f9102f13995ab068beb34769" class="src_link" title="./app/models/removed_post.rb">./app/models/removed_post.rb</a></td>
<td class="red">60.0 %</td>
<td>38</td>
<td>25</td>
<td>15</td>
<td>10</td>
</tr>
<tr>
<td><a href="#392312e877c1297dea19e4626e75d490f1dd7133" class="src_link" title="./app/models/report_mailer.rb">./app/models/report_mailer.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#d27e7deb9c404017186c6c3cda05c20e7e5c28b6" class="src_link" title="./app/models/tag.rb">./app/models/tag.rb</a></td>
<td class="red">47.4 %</td>
<td>362</td>
<td>173</td>
<td>82</td>
<td>91</td>
</tr>
<tr>
<td><a href="#4765e817a387a6f7be5be10c6e42e639595b2c28" class="src_link" title="./app/models/tag_alias.rb">./app/models/tag_alias.rb</a></td>
<td class="red">57.89 %</td>
<td>64</td>
<td>38</td>
<td>22</td>
<td>16</td>
</tr>
<tr>
<td><a href="#1fff6c4ccf22a1c6aa4b03674e612ca362cd5e68" class="src_link" title="./app/models/tag_implication.rb">./app/models/tag_implication.rb</a></td>
<td class="red">51.35 %</td>
<td>127</td>
<td>74</td>
<td>38</td>
<td>36</td>
</tr>
<tr>
<td><a href="#a98b4d29818640be17f6432ae97b769ef94a7188" class="src_link" title="./app/models/tag_subscription.rb">./app/models/tag_subscription.rb</a></td>
<td class="red">34.78 %</td>
<td>81</td>
<td>46</td>
<td>16</td>
<td>30</td>
</tr>
<tr>
<td><a href="#eefbf01f160cf9a3ce8b05e9cdcac1eec7599b93" class="src_link" title="./app/models/unapproval.rb">./app/models/unapproval.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#77303c4b62025b2371d9414bd62fccbea7f33ad9" class="src_link" title="./app/models/upload.rb">./app/models/upload.rb</a></td>
<td class="red">36.99 %</td>
<td>308</td>
<td>173</td>
<td>64</td>
<td>109</td>
</tr>
<tr>
<td><a href="#2d6cb1803310620ec0a6a92a4252d8a52b0ca0d6" class="src_link" title="./app/models/user.rb">./app/models/user.rb</a></td>
<td class="red">55.63 %</td>
<td>261</td>
<td>160</td>
<td>89</td>
<td>71</td>
</tr>
<tr>
<td><a href="#401caff28bf22c84af2579e617fc15e39ecc444a" class="src_link" title="./app/models/user_feedback.rb">./app/models/user_feedback.rb</a></td>
<td class="red">76.92 %</td>
<td>19</td>
<td>13</td>
<td>10</td>
<td>3</td>
</tr>
<tr>
<td><a href="#2a21e9c560cb1e88d87e187fdcc1e3ceee11ddb1" class="src_link" title="./app/models/user_mailer.rb">./app/models/user_mailer.rb</a></td>
<td class="red">40.0 %</td>
<td>24</td>
<td>15</td>
<td>6</td>
<td>9</td>
</tr>
<tr>
<td><a href="#5dd537da900c3e151d09bf1b91540b0a538a6fd1" class="src_link" title="./app/models/wiki_page.rb">./app/models/wiki_page.rb</a></td>
<td class="red">53.85 %</td>
<td>70</td>
<td>39</td>
<td>21</td>
<td>18</td>
</tr>
<tr>
<td><a href="#ad5c7aceb761954bce20b3d9f79bc89141a9738f" class="src_link" title="./app/models/wiki_page_version.rb">./app/models/wiki_page_version.rb</a></td>
<td class="red">71.43 %</td>
<td>12</td>
<td>7</td>
<td>5</td>
<td>2</td>
</tr>
<tr>
<td><a href="#a1810da474c33a59fe6ef7febe0d18a7506cda17" class="src_link" title="./app/presenters/note_presenter.rb">./app/presenters/note_presenter.rb</a></td>
<td class="red">60.0 %</td>
<td>9</td>
<td>5</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<td><a href="#41326d80e528ff741753a693bed1ae8aed11b4fb" class="src_link" title="./app/presenters/paginators/base.rb">./app/presenters/paginators/base.rb</a></td>
<td class="red">19.61 %</td>
<td>78</td>
<td>51</td>
<td>10</td>
<td>41</td>
</tr>
<tr>
<td><a href="#55a1b18db580f168607e57c89ac9088c2e9c9d9e" class="src_link" title="./app/presenters/paginators/post.rb">./app/presenters/paginators/post.rb</a></td>
<td class="red">64.29 %</td>
<td>26</td>
<td>14</td>
<td>9</td>
<td>5</td>
</tr>
<tr>
<td><a href="#8e1a891f64fb66bba0c1cda9f521c0d9d45c53f0" class="src_link" title="./app/presenters/paginators/post_version.rb">./app/presenters/paginators/post_version.rb</a></td>
<td class="red">70.0 %</td>
<td>18</td>
<td>10</td>
<td>7</td>
<td>3</td>
</tr>
<tr>
<td><a href="#52cabd06773204fcf5fd41e47a456b0aeebefc7b" class="src_link" title="./app/presenters/post_history_revision_presenter.rb">./app/presenters/post_history_revision_presenter.rb</a></td>
<td class="red">37.5 %</td>
<td>25</td>
<td>16</td>
<td>6</td>
<td>10</td>
</tr>
<tr>
<td><a href="#191104734421111aa081cab6915cc2b3680907fe" class="src_link" title="./app/presenters/post_presenter.rb">./app/presenters/post_presenter.rb</a></td>
<td class="red">23.08 %</td>
<td>39</td>
<td>26</td>
<td>6</td>
<td>20</td>
</tr>
<tr>
<td><a href="#ba98ab3c895cb23cae51cc709416f2a65abd8449" class="src_link" title="./app/presenters/post_set_presenter.rb">./app/presenters/post_set_presenter.rb</a></td>
<td class="red">25.0 %</td>
<td>58</td>
<td>36</td>
<td>9</td>
<td>27</td>
</tr>
<tr>
<td><a href="#bd5f00947f16d9c21011d91eed94e9a4df2bf0b1" class="src_link" title="./app/presenters/presenter.rb">./app/presenters/presenter.rb</a></td>
<td class="red">55.56 %</td>
<td>17</td>
<td>9</td>
<td>5</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3aa907565e2b9269444f37880f8475f4437c7808" class="src_link" title="./app/presenters/tag_set_presenter.rb">./app/presenters/tag_set_presenter.rb</a></td>
<td class="red">25.93 %</td>
<td>47</td>
<td>27</td>
<td>7</td>
<td>20</td>
</tr>
<tr>
<td><a href="#919d2c43f39c49f6f679b9f3482c7936b88760f1" class="src_link" title="./app/presenters/upload_presenter.rb">./app/presenters/upload_presenter.rb</a></td>
<td class="red">42.86 %</td>
<td>15</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3772f97ef7314284d5567c9c2916298f593753f9" class="src_link" title="./app/presenters/wiki_page_presenter.rb">./app/presenters/wiki_page_presenter.rb</a></td>
<td class="red">6.9 %</td>
<td>53</td>
<td>29</td>
<td>2</td>
<td>27</td>
</tr>
<tr>
<td><a href="#cd15129569c6f3a2d96172e12ba86a2575863f5e" class="src_link" title="./lib/danbooru_image_resizer/danbooru_image_resizer.rb">./lib/danbooru_image_resizer/danbooru_image_resizer.rb</a></td>
<td class="red">33.33 %</td>
<td>29</td>
<td>18</td>
<td>6</td>
<td>12</td>
</tr>
<tr>
<td><a href="#be14f268e9a1f82230c3acd83e39ed54b10e4508" class="src_link" title="./vendor/plugins/jrails/lib/jrails.rb">./vendor/plugins/jrails/lib/jrails.rb</a></td>
<td class="green">100.0 %</td>
<td>5</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#22e8619b41fdc310eee3553f850564a8414fb730" class="src_link" title="./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb">./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb</a></td>
<td class="red">52.94 %</td>
<td>56</td>
<td>17</td>
<td>9</td>
<td>8</td>
</tr>
<tr>
<td><a href="#f1befc3da818f5ee64c1873eb429e438e3010cc7" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb">./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb</a></td>
<td class="yellow">89.47 %</td>
<td>60</td>
<td>19</td>
<td>17</td>
<td>2</td>
</tr>
<tr>
<td><a href="#a96a76254332dde771061defb0b9c85b658eeeb0" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jrails.rb">./vendor/plugins/jrails/lib/jrails/jrails.rb</a></td>
<td class="red">29.22 %</td>
<td>458</td>
<td>243</td>
<td>71</td>
<td>172</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Controllers">
<h2>
Controllers
(<span class="red">52.48%</span>)
</h2>
<a name="Controllers"></a>
<div>
<b>37</b> files in total.
<b>524</b> relevant lines.
<span class="green"><b>275</b> lines covered</span> and
<span class="red"><b>249</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#6d07ff847709abc6a17c7821ac356c9a3495bb2d" class="src_link" title="./app/controllers/admin/posts_controller.rb">./app/controllers/admin/posts_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ad23d5e7f78f934e418e04682e77a4056ab9aa70" class="src_link" title="./app/controllers/admin/users_controller.rb">./app/controllers/admin/users_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>7</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#96609befd01de224fa76258290108cde6a8acba9" class="src_link" title="./app/controllers/advertisement_hits_controller.rb">./app/controllers/advertisement_hits_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>12</td>
<td>8</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td><a href="#d43bd3bfd0e94fa9f3f8774304f84df5a49b5b83" class="src_link" title="./app/controllers/advertisements_controller.rb">./app/controllers/advertisements_controller.rb</a></td>
<td class="red">33.33 %</td>
<td>58</td>
<td>33</td>
<td>11</td>
<td>22</td>
</tr>
<tr>
<td><a href="#4a25e7ff1c5198a87fe2df4ecd8c5899abc80402" class="src_link" title="./app/controllers/application_controller.rb">./app/controllers/application_controller.rb</a></td>
<td class="red">67.44 %</td>
<td>75</td>
<td>43</td>
<td>29</td>
<td>14</td>
</tr>
<tr>
<td><a href="#e3a0e679ad6b24b158b2fce7e714b905d5ce3029" class="src_link" title="./app/controllers/artist_versions_controller.rb">./app/controllers/artist_versions_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>9</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#a1a97cd9d3093075d9608b3526b7d0f0c3b9eb9c" class="src_link" title="./app/controllers/artists_controller.rb">./app/controllers/artists_controller.rb</a></td>
<td class="red">34.48 %</td>
<td>47</td>
<td>29</td>
<td>10</td>
<td>19</td>
</tr>
<tr>
<td><a href="#cec51ae5903a199379fbf496df2c91e1870cc1a4" class="src_link" title="./app/controllers/bans_controller.rb">./app/controllers/bans_controller.rb</a></td>
<td class="red">34.62 %</td>
<td>46</td>
<td>26</td>
<td>9</td>
<td>17</td>
</tr>
<tr>
<td><a href="#628336a38cba2a45cb6a0b686f3480b0c27ecab4" class="src_link" title="./app/controllers/comment_votes_controller.rb">./app/controllers/comment_votes_controller.rb</a></td>
<td class="red">40.0 %</td>
<td>8</td>
<td>5</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td><a href="#fc5032b4ea709c4e5efaee98be921ed369bc8e1d" class="src_link" title="./app/controllers/comments_controller.rb">./app/controllers/comments_controller.rb</a></td>
<td class="red">31.03 %</td>
<td>46</td>
<td>29</td>
<td>9</td>
<td>20</td>
</tr>
<tr>
<td><a href="#a82afabd8bb37a3b4cad70a5e772b7510ea197ac" class="src_link" title="./app/controllers/dmails_controller.rb">./app/controllers/dmails_controller.rb</a></td>
<td class="red">36.67 %</td>
<td>47</td>
<td>30</td>
<td>11</td>
<td>19</td>
</tr>
<tr>
<td><a href="#45d7435b06dd93171ff53a1395e2c466be99ab80" class="src_link" title="./app/controllers/dtext_controller.rb">./app/controllers/dtext_controller.rb</a></td>
<td class="red">66.67 %</td>
<td>5</td>
<td>3</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td><a href="#47723bf5f2d65b26d10f846cb59aa97fd920b204" class="src_link" title="./app/controllers/favorites_controller.rb">./app/controllers/favorites_controller.rb</a></td>
<td class="red">36.36 %</td>
<td>25</td>
<td>11</td>
<td>4</td>
<td>7</td>
</tr>
<tr>
<td><a href="#bf53d3f8b6f081755292fd15a414be2d6806ecc6" class="src_link" title="./app/controllers/forum_posts_controller.rb">./app/controllers/forum_posts_controller.rb</a></td>
<td class="red">37.14 %</td>
<td>53</td>
<td>35</td>
<td>13</td>
<td>22</td>
</tr>
<tr>
<td><a href="#4ef109f8a698d0702791bd744170c12f8e6aae45" class="src_link" title="./app/controllers/forum_topics_controller.rb">./app/controllers/forum_topics_controller.rb</a></td>
<td class="red">37.14 %</td>
<td>53</td>
<td>35</td>
<td>13</td>
<td>22</td>
</tr>
<tr>
<td><a href="#63a58e7a793865b23ea8750598380f0a6a714362" class="src_link" title="./app/controllers/ip_bans_controller.rb">./app/controllers/ip_bans_controller.rb</a></td>
<td class="red">42.86 %</td>
<td>23</td>
<td>14</td>
<td>6</td>
<td>8</td>
</tr>
<tr>
<td><a href="#5115fbb389d66cea4431775eabe3ef5340d3de64" class="src_link" title="./app/controllers/janitor_trials_controller.rb">./app/controllers/janitor_trials_controller.rb</a></td>
<td class="red">34.78 %</td>
<td>36</td>
<td>23</td>
<td>8</td>
<td>15</td>
</tr>
<tr>
<td><a href="#fe911e3e24ca9976105b220b89975a89f8cd55f4" class="src_link" title="./app/controllers/notes_controller.rb">./app/controllers/notes_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>39</td>
<td>26</td>
<td>26</td>
<td>0</td>
</tr>
<tr>
<td><a href="#52e2f662c3f5ba48f2a129063381e9e61aaccdf1" class="src_link" title="./app/controllers/pool_versions_controller.rb">./app/controllers/pool_versions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>4</td>
<td>2</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6d9dc917dd4cf2345086a52ba1d98633493988dc" class="src_link" title="./app/controllers/pools_controller.rb">./app/controllers/pools_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>25</td>
<td>9</td>
<td>9</td>
<td>0</td>
</tr>
<tr>
<td><a href="#b684abcd113d2f94ee4faf40b3d9edd12b90d0b3" class="src_link" title="./app/controllers/post_histories_controller.rb">./app/controllers/post_histories_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>6</td>
<td>4</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td><a href="#78825818da58deebfd3bab17e66911c0954b9669" class="src_link" title="./app/controllers/post_moderation_details_controller.rb">./app/controllers/post_moderation_details_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#5896aee1a615de38514fe3d98b5317692faf3cf2" class="src_link" title="./app/controllers/post_votes_controller.rb">./app/controllers/post_votes_controller.rb</a></td>
<td class="red">50.0 %</td>
<td>11</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#3089b5e6520cd87c814cbbea356c32f99fe3a32e" class="src_link" title="./app/controllers/posts_controller.rb">./app/controllers/posts_controller.rb</a></td>
<td class="red">40.0 %</td>
<td>37</td>
<td>25</td>
<td>10</td>
<td>15</td>
</tr>
<tr>
<td><a href="#233e077b62dbc2fe43d80c0a0e78b9fdadac8733" class="src_link" title="./app/controllers/sessions_controller.rb">./app/controllers/sessions_controller.rb</a></td>
<td class="red">33.33 %</td>
<td>20</td>
<td>12</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td><a href="#4ba48a55d68b75a363d2ef7a1b4131c7183838f4" class="src_link" title="./app/controllers/static_controller.rb">./app/controllers/static_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#1aec60685f812090959e4e7e37e4bbaf0e2a47fa" class="src_link" title="./app/controllers/tag_aliases_controller.rb">./app/controllers/tag_aliases_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>22</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ba46008846b77f7d029af0bdcb994224201262c5" class="src_link" title="./app/controllers/tag_implications_controller.rb">./app/controllers/tag_implications_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>19</td>
<td>7</td>
<td>7</td>
<td>0</td>
</tr>
<tr>
<td><a href="#097e0a885e01d3f8173a0682a9198c8e2270ef37" class="src_link" title="./app/controllers/tag_subscriptions_controller.rb">./app/controllers/tag_subscriptions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>22</td>
<td>8</td>
<td>8</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6d7a51282bec356004c89184407c7db9ed546186" class="src_link" title="./app/controllers/tags_controller.rb">./app/controllers/tags_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f3d7496232a82a4d7546daf3a91c6df1f39e71e2" class="src_link" title="./app/controllers/unapprovals_controller.rb">./app/controllers/unapprovals_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>13</td>
<td>5</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<td><a href="#423d29ef4ce4737aa36698a5c1ebcdf92ba9da54" class="src_link" title="./app/controllers/uploads_controller.rb">./app/controllers/uploads_controller.rb</a></td>
<td class="red">38.1 %</td>
<td>33</td>
<td>21</td>
<td>8</td>
<td>13</td>
</tr>
<tr>
<td><a href="#77557d8bc6ffe0148491f127348885c4ba65f6b8" class="src_link" title="./app/controllers/user_feedback_controller.rb">./app/controllers/user_feedback_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>19</td>
<td>7</td>
<td>7</td>
<td>0</td>
</tr>
<tr>
<td><a href="#4e719f7433d787da18ea24f91d5ec72fe519ea6f" class="src_link" title="./app/controllers/user_maintenance_controller.rb">./app/controllers/user_maintenance_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>10</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#e21af68f968ceec96a839fa4516d19095bb83eb0" class="src_link" title="./app/controllers/users_controller.rb">./app/controllers/users_controller.rb</a></td>
<td class="red">45.45 %</td>
<td>40</td>
<td>22</td>
<td>10</td>
<td>12</td>
</tr>
<tr>
<td><a href="#19dc5bf082f9247197ce8239b6d9fef668d20f77" class="src_link" title="./app/controllers/wiki_page_versions_controller.rb">./app/controllers/wiki_page_versions_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>4</td>
<td>2</td>
<td>2</td>
<td>0</td>
</tr>
<tr>
<td><a href="#591bfbee4fffb7f7b5fff8ef6606bf086eb7208c" class="src_link" title="./app/controllers/wiki_pages_controller.rb">./app/controllers/wiki_pages_controller.rb</a></td>
<td class="green">100.0 %</td>
<td>25</td>
<td>9</td>
<td>9</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Models">
<h2>
Models
(<span class="red">50.26%</span>)
</h2>
<a name="Models"></a>
<div>
<b>44</b> files in total.
<b>1906</b> relevant lines.
<span class="green"><b>958</b> lines covered</span> and
<span class="red"><b>948</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#1fd95f18e08c25b139bcfd5a2321c5e72d3af6d3" class="src_link" title="./app/models/advertisement.rb">./app/models/advertisement.rb</a></td>
<td class="red">38.1 %</td>
<td>77</td>
<td>42</td>
<td>16</td>
<td>26</td>
</tr>
<tr>
<td><a href="#2254540fdb7ecd1be0dc0596881d065ca569fc98" class="src_link" title="./app/models/advertisement_hit.rb">./app/models/advertisement_hit.rb</a></td>
<td class="green">100.0 %</td>
<td>5</td>
<td>3</td>
<td>3</td>
<td>0</td>
</tr>
<tr>
<td><a href="#c160285f538e9448ad9b938575a262d3e14abc0a" class="src_link" title="./app/models/artist.rb">./app/models/artist.rb</a></td>
<td class="red">44.26 %</td>
<td>222</td>
<td>122</td>
<td>54</td>
<td>68</td>
</tr>
<tr>
<td><a href="#dc64fd297f8115cfd0085100e7de63dfe23613ec" class="src_link" title="./app/models/artist_url.rb">./app/models/artist_url.rb</a></td>
<td class="red">34.78 %</td>
<td>37</td>
<td>23</td>
<td>8</td>
<td>15</td>
</tr>
<tr>
<td><a href="#4246a154873cea9f66614f75a2c01e50c3b2f02e" class="src_link" title="./app/models/artist_version.rb">./app/models/artist_version.rb</a></td>
<td class="red">80.0 %</td>
<td>8</td>
<td>5</td>
<td>4</td>
<td>1</td>
</tr>
<tr>
<td><a href="#2b6e88e45978cfc4662efcf8bfb17bb454d2cfb4" class="src_link" title="./app/models/ban.rb">./app/models/ban.rb</a></td>
<td class="red">34.21 %</td>
<td>57</td>
<td>38</td>
<td>13</td>
<td>25</td>
</tr>
<tr>
<td><a href="#bc3b82f51cfa81cfc6b6f7f0fb3ac0887c341002" class="src_link" title="./app/models/comment.rb">./app/models/comment.rb</a></td>
<td class="red">54.29 %</td>
<td>57</td>
<td>35</td>
<td>19</td>
<td>16</td>
</tr>
<tr>
<td><a href="#cfd3e4aa331e5a947dc33d9ee5f1375c09d0027a" class="src_link" title="./app/models/comment_vote.rb">./app/models/comment_vote.rb</a></td>
<td class="red">80.0 %</td>
<td>16</td>
<td>10</td>
<td>8</td>
<td>2</td>
</tr>
<tr>
<td><a href="#db79c61187ae0b81dc7df66f3c36c1872b5e2ecc" class="src_link" title="./app/models/dmail.rb">./app/models/dmail.rb</a></td>
<td class="red">53.73 %</td>
<td>106</td>
<td>67</td>
<td>36</td>
<td>31</td>
</tr>
<tr>
<td><a href="#35d460f6a40dff2e470c40199d38fb0bc7f66083" class="src_link" title="./app/models/forum_post.rb">./app/models/forum_post.rb</a></td>
<td class="red">77.78 %</td>
<td>27</td>
<td>18</td>
<td>14</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3051e2f09c8b2b7df6a01e0efb25998b526f213a" class="src_link" title="./app/models/forum_topic.rb">./app/models/forum_topic.rb</a></td>
<td class="yellow">83.33 %</td>
<td>25</td>
<td>18</td>
<td>15</td>
<td>3</td>
</tr>
<tr>
<td><a href="#999cc2bce390fc8c4505fb5db5cf0244dc92bc17" class="src_link" title="./app/models/ip_ban.rb">./app/models/ip_ban.rb</a></td>
<td class="red">58.82 %</td>
<td>32</td>
<td>17</td>
<td>10</td>
<td>7</td>
</tr>
<tr>
<td><a href="#ce0449e5338b54330806cf95fa7037d5dd33b2c5" class="src_link" title="./app/models/janitor_trial.rb">./app/models/janitor_trial.rb</a></td>
<td class="red">61.11 %</td>
<td>33</td>
<td>18</td>
<td>11</td>
<td>7</td>
</tr>
<tr>
<td><a href="#430eb3ff2bd026840179b9a343d49ee217c9c883" class="src_link" title="./app/models/jobs/backup_to_s3.rb">./app/models/jobs/backup_to_s3.rb</a></td>
<td class="red">21.43 %</td>
<td>27</td>
<td>14</td>
<td>3</td>
<td>11</td>
</tr>
<tr>
<td><a href="#cfe90f260f4e25fd7dc2baa50fc0c704248bb59c" class="src_link" title="./app/models/jobs/calculate_post_count.rb">./app/models/jobs/calculate_post_count.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#9ec16ae4b518622003a0e280b675b8f582abe5ee" class="src_link" title="./app/models/jobs/calculate_related_tags.rb">./app/models/jobs/calculate_related_tags.rb</a></td>
<td class="red">42.86 %</td>
<td>12</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#9ca89603ed0a071269ba3e550afd57a783b531fd" class="src_link" title="./app/models/jobs/calculate_uploaded_tags.rb">./app/models/jobs/calculate_uploaded_tags.rb</a></td>
<td class="red">37.5 %</td>
<td>13</td>
<td>8</td>
<td>3</td>
<td>5</td>
</tr>
<tr>
<td><a href="#fac06c350bf70aa8cae1b379efaa098ea5dd1b7d" class="src_link" title="./app/models/jobs/create_tag_alias.rb">./app/models/jobs/create_tag_alias.rb</a></td>
<td class="red">75.0 %</td>
<td>12</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#74e368a2befc8d5d6b3836ab1265ac59923ac641" class="src_link" title="./app/models/jobs/create_tag_implication.rb">./app/models/jobs/create_tag_implication.rb</a></td>
<td class="red">75.0 %</td>
<td>12</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#7ae6af5a1ff157d201372c413a5fa637912b51f0" class="src_link" title="./app/models/jobs/fix_pixiv_uploads.rb">./app/models/jobs/fix_pixiv_uploads.rb</a></td>
<td class="red">42.86 %</td>
<td>13</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#1226ed400471b6440bb04a32aafc7710dff69dd4" class="src_link" title="./app/models/jobs/mass_tag_edit.rb">./app/models/jobs/mass_tag_edit.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#22140c5677ce15d7106dfa1645546b7af1a80326" class="src_link" title="./app/models/jobs/process_tag_subscriptions.rb">./app/models/jobs/process_tag_subscriptions.rb</a></td>
<td class="red">50.0 %</td>
<td>10</td>
<td>6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td><a href="#fe4ef796d6ae40377be478b4bd58fbb2e159241f" class="src_link" title="./app/models/jobs/process_uploads.rb">./app/models/jobs/process_uploads.rb</a></td>
<td class="red">60.0 %</td>
<td>9</td>
<td>5</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<td><a href="#aad40b1336188d72b0c2341193beec67188f75c6" class="src_link" title="./app/models/note.rb">./app/models/note.rb</a></td>
<td class="red">67.65 %</td>
<td>116</td>
<td>68</td>
<td>46</td>
<td>22</td>
</tr>
<tr>
<td><a href="#f4f67df7eea16ced47bc03d8117d48c9b7222619" class="src_link" title="./app/models/note_version.rb">./app/models/note_version.rb</a></td>
<td class="red">66.67 %</td>
<td>5</td>
<td>3</td>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td><a href="#372b4d0ab63284a9735e07b965fe188499591601" class="src_link" title="./app/models/pool.rb">./app/models/pool.rb</a></td>
<td class="red">37.7 %</td>
<td>99</td>
<td>61</td>
<td>23</td>
<td>38</td>
</tr>
<tr>
<td><a href="#d1fae20ee21a45b76d5ff45291d4d5304fe6ba6b" class="src_link" title="./app/models/pool_version.rb">./app/models/pool_version.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#d04cbd817a434b39e0b01f892e7b187686382313" class="src_link" title="./app/models/post.rb">./app/models/post.rb</a></td>
<td class="red">51.38 %</td>
<td>814</td>
<td>436</td>
<td>224</td>
<td>212</td>
</tr>
<tr>
<td><a href="#78aedc58a2dbe13c3c2d4612266e7800adb27144" class="src_link" title="./app/models/post_history.rb">./app/models/post_history.rb</a></td>
<td class="red">50.0 %</td>
<td>114</td>
<td>60</td>
<td>30</td>
<td>30</td>
</tr>
<tr>
<td><a href="#501f92af635abd19a6bca7f690331107d8455f87" class="src_link" title="./app/models/post_moderation_detail.rb">./app/models/post_moderation_detail.rb</a></td>
<td class="red">45.45 %</td>
<td>19</td>
<td>11</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td><a href="#12b6c31e481d5330f60ca9477a459a241ba441af" class="src_link" title="./app/models/post_vote.rb">./app/models/post_vote.rb</a></td>
<td class="red">61.54 %</td>
<td>20</td>
<td>13</td>
<td>8</td>
<td>5</td>
</tr>
<tr>
<td><a href="#336a19eddad8ff80f9102f13995ab068beb34769" class="src_link" title="./app/models/removed_post.rb">./app/models/removed_post.rb</a></td>
<td class="red">60.0 %</td>
<td>38</td>
<td>25</td>
<td>15</td>
<td>10</td>
</tr>
<tr>
<td><a href="#392312e877c1297dea19e4626e75d490f1dd7133" class="src_link" title="./app/models/report_mailer.rb">./app/models/report_mailer.rb</a></td>
<td class="red">75.0 %</td>
<td>7</td>
<td>4</td>
<td>3</td>
<td>1</td>
</tr>
<tr>
<td><a href="#d27e7deb9c404017186c6c3cda05c20e7e5c28b6" class="src_link" title="./app/models/tag.rb">./app/models/tag.rb</a></td>
<td class="red">47.4 %</td>
<td>362</td>
<td>173</td>
<td>82</td>
<td>91</td>
</tr>
<tr>
<td><a href="#4765e817a387a6f7be5be10c6e42e639595b2c28" class="src_link" title="./app/models/tag_alias.rb">./app/models/tag_alias.rb</a></td>
<td class="red">57.89 %</td>
<td>64</td>
<td>38</td>
<td>22</td>
<td>16</td>
</tr>
<tr>
<td><a href="#1fff6c4ccf22a1c6aa4b03674e612ca362cd5e68" class="src_link" title="./app/models/tag_implication.rb">./app/models/tag_implication.rb</a></td>
<td class="red">51.35 %</td>
<td>127</td>
<td>74</td>
<td>38</td>
<td>36</td>
</tr>
<tr>
<td><a href="#a98b4d29818640be17f6432ae97b769ef94a7188" class="src_link" title="./app/models/tag_subscription.rb">./app/models/tag_subscription.rb</a></td>
<td class="red">34.78 %</td>
<td>81</td>
<td>46</td>
<td>16</td>
<td>30</td>
</tr>
<tr>
<td><a href="#eefbf01f160cf9a3ce8b05e9cdcac1eec7599b93" class="src_link" title="./app/models/unapproval.rb">./app/models/unapproval.rb</a></td>
<td class="green">100.0 %</td>
<td>6</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#77303c4b62025b2371d9414bd62fccbea7f33ad9" class="src_link" title="./app/models/upload.rb">./app/models/upload.rb</a></td>
<td class="red">36.99 %</td>
<td>308</td>
<td>173</td>
<td>64</td>
<td>109</td>
</tr>
<tr>
<td><a href="#2d6cb1803310620ec0a6a92a4252d8a52b0ca0d6" class="src_link" title="./app/models/user.rb">./app/models/user.rb</a></td>
<td class="red">55.63 %</td>
<td>261</td>
<td>160</td>
<td>89</td>
<td>71</td>
</tr>
<tr>
<td><a href="#401caff28bf22c84af2579e617fc15e39ecc444a" class="src_link" title="./app/models/user_feedback.rb">./app/models/user_feedback.rb</a></td>
<td class="red">76.92 %</td>
<td>19</td>
<td>13</td>
<td>10</td>
<td>3</td>
</tr>
<tr>
<td><a href="#2a21e9c560cb1e88d87e187fdcc1e3ceee11ddb1" class="src_link" title="./app/models/user_mailer.rb">./app/models/user_mailer.rb</a></td>
<td class="red">40.0 %</td>
<td>24</td>
<td>15</td>
<td>6</td>
<td>9</td>
</tr>
<tr>
<td><a href="#5dd537da900c3e151d09bf1b91540b0a538a6fd1" class="src_link" title="./app/models/wiki_page.rb">./app/models/wiki_page.rb</a></td>
<td class="red">53.85 %</td>
<td>70</td>
<td>39</td>
<td>21</td>
<td>18</td>
</tr>
<tr>
<td><a href="#ad5c7aceb761954bce20b3d9f79bc89141a9738f" class="src_link" title="./app/models/wiki_page_version.rb">./app/models/wiki_page_version.rb</a></td>
<td class="red">71.43 %</td>
<td>12</td>
<td>7</td>
<td>5</td>
<td>2</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Helpers">
<h2>
Helpers
(<span class="red">59.26%</span>)
</h2>
<a name="Helpers"></a>
<div>
<b>31</b> files in total.
<b>81</b> relevant lines.
<span class="green"><b>48</b> lines covered</span> and
<span class="red"><b>33</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#3ca775aa7a26fba702bb6a0a7ce5f85c22a5897d" class="src_link" title="./app/helpers/admin/users_helper.rb">./app/helpers/admin/users_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#df585084bf79af07498b39e17498f762448bc042" class="src_link" title="./app/helpers/advertisements_helper.rb">./app/helpers/advertisements_helper.rb</a></td>
<td class="red">33.33 %</td>
<td>28</td>
<td>9</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td><a href="#736773261d46e3ede18933a49db906dabccf2c44" class="src_link" title="./app/helpers/application_helper.rb">./app/helpers/application_helper.rb</a></td>
<td class="red">50.0 %</td>
<td>52</td>
<td>26</td>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td><a href="#12a738b45dd557484e7de3fdf0fb68bf479af67d" class="src_link" title="./app/helpers/artist_versions_helper.rb">./app/helpers/artist_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0d47367e5d4e4c0be2a24a99efa7ea0b90d7bd32" class="src_link" title="./app/helpers/artists_helper.rb">./app/helpers/artists_helper.rb</a></td>
<td class="red">33.33 %</td>
<td>17</td>
<td>9</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td><a href="#e45e7c98c94b442a0d26d97ce42c63a2df4e1b4c" class="src_link" title="./app/helpers/bans_helper.rb">./app/helpers/bans_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#7e3a7a18688eb6f19850089ded58fbce7d13b828" class="src_link" title="./app/helpers/comment_votes_helper.rb">./app/helpers/comment_votes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#425b7ee8b3c086322502fbecab604c7a09fcf774" class="src_link" title="./app/helpers/comments_helper.rb">./app/helpers/comments_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#16a15dde471196af28251beb2694721db2289013" class="src_link" title="./app/helpers/dmails_helper.rb">./app/helpers/dmails_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#1c2daf372f8bbb403e043bfd86ffb4dcf324cc9a" class="src_link" title="./app/helpers/favorites_helper.rb">./app/helpers/favorites_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#602bf4255d156f067870ea4ce35beef02b965379" class="src_link" title="./app/helpers/forum_posts_helper.rb">./app/helpers/forum_posts_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#653d40b600d438d4e11ad8246d7800ba63be945e" class="src_link" title="./app/helpers/forum_topics_helper.rb">./app/helpers/forum_topics_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f32054fcb565b8449ef48abdda73127a602cdfea" class="src_link" title="./app/helpers/janitor_trials_helper.rb">./app/helpers/janitor_trials_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#e909a0c003555d0303d60c2662eb779a3d69d27e" class="src_link" title="./app/helpers/notes_helper.rb">./app/helpers/notes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0f63771c80cf0b30a1e5478521d6e35f1d57937e" class="src_link" title="./app/helpers/pool_versions_helper.rb">./app/helpers/pool_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#df4f784cf48107145502017a3345f0c0f578770f" class="src_link" title="./app/helpers/pools_helper.rb">./app/helpers/pools_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#2035e8ff331469153ec6de3c0fe66b79bf27f78c" class="src_link" title="./app/helpers/post_moderation_details_helper.rb">./app/helpers/post_moderation_details_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#cd7009954b2f5976d791e904617634634de90554" class="src_link" title="./app/helpers/post_versions_helper.rb">./app/helpers/post_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#3090c1c2152951dde49e16e74bcaca32b43e5e6b" class="src_link" title="./app/helpers/post_votes_helper.rb">./app/helpers/post_votes_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#a51be11de47be3ba889d81c9008396bcd29c72ba" class="src_link" title="./app/helpers/posts_helper.rb">./app/helpers/posts_helper.rb</a></td>
<td class="red">20.0 %</td>
<td>16</td>
<td>10</td>
<td>2</td>
<td>8</td>
</tr>
<tr>
<td><a href="#e79259500ff06cb04ca326aaf956bd68116b8723" class="src_link" title="./app/helpers/sessions_helper.rb">./app/helpers/sessions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f4649e55051099c65f495736e92c273d58fbb9fa" class="src_link" title="./app/helpers/tag_aliases_helper.rb">./app/helpers/tag_aliases_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#685f312ead1bad2f68b68f5f70a676af52472218" class="src_link" title="./app/helpers/tag_implications_helper.rb">./app/helpers/tag_implications_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#13e368f8ea75afcb1fd0c86bec4ac99e3e591230" class="src_link" title="./app/helpers/tag_subscriptions_helper.rb">./app/helpers/tag_subscriptions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#ab7af2789a718f85af3c143cf1b73adde856dcc3" class="src_link" title="./app/helpers/tags_helper.rb">./app/helpers/tags_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#f298ba8aaca3b30fa2bceee6d6d0254c01eb00b2" class="src_link" title="./app/helpers/unapprovals_helper.rb">./app/helpers/unapprovals_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#0fadc549ffca3a14c694ef82c3b376773d767beb" class="src_link" title="./app/helpers/uploads_helper.rb">./app/helpers/uploads_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#8719c7e3c7abe6f85b94fc6d8ac27ecebf86b0ef" class="src_link" title="./app/helpers/user_feedback_helper.rb">./app/helpers/user_feedback_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#24a101554ff8d134b19a01ec86507f9c912df64e" class="src_link" title="./app/helpers/users_helper.rb">./app/helpers/users_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#6932a5b3612482db83bc2642e043760898489fe0" class="src_link" title="./app/helpers/wiki_page_versions_helper.rb">./app/helpers/wiki_page_versions_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td><a href="#47523142575a8ffab96dcbaccd4ead4992cf2c87" class="src_link" title="./app/helpers/wiki_pages_helper.rb">./app/helpers/wiki_pages_helper.rb</a></td>
<td class="green">100.0 %</td>
<td>2</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Libraries">
<h2>
Libraries
(<span class="red">35.55%</span>)
</h2>
<a name="Libraries"></a>
<div>
<b>5</b> files in total.
<b>301</b> relevant lines.
<span class="green"><b>107</b> lines covered</span> and
<span class="red"><b>194</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#cd15129569c6f3a2d96172e12ba86a2575863f5e" class="src_link" title="./lib/danbooru_image_resizer/danbooru_image_resizer.rb">./lib/danbooru_image_resizer/danbooru_image_resizer.rb</a></td>
<td class="red">33.33 %</td>
<td>29</td>
<td>18</td>
<td>6</td>
<td>12</td>
</tr>
<tr>
<td><a href="#be14f268e9a1f82230c3acd83e39ed54b10e4508" class="src_link" title="./vendor/plugins/jrails/lib/jrails.rb">./vendor/plugins/jrails/lib/jrails.rb</a></td>
<td class="green">100.0 %</td>
<td>5</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#22e8619b41fdc310eee3553f850564a8414fb730" class="src_link" title="./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb">./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb</a></td>
<td class="red">52.94 %</td>
<td>56</td>
<td>17</td>
<td>9</td>
<td>8</td>
</tr>
<tr>
<td><a href="#f1befc3da818f5ee64c1873eb429e438e3010cc7" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb">./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb</a></td>
<td class="yellow">89.47 %</td>
<td>60</td>
<td>19</td>
<td>17</td>
<td>2</td>
</tr>
<tr>
<td><a href="#a96a76254332dde771061defb0b9c85b658eeeb0" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jrails.rb">./vendor/plugins/jrails/lib/jrails/jrails.rb</a></td>
<td class="red">29.22 %</td>
<td>458</td>
<td>243</td>
<td>71</td>
<td>172</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Plugins">
<h2>
Plugins
(<span class="red">35.69%</span>)
</h2>
<a name="Plugins"></a>
<div>
<b>4</b> files in total.
<b>283</b> relevant lines.
<span class="green"><b>101</b> lines covered</span> and
<span class="red"><b>182</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#be14f268e9a1f82230c3acd83e39ed54b10e4508" class="src_link" title="./vendor/plugins/jrails/lib/jrails.rb">./vendor/plugins/jrails/lib/jrails.rb</a></td>
<td class="green">100.0 %</td>
<td>5</td>
<td>4</td>
<td>4</td>
<td>0</td>
</tr>
<tr>
<td><a href="#22e8619b41fdc310eee3553f850564a8414fb730" class="src_link" title="./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb">./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb</a></td>
<td class="red">52.94 %</td>
<td>56</td>
<td>17</td>
<td>9</td>
<td>8</td>
</tr>
<tr>
<td><a href="#f1befc3da818f5ee64c1873eb429e438e3010cc7" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb">./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb</a></td>
<td class="yellow">89.47 %</td>
<td>60</td>
<td>19</td>
<td>17</td>
<td>2</td>
</tr>
<tr>
<td><a href="#a96a76254332dde771061defb0b9c85b658eeeb0" class="src_link" title="./vendor/plugins/jrails/lib/jrails/jrails.rb">./vendor/plugins/jrails/lib/jrails/jrails.rb</a></td>
<td class="red">29.22 %</td>
<td>458</td>
<td>243</td>
<td>71</td>
<td>172</td>
</tr>
</tbody>
</table>
</div>
<div class="file_list_container" id="Ungrouped">
<h2>
Ungrouped
(<span class="red">33.12%</span>)
</h2>
<a name="Ungrouped"></a>
<div>
<b>24</b> files in total.
<b>767</b> relevant lines.
<span class="green"><b>254</b> lines covered</span> and
<span class="red"><b>513</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>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#a0fb7e3126df79ccf235c856a86839a42f85095d" class="src_link" title="./app/logical/anonymous_user.rb">./app/logical/anonymous_user.rb</a></td>
<td class="red">52.54 %</td>
<td>120</td>
<td>59</td>
<td>31</td>
<td>28</td>
</tr>
<tr>
<td><a href="#a4a79980c92e8415caa93e72a415be7823a956a3" class="src_link" title="./app/logical/cache.rb">./app/logical/cache.rb</a></td>
<td class="red">67.24 %</td>
<td>83</td>
<td>58</td>
<td>39</td>
<td>19</td>
</tr>
<tr>
<td><a href="#b6b671810d3a60ce5d002345ab0da3b58a96fd62" class="src_link" title="./app/logical/current_user.rb">./app/logical/current_user.rb</a></td>
<td class="red">53.85 %</td>
<td>48</td>
<td>26</td>
<td>14</td>
<td>12</td>
</tr>
<tr>
<td><a href="#9ad66bff92da7291350669d67d782a42c3b9aaae" class="src_link" title="./app/logical/d_text.rb">./app/logical/d_text.rb</a></td>
<td class="red">10.84 %</td>
<td>148</td>
<td>83</td>
<td>9</td>
<td>74</td>
</tr>
<tr>
<td><a href="#c97912f72b814ea6c75e7008d835019e9fcf19d8" class="src_link" title="./app/logical/date_tag.rb">./app/logical/date_tag.rb</a></td>
<td class="red">38.46 %</td>
<td>72</td>
<td>39</td>
<td>15</td>
<td>24</td>
</tr>
<tr>
<td><a href="#a19e8a76c18977de52c2f28f3128d155800ea017" class="src_link" title="./app/logical/download.rb">./app/logical/download.rb</a></td>
<td class="red">16.67 %</td>
<td>88</td>
<td>48</td>
<td>8</td>
<td>40</td>
</tr>
<tr>
<td><a href="#457ad8525331a1d9482a98986bb00071297ec3b1" class="src_link" title="./app/logical/favorite.rb">./app/logical/favorite.rb</a></td>
<td class="red">35.14 %</td>
<td>64</td>
<td>37</td>
<td>13</td>
<td>24</td>
</tr>
<tr>
<td><a href="#69e04849616ee1cc9227324f85437a4490d25c84" class="src_link" title="./app/logical/pixiv_proxy.rb">./app/logical/pixiv_proxy.rb</a></td>
<td class="red">11.86 %</td>
<td>94</td>
<td>59</td>
<td>7</td>
<td>52</td>
</tr>
<tr>
<td><a href="#52a2c9e9a037927222c2797b53459f664f69ea19" class="src_link" title="./app/logical/post_sets/base.rb">./app/logical/post_sets/base.rb</a></td>
<td class="red">52.38 %</td>
<td>39</td>
<td>21</td>
<td>11</td>
<td>10</td>
</tr>
<tr>
<td><a href="#083cc208597872330d2bae54acb3e77a7a6d673e" class="src_link" title="./app/logical/post_sets/favorite.rb">./app/logical/post_sets/favorite.rb</a></td>
<td class="red">58.33 %</td>
<td>22</td>
<td>12</td>
<td>7</td>
<td>5</td>
</tr>
<tr>
<td><a href="#d80335f895054647ad516d5607016bc480812d56" class="src_link" title="./app/logical/post_sets/post.rb">./app/logical/post_sets/post.rb</a></td>
<td class="red">36.54 %</td>
<td>92</td>
<td>52</td>
<td>19</td>
<td>33</td>
</tr>
<tr>
<td><a href="#6cf579dbe272c15724294cd974911218b5882011" class="src_link" title="./app/logical/related_tag_calculator.rb">./app/logical/related_tag_calculator.rb</a></td>
<td class="red">24.0 %</td>
<td>50</td>
<td>25</td>
<td>6</td>
<td>19</td>
</tr>
<tr>
<td><a href="#c50ee24500f9b104363ecc1565af18b49aa2eb32" class="src_link" title="./app/logical/remote_server.rb">./app/logical/remote_server.rb</a></td>
<td class="red">44.44 %</td>
<td>35</td>
<td>18</td>
<td>8</td>
<td>10</td>
</tr>
<tr>
<td><a href="#a1810da474c33a59fe6ef7febe0d18a7506cda17" class="src_link" title="./app/presenters/note_presenter.rb">./app/presenters/note_presenter.rb</a></td>
<td class="red">60.0 %</td>
<td>9</td>
<td>5</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<td><a href="#41326d80e528ff741753a693bed1ae8aed11b4fb" class="src_link" title="./app/presenters/paginators/base.rb">./app/presenters/paginators/base.rb</a></td>
<td class="red">19.61 %</td>
<td>78</td>
<td>51</td>
<td>10</td>
<td>41</td>
</tr>
<tr>
<td><a href="#55a1b18db580f168607e57c89ac9088c2e9c9d9e" class="src_link" title="./app/presenters/paginators/post.rb">./app/presenters/paginators/post.rb</a></td>
<td class="red">64.29 %</td>
<td>26</td>
<td>14</td>
<td>9</td>
<td>5</td>
</tr>
<tr>
<td><a href="#8e1a891f64fb66bba0c1cda9f521c0d9d45c53f0" class="src_link" title="./app/presenters/paginators/post_version.rb">./app/presenters/paginators/post_version.rb</a></td>
<td class="red">70.0 %</td>
<td>18</td>
<td>10</td>
<td>7</td>
<td>3</td>
</tr>
<tr>
<td><a href="#52cabd06773204fcf5fd41e47a456b0aeebefc7b" class="src_link" title="./app/presenters/post_history_revision_presenter.rb">./app/presenters/post_history_revision_presenter.rb</a></td>
<td class="red">37.5 %</td>
<td>25</td>
<td>16</td>
<td>6</td>
<td>10</td>
</tr>
<tr>
<td><a href="#191104734421111aa081cab6915cc2b3680907fe" class="src_link" title="./app/presenters/post_presenter.rb">./app/presenters/post_presenter.rb</a></td>
<td class="red">23.08 %</td>
<td>39</td>
<td>26</td>
<td>6</td>
<td>20</td>
</tr>
<tr>
<td><a href="#ba98ab3c895cb23cae51cc709416f2a65abd8449" class="src_link" title="./app/presenters/post_set_presenter.rb">./app/presenters/post_set_presenter.rb</a></td>
<td class="red">25.0 %</td>
<td>58</td>
<td>36</td>
<td>9</td>
<td>27</td>
</tr>
<tr>
<td><a href="#bd5f00947f16d9c21011d91eed94e9a4df2bf0b1" class="src_link" title="./app/presenters/presenter.rb">./app/presenters/presenter.rb</a></td>
<td class="red">55.56 %</td>
<td>17</td>
<td>9</td>
<td>5</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3aa907565e2b9269444f37880f8475f4437c7808" class="src_link" title="./app/presenters/tag_set_presenter.rb">./app/presenters/tag_set_presenter.rb</a></td>
<td class="red">25.93 %</td>
<td>47</td>
<td>27</td>
<td>7</td>
<td>20</td>
</tr>
<tr>
<td><a href="#919d2c43f39c49f6f679b9f3482c7936b88760f1" class="src_link" title="./app/presenters/upload_presenter.rb">./app/presenters/upload_presenter.rb</a></td>
<td class="red">42.86 %</td>
<td>15</td>
<td>7</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td><a href="#3772f97ef7314284d5567c9c2916298f593753f9" class="src_link" title="./app/presenters/wiki_page_presenter.rb">./app/presenters/wiki_page_presenter.rb</a></td>
<td class="red">6.9 %</td>
<td>53</td>
<td>29</td>
<td>2</td>
<td>27</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="footer">
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.3.9
and simplecov-html v0.3.9<br/>
using Functional Tests
</div>
<div class="source_files">
<div class="source_table" id="6d07ff847709abc6a17c7821ac356c9a3495bb2d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/admin/posts_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Admin</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class PostsController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ad23d5e7f78f934e418e04682e77a4056ab9aa70">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/admin/users_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Admin::UsersController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="96609befd01de224fa76258290108cde6a8acba9">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/advertisement_hits_controller.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class AdvertisementHitsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> advertisement = Advertisement.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> advertisement.hits.create(:ip_addr =&gt; request.remote_ip)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> redirect_to advertisement.referral_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre>protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def set_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @page_title = Danbooru.config.app_name + &quot;/advertisements&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="d43bd3bfd0e94fa9f3f8774304f84df5a49b5b83">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/advertisements_controller.rb</h3>
<h4><span class="red">33.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class AdvertisementsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_filter :advertiser_only</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @advertisement = Advertisement.new(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> :ad_type =&gt; &quot;vertical&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> :status =&gt; &quot;active&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @advertisement = Advertisement.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @advertisements = Advertisement.all</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @start_date = 1.month.ago.to_date</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @end_date = Date.today</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> @advertisement = Advertisement.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> @advertisement = Advertisement.new(params[:advertisement])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> if @advertisement.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> redirect_to advertisement_path(@advertisement), :notice =&gt; &quot;Advertisement created&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> flash[:notice] = &quot;There were errors&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> render :action =&gt; &quot;new&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @advertisement = Advertisement.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> if @advertisement.update_attributes(params[:advertisement])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> redirect_to advertisement_path(@advertisement), :notice =&gt; &quot;Advertisement updated&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> flash[:notice] = &quot;There were errors&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> render :action =&gt; &quot;edit&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> @advertisement = Advertisement.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> @advertisement.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> redirect_to advertisements_path, :notice =&gt; &quot;Advertisement destroyed&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> def advertiser_only</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> if !Danbooru.config.is_user_advertiser?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> redirect_to &quot;/static/access_denied&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> return false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4a25e7ff1c5198a87fe2df4ecd8c5899abc80402">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/application_controller.rb</h3>
<h4><span class="red">67.44 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ApplicationController &lt; ActionController::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> protect_from_forgery</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :set_current_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_filter :reset_current_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> before_filter :initialize_cookies</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> before_filter :set_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> layout &quot;default&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> rescue_from User::PrivilegeError, :with =&gt; :access_denied</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre>protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def access_denied</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> previous_url = params[:url] || request.request_uri</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> respond_to do |fmt|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> fmt.html do </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> if request.get?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> redirect_to new_session_path(:url =&gt; previous_url), :notice =&gt; &quot;Access denied&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> redirect_to new_session_path, :notice =&gt; &quot;Access denied&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> fmt.xml do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> render :xml =&gt; {:success =&gt; false, :reason =&gt; &quot;access denied&quot;}.to_xml(:root =&gt; &quot;response&quot;), :status =&gt; 403</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> fmt.json do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> render :json =&gt; {:success =&gt; false, :reason =&gt; &quot;access denied&quot;}.to_json, :status =&gt; 403</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def set_current_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> if session[:user_id]</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> CurrentUser.user = User.find_by_id(session[:user_id])</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> CurrentUser.ip_addr = request.remote_ip</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> if CurrentUser.user</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> if CurrentUser.user.is_banned? &amp;&amp; CurrentUser.user.ban &amp;&amp; CurrentUser.user.ban.expires_at &lt; Time.now</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> CurrentUser.user.unban!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> CurrentUser.user = AnonymousUser.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> Time.zone = CurrentUser.user.time_zone</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> def reset_current_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> CurrentUser.user = nil</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> CurrentUser.ip_addr = nil</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> %w(member banned privileged contributor janitor moderator admin).each do |level|</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> define_method(&quot;#{level}_only&quot;) do</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> if CurrentUser.user.__send__(&quot;is_#{level}?&quot;)</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> access_denied()</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> def initialize_cookies</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> if CurrentUser.user.is_anonymous?</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> cookies[&quot;blacklisted_tags&quot;] = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> cookies[&quot;blacklisted_tags&quot;] = CurrentUser.user.blacklisted_tags</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> def set_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> @page_title = Danbooru.config.app_name + &quot;/#{params[:controller]}&quot;</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="e3a0e679ad6b24b158b2fce7e714b905d5ce3029">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/artist_versions_controller.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ArtistVersionsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @search = ArtistVersion.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @artist_versions = @search.paginate :order =&gt; &quot;id desc&quot;, :per_page =&gt; 25, :page =&gt; params[:page]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> respond_with(@artist_versions)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a1a97cd9d3093075d9608b3526b7d0f0c3b9eb9c">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/artists_controller.rb</h3>
<h4><span class="red">34.48 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ArtistsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :except =&gt; [:index, :show]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @artist = Artist.new_with_defaults(params)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> @artist = Artist.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @artists = Artist.build_relation(params).paginate(:per_page =&gt; 25, :page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> respond_with(@artists)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> @artist = Artist.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> if @artist</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @posts = Danbooru.config.select_posts_visible_to_user(CurrentUser.user, Post.find_by_tags(@artist.name, :limit =&gt; 6))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> @artist = Artist.create(params[:artist])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @artist = Artist.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> @artist.update_attributes(params[:artist])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def revert</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> @artist = Artist.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> @version = ArtistVersion.find(params[:version_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> @artist.revert_to!(@version)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> respond_with(@artist)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="cec51ae5903a199379fbf496df2c91e1870cc1a4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/bans_controller.rb</h3>
<h4><span class="red">34.62 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class BansController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_filter :moderator_only, :except =&gt; [:show, :index]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @ban = Ban.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @ban = Ban.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> @search = Ban.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> @bans = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @ban = Ban.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> @ban = Ban.new(params[:ban])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> @ban.banner_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> if @ban.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> redirect_to ban_path(@ban), :notice =&gt; &quot;Ban created&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> render :action =&gt; &quot;new&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> @ban = Ban.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> if @ban.update_attributes(params[:ban])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> redirect_to ban_path(@ban), :notice =&gt; &quot;Ban updated&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> render :action =&gt; &quot;edit&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> @ban = Ban.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> @ban.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> redirect_to bans_path, :notice =&gt; &quot;Ban destroyed&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="628336a38cba2a45cb6a0b686f3480b0c27ecab4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/comment_votes_controller.rb</h3>
<h4><span class="red">40.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class CommentVotesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @comment = Comment.find(params[:comment_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> @comment.vote!(params[:score])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> rescue CommentVote::Error =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @error = x</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="fc5032b4ea709c4e5efaee98be921ed369bc8e1d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/comments_controller.rb</h3>
<h4><span class="red">31.03 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class CommentsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :only =&gt; [:update, :create]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> if params[:group_by] == &quot;post&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> index_by_post</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> index_by_comment</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> @comment = Comment.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> @comment.update_attributes(params[:comment])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> respond_with(@comment)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> @comment = Comment.new(params[:comment])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> @comment.post_id = params[:comment][:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> @comment.score = 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> @comment.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> respond_with(@comment) do |format|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> format.html do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> redirect_to post_path(@comment.post), :notice =&gt; &quot;Comment posted&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre>private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def index_by_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> @posts = Post.find_by_tags(params[:tags]).commented_before(params[:before_date] || Time.now).limit(8)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> respond_with(@posts) do |format|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> format.html {render :action =&gt; &quot;index_by_post&quot;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> def index_by_comment</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> @search = Comment.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> @comments = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> respond_with(@comments) do |format|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> format.html {render :action =&gt; &quot;index_by_comment&quot;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a82afabd8bb37a3b4cad70a5e772b7510ea197ac">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/dmails_controller.rb</h3>
<h4><span class="red">36.67 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class DmailsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> rescue_from User::PrivilegeError, :with =&gt; &quot;static/access_denied&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if params[:respond_to_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @dmail = Dmail.find(params[:respond_to_id]).build_response(:forward =&gt; params[:forward])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @dmail = Dmail.new(params[:dmail])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> respond_with(@dmail)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @search = Dmail.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @dmails = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @dmails.each {|x| check_privilege(x)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> respond_with(@dmails)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @dmail = Dmail.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> check_privilege(@dmail)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> respond_with(@dmail)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> @dmail = Dmail.create_split(params[:dmail])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> respond_with(@dmail)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> @dmail = Dmail.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> check_privilege(@dmail)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> @dmail.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> redirect_to dmails_path, :notice =&gt; &quot;Message destroyed&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> def check_privilege(dmail)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> if !dmail.visible_to?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> raise User::PrivilegeError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="45d7435b06dd93171ff53a1395e2c466be99ab80">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/dtext_controller.rb</h3>
<h4><span class="red">66.67 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class DtextController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def preview</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> render :inline =&gt; &quot;&lt;h1&gt;Preview&lt;/h1&gt;&lt;%= format_text(params[:body]) %&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="47723bf5f2d65b26d10f846cb59aa97fd920b204">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/favorites_controller.rb</h3>
<h4><span class="red">36.36 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class FavoritesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> if params[:tags]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> redirect_to(posts_path(:tags =&gt; &quot;fav:#{CurrentUser.name} #{params[:tags]}&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @post_set = PostSets::Favorite.new(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> @favorite = Favorite.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> :user_id =&gt; CurrentUser.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> :post_id =&gt; params[:id]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> render :nothing =&gt; true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> Favorite.destroy(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> :user_id =&gt; CurrentUser.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> :post_id =&gt; params[:id]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> render :nothing =&gt; true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="bf53d3f8b6f081755292fd15a414be2d6806ecc6">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/forum_posts_controller.rb</h3>
<h4><span class="red">37.14 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ForumPostsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :except =&gt; [:index, :show]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> rescue_from User::PrivilegeError, :with =&gt; &quot;static/access_denied&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @forum_post = ForumPost.new(:topic_id =&gt; params[:topic_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @forum_post = ForumPost.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> check_privilege(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @search = ForumPost.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @forum_posts = @search.paginate(:page =&gt; params[:page], :order =&gt; &quot;id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> respond_with(@forum_posts)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @forum_post = ForumPost.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> @forum_post = ForumPost.create(params[:forum_post])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> @forum_post = ForumPost.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> check_privilege(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @forum_post.update_attributes(params[:forum_post])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> @forum_post = ForumPost.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> check_privilege(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> @forum_post.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> respond_with(@forum_post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre>private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> def check_privilege(forum_post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> if !forum_post.editable_by?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> raise User::PrivilegeError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4ef109f8a698d0702791bd744170c12f8e6aae45">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/forum_topics_controller.rb</h3>
<h4><span class="red">37.14 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ForumTopicsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :except =&gt; [:index, :show]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> rescue_from User::PrivilegeError, :with =&gt; &quot;static/access_denied&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> check_privilege(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @search = ForumTopic.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @forum_topics = @search.paginate(:page =&gt; params[:page], :order =&gt; &quot;updated_at DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> respond_with(@forum_topics)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.create(params[:forum_topic])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> check_privilege(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @forum_topic.update_attributes(params[:forum_topic])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> @forum_topic = ForumTopic.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> check_privilege(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> @forum_topic.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> respond_with(@forum_topic)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre>private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> def check_privilege(forum_topic)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> if !forum_topic.editable_by?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> raise User::PrivilegeError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="63a58e7a793865b23ea8750598380f0a6a714362">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/ip_bans_controller.rb</h3>
<h4><span class="red">42.86 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class IpBansController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_filter :admin_only</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @ip_ban = IpBan.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @ip_ban = IpBan.create(params[:ip_ban])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> redirect_to ip_bans_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> @search = IpBan.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> @ip_bans = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @ip_ban = IpBan.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> @ip_ban.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> redirect_to ip_bans_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="5115fbb389d66cea4431775eabe3ef5340d3de64">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/janitor_trials_controller.rb</h3>
<h4><span class="red">34.78 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class JanitorTrialsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @janitor_trial = JanitorTrial.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> respond_with(@janitor_trial)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @janitor_trial = JanitorTrial.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> respond_with(@janitor_trial)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> @search = JanitorTrial.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @janitor_trials = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> respond_with(@janitor_trials)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> @janitor_trial = JanitorTrial.create(params[:janitor_trial])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> respond_with(@janitor_trial)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def promote</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> @janitor_trial = JanitorTrial.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> @janitor_trial.promote!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> respond_with(@janitor_trial)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def demote</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> @janitor_trial = JanitorTrial.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> @janitor_trial.demote!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> respond_with(@janitor_trial)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="fe911e3e24ca9976105b220b89975a89f8cd55f4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/notes_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class NotesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :except =&gt; [:index, :show]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @search = Note.search(params[:search])</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @notes = @search.paginate(:page =&gt; params[:page])</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> respond_with(@notes)</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @note = Note.find(params[:id])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> respond_with(@note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @note = Note.create(params[:note])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> respond_with(@note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> @note = Note.find(params[:id])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> @note.update_attributes(params[:note])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> respond_with(@note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> @note = Note.find(params[:id])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> @note.destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> respond_with(@note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def revert</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> @note = Note.find(params[:id])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> @version = NoteVersion.find(params[:version_id])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @note.revert_to(@version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> respond_with(@note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="52e2f662c3f5ba48f2a129063381e9e61aaccdf1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/pool_versions_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PoolVersionsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="6d9dc917dd4cf2345086a52ba1d98633493988dc">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/pools_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PoolsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def revert</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="b684abcd113d2f94ee4faf40b3d9edd12b90d0b3">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/post_histories_controller.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostHistoriesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @search = PostHistory.search(params[:search])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> @histories = @search.paginate(:page =&gt; params[:page], :per_page =&gt; 20, :order =&gt; &quot;updated_at DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="78825818da58deebfd3bab17e66911c0954b9669">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/post_moderation_details_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostModerationDetailsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="5896aee1a615de38514fe3d98b5317692faf3cf2">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/post_votes_controller.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostVotesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @post = Post.find(params[:post_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> @post.vote!(params[:score])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> rescue PostVote::Error =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @error = x</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3089b5e6520cd87c814cbbea356c32f99fe3a32e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/posts_controller.rb</h3>
<h4><span class="red">40.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_filter :member_only, :except =&gt; [:show, :index]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> after_filter :save_recent_tags, :only =&gt; [:update]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @post_set = PostSets::Post.new(params[:tags], :page =&gt; params[:page], :before_id =&gt; params[:before_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> respond_with(@post_set)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @post = Post.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> respond_with(@post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @post = Post.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @post.update_attributes(params[:post])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> respond_with(@post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> def revert</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> @post = Post.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @version = PostVersion.find(params[:version_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> @post.revert_to!(@version)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> respond_width(@post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre>private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def save_recent_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> if params[:tags] || (params[:post] &amp;&amp; params[:post][:tags])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> tags = Tag.scan_tags(params[:tags] || params[:post][:tags])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> tags = TagAlias.to_aliased(tags) + Tag.scan_tags(session[:recent_tags])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> session[:recent_tags] = tags.uniq.slice(0, 40).join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="233e077b62dbc2fe43d80c0a0e78b9fdadac8733">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/sessions_controller.rb</h3>
<h4><span class="red">33.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class SessionsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @user = User.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if User.authenticate(params[:name], params[:password])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @user = User.find_by_name(params[:name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> session[:user_id] = @user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> redirect_to(params[:url] || session[:previous_uri] || posts_path, :notice =&gt; &quot;You are now logged in.&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> redirect_to(new_session_path, :notice =&gt; &quot;Password was incorrect.&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> session.delete(:user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> redirect_to(posts_path, :notice =&gt; &quot;You are now logged out.&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4ba48a55d68b75a363d2ef7a1b4131c7183838f4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/static_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class StaticController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="1aec60685f812090959e4e7e37e4bbaf0e2a47fa">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/tag_aliases_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagAliasesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def destroy_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ba46008846b77f7d029af0bdcb994224201262c5">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/tag_implications_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagImplicationsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="097e0a885e01d3f8173a0682a9198c8e2270ef37">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/tag_subscriptions_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagSubscriptionsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="6d7a51282bec356004c89184407c7db9ed546186">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/tags_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f3d7496232a82a4d7546daf3a91c6df1f39e71e2">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/unapprovals_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UnapprovalsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="423d29ef4ce4737aa36698a5c1ebcdf92ba9da54">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/uploads_controller.rb</h3>
<h4><span class="red">38.1 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UploadsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_filter :member_only</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @upload = Upload.new(:rating =&gt; &quot;q&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if params[:url]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @post = Post.find_by_source(params[:url])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> respond_with(@upload)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> @uploads = Upload.where(&quot;uploader_id = ?&quot;, CurrentUser.user.id).includes(:uploader).order(&quot;uploads.id desc&quot;).limit(10)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> respond_with(@uploads)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @upload = Upload.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> respond_with(@upload)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @upload = Upload.create(params[:upload])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> respond_with(@upload)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> @upload = Upload.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> @upload.process!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> respond_with(@upload)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="77557d8bc6ffe0148491f127348885c4ba65f6b8">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/user_feedback_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UserFeedbackController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4e719f7433d787da18ea24f91d5ec72fe519ea6f">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/user_maintenance_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UserMaintenanceController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def delete_account</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def login_reminder</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def reset_password</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="e21af68f968ceec96a839fa4516d19095bb83eb0">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/users_controller.rb</h3>
<h4><span class="red">45.45 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UsersController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> respond_to :html, :xml, :json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_filter :member_only, :only =&gt; [:edit, :show, :update, :destroy]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @user = User.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @user = User.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> unless CurrentUser.user.is_admin?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @user = CurrentUser.user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> @user = User.find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @user = User.new(params[:user].merge(:ip_addr =&gt; request.remote_ip))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> if @user.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> flash[:notice] = &quot;You have succesfully created a new account&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> session[:user_id] = @user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> redirect_to user_path(@user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> flash[:notice] = &quot;There were errors&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> render :action =&gt; &quot;new&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="19dc5bf082f9247197ce8239b6d9fef668d20f77">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/wiki_page_versions_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class WikiPageVersionsController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="591bfbee4fffb7f7b5fff8ef6606bf086eb7208c">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/controllers/wiki_pages_controller.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class WikiPagesController &lt; ApplicationController</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def new</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def edit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def index</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def show</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def update</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def revert</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3ca775aa7a26fba702bb6a0a7ce5f85c22a5897d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/admin/users_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Admin::UsersHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="df585084bf79af07498b39e17498f762448bc042">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/advertisements_helper.rb</h3>
<h4><span class="red">33.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module AdvertisementsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def render_advertisement(ad_type)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> if Danbooru.config.can_user_see_ads?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> @advertisement = Advertisement.find(:first, :conditions =&gt; [&quot;ad_type = ? AND status = 'active'&quot;, ad_type], :order =&gt; &quot;random()&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> content_tag(</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> &quot;div&quot;, </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> link_to_remote(</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> image_tag(</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @advertisement.image_url, </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> :alt =&gt; &quot;Advertisement&quot;, </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> :width =&gt; @advertisement.width, </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> :height =&gt; @advertisement.height</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> ), </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> advertisement_hit_path(:advertisement_id =&gt; @advertisement.id),</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> :style =&gt; &quot;margin-bottom: 1em;&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def render_rss_advertisement</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> if Danbooru.config.can_user_see_ads?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> render :partial =&gt; &quot;static/jlist_rss_ads&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="736773261d46e3ede18933a49db906dabccf2c44">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/application_helper.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module ApplicationHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def nav_link_to(text, url, options = nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="50">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> if nav_link_match(params[:controller], url)</pre>
</td>
<td class="hits">
50
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> klass = &quot;current&quot;</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="45">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> klass = nil</pre>
</td>
<td class="hits">
45
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="50">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> content_tag(&quot;li&quot;, link_to(text, url, options), :class =&gt; klass)</pre>
</td>
<td class="hits">
50
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def format_text(text, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> DText.parse(text)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def error_messages_for(instance_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> instance = instance_variable_get(&quot;@#{instance_name}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> if instance.errors.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> %{&lt;div class=&quot;error-messages&quot;&gt;&lt;h1&gt;There were errors&lt;/h1&gt;&lt;p&gt;#{instance.__send__(:errors).full_messages.join(&quot;, &quot;)}&lt;/div&gt;}.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> def compact_time(time)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> if time &gt; Time.now.beginning_of_day</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> time.strftime(&quot;%H:%M&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> elsif time &gt; Time.now.beginning_of_year</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> time.strftime(&quot;%b %e&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> time.strftime(&quot;%b %e, %Y&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre>protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def nav_link_match(controller, url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> url =~ case controller</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> when &quot;tag_aliases&quot;, &quot;tag_implications&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> /^\/tags/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> when &quot;sessions&quot;, &quot;user_maintenance&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> /^\/users/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> when &quot;forum_posts&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> /^\/forum_topics/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="50">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> /^\/#{controller}/</pre>
</td>
<td class="hits">
50
</td>
</tr>
<tr class="hit" data-hits="50">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
50
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="12a738b45dd557484e7de3fdf0fb68bf479af67d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/artist_versions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module ArtistVersionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="0d47367e5d4e4c0be2a24a99efa7ea0b90d7bd32">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/artists_helper.rb</h3>
<h4><span class="red">33.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module ArtistsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def link_to_artist(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> artist = Artist.find_by_name(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> if artist</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> link_to(artist.name, artist_path(artist))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> link_to(name, new_artist_path(:name =&gt; name)) + &quot; &quot; + content_tag(&quot;span&quot;, &quot;*&quot;, :class =&gt; &quot;new-artist&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def link_to_artists(names)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> names.map do |name| </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> link_to_artist(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end.join(&quot;, &quot;).html_safe</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="e45e7c98c94b442a0d26d97ce42c63a2df4e1b4c">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/bans_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module BansHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="7e3a7a18688eb6f19850089ded58fbce7d13b828">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/comment_votes_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module CommentVotesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="425b7ee8b3c086322502fbecab604c7a09fcf774">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/comments_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module CommentsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="16a15dde471196af28251beb2694721db2289013">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/dmails_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module DmailsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="1c2daf372f8bbb403e043bfd86ffb4dcf324cc9a">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/favorites_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module FavoritesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="602bf4255d156f067870ea4ce35beef02b965379">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/forum_posts_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module ForumPostsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="653d40b600d438d4e11ad8246d7800ba63be945e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/forum_topics_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module ForumTopicsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f32054fcb565b8449ef48abdda73127a602cdfea">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/janitor_trials_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module JanitorTrialsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="e909a0c003555d0303d60c2662eb779a3d69d27e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/notes_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module NotesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="0f63771c80cf0b30a1e5478521d6e35f1d57937e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/pool_versions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PoolVersionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="df4f784cf48107145502017a3345f0c0f578770f">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/pools_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PoolsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="2035e8ff331469153ec6de3c0fe66b79bf27f78c">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/post_moderation_details_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostModerationDetailsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="cd7009954b2f5976d791e904617634634de90554">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/post_versions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostVersionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3090c1c2152951dde49e16e74bcaca32b43e5e6b">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/post_votes_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostVotesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a51be11de47be3ba889d81c9008396bcd29c72ba">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/posts_helper.rb</h3>
<h4><span class="red">20.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def resize_image_links(post, user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> links = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> links &lt;&lt; %{&lt;a href=&quot;#&quot; data-src=&quot;#{post.file_url}&quot; data-width=&quot;#{post.image_width}&quot; data-height=&quot;#{post.image_height}&quot;&gt;Original&lt;/a&gt;} if post.has_medium? || post.has_large?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> links &lt;&lt; %{&lt;a href=&quot;#&quot; data-src=&quot;#{post.medium_file_url}&quot; data-width=&quot;#{post.medium_image_width}&quot; data-height=&quot;#{post.medium_image_height}&quot;&gt;Medium&lt;/a&gt;} if post.has_medium?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> links &lt;&lt; %{&lt;a href=&quot;#&quot; data-src=&quot;#{post.large_file_url}&quot; data-width=&quot;#{post.large_image_width}&quot; data-height=&quot;#{post.large_image_height}&quot;&gt;Large&lt;/a&gt;} if post.has_large?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> if links.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> html = %{&lt;li id=&quot;resize-link&quot;&gt;&lt;a href=&quot;#&quot;&gt;Resize&lt;/a&gt;&lt;/li&gt;&lt;ul id=&quot;resize-links&quot;&gt;} + links.map {|x| %{&lt;li&gt;#{x}&lt;/li&gt;}}.join(&quot;&quot;) + %{&lt;/ul&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="e79259500ff06cb04ca326aaf956bd68116b8723">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/sessions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module SessionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f4649e55051099c65f495736e92c273d58fbb9fa">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/tag_aliases_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module TagAliasesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="685f312ead1bad2f68b68f5f70a676af52472218">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/tag_implications_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module TagImplicationsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="13e368f8ea75afcb1fd0c86bec4ac99e3e591230">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/tag_subscriptions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module TagSubscriptionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ab7af2789a718f85af3c143cf1b73adde856dcc3">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/tags_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module TagsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f298ba8aaca3b30fa2bceee6d6d0254c01eb00b2">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/unapprovals_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module UnapprovalsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="0fadc549ffca3a14c694ef82c3b376773d767beb">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/uploads_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module UploadsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="8719c7e3c7abe6f85b94fc6d8ac27ecebf86b0ef">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/user_feedback_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module UserFeedbackHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="24a101554ff8d134b19a01ec86507f9c912df64e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/users_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module UsersHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="6932a5b3612482db83bc2642e043760898489fe0">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/wiki_page_versions_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module WikiPageVersionsHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="47523142575a8ffab96dcbaccd4ead4992cf2c87">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/helpers/wiki_pages_helper.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module WikiPagesHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a0fb7e3126df79ccf235c856a86839a42f85095d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/anonymous_user.rb</h3>
<h4><span class="red">52.54 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="never" >
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre># This is a proxy class to make various nil checks unnecessary</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>class AnonymousUser</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> def level</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def comment_threshold</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def created_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> Time.now</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def updated_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> Time.now</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> &quot;Anonymous&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def pretty_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> &quot;Anonymous&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def is_anonymous?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def has_mail?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> def has_forum_been_updated?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> def has_permission?(obj, foreign_key = :user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def ban</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> def always_resize_images?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> def show_samples?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> def tag_subscriptions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> def upload_limit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def base_upload_limit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> def uploaded_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> def uploaded_tags_with_types</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> def recent_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> def recent_tags_with_types</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> def can_upload?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> def can_comment?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> def can_remove_from_pools?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> def blacklisted_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> def time_zone</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> &quot;Eastern Time (US &amp; Canada)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> def default_image_size</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> &quot;medium&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> def blacklisted_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> %w(member banned privileged contributor janitor moderator admin).each do |name|</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> define_method(&quot;is_#{name}?&quot;) do</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a4a79980c92e8415caa93e72a415be7823a956a3">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/cache.rb</h3>
<h4><span class="red">67.24 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.incr(key, expiry = 0)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> val = Cache.get(key, expiry)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> Cache.put(key, val.to_i + 1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug('MemCache Incr %s' % [key])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def self.get_multi(keys, prefix, expiry = 0)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> key_to_sanitized_key_hash = keys.inject({}) do |hash, x|</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> hash[x] = &quot;#{prefix}:#{Cache.sanitize(x)}&quot;</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> hash</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> start_time = Time.now</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> sanitized_key_to_value_hash = MEMCACHE.get_multi(key_to_sanitized_key_hash.values)</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> elapsed = Time.now - start_time</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> {}.tap do |result_hash|</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> key_to_sanitized_key_hash.each do |key, sanitized_key|</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> if sanitized_key_to_value_hash.has_key?(sanitized_key)</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> result_hash[key] = sanitized_key_to_value_hash[sanitized_key]</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> result_hash[key] = yield(key)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> Cache.put(sanitized_key, result_hash[key], expiry)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="72">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug('MemCache Multi-Get (%0.6f) %s' % [elapsed, keys.join(&quot;,&quot;)])</pre>
</td>
<td class="hits">
72
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def self.get(key, expiry = 0)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> start_time = Time.now</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> value = MEMCACHE.get key</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> elapsed = Time.now - start_time</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug('MemCache Get (%0.6f) %s' % [elapsed, key])</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> if value.nil? and block_given? then</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> value = yield</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> MEMCACHE.set key, value, expiry</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> value</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> rescue MemCache::MemCacheError =&gt; err</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug &quot;MemCache Error: #{err.message}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> if block_given? then</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> value = yield</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> put key, value, expiry</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> value</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> def self.put(key, value, expiry = 0)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> key.gsub!(/\s/, &quot;_&quot;)</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> key = key[0, 200]</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> start_time = Time.now</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> MEMCACHE.set key, value, expiry</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> elapsed = Time.now - start_time</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug('MemCache Set (%0.6f) %s' % [elapsed, key])</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="hit" data-hits="31">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> value</pre>
</td>
<td class="hits">
31
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> rescue MemCache::MemCacheError =&gt; err</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug &quot;MemCache Error: #{err.message}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def self.delete(key, delay = nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> start_time = Time.now</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> MEMCACHE.delete key, delay</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> elapsed = Time.now - start_time</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug('MemCache Delete (%0.6f) %s' % [elapsed, key])</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> rescue MemCache::MemCacheError =&gt; err</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> ActiveRecord::Base.logger.debug &quot;MemCache Error: #{err.message}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> def self.sanitize(key)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="84">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> key.gsub(/\W/) {|x| &quot;%#{x.ord}&quot;}.slice(0, 240)</pre>
</td>
<td class="hits">
84
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="b6b671810d3a60ce5d002345ab0da3b58a96fd62">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/current_user.rb</h3>
<h4><span class="red">53.85 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class CurrentUser</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.scoped(user, ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> old_user = self.user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> old_ip_addr = self.ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> self.user = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> self.ip_addr = ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> yield</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> ensure</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> self.user = old_user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> self.ip_addr = old_ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def self.user=(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="23">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> Thread.current[:current_user] = user</pre>
</td>
<td class="hits">
23
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def self.ip_addr=(ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="16">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> Thread.current[:current_ip_addr] = ip_addr</pre>
</td>
<td class="hits">
16
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def self.user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="89">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> Thread.current[:current_user]</pre>
</td>
<td class="hits">
89
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def self.ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="13">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> Thread.current[:current_ip_addr]</pre>
</td>
<td class="hits">
13
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def self.id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="24">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> user.id</pre>
</td>
<td class="hits">
24
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def self.name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> user.name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def self.method_missing(method, *params, &amp;block)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if user.respond_to?(method)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> user.__send__(method, *params, &amp;block)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> super</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="9ad66bff92da7291350669d67d782a42c3b9aaae">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/d_text.rb</h3>
<h4><span class="red">10.84 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>require 'cgi'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>class DText</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def self.parse_inline(str, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> str = parse_aliased_wiki_links(str)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> str = parse_wiki_links(str)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> str = parse_post_links(str)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> str = parse_id_links(str)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> str.gsub!(/\n/m, &quot;&lt;br&gt;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> str.gsub!(/\[b\](.+?)\[\/b\]/i, '&lt;strong&gt;\1&lt;/strong&gt;')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> str.gsub!(/\[i\](.+?)\[\/i\]/i, '&lt;em&gt;\1&lt;/em&gt;')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> str.gsub!(/\[spoilers?\](.+?)\[\/spoilers?\]/m, '&lt;span class=&quot;spoiler&quot;&gt;\1&lt;/span&gt;')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> str.gsub!(/\[url\](.+?)\[\/url\]/i) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> %{&lt;a href=&quot;#{u($1)}&quot;&gt;#{h($1)}&lt;/a&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> str.gsub!(/\[url=(.+?)\](.+?)\[\/url\]/m) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> %{&lt;a href=&quot;#{u($1)}&quot;&gt;#{h($2)}&lt;/a&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> str</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def self.parse_aliased_wiki_links(str)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> str.gsub(/\[\[(.+?)\|(.+?)\]\]/m) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> text = $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> title = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> wiki_page = WikiPage.find_title_and_id(title)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> if wiki_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> %{[url=/wiki_pages/#{wiki_page.id}]#{text}[/url]}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> %{[url=/wiki_pages/new?title=#{title}]#{text}[/url]}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def self.parse_wiki_links(str)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> str.gsub(/\[\[(.+?)\]\]/) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> title = $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> wiki_page = WikiPage.find_title_and_id(title)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if wiki_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> %{[url=/wiki_pages/#{wiki_page.id}]#{title}[/url]}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> %{[url=/wiki_pages/new?title=#{title}]#{title}[/url]}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> def self.parse_post_links(str)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> str.gsub(/\{\{(.+?)\}\}/, %{[url=/posts?tags=\1]\1[/url]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> def self.parse_id_links(str)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> str = str.gsub(/\bpost #(\d+)/i, %{[url=/posts/\1]post #\1[/url]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> str = str.gsub(/\bforum #(\d+)/i, %{[url=/forum_posts/\1]forum #\1[/url]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> str = str.gsub(/\bcomment #(\d+)/i, %{[url=/comments/\1]comment #\1[/url]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> str = str.gsub(/\bpool #(\d+)/i, %{[url=/pools/\1]pool #\1[/url]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> def self.parse_list(str, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> html = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> layout = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> nest = 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> str.split(/\n/).each do |line|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> if line =~ /^\s*(\*+) (.+)/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> nest = $1.size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> content = parse_inline($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> content = parse_inline(line)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> if nest &gt; layout.size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> html += &quot;&lt;ul&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> layout &lt;&lt; &quot;ul&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> while nest &lt; layout.size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> elist = layout.pop</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> if elist</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> html += &quot;&lt;/#{elist}&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> html += &quot;&lt;li&gt;#{content}&lt;/li&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> while layout.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> elist = layout.pop</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> html += &quot;&lt;/#{elist}&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> html</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> def self.parse(str, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> return &quot;&quot; if str.blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> # Make sure quote tags are surrounded by newlines</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> unless options[:inline]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> str.gsub!(/\s*\[quote\]\s*/m, &quot;\n\n[quote]\n\n&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> str.gsub!(/\s*\[\/quote\]\s*/m, &quot;\n\n[/quote]\n\n&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> str.gsub!(/(?:\r?\n){3,}/, &quot;\n\n&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> str.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> blocks = str.split(/(?:\r?\n){2}/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> html = blocks.map do |block|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> case block</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> when /^(h[1-6])\.\s*(.+)$/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> tag = $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> content = $2 </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> if options[:inline]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> &quot;&lt;h6&gt;&quot; + parse_inline(content, options) + &quot;&lt;/h6&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> &quot;&lt;#{tag}&gt;&quot; + parse_inline(content, options) + &quot;&lt;/#{tag}&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> when /^\s*\*+ /</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> parse_list(block, options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> when &quot;[quote]&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> if options[:inline]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> '&lt;blockquote&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> when &quot;[/quote]&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> if options[:inline]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre> &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> '&lt;/blockquote&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> '&lt;p&gt;' + parse_inline(block) + &quot;&lt;/p&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> html.join(&quot;&quot;).html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="c97912f72b814ea6c75e7008d835019e9fcf19d8">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/date_tag.rb</h3>
<h4><span class="red">38.46 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class DateTag</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :tag, :start_date, :end_date</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def self.new_from_range(start, stop)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> new(&quot;#{start.to_formatted_s(:db)}..#{stop.to_formatted_s(:db)}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def initialize(tag)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @tag = tag</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def is_single_day?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> tag =~ /^\d+-\d+-\d+$/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def is_range?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> !is_single_day</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def start_date</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> return date if is_single_day?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> extract_ranges</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> start_date</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> def end_date</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> return date if is_single_day?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> extract_ranges</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end_date</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def previous_week</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> DateTag.new_from_range(1.week.ago(start_date), 1.week.ago(end_date))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> def next_week</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> DateTag.new_from_range(1.week.since(start_date), 1.week.since(end_date))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> def previous_month</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> DateTag.new_from_range(1.month.ago(start_date), 1.month.ago(end_date))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> def next_month</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> DateTag.new_from_range(1.month.since(start_date), 1.month.since(end_date))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> def date</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> Date.parse(tag)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> def extract_ranges</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> case tag</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> when /\A(.+?)\.\.(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> self.start_date = Date.parse($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> self.end_date = Date.parse($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> when /\A&lt;(.+)/, /\A&lt;=(.+)/, /\A\.\.(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> self.start_date = 20.years.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> self.end_date = Date.parse($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> when /\A&gt;(.+)/, /\A&gt;=(.+)/, /\A(.+)\.\.\Z/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> self.start_date = Date.parse($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> self.end_date = Date.today</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> self.start_date = Date.today</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> self.end_date = Date.today</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a19e8a76c18977de52c2f28f3128d155800ea017">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/download.rb</h3>
<h4><span class="red">16.67 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Download</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> attr_accessor :source, :content_type</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def initialize(source, file_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @source = source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @file_path = file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> # Downloads to @file_path</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def download!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> http_get_streaming(@source) do |response|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> self.content_type = response[&quot;Content-Type&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> File.open(@file_path, &quot;wb&quot;) do |out|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> response.read_body(out)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> @source = fix_image_board_sources(@source)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> # private</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def handle_pixiv(source, headers)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> if source =~ /pixiv\.net/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> headers[&quot;Referer&quot;] = &quot;http://www.pixiv.net&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> # Don't download the small version</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> if source =~ %r!(/img/.+?/.+?)_m.+$!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> match = $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> source.sub!(match + &quot;_m&quot;, match)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def http_get_streaming(source, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> max_size = options[:max_size] || Danbooru.config.max_file_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> max_size = nil if max_size == 0 # unlimited</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> limit = 4</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> while true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> url = URI.parse(source)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> unless url.is_a?(URI::HTTP)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> raise Error.new(&quot;URL must be HTTP&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> Net::HTTP.start(url.host, url.port) do |http|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> http.read_timeout = 10</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> headers = {</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> &quot;User-Agent&quot; =&gt; &quot;#{Danbooru.config.safe_app_name}/#{Danbooru.config.version}&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> source = handle_pixiv(source, headers)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> url = URI.parse(source)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> http.request_get(url.request_uri, headers) do |res|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> case res</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> when Net::HTTPSuccess then</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> if max_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> len = res[&quot;Content-Length&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> raise Error.new(&quot;File is too large (#{len} bytes)&quot;) if len &amp;&amp; len.to_i &gt; max_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> yield(res)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> return</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> when Net::HTTPRedirection then</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> if limit == 0 then</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> raise Error.new(&quot;Too many redirects&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> source = res[&quot;location&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> limit -= 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> raise Error.new(&quot;HTTP error code: #{res.code} #{res.message}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end # http.request_get</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end # http.start</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end # while</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end # def</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> def fix_image_board_sources(source)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> if source =~ /\/src\/\d{12,}|urnc\.yi\.org|yui\.cynthia\.bne\.jp/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> &quot;Image board&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="457ad8525331a1d9482a98986bb00071297ec3b1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/favorite.rb</h3>
<h4><span class="red">35.14 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Favorite</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :attributes, :errors</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def self.table_name_for(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> &quot;favorites_#{user_id.to_i % 10}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def self.create(attributes)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> user_id = attributes[:user_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> post_id = attributes[:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> execute_sql(&quot;INSERT INTO #{table_name_for(user_id)} (user_id, post_id) VALUES (?, ?)&quot;, user_id, post_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> rescue ActiveRecord::RecordNotUnique</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> # ignore</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def self.count(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT COUNT(*) FROM #{table_name_for(user_id)}&quot;).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def self.destroy(conditions)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> if conditions[:user_id] &amp;&amp; conditions[:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> destroy_for_post_and_user(conditions[:post_id], conditions[:user_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> elsif conditions[:user_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> destroy_for_user(conditions[:user_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> elsif conditions[:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> destroy_for_post(conditions[:post_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def self.exists?(conditions)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> if conditions[:user_id] &amp;&amp; conditions[:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT 1 FROM #{table_name_for(conditions[:user_id])} WHERE user_id = ? AND post_id = ?&quot;, conditions[:user_id], conditions[:post_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> elsif conditions[:user_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT 1 FROM #{table_name_for(conditions[:user_id])} WHERE user_id = ?&quot;, conditions[:user_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> elsif conditions[:post_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT 1 FROM #{table_name_for(conditions[:user_id])} WHERE post_id = ?&quot;, conditions[:post_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> def self.destroy_for_post_and_user(post_id, user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> execute_sql(&quot;DELETE FROM #{table_name_for(user_id)} WHERE post_id = #{post_id} AND user_id = #{user_id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def self.destroy_for_post(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> 0.upto(9) do |i|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> execute_sql(&quot;DELETE FROM favorites_#{i} WHERE post_id = #{post.id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> def self.destroy_for_user(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> execute_sql(&quot;DELETE FROM #{table_name_for(user)} WHERE user_id = #{user.id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> def self.select_value_sql(sql, *params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> ActiveRecord::Base.select_value_sql(sql, *params)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> def self.execute_sql(sql, *params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> ActiveRecord::Base.execute_sql(sql, *params)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="69e04849616ee1cc9227324f85437a4490d25c84">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/pixiv_proxy.rb</h3>
<h4><span class="red">11.86 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PixivProxy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.is_pixiv?(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> url =~ /pixiv\.net/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def self.get(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if url =~ /\/(\d+)(_m)?\.(jpg|jpeg|png|gif)/i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> url = &quot;http://www.pixiv.net/member_illust.php?mode=medium&amp;illust_id=#{$1}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> get_single(url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> elsif url =~ /member_illust\.php/ &amp;&amp; url =~ /illust_id=/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> get_single(url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> # elsif url =~ /member_illust\.php/ &amp;&amp; url =~ /id=/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> # get_listing(url)</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> # elsif url =~ /member\.php/ &amp;&amp; url =~ /id=/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> # get_profile(url)</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> {}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def self.get_profile(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> url = URI.parse(url).request_uri</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> mech = create_mechanize</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> hash = {}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> mech.get(url) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> hash[:artist] = page.search(&quot;a.avatar_m&quot;).attr(&quot;title&quot;).value</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> hash[:listing_url] = &quot;/member_illust.php?id=&quot; + url[/id=(\d+)/, 1]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> hash</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def self.get_single(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> url = URI.parse(url).request_uri</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> mech = create_mechanize</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> hash = {}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> mech.get(url) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> if page.search(&quot;a.avatar_m&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> hash[:artist] = page.search(&quot;a.avatar_m&quot;).attr(&quot;title&quot;).value</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> hash[:image_url] = page.search(&quot;div.works_display/a/img&quot;).attr(&quot;src&quot;).value.sub(&quot;_m.&quot;, &quot;.&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> hash[:profile_url] = page.search(&quot;a.avatar_m&quot;).attr(&quot;href&quot;).value</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> hash[:jp_tags] = page.search(&quot;span#tags/a&quot;).map do |node|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> [node.inner_text, node.attribute(&quot;href&quot;).to_s]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end.reject {|x| x[0].empty?}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> hash[:artist] = &quot;?&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> hash[:image_url] = &quot;?&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> hash[:profile_url] = &quot;?&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> hash[:jp_tags] = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> hash</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> def self.get_listing(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> mech = create_mechanize</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> p = 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> url = URI.parse(url).request_uri.sub(/&amp;p=\d+/, &quot;&quot;) + &quot;&amp;p=1&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> more = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> images = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> while more</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> mech.get(url) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> links = page.search(&quot;div#illust_c4/ul/li/a&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> if links.empty?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> more = false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> images += links.map do |node|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> image_src = node.child.attribute(&quot;src&quot;).to_s</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> [image_src, image_src.sub(&quot;_s.&quot;, &quot;.&quot;), node.attribute(&quot;href&quot;).to_s]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> p += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> url.sub!(/&amp;p=\d+/, &quot;&amp;p=#{p}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> images</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def self.create_mechanize</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> mech = Mechanize.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> mech.get(&quot;http://www.pixiv.net&quot;) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> page.form_with(:action =&gt; &quot;/login.php&quot;) do |form|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> form.pixiv_id = &quot;uroobnad&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> form.pass = &quot;uroobnad556&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> end.click_button</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> mech</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="52a2c9e9a037927222c2797b53459f664f69ea19">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/post_sets/base.rb</h3>
<h4><span class="red">52.38 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostSets</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> attr_accessor :page, :before_id, :count, :posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def initialize(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @page = options[:page].to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @before_id = options[:before_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> load_posts</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def has_wiki?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def use_sequential_paginator?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> !use_numbered_paginator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def use_numbered_paginator?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> before_id.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def load_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def to_xml</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> posts.to_xml</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def to_json</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> posts.to_json</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @presnter ||= PostSetPresenter.new(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="083cc208597872330d2bae54acb3e77a7a6d673e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/post_sets/favorite.rb</h3>
<h4><span class="red">58.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostSets</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Favorite &lt; Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> attr_accessor :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def initialize(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @user = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> super()</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> &quot;fav:#{user.name}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def load_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> @posts = user.favorite_posts(:before_id =&gt; before_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def limit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> Danbooru.config.posts_per_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="d80335f895054647ad516d5607016bc480812d56">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/post_sets/post.rb</h3>
<h4><span class="red">36.54 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module PostSets</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Post &lt; Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> attr_accessor :tags, :errors, :count</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> attr_accessor :wiki_page, :artist, :suggestions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def initialize(tags, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> super(options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @tags = Tag.normalize(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> @errors = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> load_associations</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> load_suggestions</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> validate</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def has_wiki?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> is_single_tag?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def has_errors?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> errors.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def offset</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> x = (page - 1) * limit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> if x &lt; 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> x = 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> x</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def limit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> Danbooru.config.posts_per_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def is_single_tag?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> tag_array.size == 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def date_tag</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> tag_array.grep(/date:/).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> def load_associations</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> if is_single_tag?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> @wiki_page = WikiPage.find_by_title(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> @artist = Artist.find_by_name(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> def load_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> @count = Post.fast_count(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> @posts = Post.find_by_tags(tags, :before_id =&gt; before_id).all(:order =&gt; &quot;posts.id desc&quot;, :limit =&gt; limit, :offset =&gt; offset)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> def load_suggestions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> if count &lt; limit &amp;&amp; is_single_tag?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> @suggestions = Tag.find_suggestions(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> @suggestions = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> def tag_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> @tag_array ||= Tag.scan_query(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> def validate</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> validate_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> validate_query_count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> rescue Error =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> @errors &lt;&lt; x.to_s</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> def validate_page</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> if page &gt; 1_000</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> raise Error.new(&quot;You cannot explicitly specify the page after page 1000&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def validate_query_count</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> if !CurrentUser.is_privileged? &amp;&amp; tag_array.size &gt; 2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> raise Error.new(&quot;You can only search up to two tags at once with a basic account&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> if tag_array.size &gt; 6</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> raise Error.new(&quot;You can only search up to six tags at once&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="6cf579dbe272c15724294cd974911218b5882011">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/related_tag_calculator.rb</h3>
<h4><span class="red">24.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class RelatedTagCalculator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.find_tags(tag, limit)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> Post.find_by_tags(tag, :limit =&gt; limit, :select =&gt; &quot;posts.tag_string&quot;, :order =&gt; &quot;posts.md5&quot;).map(&amp;:tag_string)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def self.calculate_from_sample_to_array(tags, category_constraint = nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> convert_hash_to_array(calculate_from_sample(tags, Danbooru.config.post_sample_size, category_constraint))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def self.calculate_from_sample(tags, limit, category_constraint = nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> counts = Hash.new {|h, k| h[k] = 0}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> case category_constraint</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> when Tag.categories.artist</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> limit *= 4</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> when Tag.categories.copyright</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> limit *= 3</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> when Tag.categories.character</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> limit *= 2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> find_tags(tags, limit).each do |tags|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> tag_array = Tag.scan_tags(tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> if category_constraint</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> tag_array.each do |tag|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> category = Tag.category_for(tag)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> if category == category_constraint</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> counts[tag] += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> tag_array.each do |tag|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> counts[tag] += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> counts</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> def self.convert_hash_to_array(hash)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> hash.to_a.sort_by {|x| -x[1]}.slice(0, 25)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def self.convert_hash_to_string(hash)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> convert_hash_to_array(hash).flatten.join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="c50ee24500f9b104363ecc1565af18b49aa2eb32">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/logical/remote_server.rb</h3>
<h4><span class="red">44.44 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class RemoteServer</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :hostname</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def self.other_servers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> Danbooru.config.other_server_hosts.map {|x| new(x)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def self.copy_to_all(local_path, remote_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> other_servers.each do |server|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> server.copy(local_path, remote_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def self.delete_from_all(remote_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> other_servers.each do |server|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> server.delete(remote_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def initialize(hostname)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> @hostname = hostname</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def copy(local_path, remote_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> Net::SFTP.start(hostname, Danbooru.config.remote_server_login) do |ftp|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> ftp.upload!(local_path, remote_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def delete(remote_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> Net::SFTP.start(hostname, Danbooru.config.remote_server_login) do |ftp|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> ftp.remove(remote_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="1fd95f18e08c25b139bcfd5a2321c5e72d3af6d3">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/advertisement.rb</h3>
<h4><span class="red">38.1 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Advertisement &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> validates_inclusion_of :ad_type, :in =&gt; %w(horizontal vertical)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> has_many :hits, :class_name =&gt; &quot;AdvertisementHit&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_create :copy_to_servers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_destroy :delete_from_servers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> def copy_to_servers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> RemoteServer.copy_to_all(image_path, image_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def delete_from_servers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> RemoteServer.delete_from_all(image_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def hit!(ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> hits.create(:ip_addr =&gt; ip_addr)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def hit_sum(start_date, end_date)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> hits.where([&quot;created_at BETWEEN ? AND ?&quot;, start_date, end_date]).count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def unique_identifier</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> @unique_identifier ||= (&quot;%.0f&quot; % (Time.now.to_f * 1_000))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def image_url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> &quot;/images/advertisements/#{file_name}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def image_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/images/advertisements/#{file_name}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> def file=(f)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> if f.size &gt; 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> self.file_name = unique_identifier + File.extname(f.original_filename)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> if f.local_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> FileUtils.cp(f.local_path, image_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> File.open(image_path, 'wb') {|nf| nf.write(f.read)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> File.chmod(0644, image_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> image_size = ImageSize.new(File.open(image_path, &quot;rb&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> self.width = image_size.get_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> self.height = image_size.get_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> def preview_width</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> if width &gt; 100 || height &gt; 100</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> if width &lt; height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> ratio = 100.0 / height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> return (width * ratio).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> return 100</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def preview_height</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> if width &gt; 100 || height &gt; 100</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> if height &lt; width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> ratio = 100.0 / width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> return (height * ratio)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> return 100</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="2254540fdb7ecd1be0dc0596881d065ca569fc98">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/advertisement_hit.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class AdvertisementHit &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :advertisement</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> scope :between, lambda {|start_date, end_date| where(&quot;created_at BETWEEN ? AND ?&quot;, start_date, end_date)}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="c160285f538e9448ad9b938575a262d3e14abc0a">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/artist.rb</h3>
<h4><span class="red">44.26 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Artist &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_create :initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_save :normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_save :create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_save :save_url_string</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> validates_uniqueness_of :name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> has_many :members, :class_name =&gt; &quot;Artist&quot;, :foreign_key =&gt; &quot;group_name&quot;, :primary_key =&gt; &quot;name&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> has_many :urls, :dependent =&gt; :destroy, :class_name =&gt; &quot;ArtistUrl&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> has_many :versions, :order =&gt; &quot;artist_versions.id&quot;, :class_name =&gt; &quot;ArtistVersion&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> has_one :wiki_page, :foreign_key =&gt; &quot;title&quot;, :primary_key =&gt; &quot;name&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> has_one :tag_alias, :foreign_key =&gt; &quot;antecedent_name&quot;, :primary_key =&gt; &quot;name&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> accepts_nested_attributes_for :wiki_page</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> attr_accessible :name, :url_string, :other_names, :group_name, :wiki_page_attributes, :notes</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> module UrlMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def find_all_by_url(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> url = ArtistUrl.normalize(url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> artists = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> while artists.empty? &amp;&amp; url.size &gt; 10</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> u = url.sub(/\/+$/, &quot;&quot;) + &quot;/&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> u = u.to_escaped_for_sql_like.gsub(/\*/, '%') + '%'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> artists += Artist.joins(:urls).where([&quot;artists.is_active = TRUE AND artist_urls.normalized_url LIKE ? ESCAPE E'\\\\'&quot;, u]).all(:order =&gt; &quot;artists.name&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> url = File.dirname(url) + &quot;/&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> artists.uniq_by {|x| x.name}.slice(0, 20)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def self.included(m)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> m.extend(ClassMethods)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def save_url_string</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> if @url_string</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> urls.clear</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> @url_string.scan(/\S+/).each do |url|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> urls.create(:url =&gt; url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def url_string=(string)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> @url_string = string</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> def url_string</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> @url_string || urls.map {|x| x.url}.join(&quot;\n&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> module NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> def normalize_name(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> name.downcase.strip.gsub(/ /, '_')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> def self.included(m)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> m.extend(ClassMethods)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> self.name = Artist.normalize_name(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> if other_names</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> self.other_names = other_names.split(/,/).map {|x| Artist.normalize_name(x)}.join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> module GroupMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> def member_names</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> members.map(&amp;:name).join(&quot;, &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> module SearchMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def find_by_name_or_id(params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> if params[:name]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> find_by_name(params[:name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> find(params[:id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> def find_by_any_name(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> build_relation(:name =&gt; name).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> def build_relation(params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> relation = Artist.where(&quot;is_active = TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> case params[:name]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> when /^http/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> relation = relation.where(&quot;id IN (?)&quot;, find_all_by_url(params[:name]).map(&amp;:id))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> when /name:(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> escaped_name = Artist.normalize_name($1).to_escaped_for_sql_like</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> relation = relation.where([&quot;name LIKE ? ESCAPE E'\\\\'&quot;, escaped_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> when /other:(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> escaped_name = Artist.normalize_name($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> relation = relation.where([&quot;other_names_index @@ to_tsquery('danbooru', ?)&quot;, escaped_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> when /group:(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> escaped_name = Artist.normalize_name($1).to_escaped_for_sql_like</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> relation = relation.where([&quot;group_name LIKE ? ESCAPE E'\\\\'&quot;, escaped_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> when /./</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> normalized_name = Artist.normalize_name($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> escaped_name = normalized_name.to_escaped_for_sql_like</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> relation = relation.where([&quot;name LIKE ? ESCAPE E'\\\\' OR other_names_index @@ to_tsquery('danbooru', ?) OR group_name LIKE ? ESCAPE E'\\\\'&quot;, escaped_name, normalized_name, escaped_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> if params[:id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> relation = relation.where([&quot;id = ?&quot;, params[:id]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> if params[:order] == &quot;date&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> relation = relation.order(&quot;updated_at DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> relation = relation.order(&quot;name&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> module VersionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> def create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre> ArtistVersion.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> :artist_id =&gt; id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> :name =&gt; name,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> :updater_id =&gt; CurrentUser.user.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre> :updater_ip_addr =&gt; CurrentUser.ip_addr,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre> :url_string =&gt; url_string,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> :is_active =&gt; is_active,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> :other_names =&gt; other_names,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> :group_name =&gt; group_name</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre> def revert_to!(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> self.name = version.name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> self.url_string = version.url_string</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre> self.is_active = version.is_active</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre> self.other_names = version.other_names</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> self.group_name = version.group_name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre> save </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> module FactoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> def new_with_defaults(params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre> Artist.new.tap do |artist|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> if params[:name]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> artist.name = params[:name]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> post = Post.find_by_tags(&quot;source:http* #{artist.name}&quot;).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> unless post.nil? || post.source.blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> artist.url_string = post.source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> if params[:other_names]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre> artist.other_names = params[:other_names]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> if params[:urls]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> artist.url_string = params[:urls]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre> module NoteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> def notes</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> if wiki_page</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre> wiki_page.body</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre> def notes=(msg)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> if wiki_page.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> self.wiki_page = WikiPage.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> wiki_page.title = name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> wiki_page.body = msg</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre> wiki_page.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> module TagMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> def has_tag_alias?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre> TagAlias.exists?([&quot;antecedent_name = ?&quot;, name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre> def tag_alias_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> TagAlias.find_by_antecedent_name(name).consequent_name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre> include UrlMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre> include NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre> include GroupMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> extend SearchMethods </pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> include VersionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre> extend FactoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> include NoteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre> include TagMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="dc64fd297f8115cfd0085100e7de63dfe23613ec">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/artist_url.rb</h3>
<h4><span class="red">34.78 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ArtistUrl &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_save :normalize</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> validates_presence_of :url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :artist</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def self.normalize(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if url.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog\d+\.fc2/, &quot;http://blog.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog-imgs-\d+\.fc2/, &quot;http://blog.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog-imgs-\d+-\w+\.fc2/, &quot;http://blog.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/img\d+\.pixiv\.net/, &quot;http://img.pixiv.net&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> url = url.gsub(/\/+\Z/, &quot;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> url + &quot;/&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def self.normalize_for_search(url)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> if url =~ /\.\w+\Z/ &amp;&amp; url =~ /\w\/\w/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> url = File.dirname(url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog\d+\.fc2/, &quot;http://blog*.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog-imgs-\d+\.fc2/, &quot;http://blog*.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/blog-imgs-\d+-\w+\.fc2/, &quot;http://blog*.fc2&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> url = url.gsub(/^http:\/\/img\d+\.pixiv\.net/, &quot;http://img*.pixiv.net&quot;) </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def normalize</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> self.normalized_url = self.class.normalize(url)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> def to_s</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4246a154873cea9f66614f75a2c01e50c3b2f02e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/artist_version.rb</h3>
<h4><span class="red">80.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ArtistVersion &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :artist</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def updater_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> User.id_to_name(updater_id).tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="2b6e88e45978cfc4662efcf8bfb17bb454d2cfb4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/ban.rb</h3>
<h4><span class="red">34.21 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Ban &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> after_create :update_feedback</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :banner, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> attr_accessible :reason, :duration, :user_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> validate :user_is_inferior</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def self.is_banned?(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> exists?([&quot;user_id = ? AND expires_at &gt; ?&quot;, user.id, Time.now])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def user_is_inferior</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> if user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> if user.is_admin?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> errors[:base] &lt;&lt; &quot;You can never ban an admin.&quot; </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> elsif user.is_moderator? &amp;&amp; banner.is_admin?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> elsif user.is_moderator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> errors[:base] &lt;&lt; &quot;Only admins can ban moderators.&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> elsif banner.is_admin? || banner.is_moderator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> errors[:base] &lt;&lt; &quot;No one else can ban.&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def update_feedback</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> if user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> feedback = user.feedback.build</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> feedback.is_positive = false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> feedback.body = &quot;Banned: #{reason}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> feedback.creator_id = banner_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> feedback.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def user_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> user ? user.name : nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> def user_name=(username)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> self.user_id = User.name_to_id(username)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> def duration=(dur)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> self.expires_at = dur.to_i.days.from_now</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> @duration = dur</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> def duration</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> @duration</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="bc3b82f51cfa81cfc6b6f7f0fb3ac0887c341002">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/comment.rb</h3>
<h4><span class="red">54.29 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Comment &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> validate :validate_creator_is_not_limited</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> validates_format_of :body, :with =&gt; /\S/, :message =&gt; 'has no content'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> has_many :votes, :class_name =&gt; &quot;CommentVote&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> after_save :update_last_commented_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> attr_accessible :body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> attr_accessor :do_not_bump_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> scope :recent, :order =&gt; &quot;comments.id desc&quot;, :limit =&gt; 6</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> scope :search_body, lambda {|query| where(&quot;body_index @@ plainto_tsquery(?)&quot;, query).order(&quot;comments.id DESC&quot;)}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> scope :hidden, lambda {|user| where(&quot;score &lt; ?&quot;, user.comment_threshold)}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> self.ip_addr = CurrentUser.ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def creator_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> User.id_to_name(creator_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def validate_creator_is_not_limited</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> creator.is_privileged? || Comment.where(&quot;creator_id = ? AND created_at &gt;= ?&quot;, creator_id, 1.hour.ago).count &lt; 5</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def update_last_commented_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> if Comment.where([&quot;post_id = ?&quot;, post_id]).count &lt;= Danbooru.config.comment_threshold &amp;&amp; !do_not_bump_post</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET last_commented_at = ? WHERE id = ?&quot;, created_at, post_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def vote!(score)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> if !CurrentUser.user.can_comment_vote?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> raise CommentVote::Error.new(&quot;You can only vote ten times an hour on comments&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> elsif score == &quot;down&quot; &amp;&amp; creator.is_janitor?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> raise CommentVote::Error.new(&quot;You cannot downvote janitor/moderator/admin comments&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> elsif votes.find_by_user_id(CurrentUser.user.id).nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> if score == &quot;up&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> increment!(:score)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> elsif score == &quot;down&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> decrement!(:score)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> votes.create</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> raise CommentVote::Error.new(&quot;You have already voted for this comment&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre>Comment.connection.extend(PostgresExtensions)</pre>
</td>
<td class="hits">
1
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="cfd3e4aa331e5a947dc33d9ee5f1375c09d0027a">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/comment_vote.rb</h3>
<h4><span class="red">80.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class CommentVote &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :comment</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> belongs_to :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> before_validation :initialize_user, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> validates_presence_of :user_id, :comment_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def self.prune!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> destroy_all([&quot;created_at &lt; ?&quot;, 14.days.ago])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def initialize_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> self.user_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="db79c61187ae0b81dc7df66f3c36c1872b5e2ecc">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/dmail.rb</h3>
<h4><span class="red">53.73 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Dmail &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> validates_presence_of :to_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> validates_presence_of :from_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> validates_format_of :title, :with =&gt; /\S/</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> validates_format_of :body, :with =&gt; /\S/</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> before_validation :initialize_from_id, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> belongs_to :owner, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> belongs_to :to, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> belongs_to :from, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> after_create :update_recipient</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> after_create :send_dmail</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> attr_accessible :title, :body, :is_deleted, :to_id, :to</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> scope :for, lambda {|user| where([&quot;owner_id = ?&quot;, user])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> scope :inbox, where(&quot;to_id = owner_id&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> scope :sent, where(&quot;from_id = owner_id&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> scope :active, where([&quot;is_deleted = ?&quot;, false])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> scope :deleted, where([&quot;is_deleted = ?&quot;, true])</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> scope :search_message, lambda {|query| where([&quot;message_index @@ plainto_tsquery(?)&quot;, query])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> module AddressMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def to_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> User.id_to_pretty_name(to_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def from_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> User.id_to_pretty_name(from_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def to_name=(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> user = User.find_by_name(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> return if user.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> self.to_id = user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def initialize_from_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> self.from_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> module FactoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> extend ActiveSupport::Concern</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> def create_split(params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> copy = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> Dmail.transaction do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> copy = Dmail.new(params)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> copy.owner_id = copy.to_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> copy.save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> copy = Dmail.new(params)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> copy.owner_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> copy.save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> copy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> def new_blank</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> Dmail.new do |dmail|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> dmail.from_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def build_response(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> Dmail.new do |dmail|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> dmail.title = &quot;Re: #{title}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> dmail.owner_id = from_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> dmail.body = quoted_body</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> dmail.to_id = from_id unless options[:forward]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> dmail.from_id = to_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> include AddressMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> include FactoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> def quoted_body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> &quot;[quote]#{body}[/quote]&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> def send_dmail</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> if to.receive_email_notifications? &amp;&amp; to.email.include?(&quot;@&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> UserMailer.dmail_notice(self).deliver</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> def mark_as_read!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> update_attribute(:is_read, true)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> unless Dmail.exists?([&quot;to_id = ? AND is_read = false&quot;, to_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> to.update_attribute(:has_mail, false)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> def update_recipient</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> to.update_attribute(:has_mail, true)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> def visible_to?(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> user.is_moderator? || owner_id == user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="35d460f6a40dff2e470c40199d38fb0bc7f66083">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/forum_post.rb</h3>
<h4><span class="red">77.78 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ForumPost &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessible :body, :topic_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :topic, :class_name =&gt; &quot;ForumTopic&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> before_validation :initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> after_save :update_topic_updated_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> validates_presence_of :body, :creator_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> scope :body_matches, lambda {|body| where([&quot;text_index @@ plainto_tsquery(?)&quot;, body])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> search_method :body_matches</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> def editable_by?(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> creator_id == user.id || user.is_moderator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def update_topic_updated_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> topic.update_attributes(:updater_id =&gt; CurrentUser.id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> self.updater_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3051e2f09c8b2b7df6a01e0efb25998b526f213a">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/forum_topic.rb</h3>
<h4><span class="yellow">83.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ForumTopic &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessible :title, :original_post_attributes</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :updater, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> has_many :posts, :class_name =&gt; &quot;ForumPost&quot;, :order =&gt; &quot;forum_posts.id asc&quot;, :foreign_key =&gt; &quot;topic_id&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> has_one :original_post, :class_name =&gt; &quot;ForumPost&quot;, :order =&gt; &quot;forum_posts.id asc&quot;, :foreign_key =&gt; &quot;topic_id&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> before_validation :initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> validates_presence_of :title, :creator_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> scope :title_matches, lambda {|title| where([&quot;text_index @@ plainto_tsquery(?)&quot;, title])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> search_methods :title_matches</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> accepts_nested_attributes_for :original_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def editable_by?(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> creator_id == user.id || user.is_moderator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> def initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> self.updater_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="999cc2bce390fc8c4505fb5db5cf0244dc92bc17">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/ip_ban.rb</h3>
<h4><span class="red">58.82 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class IpBan &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> validates_presence_of :reason, :creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> validates_uniqueness_of :ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> def self.is_banned?(ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> exists?([&quot;ip_addr = ?&quot;, ip_addr])</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def self.query(user_ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> comments = count_by_ip_addr(&quot;comments&quot;, user_ids, &quot;creator_id&quot;, &quot;ip_addr&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> notes = count_by_ip_addr(&quot;note_versions&quot;, user_ids, &quot;updater_id&quot;, &quot;updater_ip_addr&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> pools = count_by_ip_addr(&quot;pool_versions&quot;, user_ids, &quot;updater_id&quot;, &quot;updater_ip_addr&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> wiki_pages = count_by_ip_addr(&quot;wiki_page_versions&quot;, user_ids, &quot;updater_id&quot;, &quot;updater_ip_addr&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> return {</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> &quot;comments&quot; =&gt; comments,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> &quot;notes&quot; =&gt; notes,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> &quot;pools&quot; =&gt; pools,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> &quot;wiki_pages&quot; =&gt; wiki_pages</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def self.count_by_ip_addr(table, user_ids, user_id_field = &quot;user_id&quot;, ip_addr_field = &quot;ip_addr&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> select_all_sql(&quot;SELECT #{ip_addr_field}, count(*) FROM #{table} WHERE #{user_id_field} IN (?) GROUP BY #{ip_addr_field} ORDER BY count(*) DESC&quot;, user_ids)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ce0449e5338b54330806cf95fa7037d5dd33b2c5">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/janitor_trial.rb</h3>
<h4><span class="red">61.11 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class JanitorTrial &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> after_create :send_dmail</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_create :promote_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_destroy :create_feedback</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> validates_presence_of :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def send_dmail</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> body = &quot;You have been selected as a test janitor. You can now approve pending posts and have access to the moderation interface.\n\nOver the next several weeks your approvals will be monitored. If the majority of them are quality uploads, then you will be promoted to full janitor status which grants you the ability to delete and undelete posts, ban users, and revert tag changes from vandals. If you fail the trial period, you will be demoted back to your original level and you'll receive a negative user record indicating you previously attempted and failed a test janitor trial.\n\nThere is a minimum quota of 5 approvals a week to indicate that you are being active. Remember, the goal isn't to approve as much as possible. It's to filter out borderline-quality art.\n\nIf you have any questions please respond to this message.&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> Dmail.create_split(:title =&gt; &quot;Test Janitor Trial Period&quot;, :body =&gt; body, :to_id =&gt; user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def promote_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> user.update_attribute(:is_janitor, true)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def create_feedback</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> user.feedback.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> :is_positive =&gt; false,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> :body =&gt; &quot;Demoted from janitor trial&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def promote!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def demote!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> user.update_attribute(:is_janitor, false)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="430eb3ff2bd026840179b9a343d49ee217c9c883">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/backup_to_s3.rb</h3>
<h4><span class="red">21.43 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class BackupToS3 &lt; Struct.new(:last_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> Post.find(:all, :conditions =&gt; [&quot;id &gt; ?&quot;, last_id], :limit =&gt; 200, :order =&gt; &quot;id&quot;).each do |post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> AWS::S3::Base.establish_connection!(:access_key_id =&gt; CONFIG[&quot;amazon_s3_access_key_id&quot;], :secret_access_key =&gt; CONFIG[&quot;amazon_s3_secret_access_key&quot;])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> if File.exists?(post.file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> base64_md5 = Base64.encode64(Digest::MD5.digest(File.read(post.file_path)))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> AWS::S3::S3Object.store(post.file_name, open(post.file_path, &quot;rb&quot;), CONFIG[&quot;amazon_s3_bucket_name&quot;], &quot;Content-MD5&quot; =&gt; base64_md5)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> if post.image? &amp;&amp; File.exists?(post.preview_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> AWS::S3::S3Object.store(&quot;preview/#{post.md5}.jpg&quot;, open(post.preview_path, &quot;rb&quot;), CONFIG[&quot;amazon_s3_bucket_name&quot;])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> if File.exists?(post.sample_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> AWS::S3::S3Object.store(&quot;sample/&quot; + CONFIG[&quot;sample_filename_prefix&quot;] + &quot;#{post.md5}.jpg&quot;, open(post.sample_path, &quot;rb&quot;), CONFIG[&quot;amazon_s3_bucket_name&quot;])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> self.last_id = post.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> Delayed::Job.enqueue(BackupToS3.new(last_id))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> rescue Exception =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> # probably some network error, retry next time</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="cfe90f260f4e25fd7dc2baa50fc0c704248bb59c">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/calculate_post_count.rb</h3>
<h4><span class="red">75.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class CalculatePostCount &lt; Struct.new(:tag_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> Tag.recalculate_post_count(tag_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="9ec16ae4b518622003a0e280b675b8f582abe5ee">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/calculate_related_tags.rb</h3>
<h4><span class="red">42.86 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class CalculateRelatedTags &lt; Struct.new(:tag_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> tag = Tag.find_by_id(tag_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> if tag</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> tag.update_related</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> tag.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="9ca89603ed0a071269ba3e550afd57a783b531fd">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/calculate_uploaded_tags.rb</h3>
<h4><span class="red">37.5 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class CalculateUploadedTags &lt; Struct.new(:user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> tags = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> user = User.find(user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> CONFIG[&quot;tag_types&quot;].values.uniq.each do |tag_type|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> tags += user.calculate_uploaded_tags(tag_type)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> user.update_attribute(:uploaded_tags, tags.join(&quot;\n&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="fac06c350bf70aa8cae1b379efaa098ea5dd1b7d">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/create_tag_alias.rb</h3>
<h4><span class="red">75.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class CreateTagAlias &lt; Struct.new(:antecedent_name, :consequent_name, :creator_id, :creator_ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def execute</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> TagAlias.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> :antecedent_name =&gt; antecedent_name,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> :consequent_name =&gt; consequent_name,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> :creator_id =&gt; creator_id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> :creator_ip_addr =&gt; creator_ip_addr</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="74e368a2befc8d5d6b3836ab1265ac59923ac641">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/create_tag_implication.rb</h3>
<h4><span class="red">75.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class CreateTagImplication &lt; Struct.new(:antecedent_name, :consequent_name, :creator_id, :creator_ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> TagImplication.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> :antecedent_name =&gt; antecedent_name,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> :consequent_name =&gt; consequent_name,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> :creator_id =&gt; creator_id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> :creator_ip_addr =&gt; creator_ip_addr</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="7ae6af5a1ff157d201372c413a5fa637912b51f0">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/fix_pixiv_uploads.rb</h3>
<h4><span class="red">42.86 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class FixPixivUploads &lt; Struct.new(:last_post_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> post_id = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> Post.find_each(:conditions =&gt; [&quot;GREATEST(width, height) IN (150, 600) AND source LIKE ? AND id &gt; ?&quot;, &quot;%pixiv%&quot;, last_post_id]) do |post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> post_id = post.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> update_attributes(:data =&gt; {:last_post_id =&gt; post_id})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="1226ed400471b6440bb04a32aafc7710dff69dd4">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/mass_tag_edit.rb</h3>
<h4><span class="red">75.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class MassTagEdit &lt; Struct.new(:start_tags, :result_tags, :updater_id, :updater_ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> Tag.mass_edit(start_tags, result_tags, updater_id, updater_ip_addr)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="22140c5677ce15d7106dfa1645546b7af1a80326">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/process_tag_subscriptions.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class ProcessTagSubscriptions &lt; Struct.new(:last_run)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> if last_run.nil? || last_run &lt; 20.minutes.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> TagSubscription.process_all</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> Delayed::Job.enqueue(ProcessTagSubscriptions.new(Time.now))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="fe4ef796d6ae40377be478b4bd58fbb2e159241f">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/jobs/process_uploads.rb</h3>
<h4><span class="red">60.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Jobs</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class ProcessUploads</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def perform</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> Upload.find_each(:conditions =&gt; [&quot;status = ?&quot;, &quot;pending&quot;]) do |upload|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> upload.process!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="aad40b1336188d72b0c2341193beec67188f75c6">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/note.rb</h3>
<h4><span class="red">67.65 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Note &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :updater_id, :updater_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> belongs_to :updater, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> before_validation :initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> before_validation :blank_body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> has_many :versions, :class_name =&gt; &quot;NoteVersion&quot;, :order =&gt; &quot;note_versions.id ASC&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> after_save :update_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> after_save :create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> validate :post_must_not_be_note_locked</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> validates_presence_of :updater_id, :updater_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> attr_accessible :x, :y, :width, :height, :body, :updater_id, :updater_ip_addr, :is_active</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> scope :active, where(&quot;is_active = TRUE&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="2">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> scope :body_matches, lambda {|query| where(&quot;text_index @@ plainto_tsquery(?)&quot;, query)}</pre>
</td>
<td class="hits">
2
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> search_method :body_matches</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> @presenter ||= NotePresenter.new(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.id</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def initialize_updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="10">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> self.updater_id = CurrentUser.id</pre>
</td>
<td class="hits">
10
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def post_must_not_be_note_locked</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="10">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> if is_locked?</pre>
</td>
<td class="hits">
10
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> errors.add :post, &quot;is note locked&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> return false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> def is_locked?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="10">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> Post.exists?([&quot;id = ? AND is_note_locked = ?&quot;, post_id, true])</pre>
</td>
<td class="hits">
10
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> def blank_body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="10">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> self.body = &quot;(empty)&quot; if body.blank?</pre>
</td>
<td class="hits">
10
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> def creator_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> User.id_to_name(creator_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> def update_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="8">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> if Note.exists?([&quot;is_active = ? AND post_id = ?&quot;, true, post_id])</pre>
</td>
<td class="hits">
8
</td>
</tr>
<tr class="hit" data-hits="8">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET last_noted_at = ? WHERE id = ?&quot;, updated_at, post_id)</pre>
</td>
<td class="hits">
8
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET last_noted_at = NULL WHERE id = ?&quot;, post_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> def create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="8">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> versions.create(</pre>
</td>
<td class="hits">
8
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> :updater_id =&gt; updater_id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> :updater_ip_addr =&gt; updater_ip_addr,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> :x =&gt; x,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> :y =&gt; y,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> :width =&gt; width,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> :height =&gt; height,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> :is_active =&gt; is_active,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> :body =&gt; body</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> def revert_to(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> self.x = version.x</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> self.y = version.y</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> self.body = version.body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> self.width = version.width</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> self.height = version.height</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> self.is_active = version.is_active</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> self.updater_id = CurrentUser.id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> self.updater_ip_addr = CurrentUser.ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def revert_to!(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> revert_to(version)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> def self.undo_changes_by_user(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> transaction do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> notes = Note.joins(:versions).where([&quot;note_versions.updater_id = ?&quot;, user_id]).select(&quot;DISTINCT notes.*&quot;).all</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> NoteVersion.destroy_all([&quot;updater_id = ?&quot;, user_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> notes.each do |note|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> first = note.versions.first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> if first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> note.revert_to!(first)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> def self.build_relation(params)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> relation = where(&quot;TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> if !params[:query].blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> query = params[:query].scan(/\S+/).join(&quot; &amp; &quot;) </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> relation = relation.where([&quot;text_index @@ plainto_tsquery(?)&quot;, query])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> if params[:status] == &quot;Active&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> relation = relation.where(&quot;is_active = TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> elsif params[:status] == &quot;Deleted&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> relation = relation.where(&quot;is_active = FALSE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f4f67df7eea16ced47bc03d8117d48c9b7222619">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/note_version.rb</h3>
<h4><span class="red">66.67 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class NoteVersion &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def updater_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> User.id_to_name(updater_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="372b4d0ab63284a9735e07b965fe188499591601">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/pool.rb</h3>
<h4><span class="red">37.7 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Pool &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :updater_id, :updater_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> validates_uniqueness_of :name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> validates_presence_of :name, :updater_id, :updater_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> validates_format_of :name, :with =&gt; /\A[^\s;,]+\Z/, :on =&gt; :create, :message =&gt; &quot;cannot have whitespace, commas, or semicolons&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> belongs_to :updater, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> has_many :versions, :class_name =&gt; &quot;PoolVersion&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> before_save :normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> after_save :create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> attr_accessible :name, :description, :post_ids, :is_public, :is_active</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def self.name_to_id(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT id FROM pools WHERE name = ?&quot;, name.downcase)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def self.create_anonymous(creator, creator_ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> Pool.new do |pool|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> pool.name = &quot;TEMP:#{Time.now.to_f}.#{rand(1_000_000)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> pool.creator = creator</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> pool.updater_id = creator.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> pool.updater_ip_addr = creator_ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> pool.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> pool.name = &quot;anonymous:#{pool.id}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> pool.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> self.name = name.downcase</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def revert_to!(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> self.post_ids = version.post_ids</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> def add_post!(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> return if post_ids =~ /(?:\A| )#{post.id}(?:\Z| )/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> self.post_ids += &quot; #{post.id}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> self.post_ids.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> def remove_post!(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> post_ids.gsub!(/(?:\A| )#{post.id}(?:\Z| )/, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> post_ids.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> def posts(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> offset = options[:offset] || 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> limit = options[:limit] || 20</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> ids = post_id_array[offset, limit]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> Post.where([&quot;id IN (?)&quot;, ids])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> def post_id_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> @post_id_array ||= post_ids.scan(/\d+/).map(&amp;:to_i)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> def clear_post_id_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> @post_id_array = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def neighbor_posts(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> post_ids =~ /\A#{post.id} (\d+)|(\d+) #{post.id} (\d+)|(\d+) #{post.id}\Z/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> if $2 &amp;&amp; $3</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> {:previous =&gt; $2.to_i, :next =&gt; $3.to_i}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> elsif $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> {:next =&gt; $1.to_i}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> elsif $4</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> {:previous =&gt; $4.to_i}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> def create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> last_version = versions.last</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> if last_version &amp;&amp; updater_ip_addr == last_version.updater_ip_addr &amp;&amp; updater_id == last_version.updater_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> last_version.update_attribute(:post_ids, post_ids)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> versions.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> :post_ids =&gt; post_ids,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> :updater_id =&gt; updater_id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> :updater_ip_addr =&gt; updater_ip_addr</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> def reload(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> super</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> clear_post_id_array</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="d1fae20ee21a45b76d5ff45291d4d5304fe6ba6b">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/pool_version.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PoolVersion &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> validates_presence_of :updater_id, :updater_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> belongs_to :pool</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="d04cbd817a434b39e0b01f892e7b187686382313">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/post.rb</h3>
<h4><span class="red">51.38 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Post &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class ApprovalError &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> attr_accessor :old_tag_string, :old_parent_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_destroy :delete_files</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> after_save :update_history</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> after_save :update_parent_on_save</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> before_save :merge_old_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> before_save :normalize_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> before_save :create_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> before_save :update_tag_post_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> before_save :set_tag_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> before_validation :initialize_uploader, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> belongs_to :updater, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> belongs_to :approver, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> belongs_to :parent, :class_name =&gt; &quot;Post&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> has_one :unapproval, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> has_one :upload, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> has_one :moderation_detail, :class_name =&gt; &quot;PostModerationDetail&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> has_one :history, :class_name =&gt; &quot;PostHistory&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> has_many :votes, :class_name =&gt; &quot;PostVote&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> has_many :notes, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> has_many :comments</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> has_many :children, :class_name =&gt; &quot;Post&quot;, :foreign_key =&gt; &quot;parent_id&quot;, :order =&gt; &quot;posts.id&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> validates_uniqueness_of :md5</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="7">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> validates_presence_of :parent, :if =&gt; lambda {|rec| !rec.parent_id.nil?}</pre>
</td>
<td class="hits">
7
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> validate :validate_parent_does_not_have_a_parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> attr_accessible :source, :rating, :tag_string, :old_tag_string, :last_noted_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> scope :visible, lambda {|user| Danbooru.config.can_user_see_post_conditions(user)}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> scope :commented_before, lambda {|date| where(&quot;last_commented_at &lt; ?&quot;, date).order(&quot;last_commented_at DESC&quot;)}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> module FileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> def delete_files</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> FileUtils.rm_f(file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> FileUtils.rm_f(medium_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> FileUtils.rm_f(large_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> FileUtils.rm_f(preview_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> def file_path_prefix</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> Rails.env == &quot;test&quot; ? &quot;test.&quot; : &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> def file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/original/#{file_path_prefix}#{md5}.#{file_ext}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> def medium_file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> if has_medium?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/medium/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> def large_file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> if has_large?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/large/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> def preview_file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/preview/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> def file_url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> &quot;/data/original/#{file_path_prefix}#{md5}.#{file_ext}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> def medium_file_url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> &quot;/data/medium/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> def large_file_url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> &quot;/data/large/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> def preview_file_url</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> &quot;/data/preview/#{file_path_prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> def file_url_for(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> case user.default_image_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> when &quot;medium&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> if image_width &gt; Danbooru.config.medium_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> medium_file_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> file_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> when &quot;large&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> if image_width &gt; Danbooru.config.large_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> large_file_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> file_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> file_url</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> def file_path_for(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> case user.default_image_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> when &quot;medium&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> if image_width &gt; Danbooru.config.medium_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> medium_file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> when &quot;large&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> if image_width &gt; Danbooru.config.large_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> large_file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> def is_image?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> file_ext =~ /jpg|gif|png/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> def is_flash?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> file_ext =~ /swf/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre> module ImageMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> def has_medium?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> image_width &gt; Danbooru.config.medium_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre> def has_large?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> image_width &gt; Danbooru.config.large_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> def medium_image_width</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> [Danbooru.config.medium_image_width, image_width].min</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> def large_image_width</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> [Danbooru.config.large_image_width, image_width].min</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> def medium_image_height</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre> ratio = Danbooru.config.medium_image_width.to_f / image_width.to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre> if ratio &lt; 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> (image_height * ratio).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> def large_image_height</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> ratio = Danbooru.config.large_image_width.to_f / image_width.to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> if ratio &lt; 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> (image_height * ratio).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> def image_width_for(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> case user.default_image_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> when &quot;medium&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> medium_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> when &quot;large&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre> large_image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre> image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> def image_height_for(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> case user.default_image_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre> when &quot;medium&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> medium_image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre> when &quot;large&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> large_image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre> image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> module ApprovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre> def unapprove!(reason)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> raise Unapproval::Error.new(&quot;This post has already been flagged&quot;) if is_flagged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> raise Unapproval::Error.new(&quot;This post has already been unapproved once&quot;) unless unapproval.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> unapproval = create_unapproval(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre> :unapprover_id =&gt; CurrentUser.user.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre> :unapprover_ip_addr =&gt; CurrentUser.ip_addr,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> :reason =&gt; reason</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre> if unapproval.errors.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre> raise Unapproval::Error.new(unapproval.errors.full_messages.join(&quot;; &quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> update_attribute(:is_flagged, true)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> def approve!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre> raise ApprovalError.new(&quot;You have already approved this post previously&quot;) if approver_string == &quot;approver:#{CurrentUser.name}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> self.is_flagged = false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre> self.is_pending = false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> self.approver_string = &quot;approver:#{CurrentUser.name}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre> save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>223</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>224</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>225</pre>
</td>
<td>
<pre> module PresenterMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>226</pre>
</td>
<td>
<pre> def pretty_rating</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>227</pre>
</td>
<td>
<pre> case rating</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>228</pre>
</td>
<td>
<pre> when &quot;q&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>229</pre>
</td>
<td>
<pre> &quot;Questionable&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>230</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>231</pre>
</td>
<td>
<pre> when &quot;e&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>232</pre>
</td>
<td>
<pre> &quot;Explicit&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>233</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>234</pre>
</td>
<td>
<pre> when &quot;s&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>235</pre>
</td>
<td>
<pre> &quot;Safe&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>236</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>237</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>238</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>239</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>240</pre>
</td>
<td>
<pre> module HistoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>241</pre>
</td>
<td>
<pre> def revisions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>242</pre>
</td>
<td>
<pre> if history.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>243</pre>
</td>
<td>
<pre> update_history</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>244</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>245</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>246</pre>
</td>
<td>
<pre> history.revisions</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>247</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>248</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>249</pre>
</td>
<td>
<pre> def update_history</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>250</pre>
</td>
<td>
<pre> if history.nil?</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>251</pre>
</td>
<td>
<pre> create_history</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>252</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>253</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>254</pre>
</td>
<td>
<pre> history &lt;&lt; self</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>255</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>256</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>257</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>258</pre>
</td>
<td>
<pre> module TagMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>259</pre>
</td>
<td>
<pre> def tag_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="24">
<td class="line_number">
<pre>260</pre>
</td>
<td>
<pre> @tag_array ||= Tag.scan_tags(tag_string)</pre>
</td>
<td class="hits">
24
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>261</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>262</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>263</pre>
</td>
<td>
<pre> def tag_array_was</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>264</pre>
</td>
<td>
<pre> @tag_array_was ||= Tag.scan_tags(tag_string_was)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>265</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>266</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>267</pre>
</td>
<td>
<pre> def create_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>268</pre>
</td>
<td>
<pre> set_tag_string(tag_array.map {|x| Tag.find_or_create_by_name(x).name}.join(&quot; &quot;))</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>269</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>270</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>271</pre>
</td>
<td>
<pre> def increment_tag_post_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>272</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE tags SET post_count = post_count + 1 WHERE name IN (?)&quot;, tag_array) if tag_array.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>273</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>274</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>275</pre>
</td>
<td>
<pre> def decrement_tag_post_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>276</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE tags SET post_count = post_count - 1 WHERE name IN (?)&quot;, tag_array) if tag_array.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>277</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>278</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>279</pre>
</td>
<td>
<pre> def update_tag_post_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>280</pre>
</td>
<td>
<pre> decrement_tags = tag_array_was - tag_array</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>281</pre>
</td>
<td>
<pre> increment_tags = tag_array - tag_array_was</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>282</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE tags SET post_count = post_count - 1 WHERE name IN (?)&quot;, decrement_tags) if decrement_tags.any?</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>283</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE tags SET post_count = post_count + 1 WHERE name IN (?)&quot;, increment_tags) if increment_tags.any?</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>284</pre>
</td>
<td>
<pre> decrement_tags.each do |tag|</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>285</pre>
</td>
<td>
<pre> expire_cache(tag)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>286</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>287</pre>
</td>
<td>
<pre> increment_tags.each do |tag|</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>288</pre>
</td>
<td>
<pre> expire_cache(tag)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>289</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>290</pre>
</td>
<td>
<pre> expire_cache(&quot;&quot;)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>291</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>292</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>293</pre>
</td>
<td>
<pre> def set_tag_counts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>294</pre>
</td>
<td>
<pre> self.tag_count = 0</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>295</pre>
</td>
<td>
<pre> self.tag_count_general = 0</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>296</pre>
</td>
<td>
<pre> self.tag_count_artist = 0</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>297</pre>
</td>
<td>
<pre> self.tag_count_copyright = 0</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>298</pre>
</td>
<td>
<pre> self.tag_count_character = 0</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>299</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>300</pre>
</td>
<td>
<pre> categories = Tag.categories_for(tag_array)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>301</pre>
</td>
<td>
<pre> categories.each_value do |category|</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>302</pre>
</td>
<td>
<pre> self.tag_count += 1</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>303</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>304</pre>
</td>
<td>
<pre> case category</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>305</pre>
</td>
<td>
<pre> when Tag.categories.general</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>306</pre>
</td>
<td>
<pre> self.tag_count_general += 1</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>307</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>308</pre>
</td>
<td>
<pre> when Tag.categories.artist</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>309</pre>
</td>
<td>
<pre> self.tag_count_artist += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>310</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>311</pre>
</td>
<td>
<pre> when Tag.categories.copyright</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>312</pre>
</td>
<td>
<pre> self.tag_count_copyright += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>313</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>314</pre>
</td>
<td>
<pre> when Tag.categories.character</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>315</pre>
</td>
<td>
<pre> self.tag_count_character += 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>316</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>317</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>318</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>319</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>320</pre>
</td>
<td>
<pre> def merge_old_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>321</pre>
</td>
<td>
<pre> if old_tag_string</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>322</pre>
</td>
<td>
<pre> # If someone else committed changes to this post before we did,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>323</pre>
</td>
<td>
<pre> # then try to merge the tag changes together.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>324</pre>
</td>
<td>
<pre> current_tags = tag_array_was()</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>325</pre>
</td>
<td>
<pre> new_tags = tag_array()</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>326</pre>
</td>
<td>
<pre> old_tags = Tag.scan_tags(old_tag_string) </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>327</pre>
</td>
<td>
<pre> set_tag_string(((current_tags + new_tags) - old_tags + (current_tags &amp; new_tags)).uniq.join(&quot; &quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>328</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>329</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>330</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>331</pre>
</td>
<td>
<pre> def reset_tag_array_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>332</pre>
</td>
<td>
<pre> @tag_array = nil</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>333</pre>
</td>
<td>
<pre> @tag_array_was = nil</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>334</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>335</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>336</pre>
</td>
<td>
<pre> def set_tag_string(string)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>337</pre>
</td>
<td>
<pre> self.tag_string = string</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>338</pre>
</td>
<td>
<pre> reset_tag_array_cache</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>339</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>340</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>341</pre>
</td>
<td>
<pre> def normalize_tags</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>342</pre>
</td>
<td>
<pre> normalized_tags = Tag.scan_tags(tag_string)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>343</pre>
</td>
<td>
<pre> normalized_tags = TagAlias.to_aliased(normalized_tags)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>344</pre>
</td>
<td>
<pre> normalized_tags = TagImplication.with_descendants(normalized_tags)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>345</pre>
</td>
<td>
<pre> normalized_tags = filter_metatags(normalized_tags)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>346</pre>
</td>
<td>
<pre> set_tag_string(normalized_tags.uniq.join(&quot; &quot;))</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>347</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>348</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>349</pre>
</td>
<td>
<pre> def filter_metatags(tags)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="30">
<td class="line_number">
<pre>350</pre>
</td>
<td>
<pre> tags.reject {|tag| tag =~ /\A(?:pool|rating|fav|approver|uploader):/}</pre>
</td>
<td class="hits">
30
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>351</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>352</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>353</pre>
</td>
<td>
<pre> def has_tag?(tag)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>354</pre>
</td>
<td>
<pre> tag_string =~ /(?:^| )#{tag}(?:$| )/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>355</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>356</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>357</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>358</pre>
</td>
<td>
<pre> module FavoriteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>359</pre>
</td>
<td>
<pre> def delete_favorites</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>360</pre>
</td>
<td>
<pre> Favorite.destroy_for_post(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>361</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>362</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>363</pre>
</td>
<td>
<pre> def add_favorite(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>364</pre>
</td>
<td>
<pre> if user.is_a?(ActiveRecord::Base)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>365</pre>
</td>
<td>
<pre> user_id = user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>366</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>367</pre>
</td>
<td>
<pre> user_id = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>368</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>369</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>370</pre>
</td>
<td>
<pre> return false if fav_string =~ /(?:\A| )fav:#{user_id}(?:\Z| )/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>371</pre>
</td>
<td>
<pre> self.fav_string += &quot; fav:#{user_id}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>372</pre>
</td>
<td>
<pre> self.fav_string.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>373</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>374</pre>
</td>
<td>
<pre> # in order to avoid rerunning the callbacks, just update through raw sql</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>375</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET fav_string = ? WHERE id = ?&quot;, fav_string, id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>376</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>377</pre>
</td>
<td>
<pre> Favorite.create(:user_id =&gt; user_id, :post_id =&gt; id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>378</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>379</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>380</pre>
</td>
<td>
<pre> def remove_favorite(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>381</pre>
</td>
<td>
<pre> if user.is_a?(ActiveRecord::Base)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>382</pre>
</td>
<td>
<pre> user_id = user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>383</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>384</pre>
</td>
<td>
<pre> user_id = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>385</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>386</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>387</pre>
</td>
<td>
<pre> self.fav_string.gsub!(/(?:\A| )fav:#{user_id}(?:\Z| )/, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>388</pre>
</td>
<td>
<pre> self.fav_string.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>389</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>390</pre>
</td>
<td>
<pre> # in order to avoid rerunning the callbacks, just update through raw sql</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>391</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET fav_string = ? WHERE id = ?&quot;, fav_string, id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>392</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>393</pre>
</td>
<td>
<pre> Favorite.destroy(:user_id =&gt; user_id, :post_id =&gt; id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>394</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>395</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>396</pre>
</td>
<td>
<pre> def favorited_user_ids</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>397</pre>
</td>
<td>
<pre> fav_string.scan(/\d+/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>398</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>399</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>400</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>401</pre>
</td>
<td>
<pre> module SearchMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>402</pre>
</td>
<td>
<pre> class SearchError &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>403</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>404</pre>
</td>
<td>
<pre> def add_range_relation(arr, field, relation)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="216">
<td class="line_number">
<pre>405</pre>
</td>
<td>
<pre> case arr[0]</pre>
</td>
<td class="hits">
216
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>406</pre>
</td>
<td>
<pre> when :eq</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>407</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} = ?&quot;, arr[1]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>408</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>409</pre>
</td>
<td>
<pre> when :gt</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>410</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} &gt; ?&quot;, arr[1]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>411</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>412</pre>
</td>
<td>
<pre> when :gte</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>413</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} &gt;= ?&quot;, arr[1]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>414</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>415</pre>
</td>
<td>
<pre> when :lt</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>416</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} &lt; ?&quot;, arr[1]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>417</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>418</pre>
</td>
<td>
<pre> when :lte</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>419</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} &lt;= ?&quot;, arr[1]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>420</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>421</pre>
</td>
<td>
<pre> when :between</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>422</pre>
</td>
<td>
<pre> relation.where([&quot;#{field} BETWEEN ? AND ?&quot;, arr[1], arr[2]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>423</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>424</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="216">
<td class="line_number">
<pre>425</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
216
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>426</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>427</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>428</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>429</pre>
</td>
<td>
<pre> def escape_string_for_tsquery(array)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>430</pre>
</td>
<td>
<pre> array.map do |token|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>431</pre>
</td>
<td>
<pre> escaped_token = token.gsub(/\\|'/, '\0\0\0\0').gsub(&quot;?&quot;, &quot;\\\\77&quot;).gsub(&quot;%&quot;, &quot;\\\\37&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>432</pre>
</td>
<td>
<pre> &quot;''&quot; + escaped_token + &quot;''&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>433</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>434</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>435</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>436</pre>
</td>
<td>
<pre> def add_tag_string_search_relation(tags, relation)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>437</pre>
</td>
<td>
<pre> tag_query_sql = []</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>438</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>439</pre>
</td>
<td>
<pre> if tags[:include].any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>440</pre>
</td>
<td>
<pre> tag_query_sql &lt;&lt; &quot;(&quot; + escape_string_for_tsquery(tags[:include]).join(&quot; | &quot;) + &quot;)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>441</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>442</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>443</pre>
</td>
<td>
<pre> if tags[:related].any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>444</pre>
</td>
<td>
<pre> raise SearchError.new(&quot;You cannot search for more than #{Danbooru.config.tag_query_limit} tags at a time&quot;) if tags[:related].size &gt; Danbooru.config.tag_query_limit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>445</pre>
</td>
<td>
<pre> tag_query_sql &lt;&lt; &quot;(&quot; + escape_string_for_tsquery(tags[:related]).join(&quot; &amp; &quot;) + &quot;)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>446</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>447</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>448</pre>
</td>
<td>
<pre> if tags[:exclude].any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>449</pre>
</td>
<td>
<pre> raise SearchError.new(&quot;You cannot search for more than #{Danbooru.config.tag_query_limit} tags at a time&quot;) if tags[:exclude].size &gt; Danbooru.config.tag_query_limit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>450</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>451</pre>
</td>
<td>
<pre> if tags[:related].any? || tags[:include].any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>452</pre>
</td>
<td>
<pre> tag_query_sql &lt;&lt; &quot;!(&quot; + escape_string_for_tsquery(tags[:exclude]).join(&quot; | &quot;) + &quot;)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>453</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>454</pre>
</td>
<td>
<pre> raise SearchError.new(&quot;You cannot search for only excluded tags&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>455</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>456</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>457</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>458</pre>
</td>
<td>
<pre> if tag_query_sql.any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>459</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.tag_index @@ to_tsquery('danbooru', E'&quot; + tag_query_sql.join(&quot; &amp; &quot;) + &quot;')&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>460</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>461</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>462</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>463</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>464</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>465</pre>
</td>
<td>
<pre> def add_tag_subscription_relation(subscriptions, relation)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>466</pre>
</td>
<td>
<pre> subscriptions.each do |subscription|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>467</pre>
</td>
<td>
<pre> subscription =~ /^(.+?):(.+)$/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>468</pre>
</td>
<td>
<pre> user_name = $1 || subscription</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>469</pre>
</td>
<td>
<pre> subscription_name = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>470</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>471</pre>
</td>
<td>
<pre> user = User.find_by_name(user_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>472</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>473</pre>
</td>
<td>
<pre> if user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>474</pre>
</td>
<td>
<pre> post_ids = TagSubscription.find_post_ids(user.id, subscription_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>475</pre>
</td>
<td>
<pre> relation = relation.where([&quot;posts.id IN (?)&quot;, post_ids])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>476</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>477</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>478</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>479</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>480</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>481</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>482</pre>
</td>
<td>
<pre> def find_by_tags(q, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>483</pre>
</td>
<td>
<pre> unless q.is_a?(Hash)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>484</pre>
</td>
<td>
<pre> q = Tag.parse_query(q)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>485</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>486</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>487</pre>
</td>
<td>
<pre> if q[:status] == &quot;deleted&quot;</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>488</pre>
</td>
<td>
<pre> relation = RemovedPost.where(&quot;TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>489</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>490</pre>
</td>
<td>
<pre> relation = where(&quot;TRUE&quot;)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>491</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>492</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>493</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:post_id], &quot;posts.id&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>494</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:mpixels], &quot;posts.width * posts.height / 1000000.0&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>495</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:width], &quot;posts.image_width&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>496</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:height], &quot;posts.image_height&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>497</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:score], &quot;posts.score&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>498</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:filesize], &quot;posts.file_size&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>499</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:date], &quot;posts.created_at::date&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>500</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:general_tag_count], &quot;posts.tag_count_general&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>501</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:artist_tag_count], &quot;posts.tag_count_artist&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>502</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:copyright_tag_count], &quot;posts.tag_count_copyright&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>503</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:character_tag_count], &quot;posts.tag_count_character&quot;, relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>504</pre>
</td>
<td>
<pre> relation = add_range_relation(q[:tag_count], &quot;posts.tag_count&quot;, relation) </pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>505</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>506</pre>
</td>
<td>
<pre> if options[:before_id]</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>507</pre>
</td>
<td>
<pre> relation = relation.where([&quot;posts.id &lt; ?&quot;, options[:before_id]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>508</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>509</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>510</pre>
</td>
<td>
<pre> if q[:md5].any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>511</pre>
</td>
<td>
<pre> relation = relation.where([&quot;posts.md5 IN (?)&quot;, q[:md5]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>512</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>513</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>514</pre>
</td>
<td>
<pre> if q[:status] == &quot;pending&quot;</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>515</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.is_pending = TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>516</pre>
</td>
<td>
<pre> elsif q[:status] == &quot;flagged&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>517</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.is_flagged = TRUE&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>518</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>519</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>520</pre>
</td>
<td>
<pre> if q[:source].is_a?(String)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>521</pre>
</td>
<td>
<pre> relation = relation.where([&quot;posts.source LIKE ? ESCAPE E'\\\\'&quot;, q[:source]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>522</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>523</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>524</pre>
</td>
<td>
<pre> if q[:subscriptions].any?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>525</pre>
</td>
<td>
<pre> relation = add_tag_subscription_relation(q[:subscriptions], relation)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>526</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>527</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>528</pre>
</td>
<td>
<pre> relation = add_tag_string_search_relation(q[:tags], relation)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>529</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>530</pre>
</td>
<td>
<pre> if q[:rating] == &quot;q&quot;</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>531</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating = 'q'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>532</pre>
</td>
<td>
<pre> elsif q[:rating] == &quot;s&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>533</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating = 's'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>534</pre>
</td>
<td>
<pre> elsif q[:rating] == &quot;e&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>535</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating = 'e'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>536</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>537</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>538</pre>
</td>
<td>
<pre> if q[:rating_negated] == &quot;q&quot;</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>539</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating &lt;&gt; 'q'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>540</pre>
</td>
<td>
<pre> elsif q[:rating_negated] == &quot;s&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>541</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating &lt;&gt; 's'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>542</pre>
</td>
<td>
<pre> elsif q[:rating_negated] == &quot;e&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>543</pre>
</td>
<td>
<pre> relation = relation.where(&quot;posts.rating &lt;&gt; 'e'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>544</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>545</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>546</pre>
</td>
<td>
<pre> case q[:order]</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>547</pre>
</td>
<td>
<pre> when &quot;id&quot;, &quot;id_asc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>548</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.id&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>549</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>550</pre>
</td>
<td>
<pre> when &quot;id_desc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>551</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>552</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>553</pre>
</td>
<td>
<pre> when &quot;score&quot;, &quot;score_desc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>554</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.score DESC, posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>555</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>556</pre>
</td>
<td>
<pre> when &quot;score_asc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>557</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.score, posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>558</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>559</pre>
</td>
<td>
<pre> when &quot;mpixels&quot;, &quot;mpixels_desc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>560</pre>
</td>
<td>
<pre> # Use &quot;w*h/1000000&quot;, even though &quot;w*h&quot; would give the same result, so this can use</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>561</pre>
</td>
<td>
<pre> # the posts_mpixels index.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>562</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.image_width * posts.image_height / 1000000.0 DESC, posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>563</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>564</pre>
</td>
<td>
<pre> when &quot;mpixels_asc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>565</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.image_width * posts.image_height / 1000000.0, posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>566</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>567</pre>
</td>
<td>
<pre> when &quot;portrait&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>568</pre>
</td>
<td>
<pre> relation = relation.order(&quot;1.0 * posts.image_width / GREATEST(1, posts.image_height), posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>569</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>570</pre>
</td>
<td>
<pre> when &quot;landscape&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>571</pre>
</td>
<td>
<pre> relation = relation.order(&quot;1.0 * posts.image_width / GREATEST(1, posts.image_height) DESC, posts.id DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>572</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>573</pre>
</td>
<td>
<pre> when &quot;filesize&quot;, &quot;filesize_desc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>574</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.file_size DESC&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>575</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>576</pre>
</td>
<td>
<pre> when &quot;filesize_asc&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>577</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.file_size&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>578</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>579</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>580</pre>
</td>
<td>
<pre> relation = relation.order(&quot;posts.id DESC&quot;)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>581</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>582</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>583</pre>
</td>
<td>
<pre> if options[:limit]</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>584</pre>
</td>
<td>
<pre> relation = relation.limit(options[:limit])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>585</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>586</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>587</pre>
</td>
<td>
<pre> if options[:offset]</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>588</pre>
</td>
<td>
<pre> relation = relation.offset(options[:offset])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>589</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>590</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>591</pre>
</td>
<td>
<pre> if options[:select]</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>592</pre>
</td>
<td>
<pre> relation = relation.select(options[:select])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>593</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>594</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>595</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>596</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>597</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>598</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>599</pre>
</td>
<td>
<pre> module UploaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>600</pre>
</td>
<td>
<pre> def initialize_uploader</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>601</pre>
</td>
<td>
<pre> self.uploader = CurrentUser.user</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>602</pre>
</td>
<td>
<pre> self.uploader_ip_addr = CurrentUser.ip_addr</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>603</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>604</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>605</pre>
</td>
<td>
<pre> def uploader_id=(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>606</pre>
</td>
<td>
<pre> self.uploader = User.find(user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>607</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>608</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>609</pre>
</td>
<td>
<pre> def uploader_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>610</pre>
</td>
<td>
<pre> uploader_string[9..-1].to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>611</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>612</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>613</pre>
</td>
<td>
<pre> def uploader_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>614</pre>
</td>
<td>
<pre> User.id_to_name(uploader_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>615</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>616</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>617</pre>
</td>
<td>
<pre> def uploader</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>618</pre>
</td>
<td>
<pre> User.find(uploader_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>619</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>620</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>621</pre>
</td>
<td>
<pre> def uploader=(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>622</pre>
</td>
<td>
<pre> self.uploader_string = &quot;uploader:#{user.id}&quot;</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>623</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>624</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>625</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>626</pre>
</td>
<td>
<pre> module PoolMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>627</pre>
</td>
<td>
<pre> def add_pool(pool)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>628</pre>
</td>
<td>
<pre> return if pool_string =~ /(?:\A| )pool:#{pool.id}(?:\Z| )/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>629</pre>
</td>
<td>
<pre> self.pool_string += &quot; pool:#{pool.id}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>630</pre>
</td>
<td>
<pre> self.pool_string.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>631</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET pool_string = ? WHERE id = ?&quot;, pool_string, id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>632</pre>
</td>
<td>
<pre> pool.add_post!(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>633</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>634</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>635</pre>
</td>
<td>
<pre> def remove_pool(pool)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>636</pre>
</td>
<td>
<pre> self.pool_string.gsub!(/(?:\A| )pool:#{pool.id}(?:\Z| )/, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>637</pre>
</td>
<td>
<pre> self.pool_string.strip!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>638</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET pool_string = ? WHERE id = ?&quot;, pool_string, id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>639</pre>
</td>
<td>
<pre> pool.remove_post!(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>640</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>641</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>642</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>643</pre>
</td>
<td>
<pre> module VoteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>644</pre>
</td>
<td>
<pre> def can_be_voted_by?(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>645</pre>
</td>
<td>
<pre> !votes.exists?([&quot;user_id = ?&quot;, user.id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>646</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>647</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>648</pre>
</td>
<td>
<pre> def vote!(score)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>649</pre>
</td>
<td>
<pre> if can_be_voted_by?(CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>650</pre>
</td>
<td>
<pre> if score == &quot;up&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>651</pre>
</td>
<td>
<pre> increment!(:score)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>652</pre>
</td>
<td>
<pre> elsif score == &quot;down&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>653</pre>
</td>
<td>
<pre> decrement!(:score)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>654</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>655</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>656</pre>
</td>
<td>
<pre> votes.create(:score =&gt; score)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>657</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>658</pre>
</td>
<td>
<pre> raise PostVote::Error.new(&quot;You have already voted for this comment&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>659</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>660</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>661</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>662</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>663</pre>
</td>
<td>
<pre> module CountMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>664</pre>
</td>
<td>
<pre> def fast_count(tags = &quot;&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>665</pre>
</td>
<td>
<pre> tags = tags.to_s</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>666</pre>
</td>
<td>
<pre> count = Cache.get(&quot;pfc:#{Cache.sanitize(tags)}&quot;)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>667</pre>
</td>
<td>
<pre> if count.nil?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>668</pre>
</td>
<td>
<pre> count = Post.find_by_tags(&quot;#{tags}&quot;).count</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>669</pre>
</td>
<td>
<pre> if count &gt; Danbooru.config.posts_per_page * 10</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>670</pre>
</td>
<td>
<pre> Cache.put(&quot;pfc:#{Cache.sanitize(tags)}&quot;, count, (count * 4).minutes)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>671</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>672</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>673</pre>
</td>
<td>
<pre> count</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>674</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>675</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>676</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>677</pre>
</td>
<td>
<pre> module CacheMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>678</pre>
</td>
<td>
<pre> def expire_cache(tag_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>679</pre>
</td>
<td>
<pre> if Post.fast_count(&quot;&quot;) &lt; 1000</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>680</pre>
</td>
<td>
<pre> Cache.delete(&quot;pfc:&quot;)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>681</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>682</pre>
</td>
<td>
<pre> Cache.delete(&quot;pfc:#{Cache.sanitize(tag_name)}&quot;)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>683</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>684</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>685</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>686</pre>
</td>
<td>
<pre> module ParentMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>687</pre>
</td>
<td>
<pre> # A parent has many children. A child belongs to a parent. </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>688</pre>
</td>
<td>
<pre> # A parent cannot have a parent.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>689</pre>
</td>
<td>
<pre> #</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>690</pre>
</td>
<td>
<pre> # After deleting a child:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>691</pre>
</td>
<td>
<pre> # - Move favorites to parent.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>692</pre>
</td>
<td>
<pre> # - Does the parent have any active children?</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>693</pre>
</td>
<td>
<pre> # - Yes: Done.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>694</pre>
</td>
<td>
<pre> # - No: Update parent's has_children flag to false.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>695</pre>
</td>
<td>
<pre> #</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>696</pre>
</td>
<td>
<pre> # After deleting a parent:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>697</pre>
</td>
<td>
<pre> # - Move favorites to the first child.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>698</pre>
</td>
<td>
<pre> # - Reparent all active children to the first active child.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>699</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>700</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>701</pre>
</td>
<td>
<pre> def update_has_children_flag_for(post_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>702</pre>
</td>
<td>
<pre> has_children = Post.exists?([&quot;parent_id = ?&quot;, post_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>703</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET has_children = ? WHERE id = ?&quot;, has_children, post_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>704</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>705</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>706</pre>
</td>
<td>
<pre> def recalculate_has_children_for_all_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>707</pre>
</td>
<td>
<pre> transaction do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>708</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET has_children = false WHERE has_children = true&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>709</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE posts SET has_children = true WHERE id IN (SELECT p.parent_id FROM posts p WHERE p.parent_id IS NOT NULL)&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>710</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>711</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>712</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>713</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>714</pre>
</td>
<td>
<pre> def self.included(m)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>715</pre>
</td>
<td>
<pre> m.extend(ClassMethods)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>716</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>717</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>718</pre>
</td>
<td>
<pre> def validate_parent_does_not_have_a_parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>719</pre>
</td>
<td>
<pre> return if parent.nil?</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>720</pre>
</td>
<td>
<pre> if !parent.parent.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>721</pre>
</td>
<td>
<pre> errors.add(:parent, &quot;can not have a parent&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>722</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>723</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>724</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>725</pre>
</td>
<td>
<pre> def update_parent_on_destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>726</pre>
</td>
<td>
<pre> Post.update_has_children_flag_for(parent_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>727</pre>
</td>
<td>
<pre> Post.update_has_children_flag_for(parent_id_was) if parent_id_was &amp;&amp; parent_id != parent_id_was</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>728</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>729</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>730</pre>
</td>
<td>
<pre> def update_children_on_destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>731</pre>
</td>
<td>
<pre> if children.size == 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>732</pre>
</td>
<td>
<pre> # do nothing</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>733</pre>
</td>
<td>
<pre> elsif children.size == 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>734</pre>
</td>
<td>
<pre> children.first.update_attribute(:parent_id, nil)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>735</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>736</pre>
</td>
<td>
<pre> cached_children = children</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>737</pre>
</td>
<td>
<pre> cached_children[1..-1].each do |child|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>738</pre>
</td>
<td>
<pre> child.update_attribute(:parent_id, cached_children[0].id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>739</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>740</pre>
</td>
<td>
<pre> cached_children[0].update_attribute(:parent_id, nil)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>741</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>742</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>743</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>744</pre>
</td>
<td>
<pre> def update_parent_on_save</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>745</pre>
</td>
<td>
<pre> if parent_id == parent_id_was</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>746</pre>
</td>
<td>
<pre> # do nothing</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>747</pre>
</td>
<td>
<pre> elsif !parent_id_was.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>748</pre>
</td>
<td>
<pre> Post.update_has_children_flag_for(parent_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>749</pre>
</td>
<td>
<pre> Post.update_has_children_flag_for(parent_id_was)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>750</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>751</pre>
</td>
<td>
<pre> Post.update_has_children_flag_for(parent_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>752</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>753</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>754</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>755</pre>
</td>
<td>
<pre> def give_favorites_to_parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>756</pre>
</td>
<td>
<pre> return if parent.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>757</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>758</pre>
</td>
<td>
<pre> favorited_user_ids.each do |user_id|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>759</pre>
</td>
<td>
<pre> parent.add_favorite(user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>760</pre>
</td>
<td>
<pre> remove_favorite(user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>761</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>762</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>763</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>764</pre>
</td>
<td>
<pre> def delete_favorites</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>765</pre>
</td>
<td>
<pre> Favorite.destroy_for_post(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>766</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>767</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>768</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>769</pre>
</td>
<td>
<pre> module RemovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>770</pre>
</td>
<td>
<pre> def remove!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>771</pre>
</td>
<td>
<pre> Post.transaction do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>772</pre>
</td>
<td>
<pre> execute_sql(&quot;INSERT INTO removed_posts (#{Post.column_names.join(', ')}) SELECT #{Post.column_names.join(', ')} FROM posts WHERE posts.id = #{id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>773</pre>
</td>
<td>
<pre> give_favorites_to_parent</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>774</pre>
</td>
<td>
<pre> update_children_on_destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>775</pre>
</td>
<td>
<pre> delete_favorites</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>776</pre>
</td>
<td>
<pre> decrement_tag_post_counts</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>777</pre>
</td>
<td>
<pre> execute_sql(&quot;DELETE FROM posts WHERE id = #{id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>778</pre>
</td>
<td>
<pre> update_parent_on_destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>779</pre>
</td>
<td>
<pre> tag_array.each {|x| expire_cache(x)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>780</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>781</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>782</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>783</pre>
</td>
<td>
<pre> def is_removed?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>784</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>785</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>786</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>787</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>788</pre>
</td>
<td>
<pre> include FileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>789</pre>
</td>
<td>
<pre> include ImageMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>790</pre>
</td>
<td>
<pre> include ApprovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>791</pre>
</td>
<td>
<pre> include PresenterMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>792</pre>
</td>
<td>
<pre> include HistoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>793</pre>
</td>
<td>
<pre> include TagMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>794</pre>
</td>
<td>
<pre> include FavoriteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>795</pre>
</td>
<td>
<pre> include UploaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>796</pre>
</td>
<td>
<pre> include PoolMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>797</pre>
</td>
<td>
<pre> extend SearchMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>798</pre>
</td>
<td>
<pre> include VoteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>799</pre>
</td>
<td>
<pre> extend CountMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>800</pre>
</td>
<td>
<pre> include CacheMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>801</pre>
</td>
<td>
<pre> include ParentMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>802</pre>
</td>
<td>
<pre> include RemovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>803</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>804</pre>
</td>
<td>
<pre> def reload(options = nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>805</pre>
</td>
<td>
<pre> super</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>806</pre>
</td>
<td>
<pre> reset_tag_array_cache</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>807</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>808</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>809</pre>
</td>
<td>
<pre> def presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>810</pre>
</td>
<td>
<pre> @presenter ||= PostPresenter.new(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>811</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>812</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>813</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>814</pre>
</td>
<td>
<pre>Post.connection.extend(PostgresExtensions)</pre>
</td>
<td class="hits">
1
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="78aedc58a2dbe13c3c2d4612266e7800adb27144">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/post_history.rb</h3>
<h4><span class="red">50.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostHistory &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> class Revision</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> attr_accessor :prev, :hash, :diff, :tag_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> def initialize(hash)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @hash = hash</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @diff = {}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> @tag_array = Tag.scan_tags(@hash[&quot;tag_string&quot;])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def calculate_diff</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> if prev.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> diff[:add] = tag_array</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> diff[:del] = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> diff[:rating] = rating</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> diff[:source] = source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> diff[:parent_id] = parent_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> diff[:del] = prev.tag_array - tag_array</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> diff[:add] = tag_array - prev.tag_array</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> if prev.rating != rating</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> diff[:rating] = rating</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> if prev.source != source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> diff[:source] = source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> if prev.parent_id != parent_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> diff[:parent_id]= parent_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> def rating</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> hash[&quot;rating&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> def source</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> hash[&quot;source&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> def parent_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> hash[&quot;parent_id&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> def updated_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> hash[&quot;updated_at&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> def user_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> hash[&quot;user_id&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> def presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> @presenter ||= PostHistoryRevisionPresenter.new(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> before_validation :initialize_revisions, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> def self.build_revision_for_post(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> hash = {</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> :source =&gt; post.source,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> :rating =&gt; post.rating,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> :tag_string =&gt; post.tag_string,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> :parent_id =&gt; post.parent_id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> :user_id =&gt; CurrentUser.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> :ip_addr =&gt; CurrentUser.ip_addr,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> :updated_at =&gt; revision_time</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> def self.revision_time</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> Time.now</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def initialize_revisions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> write_attribute(:revisions, &quot;[]&quot;)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> def revisions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> if read_attribute(:revisions).blank?</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> JSON.parse(read_attribute(:revisions))</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> def &lt;&lt;(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> revision = self.class.build_revision_for_post(post)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> write_attribute(:revisions, (revisions &lt;&lt; revision).to_json)</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> save</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> def each_revision(&amp;block)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> array = revisions.map {|x| Revision.new(x)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> link_revisions(array)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> array.each {|x| x.calculate_diff}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> array.each(&amp;block)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> def link_revisions(array)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> 1.upto(array.size - 1) do |i|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> array[i].prev = array[i - 1]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="501f92af635abd19a6bca7f690331107d8455f87">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/post_moderation_detail.rb</h3>
<h4><span class="red">45.45 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostModerationDetail &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def self.filter(posts, user, select_hidden = false)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> hidden = where(:user_id =&gt; user.id).select(&quot;post_id&quot;).map(&amp;:post_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> if select_hidden</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> posts.select {|x| hidden.include?(x.id)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> posts.reject {|x| hidden.include?(x.id)}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def self.prune!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> joins(:post).where(&quot;posts.is_pending = FALSE AND posts.is_flagged = FALSE&quot;).each do |hidden_post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> hidden_post.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="12b6c31e481d5330f60ca9477a459a241ba441af">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/post_vote.rb</h3>
<h4><span class="red">61.54 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostVote &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> before_validation :initialize_user, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> validates_presence_of :post_id, :user_id, :score</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> validates_inclusion_of :score, :in =&gt; [1, -1]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def score=(x)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> if x == &quot;up&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> write_attribute(:score, 1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> elsif x == &quot;down&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> write_attribute(:score, -1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def initialize_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> self.user_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="336a19eddad8ff80f9102f13995ab068beb34769">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/removed_post.rb</h3>
<h4><span class="red">60.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class RemovedPost &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> has_one :unapproval, :dependent =&gt; :destroy, :foreign_key =&gt; &quot;post_id&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> module RemovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def unremove!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> Post.transaction do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> execute_sql(&quot;INSERT INTO posts (#{Post.column_names.join(', ')}) SELECT #{Post.column_names.join(', ')} FROM removed_posts WHERE id = #{id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> execute_sql(&quot;DELETE FROM removed_posts WHERE id = #{id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def fast_count(tags)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> count = Cache.get(&quot;rpfc:#{Cache.sanitize(tags)}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> if count.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> count = RemovedPost.find_by_tags(&quot;#{tags}&quot;).count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> if count &gt; Danbooru.config.posts_per_page * 10</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> Cache.put(&quot;rpfc:#{Cache.sanitize(tags)}&quot;, count, (count * 4).minutes)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def is_removed?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> include Post::FileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> include Post::ImageMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> include Post::TagMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> include Post::SearchMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> include Post::UploaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> include Post::PoolMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> include Post::CountMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> include Post::CacheMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> include RemovalMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="392312e877c1297dea19e4626e75d490f1dd7133">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/report_mailer.rb</h3>
<h4><span class="red">75.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class ReportMailer &lt; ActionMailer::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> default :host =&gt; Danbooru.config.server_host, :from =&gt; Danbooru.config.contact_email, :content_type =&gt; &quot;text/html&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def moderator_report(email)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> mail(:to =&gt; email, :subject =&gt; &quot;#{Danbooru.config.app_name} - Moderator Report&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="d27e7deb9c404017186c6c3cda05c20e7e5c28b6">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/tag.rb</h3>
<h4><span class="red">47.4 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Tag &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessible :category</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> after_save :update_category_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> has_one :wiki_page, :foreign_key =&gt; &quot;name&quot;, :primary_key =&gt; &quot;title&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> scope :by_pattern, lambda {|name| where([&quot;name LIKE ? ESCAPE E'\\\\'&quot;, name.to_escaped_for_sql_like])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> class CategoryMapping</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> Danbooru.config.reverse_tag_category_mapping.each do |value, category|</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> define_method(category.downcase) do</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="hit" data-hits="24">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> value</pre>
</td>
<td class="hits">
24
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def regexp</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="22">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> @regexp ||= Regexp.compile(Danbooru.config.tag_category_mapping.keys.sort_by {|x| -x.size}.join(&quot;|&quot;))</pre>
</td>
<td class="hits">
22
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def value_for(string)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> Danbooru.config.tag_category_mapping[string.downcase] || 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> module ViewCountMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def increment_view_count(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> Cache.incr(&quot;tvc:#{Cache.sanitize(name)}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> module CategoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def categories</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="36">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> @category_mapping ||= CategoryMapping.new</pre>
</td>
<td class="hits">
36
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def select_category_for(tag_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT category FROM tags WHERE name = ?&quot;, tag_name).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> def category_for(tag_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> Cache.get(&quot;tc:#{Cache.sanitize(tag_name)}&quot;) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> select_category_for(tag_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> def categories_for(tag_names)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> Cache.get_multi(tag_names, &quot;tc&quot;) do |name|</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> select_category_for(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> def self.included(m)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> m.extend(ClassMethods)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> def category_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> Danbooru.config.reverse_tag_category_mapping[category]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> def update_category_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> Cache.put(&quot;tc:#{Cache.sanitize(name)}&quot;, category)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> module StatisticsMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> def trending</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> module NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> def normalize_name(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> name.downcase.tr(&quot; &quot;, &quot;_&quot;).gsub(/\A[-~*]+/, &quot;&quot;)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> def find_or_create_by_name(name, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> name = normalize_name(name)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> category = categories.general</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> if name =~ /\A(#{categories.regexp}):(.+)\Z/</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> category = categories.value_for($1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> name = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> tag = find_by_name(name)</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> if tag</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> if category &gt; 0 &amp;&amp; !(options[:user] &amp;&amp; !options[:user].is_privileged? &amp;&amp; tag.post_count &gt; 10)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> tag.update_attribute(:category, category)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> tag</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> Tag.new.tap do |tag|</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> tag.name = name</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> tag.category = category</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> tag.save</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> def self.included(m)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> m.extend(ClassMethods)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> module UpdateMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> def mass_edit(start_tags, result_tags, updater_id, updater_ip_addr)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> updater = User.find(updater_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> Post.find_by_tags(start_tags).each do |p|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> start = TagAlias.to_aliased(scan_tags(start_tags))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> result = TagAlias.to_aliased(scan_tags(result_tags))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> tags = (p.tag_array - start + result).join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> CurrentUser.scoped(updater, updater_ip_addr) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> p.update_attributes(:tag_string =&gt; tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> module ParseMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> def normalize(query)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="42">
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> query.to_s.downcase.strip</pre>
</td>
<td class="hits">
42
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> def scan_query(query)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> normalize(query).scan(/\S+/).uniq</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> def scan_tags(tags)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="24">
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> normalize(tags).gsub(/[,;*]/, &quot;_&quot;).scan(/\S+/).uniq</pre>
</td>
<td class="hits">
24
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> def parse_cast(object, type)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> case type</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> when :integer</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre> object.to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> when :float</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> object.to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> when :date</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> object.to_date</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre> rescue Exception</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre> when :filesize</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> object =~ /\A(\d+(?:\.\d*)?|\d*\.\d+)([kKmM]?)[bB]?\Z/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre> size = $1.to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> unit = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> conversion_factor = case unit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> when /m/i</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre> 1024 * 1024</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> when /k/i</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> 1024</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> (size * conversion_factor).to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> def parse_helper(range, type = :integer)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> # &quot;1&quot;, &quot;0.5&quot;, &quot;5.&quot;, &quot;.5&quot;:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> # (-?(\d+(\.\d*)?|\d*\.\d+))</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> case range</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> when /\A(.+?)\.\.(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> return [:between, parse_cast($1, type), parse_cast($2, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> when /\A&lt;=(.+)/, /\A\.\.(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre> return [:lte, parse_cast($1, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> when /\A&lt;(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> return [:lt, parse_cast($1, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> when /\A&gt;=(.+)/, /\A(.+)\.\.\Z/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> return [:gte, parse_cast($1, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> when /\A&gt;(.+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> return [:gt, parse_cast($1, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> return [:eq, parse_cast(range, type)]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre> def parse_tag(tag, output)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> if tag[0] == &quot;-&quot; &amp;&amp; tag.size &gt; 1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> output[:exclude] &lt;&lt; tag[1..-1]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> elsif tag =~ /\*/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> matches = Tag.by_pattern(tag).all(:select =&gt; &quot;name&quot;, :limit =&gt; 25, :order =&gt; &quot;post_count DESC&quot;).map(&amp;:name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre> matches = [&quot;~no_matches~&quot;] if matches.empty?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> output[:include] += matches</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> output[:related] &lt;&lt; tag</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre> def parse_query(query, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="360">
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre> q = Hash.new {|h, k| h[k] = []}</pre>
</td>
<td class="hits">
360
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre> q[:tags] = {</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> :related =&gt; [],</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> :include =&gt; [],</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre> :exclude =&gt; []</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> scan_query(query).each do |token|</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> if token =~ /\A(-uploader|uploader|-pool|pool|-fav|fav|sub|md5|-rating|rating|width|height|mpixels|score|filesize|source|id|date|order|status|tagcount|gentags|arttags|chartags|copytags):(.+)\Z/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre> case $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> when &quot;-uploader&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre> q[:tags][:exclude] &lt;&lt; &quot;uploader:#{User.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>223</pre>
</td>
<td>
<pre> when &quot;uploader&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>224</pre>
</td>
<td>
<pre> q[:tags][:related] &lt;&lt; &quot;uploader:#{User.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>225</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>226</pre>
</td>
<td>
<pre> when &quot;-pool&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>227</pre>
</td>
<td>
<pre> q[:tags][:exclude] &lt;&lt; &quot;pool:#{Pool.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>228</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>229</pre>
</td>
<td>
<pre> when &quot;pool&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>230</pre>
</td>
<td>
<pre> q[:tags][:related] &lt;&lt; &quot;pool:#{Pool.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>231</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>232</pre>
</td>
<td>
<pre> when &quot;-fav&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>233</pre>
</td>
<td>
<pre> q[:tags][:exclude] &lt;&lt; &quot;fav:#{User.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>234</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>235</pre>
</td>
<td>
<pre> when &quot;fav&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>236</pre>
</td>
<td>
<pre> q[:tags][:related] &lt;&lt; &quot;fav:#{User.name_to_id($2)}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>237</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>238</pre>
</td>
<td>
<pre> when &quot;sub&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>239</pre>
</td>
<td>
<pre> q[:subscriptions] &lt;&lt; $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>240</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>241</pre>
</td>
<td>
<pre> when &quot;md5&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>242</pre>
</td>
<td>
<pre> q[:md5] = $2.split(/,/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>243</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>244</pre>
</td>
<td>
<pre> when &quot;-rating&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>245</pre>
</td>
<td>
<pre> q[:rating_negated] = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>246</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>247</pre>
</td>
<td>
<pre> when &quot;rating&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>248</pre>
</td>
<td>
<pre> q[:rating] = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>249</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>250</pre>
</td>
<td>
<pre> when &quot;id&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>251</pre>
</td>
<td>
<pre> q[:post_id] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>252</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>253</pre>
</td>
<td>
<pre> when &quot;width&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>254</pre>
</td>
<td>
<pre> q[:width] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>255</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>256</pre>
</td>
<td>
<pre> when &quot;height&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>257</pre>
</td>
<td>
<pre> q[:height] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>258</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>259</pre>
</td>
<td>
<pre> when &quot;mpixels&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>260</pre>
</td>
<td>
<pre> q[:mpixels] = parse_helper($2, :float)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>261</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>262</pre>
</td>
<td>
<pre> when &quot;score&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>263</pre>
</td>
<td>
<pre> q[:score] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>264</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>265</pre>
</td>
<td>
<pre> when &quot;filesize&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>266</pre>
</td>
<td>
<pre> q[:filesize] = parse_helper($2, :filesize)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>267</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>268</pre>
</td>
<td>
<pre> when &quot;source&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>269</pre>
</td>
<td>
<pre> q[:source] = $2.to_escaped_for_sql_like + &quot;%&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>270</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>271</pre>
</td>
<td>
<pre> when &quot;date&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>272</pre>
</td>
<td>
<pre> q[:date] = parse_helper($2, :date)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>273</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>274</pre>
</td>
<td>
<pre> when &quot;tagcount&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>275</pre>
</td>
<td>
<pre> q[:tag_count] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>276</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>277</pre>
</td>
<td>
<pre> when &quot;gentags&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>278</pre>
</td>
<td>
<pre> q[:general_tag_count] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>279</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>280</pre>
</td>
<td>
<pre> when &quot;arttags&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>281</pre>
</td>
<td>
<pre> q[:artist_tag_count] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>282</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>283</pre>
</td>
<td>
<pre> when &quot;chartags&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>284</pre>
</td>
<td>
<pre> q[:character_tag_count] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>285</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>286</pre>
</td>
<td>
<pre> when &quot;copytags&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>287</pre>
</td>
<td>
<pre> q[:copyright_tag_count] = parse_helper($2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>288</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>289</pre>
</td>
<td>
<pre> when &quot;order&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>290</pre>
</td>
<td>
<pre> q[:order] = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>291</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>292</pre>
</td>
<td>
<pre> when &quot;status&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>293</pre>
</td>
<td>
<pre> q[:status] = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>294</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>295</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>296</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>297</pre>
</td>
<td>
<pre> parse_tag(token, q[:tags])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>298</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>299</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>300</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>301</pre>
</td>
<td>
<pre> normalize_tags_in_query(q)</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>302</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>303</pre>
</td>
<td>
<pre> return q</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>304</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>305</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>306</pre>
</td>
<td>
<pre> def normalize_tags_in_query(query_hash)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>307</pre>
</td>
<td>
<pre> query_hash[:tags][:exclude] = TagAlias.to_aliased(query_hash[:tags][:exclude])</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>308</pre>
</td>
<td>
<pre> query_hash[:tags][:include] = TagAlias.to_aliased(query_hash[:tags][:include])</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="hit" data-hits="18">
<td class="line_number">
<pre>309</pre>
</td>
<td>
<pre> query_hash[:tags][:related] = TagAlias.to_aliased(query_hash[:tags][:related])</pre>
</td>
<td class="hits">
18
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>310</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>311</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>312</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>313</pre>
</td>
<td>
<pre> module RelationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>314</pre>
</td>
<td>
<pre> def update_related</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>315</pre>
</td>
<td>
<pre> counts = RelatedTagCalculator.calculate_from_sample(Danbooru.config.post_sample_size, name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>316</pre>
</td>
<td>
<pre> self.related_tags = RelatedTagCalculator.convert_hash_to_string(counts)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>317</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>318</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>319</pre>
</td>
<td>
<pre> def update_related_if_outdated</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>320</pre>
</td>
<td>
<pre> updated_related if should_update_related?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>321</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>322</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>323</pre>
</td>
<td>
<pre> def related_cache_expiry</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>324</pre>
</td>
<td>
<pre> base = Math.sqrt(post_count)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>325</pre>
</td>
<td>
<pre> if base &gt; 24</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>326</pre>
</td>
<td>
<pre> 24</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>327</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>328</pre>
</td>
<td>
<pre> base</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>329</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>330</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>331</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>332</pre>
</td>
<td>
<pre> def should_update_related?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>333</pre>
</td>
<td>
<pre> related_tags.blank? || related_tags_updated_at &lt; related_cache_expiry.hours.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>334</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>335</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>336</pre>
</td>
<td>
<pre> def related_tag_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>337</pre>
</td>
<td>
<pre> related_tags.split(/ /).in_groups_of(2)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>338</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>339</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>340</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>341</pre>
</td>
<td>
<pre> module SuggestionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>342</pre>
</td>
<td>
<pre> def find_suggestions(query)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>343</pre>
</td>
<td>
<pre> query_tokens = query.split(/_/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>344</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>345</pre>
</td>
<td>
<pre> if query_tokens.size == 2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>346</pre>
</td>
<td>
<pre> search_for = query_tokens.reverse.join(&quot;_&quot;).to_escaped_for_sql_like</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>347</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>348</pre>
</td>
<td>
<pre> search_for = &quot;%&quot; + query.to_escaped_for_sql_like + &quot;%&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>349</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>350</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>351</pre>
</td>
<td>
<pre> Tag.where([&quot;name LIKE ? ESCAPE E'\\\\' AND post_count &gt; 0 AND name &lt;&gt; ?&quot;, search_for, query]).all(:order =&gt; &quot;post_count DESC&quot;, :limit =&gt; 6, :select =&gt; &quot;name&quot;).map(&amp;:name).sort</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>352</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>353</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>354</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>355</pre>
</td>
<td>
<pre> extend ViewCountMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>356</pre>
</td>
<td>
<pre> include CategoryMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>357</pre>
</td>
<td>
<pre> extend StatisticsMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>358</pre>
</td>
<td>
<pre> include NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>359</pre>
</td>
<td>
<pre> extend UpdateMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>360</pre>
</td>
<td>
<pre> extend ParseMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>361</pre>
</td>
<td>
<pre> extend SuggestionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>362</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="4765e817a387a6f7be5be10c6e42e639595b2c28">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/tag_alias.rb</h3>
<h4><span class="red">57.89 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagAlias &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_accessor :creator_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> after_save :update_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_save :clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_save :clear_remote_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> after_save :update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> after_destroy :clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> after_destroy :clear_remote_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> validates_presence_of :creator_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> validates_uniqueness_of :antecedent_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> validate :absence_of_transitive_relation</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def self.to_aliased(names)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="60">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> alias_hash = Cache.get_multi(names.flatten, &quot;ta&quot;) do |name|</pre>
</td>
<td class="hits">
60
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> ta = TagAlias.find_by_antecedent_name(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> if ta</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> ta.consequent_name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="60">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> alias_hash.values.flatten.uniq</pre>
</td>
<td class="hits">
60
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def absence_of_transitive_relation</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> # We don't want a -&gt; b &amp;&amp; b -&gt; c chains</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> if self.class.exists?([&quot;antecedent_name = ?&quot;, consequent_name]) || self.class.exists?([&quot;consequent_name = ?&quot;, antecedent_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> self.errors[:base] &lt;&lt; &quot;Tag alias can not create a transitive relation with another tag alias&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> def clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> Cache.delete(&quot;ta:#{Cache.sanitize(antecedent_name)}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> def clear_remote_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> Danbooru.config.other_server_hosts.each do |server|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> Net::HTTP.delete(URI.parse(&quot;http://#{server}/tag_aliases/#{id}/cache&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> def update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> Cache.put(&quot;ta:#{Cache.sanitize(antecedent_name)}&quot;, consequent_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> def update_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> Post.find_by_tags(antecedent_name).find_each do |post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> escaped_antecedent_name = Regexp.escape(antecedent_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, &quot; #{consequent_name} &quot;).strip</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> post.update_attributes(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> :tag_string =&gt; fixed_tags</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="1fff6c4ccf22a1c6aa4b03674e612ca362cd5e68">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/tag_implication.rb</h3>
<h4><span class="red">51.35 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagImplication &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_save :clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_save :update_descendant_names</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_save :update_descendant_names_for_parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> after_save :update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> after_save :update_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> after_destroy :clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> after_destroy :clear_remote_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> validates_presence_of :creator_id</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> validates_uniqueness_of :antecedent_name, :scope =&gt; :consequent_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> validate :absence_of_circular_relation</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> module CacheMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def clear_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> Cache.delete(&quot;ti:#{Cache.sanitize(antecedent_name)}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @descendants = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def clear_remote_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> Danbooru.config.other_server_hosts.each do |server|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> Net::HTTP.delete(URI.parse(&quot;http://#{server}/tag_implications/#{id}/cache&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> descendant_names_array</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> module DescendantMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> extend ActiveSupport::Concern</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def with_descendants(names)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> names + Cache.get_multi(names.flatten, &quot;ti&quot;) do |name|</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> ([name] + where([&quot;antecedent_name = ?&quot;, name]).all.map {|x| x.descendant_names_array}).flatten</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="hit" data-hits="6">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end.values.flatten.uniq</pre>
</td>
<td class="hits">
6
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> def descendants</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> @descendants ||= begin</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> [].tap do |all|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> children = [consequent_name]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> until children.empty?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> all.concat(children)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> children = self.class.where([&quot;antecedent_name IN (?)&quot;, children]).all.map(&amp;:consequent_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> def descendant_names_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> Cache.get(&quot;ti:#{Cache.sanitize(antecedent_name)}&quot;) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> descendant_names.split(/ /)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> def update_descendant_names</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> self.descendant_names = descendants.join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def update_descendant_names!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> update_descendant_names</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> def update_descendant_names_for_parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> p = parent</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> while p</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> p.update_descendant_names!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> p = p.parent</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> def clear_descendants_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> @descendants = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> module ParentMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> def parent</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> @parent ||= self.class.where([&quot;consequent_name = ?&quot;, antecedent_name]).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> def clear_parent_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> @parent = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> include CacheMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> include DescendantMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> include ParentMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> def absence_of_circular_relation</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> # We don't want a -&gt; b &amp;&amp; b -&gt; a chains</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> if self.class.exists?([&quot;antecedent_name = ? and consequent_name = ?&quot;, consequent_name, antecedent_name])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> self.errors[:base] &lt;&lt; &quot;Tag implication can not create a circular relation with another tag implication&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> def update_posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> Post.find_by_tags(antecedent_name).find_each do |post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> escaped_antecedent_name = Regexp.escape(antecedent_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> fixed_tags = post.tag_string.sub(/(?:\A| )#{escaped_antecedent_name}(?:\Z| )/, &quot; #{antecedent_name} #{descendant_names} &quot;).strip</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> post.update_attributes(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> :tag_string =&gt; fixed_tags</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> def reload(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> super</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> clear_parent_cache</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> clear_descendants_cache</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a98b4d29818640be17f6432ae97b769ef94a7188">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/tag_subscription.rb</h3>
<h4><span class="red">34.78 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class TagSubscription &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :owner, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_create :initialize_post_ids</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> before_save :normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> before_save :limit_tag_count</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> scope :visible, :conditions =&gt; &quot;is_visible_on_profile = TRUE&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> attr_accessible :name, :tag_query, :post_ids, :is_visible_on_profile</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def normalize_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> self.name = name.gsub(/\W/, &quot;_&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def initialize_post_ids</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> process</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def tag_query_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> Tag.scan_query(tag_query)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> def limit_tag_count</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> self.tag_query = tag_query_array.slice(0, 20).join(&quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> def process</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> post_ids = tag_query_array.inject([]) do |all, tag|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> all += Post.find_by_tags(tag, :limit =&gt; Danbooru.config.tag_subscription_post_limit / 3, :select =&gt; &quot;posts.id&quot;, :order =&gt; &quot;posts.id desc&quot;).map(&amp;:id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> self.post_ids = post_ids.sort.reverse.slice(0, Danbooru.config.tag_subscription_post_limit).join(&quot;,&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def self.find_tags(subscription_name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> if subscription_name =~ /^(.+?):(.+)$/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> user_name = $1</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> sub_group = $2</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> user_name = subscription_name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> sub_group = nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> user = User.find_by_name(user_name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> relation = where([&quot;owner_id = ?&quot;, user.id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> if sub_group</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> relation = relation.where([&quot;name ILIKE ? ESCAPE E'\\\\'&quot;, sub_group.to_escaped_for_sql_like])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> relation.map {|x| x.tag_query.split(/ /)}.flatten</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> def self.find_post_ids(user_id, name = nil, limit = Danbooru.config.tag_subscription_post_limit)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> relation = where([&quot;owner_id = ?&quot;, user_id])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> if name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> relation = relation.where([&quot;name ILIKE ? ESCAPE E'\\\\'&quot;, name.to_escaped_for_sql_like])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> relation.map {|x| x.post_ids.split(/,/)}.flatten.uniq.map(&amp;:to_i).sort.reverse.slice(0, limit)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> def self.find_posts(user_id, name = nil, limit = Danbooru.config.tag_subscription_post_limit)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> Post.where([&quot;id in (?)&quot;, find_post_ids(user_id, name, limit)]).all(:order =&gt; &quot;id DESC&quot;, :limit =&gt; limit)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> def self.process_all</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> all.each do |tag_subscription|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> if $job_task_daemon_active != false &amp;&amp; tag_subscription.owner.is_privileged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> begin</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> tag_subscription.process</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> tag_subscription.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> rescue Exception =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> raise if Rails.environment != &quot;production&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="eefbf01f160cf9a3ce8b05e9cdcac1eec7599b93">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/unapproval.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Unapproval &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :unapprover, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> validates_presence_of :reason, :unapprover_id, :unapprover_ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="77303c4b62025b2371d9414bd62fccbea7f33ad9">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/upload.rb</h3>
<h4><span class="red">36.99 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>require &quot;danbooru_image_resizer/danbooru_image_resizer&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre>require &quot;tmpdir&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre>class Upload &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> attr_accessor :file, :image_width, :image_height, :file_ext, :md5, :file_size</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> belongs_to :uploader, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> belongs_to :post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> before_validation :initialize_uploader, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> before_validation :initialize_status, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> before_create :convert_cgi_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> after_destroy :delete_temp_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> validate :uploader_is_not_limited</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> module ValidationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> def uploader_is_not_limited</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> if !uploader.can_upload?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: uploader has reached their daily limit&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> # Because uploads are processed serially, there's no race condition here.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def validate_md5_uniqueness</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> md5_post = Post.find_by_md5(md5)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> merge_tags(md5_post) if md5_post</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def validate_file_exists</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> unless File.exists?(file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: file does not exist&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def validate_file_content_type</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> unless is_valid_content_type?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: invalid content type (#{file_ext} not allowed)&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def validate_md5_confirmation</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if !md5_confirmation.blank? &amp;&amp; md5_confirmation != md5</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: md5 mismatch&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> module ConversionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> def process!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> CurrentUser.scoped(uploader, uploader_ip_addr) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;processing&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> if is_downloadable?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> download_from_source(temp_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> validate_file_exists</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> self.file_ext = content_type_to_file_ext(content_type)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> validate_file_content_type</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> calculate_hash(file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> validate_md5_uniqueness</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> validate_md5_confirmation</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> calculate_file_size(file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> calculate_dimensions(file_path) if has_dimensions?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> generate_resizes(file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> move_file</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> post = convert_to_post</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> if post.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> update_attributes(:status =&gt; &quot;completed&quot;, :post_id =&gt; post.id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: &quot; + post.errors.full_messages.join(&quot;, &quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> rescue Exception =&gt; x</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;error: #{x} - #{x.message}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> ensure</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> delete_temp_file</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> def convert_to_post</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> Post.new.tap do |p|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> p.tag_string = tag_string</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> p.md5 = md5</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> p.file_ext = file_ext</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> p.image_width = image_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> p.image_height = image_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> p.rating = rating</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> p.source = source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> p.file_size = file_size</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> unless uploader.is_contributor?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> p.is_pending = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> def merge_tags(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> post.tag_string += &quot; #{tag_string}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> post.updater_id = uploader_id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> post.updater_ip_addr = uploader_ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> post.save</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> update_attribute(:status, &quot;duplicate: #{post.id}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> raise</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> module FileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> def delete_temp_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> FileUtils.rm_f(temp_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> def move_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> FileUtils.mv(file_path, md5_file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> def calculate_file_size(source_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> self.file_size = File.size(source_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> # Calculates the MD5 based on whatever is in temp_file_path</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> def calculate_hash(source_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> self.md5 = Digest::MD5.file(source_path).hexdigest</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> module ResizerMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> def generate_resizes(source_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> generate_resize_for(Danbooru.config.small_image_width, Danbooru.config.small_image_width, source_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> generate_resize_for(Danbooru.config.medium_image_width, nil, source_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> generate_resize_for(Danbooru.config.large_image_width, nil, source_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> def generate_resize_for(width, height, source_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> return if width.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> return unless image_width &gt; width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> return unless height.nil? || image_height &gt; height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> unless File.exists?(source_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> raise Error.new(&quot;file not found&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre> size = Danbooru.reduce_to({:width =&gt; image_width, :height =&gt; image_height}, {:width =&gt; width, :height =&gt; height})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> # If we're not reducing the resolution, only reencode if the source image larger than</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> # 200 kilobytes.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> if size[:width] == image_width &amp;&amp; size[:height] == image_height &amp;&amp; File.size?(source_path) &lt; 200.kilobytes</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> return</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> Danbooru.resize(file_ext, source_path, resized_file_path_for(width), size, 90)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> module DimensionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre> # Figures out the dimensions of the image.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre> def calculate_dimensions(file_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> image_size = ImageSize.new(File.open(file_path, &quot;rb&quot;))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre> self.image_width = image_size.get_width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> self.image_height = image_size.get_height</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> # Does this file have image dimensions?</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> def has_dimensions?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> %w(jpg gif png swf).include?(file_ext)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> module ContentTypeMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> def is_valid_content_type?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> file_ext =~ /jpg|gif|png|swf/</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> def content_type_to_file_ext(content_type)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> case content_type</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> when &quot;image/jpeg&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> &quot;jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre> when &quot;image/gif&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> &quot;gif&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre> when &quot;image/png&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> &quot;png&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre> when &quot;application/x-shockwave-flash&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> &quot;swf&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> &quot;bin&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> # Converts a content type string to a file extension</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre> def file_ext_to_content_type(file_ext)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre> case file_ext</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> when /\.jpeg$|\.jpg$/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> &quot;image/jpeg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> when /\.gif$/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> &quot;image/gif&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> when /\.png$/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> &quot;image/png&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> when /\.swf$/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre> &quot;application/x-shockwave-flash&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> &quot;application/octet-stream&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre> module FilePathMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> def md5_file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> prefix = Rails.env == &quot;test&quot; ? &quot;test.&quot; : &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/original/#{prefix}#{md5}.#{file_ext}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> def resized_file_path_for(width)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> prefix = Rails.env == &quot;test&quot; ? &quot;test.&quot; : &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> case width</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre> when Danbooru.config.small_image_width</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/preview/#{prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>223</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>224</pre>
</td>
<td>
<pre> when Danbooru.config.medium_image_width</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>225</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/medium/#{prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>226</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>227</pre>
</td>
<td>
<pre> when Danbooru.config.large_image_width</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>228</pre>
</td>
<td>
<pre> &quot;#{Rails.root}/public/data/large/#{prefix}#{md5}.jpg&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>229</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>230</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>231</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>232</pre>
</td>
<td>
<pre> def temp_file_path</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>233</pre>
</td>
<td>
<pre> @temp_file_path ||= File.join(Rails.root, &quot;tmp&quot;, &quot;#{Time.now.to_f}.#{$PROCESS_ID}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>234</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>235</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>236</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>237</pre>
</td>
<td>
<pre> module DownloaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>238</pre>
</td>
<td>
<pre> # Determines whether the source is downloadable</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>239</pre>
</td>
<td>
<pre> def is_downloadable?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>240</pre>
</td>
<td>
<pre> source =~ /^http:\/\// &amp;&amp; file_path.blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>241</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>242</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>243</pre>
</td>
<td>
<pre> # Downloads the file to destination_path</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>244</pre>
</td>
<td>
<pre> def download_from_source(destination_path)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>245</pre>
</td>
<td>
<pre> download = Download.new(source, destination_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>246</pre>
</td>
<td>
<pre> download.download!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>247</pre>
</td>
<td>
<pre> self.file_path = destination_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>248</pre>
</td>
<td>
<pre> self.content_type = download.content_type || file_ext_to_content_type(source)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>249</pre>
</td>
<td>
<pre> self.file_ext = content_type_to_file_ext(content_type)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>250</pre>
</td>
<td>
<pre> self.source = download.source</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>251</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>252</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>253</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>254</pre>
</td>
<td>
<pre> module CgiFileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>255</pre>
</td>
<td>
<pre> def convert_cgi_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>256</pre>
</td>
<td>
<pre> return if file.blank? || file.size == 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>257</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>258</pre>
</td>
<td>
<pre> self.file_path = temp_file_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>259</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>260</pre>
</td>
<td>
<pre> if file.local_path</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>261</pre>
</td>
<td>
<pre> FileUtils.cp(file.local_path, file_path)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>262</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>263</pre>
</td>
<td>
<pre> File.open(file_path, 'wb') do |out| </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>264</pre>
</td>
<td>
<pre> out.write(file.read)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>265</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>266</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>267</pre>
</td>
<td>
<pre> self.content_type = file.content_type || file_ext_to_content_type(file.original_filename)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>268</pre>
</td>
<td>
<pre> self.file_ext = content_type_to_file_ext(content_type)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>269</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>270</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>271</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>272</pre>
</td>
<td>
<pre> module StatusMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>273</pre>
</td>
<td>
<pre> def initialize_status</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>274</pre>
</td>
<td>
<pre> self.status = &quot;pending&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>275</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>276</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>277</pre>
</td>
<td>
<pre> def is_pending?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>278</pre>
</td>
<td>
<pre> status == &quot;pending&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>279</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>280</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>281</pre>
</td>
<td>
<pre> def is_completed?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>282</pre>
</td>
<td>
<pre> status == &quot;completed&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>283</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>284</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>285</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>286</pre>
</td>
<td>
<pre> module UploaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>287</pre>
</td>
<td>
<pre> def initialize_uploader</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>288</pre>
</td>
<td>
<pre> self.uploader_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>289</pre>
</td>
<td>
<pre> self.uploader_ip_addr = CurrentUser.ip_addr</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>290</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>291</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>292</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>293</pre>
</td>
<td>
<pre> include ConversionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>294</pre>
</td>
<td>
<pre> include ValidationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>295</pre>
</td>
<td>
<pre> include FileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>296</pre>
</td>
<td>
<pre> include ResizerMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>297</pre>
</td>
<td>
<pre> include DimensionMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>298</pre>
</td>
<td>
<pre> include ContentTypeMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>299</pre>
</td>
<td>
<pre> include DownloaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>300</pre>
</td>
<td>
<pre> include FilePathMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>301</pre>
</td>
<td>
<pre> include CgiFileMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>302</pre>
</td>
<td>
<pre> include StatusMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>303</pre>
</td>
<td>
<pre> include UploaderMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>304</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>305</pre>
</td>
<td>
<pre> def presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>306</pre>
</td>
<td>
<pre> @presenter ||= UploadPresenter.new(self)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>307</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>308</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="2d6cb1803310620ec0a6a92a4252d8a52b0ca0d6">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/user.rb</h3>
<h4><span class="red">55.63 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>require 'digest/sha1'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>class User &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> class Error &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> class PrivilegeError &lt; Exception ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> attr_accessor :password, :old_password, :ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> attr_accessible :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> validates_length_of :name, :within =&gt; 2..20, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> validates_format_of :name, :with =&gt; /\A[^\s;,]+\Z/, :on =&gt; :create, :message =&gt; &quot;cannot have whitespace, commas, or semicolons&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> validates_uniqueness_of :name, :case_sensitive =&gt; false, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="20">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> validates_uniqueness_of :email, :case_sensitive =&gt; false, :on =&gt; :create, :if =&gt; lambda {|rec| !rec.email.blank?}</pre>
</td>
<td class="hits">
20
</td>
</tr>
<tr class="hit" data-hits="20">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> validates_length_of :password, :minimum =&gt; 5, :if =&gt; lambda {|rec| rec.new_record? || !rec.password.blank?}</pre>
</td>
<td class="hits">
20
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> validates_inclusion_of :default_image_size, :in =&gt; %w(medium large original)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> validates_confirmation_of :password</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="20">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> validates_presence_of :email, :if =&gt; lambda {|rec| rec.new_record? &amp;&amp; Danbooru.config.enable_email_verification?}</pre>
</td>
<td class="hits">
20
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> validates_presence_of :ip_addr, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> validate :validate_ip_addr_is_not_banned, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> before_save :encrypt_password</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> after_save :update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> before_create :promote_to_admin_if_first_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> before_create :normalize_level</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> has_many :feedback, :class_name =&gt; &quot;UserFeedback&quot;, :dependent =&gt; :destroy</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> has_one :ban</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> belongs_to :inviter, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> scope :named, lambda {|name| where([&quot;lower(name) = ?&quot;, name])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> scope :admins, where(&quot;is_admin = TRUE&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> module BanMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def validate_ip_addr_is_not_banned</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> if IpBan.is_banned?(ip_addr)</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> self.errors[:base] &lt;&lt; &quot;IP address is banned&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> return false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> def unban!</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> update_attribute(:is_banned, false)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> ban.destroy</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> module NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> extend ActiveSupport::Concern</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> module ClassMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def name_to_id(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> Cache.get(&quot;uni:#{Cache.sanitize(name)}&quot;) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT id FROM users WHERE lower(name) = ?&quot;, name.downcase)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> def id_to_name(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> Cache.get(&quot;uin:#{user_id}&quot;) do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> select_value_sql(&quot;SELECT name FROM users WHERE id = ?&quot;, user_id) || Danbooru.config.default_guest_name</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> def find_by_name(name)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> where([&quot;lower(name) = ?&quot;, name.downcase]).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> def id_to_pretty_name(user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> id_to_name(user_id).tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> def pretty_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> name.tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> def update_cache</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> Cache.put(&quot;uin:#{id}&quot;, name)</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> module PasswordMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> def encrypt_password</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> self.password_hash = self.class.sha1(password) if password</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> def reset_password</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> consonants = &quot;bcdfghjklmnpqrstvqxyz&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> vowels = &quot;aeiou&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> pass = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> 4.times do</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> pass &lt;&lt; consonants[rand(21), 1]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> pass &lt;&lt; vowels[rand(5), 1]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> pass &lt;&lt; rand(100).to_s</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> execute_sql(&quot;UPDATE users SET password_hash = ? WHERE id = ?&quot;, self.class.sha1(pass), id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> pass </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> module AuthenticationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> def authenticate(name, pass)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> authenticate_hash(name, sha1(pass))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre> def authenticate_hash(name, pass)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> where([&quot;lower(name) = ? AND password_hash = ?&quot;, name.downcase, pass]).first != nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> def sha1(pass)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="38">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> Digest::SHA1.hexdigest(&quot;#{Danbooru.config.password_salt}--#{pass}--&quot;)</pre>
</td>
<td class="hits">
38
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> module FavoriteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> def favorite_posts(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> favorites_table = Favorite.table_name_for(id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> if options[:before_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> before_id_sql_fragment = [&quot;favorites.id &lt; ?&quot;, options[:before_id]]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> before_id_sql_fragment = &quot;TRUE&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> limit = options[:limit] || 20</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> Post.joins(&quot;JOIN #{favorites_table} AS favorites ON favorites.post_id = posts.id&quot;).where(&quot;favorites.user_id = ?&quot;, id).where(before_id_sql_fragment).order(&quot;favorite_id DESC&quot;).limit(limit).select(&quot;posts.*, favorites.id AS favorite_id&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> module LevelMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> def promote_to_admin_if_first_user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> return if Rails.env.test?</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> if User.count == 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> self.is_admin = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre> def normalize_level</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> if is_admin?</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> self.is_moderator = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> self.is_janitor = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre> self.is_contributor = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre> self.is_privileged = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> elsif is_moderator?</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> self.is_janitor = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> self.is_privileged = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> elsif is_janitor?</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> self.is_privileged = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="hit" data-hits="19">
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> elsif is_contributor?</pre>
</td>
<td class="hits">
19
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre> self.is_privileged = true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre> def is_anonymous?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="12">
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
12
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> def is_member?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> module EmailVerificationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> def is_verified?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> email_verification_key.blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre> def generate_email_verification_key</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> self.email_verification_key = Digest::SHA1.hexdigest(&quot;#{Time.now.to_f}--#{name}--#{rand(1_000_000)}--&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre> def verify!(key)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> if email_verification_key == key</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> self.update_attribute(:email_verification_key, nil)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> raise User::Error.new(&quot;Verification key does not match&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre> module BlacklistMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre> def blacklisted_tag_array</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> Tag.scan_query(blacklisted_tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> module ForumMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre> def has_forum_been_updated?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> return false unless is_privileged?</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> newest_topic = ForumPost.first(:order =&gt; &quot;updated_at desc&quot;, :select =&gt; &quot;updated_at&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre> return false if newest_topic.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> return true if last_forum_read_at.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> return newest_topic.updated_at &gt; last_forum_read_at</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> module LimitMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre> def can_upload?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> if is_contributor?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre> elsif created_at &gt; 1.week.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre> upload_limit &gt; 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> def can_comment?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> if is_privileged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre> elsif created_at &gt; 1.week.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre> false</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre> Comment.where(&quot;creator_id = ? and created_at &gt; ?&quot;, id, 1.hour.ago).count &lt;= Danbooru.config.member_comment_limit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> def can_comment_vote?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre> CommentVote.where(&quot;user_id = ? and created_at &gt; ?&quot;, id, 1.hour.ago).count &lt; 10</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre> def can_remove_from_pools?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> created_at &lt;= 1.week.ago</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>223</pre>
</td>
<td>
<pre> def upload_limit</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>224</pre>
</td>
<td>
<pre> deleted_count = RemovedPost.where(&quot;user_id = ?&quot;, id).count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>225</pre>
</td>
<td>
<pre> unapproved_count = Post.where(&quot;is_pending = true and user_id = ?&quot;, id).count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>226</pre>
</td>
<td>
<pre> approved_count = Post.where(&quot;is_flagged = false and is_pending = false and user_id = ?&quot;, id).count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>227</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>228</pre>
</td>
<td>
<pre> limit = base_upload_limit + (approved_count / 10) - (deleted_count / 4) - unapproved_count</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>229</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>230</pre>
</td>
<td>
<pre> if limit &gt; 20</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>231</pre>
</td>
<td>
<pre> limit = 20</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>232</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>233</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>234</pre>
</td>
<td>
<pre> if limit &lt; 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>235</pre>
</td>
<td>
<pre> limit = 0</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>236</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>237</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>238</pre>
</td>
<td>
<pre> limit</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>239</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>240</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>241</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>242</pre>
</td>
<td>
<pre> include BanMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>243</pre>
</td>
<td>
<pre> include NameMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>244</pre>
</td>
<td>
<pre> include PasswordMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>245</pre>
</td>
<td>
<pre> extend AuthenticationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>246</pre>
</td>
<td>
<pre> include FavoriteMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>247</pre>
</td>
<td>
<pre> include LevelMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>248</pre>
</td>
<td>
<pre> include EmailVerificationMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>249</pre>
</td>
<td>
<pre> include BlacklistMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>250</pre>
</td>
<td>
<pre> include ForumMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>251</pre>
</td>
<td>
<pre> include LimitMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>252</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>253</pre>
</td>
<td>
<pre> def initialize_default_image_size</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>254</pre>
</td>
<td>
<pre> self.default_image_size = &quot;Medium&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>255</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>256</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>257</pre>
</td>
<td>
<pre> def can_update?(object, foreign_key = :user_id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>258</pre>
</td>
<td>
<pre> is_moderator? || is_admin? || object.__send__(foreign_key) == id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>259</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>260</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>261</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="401caff28bf22c84af2579e617fc15e39ecc444a">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/user_feedback.rb</h3>
<h4><span class="red">76.92 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UserFeedback &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> set_table_name &quot;user_feedback&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :user</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> before_validation :initialize_creator, :on =&gt; :create</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> attr_accessible :body, :user_id, :is_positive</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> validates_presence_of :user, :creator, :body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> validate :creator_is_privileged</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def creator_is_privileged</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> if !creator.is_privileged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> errors[:creator] &lt;&lt; &quot;must be privileged&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="2a21e9c560cb1e88d87e187fdcc1e3ceee11ddb1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/user_mailer.rb</h3>
<h4><span class="red">40.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UserMailer &lt; ActionMailer::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> default :host =&gt; Danbooru.config.server_host, :from =&gt; Danbooru.config.contact_email, :content_type =&gt; &quot;text/html&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def password_reset(user, new_password)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @user = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @new_password = new_password</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> mail(:to =&gt; @user.email, :subject =&gt; &quot;#{Danbooru.config.app_name} - Password Reset&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def name_reminder(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> @user = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> mail(:to =&gt; user.email, :subject =&gt; &quot;#{Danbooru.config.app_name} - Name Reminder&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def deletion(user)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @user = user</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> mail(:to =&gt; user.email, :subject =&gt; &quot;#{}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def dmail_notice(dmail)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> @dmail = dmail</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> mail(:to =&gt; dmail.to.email, :subject =&gt; &quot;#{Danbooru.config.app_name} - Message received from #{dmail.from.name}&quot;) </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="5dd537da900c3e151d09bf1b91540b0a538a6fd1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/wiki_page.rb</h3>
<h4><span class="red">53.85 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class WikiPage &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> before_save :normalize_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> before_create :initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> after_save :create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> belongs_to :creator, :class_name =&gt; &quot;User&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> validates_uniqueness_of :title, :case_sensitive =&gt; false</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> validates_presence_of :body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> attr_accessible :title, :body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> scope :titled, lambda {|title| where([&quot;title = ?&quot;, title.downcase.tr(&quot; &quot;, &quot;_&quot;)])}</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> has_one :tag, :foreign_key =&gt; &quot;name&quot;, :primary_key =&gt; &quot;title&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> has_one :artist, :foreign_key =&gt; &quot;name&quot;, :primary_key =&gt; &quot;title&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> has_many :versions, :class_name =&gt; &quot;WikiPageVersion&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def self.build_relation(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> relation = where()</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> if options[:title]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> relation = relation.where([&quot;title LIKE ? ESCAPE E'\\\\'&quot;, options[:title].downcase.tr(&quot; &quot;, &quot;_&quot;).to_escaped_for_sql_like])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> if options[:creator_id]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> relation = relation.where([&quot;creator_id = ?&quot;, options[:creator_id]])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> relation</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def self.find_title_and_id(title)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> titled(title).select(&quot;title, id&quot;).first</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def revert_to(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> self.title = version.title</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> self.body = version.body</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> self.is_locked = version.is_locked</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> def revert_to!(version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> revert_to(version)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> save!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> def normalize_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> self.title = title.downcase.tr(&quot; &quot;, &quot;_&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def creator_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> User.id_to_name(user_id).tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> def pretty_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> title.tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> def create_version</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> if title_changed? || body_changed? || is_locked_changed?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> versions.create(</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> :updater_id =&gt; CurrentUser.user.id,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> :updater_ip_addr =&gt; CurrentUser.ip_addr,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> :title =&gt; title,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> :body =&gt; body,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> :is_locked =&gt; is_locked</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> )</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> def initialize_creator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> self.creator_id = CurrentUser.user.id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ad5c7aceb761954bce20b3d9f79bc89141a9738f">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/models/wiki_page_version.rb</h3>
<h4><span class="red">71.43 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class WikiPageVersion &lt; ActiveRecord::Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> belongs_to :wiki_page</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> belongs_to :updater</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def updater_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> User.id_to_name(updater_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def pretty_title</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> title.tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a1810da474c33a59fe6ef7febe0d18a7506cda17">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/note_presenter.rb</h3>
<h4><span class="red">60.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class NotePresenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def initialize(note)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @note = note</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def formatted_body</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> note.body.gsub(/&lt;tn&gt;(.+?)&lt;\/tn&gt;/m, '&lt;br&gt;&lt;p class=&quot;tn&quot;&gt;\1&lt;/p&gt;').gsub(/\n/, '&lt;br&gt;') </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="41326d80e528ff741753a693bed1ae8aed11b4fb">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/paginators/base.rb</h3>
<h4><span class="red">19.61 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Paginators</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Base &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> def sequential_pagination_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> html = &quot;&lt;menu&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> prev_url = template.request.env[&quot;HTTP_REFERER&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> next_url = sequential_link(template)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;li&gt;&lt;a href=&quot;#{prev_url}&quot;&gt;&amp;laquo; Previous&lt;/a&gt;&lt;/li&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> if post_set.posts.any?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;li&gt;&lt;a href=&quot;#{next_url}&quot;&gt;Next &amp;raquo;&lt;/a&gt;&lt;/li&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;/menu&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def numbered_pagination_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> html = &quot;&lt;menu&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> window = 3</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> if total_pages &lt;= (window * 2) + 5</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> 1.upto(total_pages) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, page, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> elsif current_page &lt;= window + 2</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> 1.upto(current_page + window) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, page, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, &quot;...&quot;, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, total_pages, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> elsif current_page &gt;= total_pages - (window + 1)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, 1, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, &quot;...&quot;, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> (current_page - window).upto(total_pages) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, page, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, 1, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, &quot;...&quot;, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> (current_page - window).upto(current_page + window) do |page|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, page, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, &quot;...&quot;, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> html &lt;&lt; numbered_pagination_item(template, total_pages, current_page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;/menu&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> def numbered_pagination_item(template, page, current_page)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> html = &quot;&lt;li&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> if page == &quot;...&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;...&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> elsif page == current_page</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> html &lt;&lt; page.to_s</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> html &lt;&lt; paginated_link(template, page)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;/li&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> def total_pages</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> def current_page</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> def sequential_link(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> def paginated_link(template, page)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="55a1b18db580f168607e57c89ac9088c2e9c9d9e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/paginators/post.rb</h3>
<h4><span class="red">64.29 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Paginators</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class Post &lt; Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> attr_accessor :post_set</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def initialize(post_set)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @post_set = post_set</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def total_pages</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> (post_set.count.to_f / post_set.limit.to_f).ceil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def current_page</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> [1, post_set.page].max</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def sequential_link(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> template.posts_path(:tags =&gt; template.params[:tags], before_id =&gt; post_set.posts[-1].id, :page =&gt; nil)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> def paginated_link(template, page)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> template.link_to(page, template.posts_path(:tags =&gt; template.params[:tags], :page =&gt; page))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="8e1a891f64fb66bba0c1cda9f521c0d9d45c53f0">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/paginators/post_version.rb</h3>
<h4><span class="red">70.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module Paginators</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> class PostVersion &lt; Base</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> attr_accessor :post_set</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> def initialize(post_set)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> @post_set = post_set</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def numbered_pagination_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> raise NotImplementedError</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def sequential_link(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> template.post_versions_path(:before_time =&gt; post_set.posts[-1].last_commented_at, :page =&gt; nil)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="52cabd06773204fcf5fd41e47a456b0aeebefc7b">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/post_history_revision_presenter.rb</h3>
<h4><span class="red">37.5 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostHistoryRevisionPresenter &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> attr_reader :revision</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def initialize(revision)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> @revision = revision</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def changes</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> html = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> html &lt;&lt; revision.diff[:del].map {|x| &quot;&lt;del&gt;#{h(x)}&lt;/del&gt;&quot;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> html &lt;&lt; revision.diff[:add].map {|x| &quot;&lt;ins&gt;#{h(x)}&lt;/ins&gt;&quot;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;ins&gt;source:#{h(revision.diff[:source])}&lt;/ins&gt;&quot; if revision.diff[:source].present?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;ins&gt;rating:#{h(revision.diff[:rating])}&lt;/ins&gt;&quot; if revision.diff[:rating].present?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;ins&gt;parent:#{revision.diff[:parent_id]}&lt;/ins&gt;&quot; if revision.diff[:parent_id].present?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> html.join(&quot; &quot;).html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def updated_at</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> Time.parse(revision.updated_at)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> def updater_name</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> User.id_to_name(revision.user_id)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="191104734421111aa081cab6915cc2b3680907fe">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/post_presenter.rb</h3>
<h4><span class="red">23.08 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class PostPresenter &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.preview(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> flags = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> flags &lt;&lt; &quot;pending&quot; if post.is_pending?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> flags &lt;&lt; &quot;flagged&quot; if post.is_flagged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> flags &lt;&lt; &quot;removed&quot; if post.is_removed?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> html = %{&lt;article id=&quot;post_#{post.id}&quot; data-id=&quot;#{post.id}&quot; data-tags=&quot;#{h(post.tag_string)}&quot; data-uploader=&quot;#{h(post.uploader_name)}&quot; data-rating=&quot;#{post.rating}&quot; data-width=&quot;#{post.image_width}&quot; data-height=&quot;#{post.image_height}&quot; data-flags=&quot;#{flags.join(' ')}&quot;&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;a href=&quot;/posts/#{post.id}&quot;&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;img src=&quot;#{post.preview_file_url}&quot;&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;/a&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;/article&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> def initialize(post)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @post = post</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> def preview_html</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> PostPresenter.preview(@post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def image_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> return template.content_tag(&quot;p&quot;, &quot;This image was deleted.&quot;) if @post.is_removed? &amp;&amp; !CurrentUser.user.is_janitor?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> return template.content_tag(&quot;p&quot;, &quot;You need a privileged account to see this image.&quot;) if !Danbooru.config.can_see_post?(@post, CurrentUser.user)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> if @post.is_flash?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> template.render(:partial =&gt; &quot;posts/partials/show/flash&quot;, :locals =&gt; {:post =&gt; @post})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> elsif @post.is_image?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> template.render(:partial =&gt; &quot;posts/partials/show/image&quot;, :locals =&gt; {:post =&gt; @post})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> def tag_list_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> @tag_set_presenter ||= TagSetPresenter.new(@post.tag_array)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> @tag_set_presenter.tag_list_html(template, :show_extra_links =&gt; CurrentUser.user.is_privileged?)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="ba98ab3c895cb23cae51cc709416f2a65abd8449">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/post_set_presenter.rb</h3>
<h4><span class="red">25.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>require 'pp'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>class PostSetPresenter &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> attr_accessor :post_set, :tag_set_presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def initialize(post_set)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> @post_set = post_set</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> @tag_set_presenter = TagSetPresenter.new(RelatedTagCalculator.calculate_from_sample_to_array(@post_set.tags).map {|x| x[0]})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> def posts</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> post_set.posts</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> def tag_list_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> tag_set_presenter.tag_list_html(template)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> def wiki_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> if post_set.has_wiki?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> wiki_page = WikiPage.find_by_title(post_set.tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> html = '&lt;section&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> if wiki_page.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> html &lt;&lt; '&lt;p&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> html &lt;&lt; 'There is no wiki for this tag.'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> html &lt;&lt; ' '</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> html &lt;&lt; template.link_to(&quot;Create a new page&quot;, template.new_wiki_page_path(:title =&gt; post_set.tags))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> html &lt;&lt; '.'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> html &lt;&lt; '&lt;/p&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> html &lt;&lt; '&lt;h2&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> html &lt;&lt; template.h(wiki_page.title)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> html &lt;&lt; '&lt;/h2&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> html &lt;&lt; template.format_text(wiki_page.body)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> html &lt;&lt; '&lt;/section&gt;'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> def pagination_html(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if post_set.use_sequential_paginator?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> Paginators::Post.new(post_set).sequential_pagination_html(template)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> Paginators::Post.new(post_set).numbered_pagination_html(template)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> def post_previews_html</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> html = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> posts.each do |post|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> html &lt;&lt; PostPresenter.preview(post)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="bd5f00947f16d9c21011d91eed94e9a4df2bf0b1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/presenter.rb</h3>
<h4><span class="red">55.56 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def self.h(s)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> CGI.escapeHTML(s)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def self.u(s)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> URI.escape(s)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> def h(s)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> CGI.escapeHTML(s)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> def u(s)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> URI.escape(s)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3aa907565e2b9269444f37880f8475f4437c7808">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/tag_set_presenter.rb</h3>
<h4><span class="red">25.93 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="never" >
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>=begin rdoc</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> A tag set represents a set of tags that are displayed together.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> This class makes it easy to fetch the categories for all the </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> tags in one call instead of fetching them sequentially.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>=end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre>class TagSetPresenter &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def initialize(tags)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> @tags = tags</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> fetch_categories</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> def tag_list_html(template, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> html = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;ul&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @tags.each do |tag|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> html &lt;&lt; build_list_item(tag, template, options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;/ul&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> html.html_safe</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre>private</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> def fetch_categories</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> @category_cache ||= Tag.categories_for(@tags)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def category_for(tag)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> @category_cache[tag]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> def build_list_item(tag, template, options)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> html = &quot;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;li data-tag-type=&quot;#{category_for(tag)}&quot; data-tag-name=&quot;#{u(tag)}&quot;&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> if CurrentUser.user.is_privileged?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;a href=&quot;/wiki_pages?title=#{u(tag)}&quot;&gt;?&lt;/a&gt; }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;a href=&quot;#&quot; class=&quot;search-inc-tag&quot;&gt;+&lt;/a&gt; }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;a href=&quot;#&quot; class=&quot;search-exl-tag&quot;&gt;&amp;ndash;&lt;/a&gt; }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> humanized_tag = tag.tr(&quot;_&quot;, &quot; &quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> html &lt;&lt; %{&lt;a href=&quot;/posts?tags=#{u(tag)}&quot;&gt;#{h(humanized_tag)}&lt;/a&gt;}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> html &lt;&lt; &quot;&lt;/li&gt;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> html</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="919d2c43f39c49f6f679b9f3482c7936b88760f1">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/upload_presenter.rb</h3>
<h4><span class="red">42.86 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class UploadPresenter &lt; Presenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> def initialize(upload)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> @upload = upload</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> def status(template)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> case @upload.status</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> when /duplicate: (\d+)/</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> template.link_to(@upload.status, template.__send__(:post_path, $1))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> @upload.status</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="3772f97ef7314284d5567c9c2916298f593753f9">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./app/presenters/wiki_page_presenter.rb</h3>
<h4><span class="red">6.9 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>class WikiPagePresenter</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> # Produce a formatted page that shows the difference between two versions of a page.</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def diff(other_version)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> pattern = Regexp.new('(?:&lt;.+?&gt;)|(?:[0-9_A-Za-z\x80-\xff]+[\x09\x20]?)|(?:[ \t]+)|(?:\r?\n)|(?:.+?)')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> thisarr = self.body.scan(pattern)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> otharr = other_version.body.scan(pattern)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> cbo = Diff::LCS::ContextDiffCallbacks.new</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> diffs = thisarr.diff(otharr, cbo)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> escape_html = lambda {|str| str.gsub(/&amp;/,'&amp;amp;').gsub(/&lt;/,'&amp;lt;').gsub(/&gt;/,'&amp;gt;')}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> output = thisarr;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> output.each { |q| q.replace(CGI.escape_html(q)) }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> diffs.reverse_each do |hunk|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> newchange = hunk.max{|a,b| a.old_position &lt;=&gt; b.old_position}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> newstart = newchange.old_position</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> oldstart = hunk.min{|a,b| a.old_position &lt;=&gt; b.old_position}.old_position</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> if newchange.action == '+'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> output.insert(newstart, &quot;&lt;/ins&gt;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> hunk.reverse_each do |chg|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> case chg.action</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> when '-'</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> oldstart = chg.old_position</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> output[chg.old_position] = &quot;&quot; if chg.old_element.match(/^\r?\n$/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> when '+'</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> if chg.new_element.match(/^\r?\n$/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> output.insert(chg.old_position, &quot;[nl]&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> output.insert(chg.old_position, &quot;#{escape_html[chg.new_element]}&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> if newchange.action == '+'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> output.insert(newstart, &quot;&lt;ins&gt;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> if hunk[0].action == '-'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> output.insert((newstart == oldstart || newchange.action != '+') ? newstart+1 : newstart, &quot;&lt;/del&gt;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> output.insert(oldstart, &quot;&lt;del&gt;&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> output.join.gsub(/\r?\n/, &quot;[nl]&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="cd15129569c6f3a2d96172e12ba86a2575863f5e">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./lib/danbooru_image_resizer/danbooru_image_resizer.rb</h3>
<h4><span class="red">33.33 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>require 'danbooru_image_resizer/danbooru_image_resizer.so'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>module Danbooru</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> def resize(file_ext, read_path, write_path, output_size, output_quality)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> Danbooru.resize_image(file_ext, read_path, write_path, output_size[:width], output_size[:height], output_quality)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre> def reduce_to(size, max_size)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> size.dup.tap do |new_size|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> if new_size[:width] &gt; max_size[:width]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> scale = max_size[:width].to_f / new_size[:width].to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> new_size[:width] = new_size[:width] * scale</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> new_size[:height] = new_size[:height] * scale</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> if max_size[:height] &amp;&amp; (new_size[:height] &gt; max_size[:height])</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> scale = max_size[:height].to_f / new_size[:height].to_f</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> new_size[:width] = new_size[:width] * scale</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> new_size[:height] = new_size[:height] * scale</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> new_size[:width] = new_size[:width].to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> new_size[:height] = new_size[:height].to_i</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> module_function :resize</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> module_function :reduce_to</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="be14f268e9a1f82230c3acd83e39ed54b10e4508">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./vendor/plugins/jrails/lib/jrails.rb</h3>
<h4><span class="green">100.0 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>$: &lt;&lt; File.expand_path(&quot;..&quot;, __FILE__)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>require 'jrails/jrails'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre>require 'jrails/asset_tag_ext'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>require 'jrails/jquery_selector_assertions' if Rails.env == 'test'</pre>
</td>
<td class="hits">
1
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="22e8619b41fdc310eee3553f850564a8414fb730">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./vendor/plugins/jrails/lib/jrails/asset_tag_ext.rb</h3>
<h4><span class="red">52.94 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="never" >
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre># The following options can be changed by creating an initializer in config/initializers/jrails.rb</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre># jRails does NOT use jQuery.noConflict() by default</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre># to use jQuery.noConflict() , use:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre># ActionView::Helpers::PrototypeHelper::JQUERY_VAR = 'jQuery'</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre>JRails.load_config</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre>if JRails.google?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> ActionView::Helpers::AssetTagHelper.register_javascript_expansion :jrails =&gt; [&quot;jrails#{&quot;.min&quot; if JRails.compressed?}&quot;]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre>else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> ActionView::Helpers::AssetTagHelper.register_javascript_expansion :jrails =&gt; [&quot;jquery#{&quot;.min&quot; if JRails.compressed?}&quot;,&quot;jquery-ui#{&quot;.min&quot; if JRails.compressed?}&quot;,&quot;jquery-ui-i18n#{&quot;.min&quot; if JRails.compressed?}&quot;,&quot;jrails#{&quot;.min&quot; if JRails.compressed?}&quot;]</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre>ActionView::Helpers::AssetTagHelper.module_eval do </pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def yield_authenticity_javascript</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre>&lt;&lt;JAVASCRIPT</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre>&lt;script type='text/javascript'&gt;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> //&lt;![CDATA[</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> window._auth_token = '#{form_authenticity_token}';</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> $(document).ajaxSend(function(event, xhr, s) {</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> if (typeof(window._auth_token) == &quot;undefined&quot;) return;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre> if (s.data &amp;&amp; s.data.match(new RegExp(&quot;\\bauthenticity_token=&quot;))) return;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> if (s.data)</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> s.data += &quot;&amp;&quot;;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> else {</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> s.data = &quot;&quot;;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> xhr.setRequestHeader(&quot;Content-Type&quot;, s.contentType);</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> s.data += &quot;authenticity_token=&quot; + encodeURIComponent(window._auth_token);</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> });</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> //]]&gt;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre>&lt;/script&gt;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre>JAVASCRIPT</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> end </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> def javascript_include_tag_with_jquery(*source)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> if source.first == :jrails</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> javascripts = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> if JRails.google?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> javascripts \</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> &lt;&lt; javascript_include_tag_without_jquery(JRails.jquery_path) \</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> &lt;&lt; javascript_include_tag_without_jquery(JRails.jqueryui_path) \</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> &lt;&lt; javascript_include_tag_without_jquery(JRails.jqueryui_i18n_path) \</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> javascripts &lt;&lt; javascript_include_tag_without_jquery(*source)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> javascripts &lt;&lt; yield_authenticity_javascript if protect_against_forgery?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre> javascripts.join(&quot;\n&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> javascript_include_tag_without_jquery(*source)</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> alias_method_chain :javascript_include_tag, :jquery</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="f1befc3da818f5ee64c1873eb429e438e3010cc7">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./vendor/plugins/jrails/lib/jrails/jquery_selector_assertions.rb</h3>
<h4><span class="yellow">89.47 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="never" >
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre># jQuery Selector Assertions (modifications to the prototype/scriptaculous assertions)</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre># From http://pastie.org/303776</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre># 1. Make sure to use '#' prefix when referring to element IDs in assert_select_rjs(),</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre># like this:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre># assert_select_rjs :replace_html, '#someid'</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre># instead of prototype convention:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre># assert_select_rjs :replace_html, 'someid' </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre># We monkey-patch some RJS-matching constants for assert_select_rjs to work </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre># with jQuery-based code as opposed to Prototype's:</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre>#</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre>module JRails</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> module SelectorAssertions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> def self.included(base)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> self.constants.each do |cnst|</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> if base.const_defined? cnst</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="hit" data-hits="4">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> base.send(:remove_const,cnst)</pre>
</td>
<td class="hits">
4
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> silence_warnings do</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> RJS_PATTERN_HTML = &quot;\&quot;((\\\\\&quot;|[^\&quot;])*)\&quot;&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> RJS_ANY_ID = &quot;[\&quot;']([^\&quot;])*[\&quot;']&quot;</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> RJS_STATEMENTS = {</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> :chained_replace =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.replaceWith\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre> :chained_replace_html =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.updateWith\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre> :replace_html =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.html\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre> :replace =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.replaceWith\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre> :insert_top =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.prepend\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre> :insert_bottom =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.append\\(#{RJS_PATTERN_HTML}\\)&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> :effect =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.effect\\(&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> :highlight =&gt; &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.effect\\('highlight'&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> [:remove, :show, :hide, :toggle, :reset ].each do |action|</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> RJS_STATEMENTS[action] = &quot;\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.#{action}\\(\\)&quot;</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> RJS_STATEMENTS[:any] = Regexp.new(&quot;(#{RJS_STATEMENTS.values.join('|')})&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> RJS_PATTERN_UNICODE_ESCAPED_CHAR = /\\u([0-9a-zA-Z]{4})/</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre>if (defined? ActionController::Assertions) </pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> module ActionController::Assertions::SelectorAssertions</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> include JRails::SelectorAssertions</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre>else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> module ActionDispatch::Assertions::SelectorAssertions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> include JRails::SelectorAssertions</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
<div class="source_table" id="a96a76254332dde771061defb0b9c85b658eeeb0">
<table>
<thead>
<tr>
<td colspan="3">
<h3>./vendor/plugins/jrails/lib/jrails/jrails.rb</h3>
<h4><span class="red">29.22 %</span> covered</h4>
</td>
</tr>
<tr>
<th>#</th>
<th></th>
<th>Hits</th>
</tr>
</thead>
<tbody>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>1</pre>
</td>
<td>
<pre>module JRails</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>2</pre>
</td>
<td>
<pre> @@config = {</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>3</pre>
</td>
<td>
<pre> :google =&gt; false,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>4</pre>
</td>
<td>
<pre> :jquery_version =&gt; &quot;1.4.2&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>5</pre>
</td>
<td>
<pre> :jqueryui_version =&gt; &quot;1.8.4&quot;,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>6</pre>
</td>
<td>
<pre> :compressed =&gt; true</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>7</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>8</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>9</pre>
</td>
<td>
<pre> def self.load_config</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>10</pre>
</td>
<td>
<pre> config_file = File.join(Rails.root, &quot;config&quot;, &quot;jrails.yml&quot;)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>11</pre>
</td>
<td>
<pre> if File.exist? config_file</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>12</pre>
</td>
<td>
<pre> loaded_config = YAML.load_file(config_file) </pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>13</pre>
</td>
<td>
<pre> if loaded_config and loaded_config.key? Rails.env</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>14</pre>
</td>
<td>
<pre> @@config.merge!(loaded_config[Rails.env].symbolize_keys) </pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>15</pre>
</td>
<td>
<pre> if google?</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>16</pre>
</td>
<td>
<pre> @@jquery_path = &quot;http://ajax.googleapis.com/ajax/libs/jquery/#{@@config[:jquery_version]}/jquery#{&quot;.min&quot; if compressed?}.js&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>17</pre>
</td>
<td>
<pre> @@jqueryui_path = &quot;http://ajax.googleapis.com/ajax/libs/jqueryui/#{@@config[:jqueryui_version]}/jquery-ui#{&quot;.min&quot; if compressed?}.js&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>18</pre>
</td>
<td>
<pre> @@jqueryui_i18n_path = &quot;http://ajax.googleapis.com/ajax/libs/jqueryui/#{@@config[:jqueryui_version]}/i18n/jquery-ui-i18n#{&quot;.min&quot; if compressed?}.js&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>19</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>20</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>21</pre>
</td>
<td>
<pre> raise Exception.new &quot;Failed finding '#{Rails.env}' environment in config. check your 'config/jrails.yml' or delete that file &quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>22</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>23</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>24</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>25</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>26</pre>
</td>
<td>
<pre> def self.config ; @@config ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="3">
<td class="line_number">
<pre>27</pre>
</td>
<td>
<pre> def self.google? ; @@config[:google] ; end</pre>
</td>
<td class="hits">
3
</td>
</tr>
<tr class="hit" data-hits="5">
<td class="line_number">
<pre>28</pre>
</td>
<td>
<pre> def self.compressed? ; @@config[:compressed] ; end</pre>
</td>
<td class="hits">
5
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>29</pre>
</td>
<td>
<pre> def self.jquery_path ; @@jquery_path ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>30</pre>
</td>
<td>
<pre> def self.jqueryui_path ; @@jqueryui_path ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>31</pre>
</td>
<td>
<pre> def self.jqueryui_i18n_path ; @@jqueryui_i18n_path ; end</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>32</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>33</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>34</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>35</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>36</pre>
</td>
<td>
<pre>module ActionView</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>37</pre>
</td>
<td>
<pre> module Helpers</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>38</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>39</pre>
</td>
<td>
<pre> module JavaScriptHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>40</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>41</pre>
</td>
<td>
<pre> # This function can be used to render rjs inline</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>42</pre>
</td>
<td>
<pre> #</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>43</pre>
</td>
<td>
<pre> # &lt;%= javascript_function do |page|</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>44</pre>
</td>
<td>
<pre> # page.replace_html :list, :partial =&gt; 'list', :object =&gt; @list</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>45</pre>
</td>
<td>
<pre> # end %&gt;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>46</pre>
</td>
<td>
<pre> #</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>47</pre>
</td>
<td>
<pre> def javascript_function(*args, &amp;block)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>48</pre>
</td>
<td>
<pre> html_options = args.extract_options!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>49</pre>
</td>
<td>
<pre> function = args[0] || ''</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>50</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>51</pre>
</td>
<td>
<pre> html_options.symbolize_keys!</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>52</pre>
</td>
<td>
<pre> function = update_page(&amp;block) if block_given?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>53</pre>
</td>
<td>
<pre> javascript_tag(function)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>54</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>55</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>56</pre>
</td>
<td>
<pre> def jquery_id(id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>57</pre>
</td>
<td>
<pre> id.to_s.count('#.*,&gt;+~:[/ ') == 0 ? &quot;##{id}&quot; : id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>58</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>59</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>60</pre>
</td>
<td>
<pre> def jquery_ids(ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>61</pre>
</td>
<td>
<pre> Array(ids).map{|id| jquery_id(id)}.join(',')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>62</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>63</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>64</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>65</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>66</pre>
</td>
<td>
<pre> module PrototypeHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>67</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>68</pre>
</td>
<td>
<pre> USE_PROTECTION = const_defined?(:DISABLE_JQUERY_FORGERY_PROTECTION) ? !DISABLE_JQUERY_FORGERY_PROTECTION : true</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>69</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>70</pre>
</td>
<td>
<pre> unless const_defined? :JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>71</pre>
</td>
<td>
<pre> JQUERY_VAR = 'jQuery'</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>72</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>73</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>74</pre>
</td>
<td>
<pre> unless const_defined? :JQCALLBACKS</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>75</pre>
</td>
<td>
<pre> JQCALLBACKS = Set.new([ :beforeSend, :complete, :error, :success ] + (100..599).to_a)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>76</pre>
</td>
<td>
<pre> #instance_eval { remove_const :AJAX_OPTIONS }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>77</pre>
</td>
<td>
<pre> remove_const(:AJAX_OPTIONS) if const_defined?(:AJAX_OPTIONS)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>78</pre>
</td>
<td>
<pre> AJAX_OPTIONS = Set.new([ :before, :after, :condition, :url,</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>79</pre>
</td>
<td>
<pre> :asynchronous, :method, :insertion, :position,</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>80</pre>
</td>
<td>
<pre> :form, :with, :update, :script ]).merge(JQCALLBACKS)</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>81</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>82</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>83</pre>
</td>
<td>
<pre> def periodically_call_remote(options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>84</pre>
</td>
<td>
<pre> frequency = options[:frequency] || 10 # every ten seconds by default</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>85</pre>
</td>
<td>
<pre> code = &quot;setInterval(function() {#{remote_function(options)}}, #{frequency} * 1000)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>86</pre>
</td>
<td>
<pre> javascript_tag(code)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>87</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>88</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>89</pre>
</td>
<td>
<pre> def remote_function(options)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>90</pre>
</td>
<td>
<pre> javascript_options = options_for_ajax(options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>91</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>92</pre>
</td>
<td>
<pre> update = ''</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>93</pre>
</td>
<td>
<pre> if options[:update] &amp;&amp; options[:update].is_a?(Hash)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>94</pre>
</td>
<td>
<pre> update = []</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>95</pre>
</td>
<td>
<pre> update &lt;&lt; &quot;success:'#{options[:update][:success]}'&quot; if options[:update][:success]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>96</pre>
</td>
<td>
<pre> update &lt;&lt; &quot;failure:'#{options[:update][:failure]}'&quot; if options[:update][:failure]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>97</pre>
</td>
<td>
<pre> update = '{' + update.join(',') + '}'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>98</pre>
</td>
<td>
<pre> elsif options[:update]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>99</pre>
</td>
<td>
<pre> update &lt;&lt; &quot;'#{options[:update]}'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>100</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>101</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>102</pre>
</td>
<td>
<pre> function = &quot;#{JQUERY_VAR}.ajax(#{javascript_options})&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>103</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>104</pre>
</td>
<td>
<pre> function = &quot;#{options[:before]}; #{function}&quot; if options[:before]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>105</pre>
</td>
<td>
<pre> function = &quot;#{function}; #{options[:after]}&quot; if options[:after]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>106</pre>
</td>
<td>
<pre> function = &quot;if (#{options[:condition]}) { #{function}; }&quot; if options[:condition]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>107</pre>
</td>
<td>
<pre> function = &quot;if (confirm('#{escape_javascript(options[:confirm])}')) { #{function}; }&quot; if options[:confirm]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>108</pre>
</td>
<td>
<pre> return function</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>109</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>110</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>111</pre>
</td>
<td>
<pre> class JavaScriptGenerator</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>112</pre>
</td>
<td>
<pre> module GeneratorMethods</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>113</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>114</pre>
</td>
<td>
<pre> def insert_html(position, id, *options_for_render)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>115</pre>
</td>
<td>
<pre> insertion = position.to_s.downcase</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>116</pre>
</td>
<td>
<pre> insertion = 'append' if insertion == 'bottom'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>117</pre>
</td>
<td>
<pre> insertion = 'prepend' if insertion == 'top'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>118</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_id(id)}\&quot;).#{insertion}&quot;, render(*options_for_render)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>119</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>120</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>121</pre>
</td>
<td>
<pre> def replace_html(id, *options_for_render)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>122</pre>
</td>
<td>
<pre> insert_html(:html, id, *options_for_render)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>123</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>124</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>125</pre>
</td>
<td>
<pre> def replace(id, *options_for_render)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>126</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_id(id)}\&quot;).replaceWith&quot;, render(*options_for_render)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>127</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>128</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>129</pre>
</td>
<td>
<pre> def remove(*ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>130</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_ids(ids)}\&quot;).remove&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>131</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>132</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>133</pre>
</td>
<td>
<pre> def show(*ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>134</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_ids(ids)}\&quot;).show&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>135</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>136</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>137</pre>
</td>
<td>
<pre> def hide(*ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>138</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_ids(ids)}\&quot;).hide&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>139</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>140</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>141</pre>
</td>
<td>
<pre> def toggle(*ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>142</pre>
</td>
<td>
<pre> call &quot;#{JQUERY_VAR}(\&quot;#{jquery_ids(ids)}\&quot;).toggle&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>143</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>144</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>145</pre>
</td>
<td>
<pre> def jquery_id(id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>146</pre>
</td>
<td>
<pre> id.to_s.count('#.*,&gt;+~:[/ ') == 0 ? &quot;##{id}&quot; : id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>147</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>148</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>149</pre>
</td>
<td>
<pre> def jquery_ids(ids)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>150</pre>
</td>
<td>
<pre> Array(ids).map{|id| jquery_id(id)}.join(',')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>151</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>152</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>153</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>154</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>155</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>156</pre>
</td>
<td>
<pre> protected</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>157</pre>
</td>
<td>
<pre> def options_for_ajax(options)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>158</pre>
</td>
<td>
<pre> js_options = build_callbacks(options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>159</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>160</pre>
</td>
<td>
<pre> url_options = options[:url]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>161</pre>
</td>
<td>
<pre> url_options = url_options.merge(:escape =&gt; false) if url_options.is_a?(Hash)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>162</pre>
</td>
<td>
<pre> js_options['url'] = &quot;'#{url_for(url_options)}'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>163</pre>
</td>
<td>
<pre> js_options['async'] = false if options[:type] == :synchronous</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>164</pre>
</td>
<td>
<pre> js_options['type'] = options[:method] ? method_option_to_s(options[:method]) : ( options[:form] ? &quot;'post'&quot; : nil )</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>165</pre>
</td>
<td>
<pre> js_options['dataType'] = options[:datatype] ? &quot;'#{options[:datatype]}'&quot; : (options[:update] ? nil : &quot;'script'&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>166</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>167</pre>
</td>
<td>
<pre> if options[:form]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>168</pre>
</td>
<td>
<pre> js_options['data'] = &quot;#{JQUERY_VAR}.param(#{JQUERY_VAR}(this).serializeArray())&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>169</pre>
</td>
<td>
<pre> elsif options[:submit]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>170</pre>
</td>
<td>
<pre> js_options['data'] = &quot;#{JQUERY_VAR}(\&quot;##{options[:submit]}:input\&quot;).serialize()&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>171</pre>
</td>
<td>
<pre> elsif options[:with]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>172</pre>
</td>
<td>
<pre> js_options['data'] = options[:with].gsub(&quot;Form.serialize(this.form)&quot;,&quot;#{JQUERY_VAR}.param(#{JQUERY_VAR}(this.form).serializeArray())&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>173</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>174</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>175</pre>
</td>
<td>
<pre> js_options['type'] ||= &quot;'post'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>176</pre>
</td>
<td>
<pre> if options[:method]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>177</pre>
</td>
<td>
<pre> if method_option_to_s(options[:method]) == &quot;'put'&quot; || method_option_to_s(options[:method]) == &quot;'delete'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>178</pre>
</td>
<td>
<pre> js_options['type'] = &quot;'post'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>179</pre>
</td>
<td>
<pre> if js_options['data']</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>180</pre>
</td>
<td>
<pre> js_options['data'] &lt;&lt; &quot; + '&amp;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>181</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>182</pre>
</td>
<td>
<pre> js_options['data'] = &quot;'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>183</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>184</pre>
</td>
<td>
<pre> js_options['data'] &lt;&lt; &quot;_method=#{options[:method]}'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>185</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>186</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>187</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>188</pre>
</td>
<td>
<pre> if USE_PROTECTION &amp;&amp; respond_to?('protect_against_forgery?') &amp;&amp; protect_against_forgery?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>189</pre>
</td>
<td>
<pre> if js_options['data']</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>190</pre>
</td>
<td>
<pre> js_options['data'] &lt;&lt; &quot; + '&amp;&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>191</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>192</pre>
</td>
<td>
<pre> js_options['data'] = &quot;'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>193</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>194</pre>
</td>
<td>
<pre> js_options['data'] &lt;&lt; &quot;#{request_forgery_protection_token}=' + encodeURIComponent('#{escape_javascript form_authenticity_token}')&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>195</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>196</pre>
</td>
<td>
<pre> js_options['data'] = &quot;''&quot; if js_options['type'] == &quot;'post'&quot; &amp;&amp; js_options['data'].nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>197</pre>
</td>
<td>
<pre> options_for_javascript(js_options.reject {|key, value| value.nil?})</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>198</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>199</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>200</pre>
</td>
<td>
<pre> def build_update_for_success(html_id, insertion=nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>201</pre>
</td>
<td>
<pre> insertion = build_insertion(insertion)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>202</pre>
</td>
<td>
<pre> &quot;#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request);&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>203</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>204</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>205</pre>
</td>
<td>
<pre> def build_update_for_error(html_id, insertion=nil)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>206</pre>
</td>
<td>
<pre> insertion = build_insertion(insertion)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>207</pre>
</td>
<td>
<pre> &quot;#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request.responseText);&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>208</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>209</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>210</pre>
</td>
<td>
<pre> def build_insertion(insertion)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>211</pre>
</td>
<td>
<pre> insertion = insertion ? insertion.to_s.downcase : 'html'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>212</pre>
</td>
<td>
<pre> insertion = 'append' if insertion == 'bottom'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>213</pre>
</td>
<td>
<pre> insertion = 'prepend' if insertion == 'top'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>214</pre>
</td>
<td>
<pre> insertion</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>215</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>216</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>217</pre>
</td>
<td>
<pre> def build_observer(klass, name, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>218</pre>
</td>
<td>
<pre> if options[:with] &amp;&amp; (options[:with] !~ /[\{=(.]/)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>219</pre>
</td>
<td>
<pre> options[:with] = &quot;'#{options[:with]}=' + value&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>220</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>221</pre>
</td>
<td>
<pre> options[:with] ||= 'value' unless options[:function]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>222</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>223</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>224</pre>
</td>
<td>
<pre> callback = options[:function] || remote_function(options)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>225</pre>
</td>
<td>
<pre> javascript = &quot;#{JQUERY_VAR}('#{jquery_id(name)}').delayedObserver(&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>226</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;#{options[:frequency] || 0}, &quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>227</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;function(element, value) {&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>228</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;#{callback}}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>229</pre>
</td>
<td>
<pre> #javascript &lt;&lt; &quot;, '#{options[:on]}'&quot; if options[:on]</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>230</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;)&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>231</pre>
</td>
<td>
<pre> javascript_tag(javascript)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>232</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>233</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>234</pre>
</td>
<td>
<pre> def build_callbacks(options)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>235</pre>
</td>
<td>
<pre> callbacks = {}</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>236</pre>
</td>
<td>
<pre> options[:beforeSend] = '';</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>237</pre>
</td>
<td>
<pre> [:uninitialized,:loading].each do |key|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>238</pre>
</td>
<td>
<pre> options[:beforeSend] &lt;&lt; (options[key].last == ';' ? options.delete(key) : options.delete(key) &lt;&lt; ';') if options[key]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>239</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>240</pre>
</td>
<td>
<pre> options.delete(:beforeSend) if options[:beforeSend].blank?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>241</pre>
</td>
<td>
<pre> options[:complete] = options.delete(:loaded) if options[:loaded] </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>242</pre>
</td>
<td>
<pre> options[:error] = options.delete(:failure) if options[:failure]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>243</pre>
</td>
<td>
<pre> if options[:update]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>244</pre>
</td>
<td>
<pre> if options[:update].is_a?(Hash)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>245</pre>
</td>
<td>
<pre> options[:update][:error] = options[:update].delete(:failure) if options[:update][:failure]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>246</pre>
</td>
<td>
<pre> if options[:update][:success]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>247</pre>
</td>
<td>
<pre> options[:success] = build_update_for_success(options[:update][:success], options[:position]) &lt;&lt; (options[:success] ? options[:success] : '')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>248</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>249</pre>
</td>
<td>
<pre> if options[:update][:error]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>250</pre>
</td>
<td>
<pre> options[:error] = build_update_for_error(options[:update][:error], options[:position]) &lt;&lt; (options[:error] ? options[:error] : '')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>251</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>252</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>253</pre>
</td>
<td>
<pre> options[:success] = build_update_for_success(options[:update], options[:position]) &lt;&lt; (options[:success] ? options[:success] : '')</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>254</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>255</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>256</pre>
</td>
<td>
<pre> options.each do |callback, code|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>257</pre>
</td>
<td>
<pre> if JQCALLBACKS.include?(callback)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>258</pre>
</td>
<td>
<pre> callbacks[callback] = &quot;function(request){#{code}}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>259</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>260</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>261</pre>
</td>
<td>
<pre> callbacks</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>262</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>263</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>264</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>265</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>266</pre>
</td>
<td>
<pre> class JavaScriptElementProxy &lt; JavaScriptProxy #:nodoc:</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>267</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>268</pre>
</td>
<td>
<pre> unless const_defined? :JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>269</pre>
</td>
<td>
<pre> JQUERY_VAR = PrototypeHelper::JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>270</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>271</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>272</pre>
</td>
<td>
<pre> def initialize(generator, id)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>273</pre>
</td>
<td>
<pre> id = id.to_s.count('#.*,&gt;+~:[/ ') == 0 ? &quot;##{id}&quot; : id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>274</pre>
</td>
<td>
<pre> @id = id</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>275</pre>
</td>
<td>
<pre> super(generator, &quot;#{JQUERY_VAR}(\&quot;#{id}\&quot;)&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>276</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>277</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>278</pre>
</td>
<td>
<pre> def replace_html(*options_for_render)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>279</pre>
</td>
<td>
<pre> call 'html', @generator.send(:render, *options_for_render)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>280</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>281</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>282</pre>
</td>
<td>
<pre> def replace(*options_for_render)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>283</pre>
</td>
<td>
<pre> call 'replaceWith', @generator.send(:render, *options_for_render)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>284</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>285</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>286</pre>
</td>
<td>
<pre> def reload(options_for_replace={})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>287</pre>
</td>
<td>
<pre> replace(options_for_replace.merge({ :partial =&gt; @id.to_s.sub(/^#/,'') }))</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>288</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>289</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>290</pre>
</td>
<td>
<pre> def value()</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>291</pre>
</td>
<td>
<pre> call 'val()'</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>292</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>293</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>294</pre>
</td>
<td>
<pre> def value=(value)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>295</pre>
</td>
<td>
<pre> call 'val', value</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>296</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>297</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>298</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>299</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>300</pre>
</td>
<td>
<pre> class JavaScriptElementCollectionProxy &lt; JavaScriptCollectionProxy #:nodoc:\</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>301</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>302</pre>
</td>
<td>
<pre> unless const_defined? :JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>303</pre>
</td>
<td>
<pre> JQUERY_VAR = PrototypeHelper::JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>304</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>305</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>306</pre>
</td>
<td>
<pre> def initialize(generator, pattern)</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>307</pre>
</td>
<td>
<pre> super(generator, &quot;#{JQUERY_VAR}(#{pattern.to_json})&quot;)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>308</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>309</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>310</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>311</pre>
</td>
<td>
<pre> module ScriptaculousHelper</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>312</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>313</pre>
</td>
<td>
<pre> unless const_defined? :JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>314</pre>
</td>
<td>
<pre> JQUERY_VAR = PrototypeHelper::JQUERY_VAR</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>315</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>316</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>317</pre>
</td>
<td>
<pre> unless const_defined? :SCRIPTACULOUS_EFFECTS</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>318</pre>
</td>
<td>
<pre> SCRIPTACULOUS_EFFECTS = {</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>319</pre>
</td>
<td>
<pre> :appear =&gt; {:method =&gt; 'fadeIn'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>320</pre>
</td>
<td>
<pre> :blind_down =&gt; {:method =&gt; 'blind', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'vertical'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>321</pre>
</td>
<td>
<pre> :blind_up =&gt; {:method =&gt; 'blind', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'vertical'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>322</pre>
</td>
<td>
<pre> :blind_right =&gt; {:method =&gt; 'blind', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'horizontal'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>323</pre>
</td>
<td>
<pre> :blind_left =&gt; {:method =&gt; 'blind', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'horizontal'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>324</pre>
</td>
<td>
<pre> :bounce_in =&gt; {:method =&gt; 'bounce', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>325</pre>
</td>
<td>
<pre> :bounce_out =&gt; {:method =&gt; 'bounce', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>326</pre>
</td>
<td>
<pre> :drop_in =&gt; {:method =&gt; 'drop', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>327</pre>
</td>
<td>
<pre> :drop_out =&gt; {:method =&gt; 'drop', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'down'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>328</pre>
</td>
<td>
<pre> :fade =&gt; {:method =&gt; 'fadeOut'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>329</pre>
</td>
<td>
<pre> :fold_in =&gt; {:method =&gt; 'fold', :mode =&gt; 'hide'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>330</pre>
</td>
<td>
<pre> :fold_out =&gt; {:method =&gt; 'fold', :mode =&gt; 'show'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>331</pre>
</td>
<td>
<pre> :grow =&gt; {:method =&gt; 'scale', :mode =&gt; 'show'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>332</pre>
</td>
<td>
<pre> :shrink =&gt; {:method =&gt; 'scale', :mode =&gt; 'hide'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>333</pre>
</td>
<td>
<pre> :slide_down =&gt; {:method =&gt; 'slide', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>334</pre>
</td>
<td>
<pre> :slide_up =&gt; {:method =&gt; 'slide', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>335</pre>
</td>
<td>
<pre> :slide_right =&gt; {:method =&gt; 'slide', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'left'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>336</pre>
</td>
<td>
<pre> :slide_left =&gt; {:method =&gt; 'slide', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'left'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>337</pre>
</td>
<td>
<pre> :squish =&gt; {:method =&gt; 'scale', :mode =&gt; 'hide', :options =&gt; {:origin =&gt; &quot;['top','left']&quot;}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>338</pre>
</td>
<td>
<pre> :switch_on =&gt; {:method =&gt; 'clip', :mode =&gt; 'show', :options =&gt; {:direction =&gt; 'vertical'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>339</pre>
</td>
<td>
<pre> :switch_off =&gt; {:method =&gt; 'clip', :mode =&gt; 'hide', :options =&gt; {:direction =&gt; 'vertical'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>340</pre>
</td>
<td>
<pre> :toggle_appear =&gt; {:method =&gt; 'fadeToggle'},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>341</pre>
</td>
<td>
<pre> :toggle_slide =&gt; {:method =&gt; 'slide', :mode =&gt; 'toggle', :options =&gt; {:direction =&gt; 'up'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>342</pre>
</td>
<td>
<pre> :toggle_blind =&gt; {:method =&gt; 'blind', :mode =&gt; 'toggle', :options =&gt; {:direction =&gt; 'vertical'}},</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>343</pre>
</td>
<td>
<pre> }</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>344</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>345</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>346</pre>
</td>
<td>
<pre> def visual_effect(name, element_id = false, js_options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>347</pre>
</td>
<td>
<pre> element = element_id ? element_id : &quot;this&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>348</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>349</pre>
</td>
<td>
<pre> if SCRIPTACULOUS_EFFECTS.has_key? name.to_sym</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>350</pre>
</td>
<td>
<pre> effect = SCRIPTACULOUS_EFFECTS[name.to_sym]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>351</pre>
</td>
<td>
<pre> name = effect[:method]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>352</pre>
</td>
<td>
<pre> mode = effect[:mode]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>353</pre>
</td>
<td>
<pre> js_options = js_options.merge(effect[:options]) if effect[:options]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>354</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>355</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>356</pre>
</td>
<td>
<pre> [:color, :direction, :startcolor, :endcolor].each do |option|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>357</pre>
</td>
<td>
<pre> js_options[option] = &quot;'#{js_options[option]}'&quot; if js_options[option]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>358</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>359</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>360</pre>
</td>
<td>
<pre> if js_options.has_key? :duration</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>361</pre>
</td>
<td>
<pre> speed = js_options.delete :duration</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>362</pre>
</td>
<td>
<pre> speed = (speed * 1000).to_i unless speed.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>363</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>364</pre>
</td>
<td>
<pre> speed = js_options.delete :speed</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>365</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>366</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>367</pre>
</td>
<td>
<pre> if ['fadeIn','fadeOut','fadeToggle'].include?(name)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>368</pre>
</td>
<td>
<pre> # 090905 - Jake - changed ' to \&quot; so it passes assert_select_rjs with an id</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>369</pre>
</td>
<td>
<pre> javascript = &quot;#{JQUERY_VAR}(\&quot;#{jquery_id(element_id)}\&quot;).#{name}(&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>370</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;#{speed}&quot; unless speed.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>371</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;);&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>372</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>373</pre>
</td>
<td>
<pre> # 090905 - Jake - changed ' to \&quot; so it passes &quot;assert_select_rjs :effect, ID&quot;</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>374</pre>
</td>
<td>
<pre> javascript = &quot;#{JQUERY_VAR}(\&quot;#{jquery_id(element_id)}\&quot;).#{mode || 'effect'}('#{name}'&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>375</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;,#{options_for_javascript(js_options)}&quot; unless speed.nil? &amp;&amp; js_options.empty?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>376</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;,#{speed}&quot; unless speed.nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>377</pre>
</td>
<td>
<pre> javascript &lt;&lt; &quot;);&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>378</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>379</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>380</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>381</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>382</pre>
</td>
<td>
<pre> def sortable_element_js(element_id, options = {}) #:nodoc:</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>383</pre>
</td>
<td>
<pre> #convert similar attributes</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>384</pre>
</td>
<td>
<pre> options[:handle] = &quot;.#{options[:handle]}&quot; if options[:handle]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>385</pre>
</td>
<td>
<pre> if options[:tag] || options[:only]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>386</pre>
</td>
<td>
<pre> options[:items] = &quot;&gt; &quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>387</pre>
</td>
<td>
<pre> options[:items] &lt;&lt; options.delete(:tag) if options[:tag]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>388</pre>
</td>
<td>
<pre> options[:items] &lt;&lt; &quot;.#{options.delete(:only)}&quot; if options[:only]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>389</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>390</pre>
</td>
<td>
<pre> options[:connectWith] = options.delete(:containment).map {|x| &quot;##{x}&quot;} if options[:containment]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>391</pre>
</td>
<td>
<pre> options[:containment] = options.delete(:container) if options[:container]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>392</pre>
</td>
<td>
<pre> options[:dropOnEmpty] = false unless options[:dropOnEmpty]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>393</pre>
</td>
<td>
<pre> options[:helper] = &quot;'clone'&quot; if options[:ghosting] == true</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>394</pre>
</td>
<td>
<pre> options[:axis] = case options.delete(:constraint)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>395</pre>
</td>
<td>
<pre> when &quot;vertical&quot;, :vertical</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>396</pre>
</td>
<td>
<pre> &quot;y&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>397</pre>
</td>
<td>
<pre> when &quot;horizontal&quot;, :horizontal</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>398</pre>
</td>
<td>
<pre> &quot;x&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>399</pre>
</td>
<td>
<pre> when false</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>400</pre>
</td>
<td>
<pre> nil</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>401</pre>
</td>
<td>
<pre> when nil</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>402</pre>
</td>
<td>
<pre> &quot;y&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>403</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>404</pre>
</td>
<td>
<pre> options.delete(:axis) if options[:axis].nil?</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>405</pre>
</td>
<td>
<pre> options.delete(:overlap)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>406</pre>
</td>
<td>
<pre> options.delete(:ghosting)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>407</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>408</pre>
</td>
<td>
<pre> if options[:onUpdate] || options[:url]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>409</pre>
</td>
<td>
<pre> if options[:format]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>410</pre>
</td>
<td>
<pre> options[:with] ||= &quot;#{JQUERY_VAR}(this).sortable('serialize',{key:'#{element_id}[]', expression:#{options[:format]}})&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>411</pre>
</td>
<td>
<pre> options.delete(:format)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>412</pre>
</td>
<td>
<pre> else</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>413</pre>
</td>
<td>
<pre> options[:with] ||= &quot;#{JQUERY_VAR}(this).sortable('serialize',{key:'#{element_id}[]'})&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>414</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>415</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>416</pre>
</td>
<td>
<pre> options[:onUpdate] ||= &quot;function(){&quot; + remote_function(options) + &quot;}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>417</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>418</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>419</pre>
</td>
<td>
<pre> options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>420</pre>
</td>
<td>
<pre> options[:update] = options.delete(:onUpdate) if options[:onUpdate]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>421</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>422</pre>
</td>
<td>
<pre> [:axis, :cancel, :containment, :cursor, :handle, :tolerance, :items, :placeholder].each do |option|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>423</pre>
</td>
<td>
<pre> options[option] = &quot;'#{options[option]}'&quot; if options[option]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>424</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>425</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>426</pre>
</td>
<td>
<pre> options[:connectWith] = array_or_string_for_javascript(options[:connectWith]) if options[:connectWith]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>427</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>428</pre>
</td>
<td>
<pre> %(#{JQUERY_VAR}('#{jquery_id(element_id)}').sortable(#{options_for_javascript(options)});)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>429</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>430</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>431</pre>
</td>
<td>
<pre> def draggable_element_js(element_id, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>432</pre>
</td>
<td>
<pre> %(#{JQUERY_VAR}(&quot;#{jquery_id(element_id)}&quot;).draggable(#{options_for_javascript(options)});)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>433</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>434</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="hit" data-hits="1">
<td class="line_number">
<pre>435</pre>
</td>
<td>
<pre> def drop_receiving_element_js(element_id, options = {})</pre>
</td>
<td class="hits">
1
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>436</pre>
</td>
<td>
<pre> #convert similar options</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>437</pre>
</td>
<td>
<pre> options[:hoverClass] = options.delete(:hoverclass) if options[:hoverclass]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>438</pre>
</td>
<td>
<pre> options[:drop] = options.delete(:onDrop) if options[:onDrop]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>439</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>440</pre>
</td>
<td>
<pre> if options[:drop] || options[:url]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>441</pre>
</td>
<td>
<pre> options[:with] ||= &quot;'id=' + encodeURIComponent(#{JQUERY_VAR}(ui.draggable).attr('id'))&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>442</pre>
</td>
<td>
<pre> options[:drop] ||= &quot;function(ev, ui){&quot; + remote_function(options) + &quot;}&quot;</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>443</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>444</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>445</pre>
</td>
<td>
<pre> options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) }</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>446</pre>
</td>
<td>
<pre></pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>447</pre>
</td>
<td>
<pre> options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept] </pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>448</pre>
</td>
<td>
<pre> [:activeClass, :hoverClass, :tolerance].each do |option|</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>449</pre>
</td>
<td>
<pre> options[option] = &quot;'#{options[option]}'&quot; if options[option]</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>450</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>451</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="miss" data-hits="0">
<td class="line_number">
<pre>452</pre>
</td>
<td>
<pre> %(#{JQUERY_VAR}('#{jquery_id(element_id)}').droppable(#{options_for_javascript(options)});)</pre>
</td>
<td class="hits">
0
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>453</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>454</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>455</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>456</pre>
</td>
<td>
<pre> </pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>457</pre>
</td>
<td>
<pre> end</pre>
</td>
<td class="hits">
</td>
</tr>
<tr class="never" >
<td class="line_number">
<pre>458</pre>
</td>
<td>
<pre>end</pre>
</td>
<td class="hits">
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
</html>