repository-manager 0.1.7 → 0.1.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1929) hide show
  1. checksums.yaml +13 -5
  2. data/.rspec +1 -1
  3. data/README.md +459 -459
  4. data/app/models/repository_manager/repo_file.rb +33 -33
  5. data/app/models/repository_manager/repo_folder.rb +151 -150
  6. data/app/models/repository_manager/repo_item.rb +91 -91
  7. data/app/models/repository_manager/sharing.rb +69 -61
  8. data/app/models/repository_manager/sharings_member.rb +7 -7
  9. data/config/locales/en/repository_manager.en.yml +18 -18
  10. data/config/locales/fr/repository_manager.fr.yml +18 -18
  11. data/db/migrate/20131018214212_create_repository_manager.rb +34 -33
  12. data/lib/generators/repository_manager/install_generator.rb +32 -32
  13. data/lib/generators/repository_manager/templates/initializer.rb +12 -12
  14. data/lib/repository-manager.rb +33 -33
  15. data/lib/repository_manager/exceptions.rb +9 -9
  16. data/lib/repository_manager/has_repository.rb +560 -552
  17. data/lib/repository_manager/version.rb +2 -2
  18. data/repository-manager.gemspec +30 -30
  19. data/spec/dummy/Gemfile +11 -11
  20. data/spec/dummy/db/migrate/20131016193722_create_users.rb +10 -10
  21. data/spec/dummy/db/migrate/20131016193834_create_groups.rb +9 -9
  22. data/spec/dummy/db/migrate/20131016194207_create_groups_users.rb +4 -4
  23. data/spec/dummy/db/migrate/20131018214212_create_repository_manager.rb +34 -33
  24. data/spec/dummy/db/schema.rb +70 -68
  25. data/spec/dummy/public/uploads/repo_file/file/1275/textfile.txt +1 -0
  26. data/spec/dummy/public/uploads/repo_file/file/1276/textfile.txt +1 -0
  27. data/spec/dummy/public/uploads/repo_file/file/1285/textfile.txt +1 -0
  28. data/spec/dummy/public/uploads/repo_file/file/1287/textfile.txt +1 -0
  29. data/spec/dummy/public/uploads/repo_file/file/1291/textfile.txt +1 -0
  30. data/spec/dummy/public/uploads/repo_file/file/1294/textfile.txt +1 -0
  31. data/spec/dummy/public/uploads/repo_file/file/1296/textfile.txt +1 -0
  32. data/spec/dummy/public/uploads/repo_file/file/1297/textfile.txt +1 -0
  33. data/spec/dummy/public/uploads/repo_file/file/1299/textfile.txt +1 -0
  34. data/spec/dummy/public/uploads/repo_file/file/1305/textfile.txt +1 -0
  35. data/spec/dummy/public/uploads/repo_file/file/1307/textfile.txt +1 -0
  36. data/spec/dummy/public/uploads/repo_file/file/1309/textfile.txt +1 -0
  37. data/spec/dummy/public/uploads/repo_file/file/1311/textfile.txt +1 -0
  38. data/spec/dummy/public/uploads/repo_file/file/1313/textfile.txt +1 -0
  39. data/spec/dummy/public/uploads/repo_file/file/1315/textfile.txt +1 -0
  40. data/spec/dummy/public/uploads/repo_file/file/1317/textfile.txt +1 -0
  41. data/spec/dummy/public/uploads/repo_file/file/1319/textfile.txt +1 -0
  42. data/spec/dummy/public/uploads/repo_file/file/1321/textfile.txt +1 -0
  43. data/spec/dummy/public/uploads/repo_file/file/1324/textfile.txt +1 -0
  44. data/spec/dummy/public/uploads/repo_file/file/1325/textfile.txt +1 -0
  45. data/spec/dummy/public/uploads/repo_file/file/1327/textfile.txt +1 -0
  46. data/spec/dummy/public/uploads/repo_file/file/1331/textfile.txt +1 -0
  47. data/spec/dummy/public/uploads/repo_file/file/1332/textfile.txt +1 -0
  48. data/spec/dummy/public/uploads/repo_file/file/1333/textfile.txt +1 -0
  49. data/spec/dummy/public/uploads/repo_file/file/1334/textfile.txt +1 -0
  50. data/spec/dummy/public/uploads/repo_file/file/1335/textfile.txt +1 -0
  51. data/spec/dummy/public/uploads/repo_file/file/1336/textfile.txt +1 -0
  52. data/spec/dummy/public/uploads/repo_file/file/1337/textfile.txt +1 -0
  53. data/spec/dummy/public/uploads/repo_file/file/1338/textfile.txt +1 -0
  54. data/spec/dummy/public/uploads/repo_file/file/1339/textfile.txt +1 -0
  55. data/spec/dummy/public/uploads/repo_file/file/1340/textfile.txt +1 -0
  56. data/spec/dummy/public/uploads/repo_file/file/1349/textfile.txt +1 -0
  57. data/spec/dummy/public/uploads/repo_file/file/1353/textfile.txt +1 -0
  58. data/spec/dummy/public/uploads/repo_file/file/1356/textfile.txt +1 -0
  59. data/spec/dummy/public/uploads/repo_file/file/1358/textfile.txt +1 -0
  60. data/spec/dummy/public/uploads/repo_file/file/1359/textfile.txt +1 -0
  61. data/spec/dummy/public/uploads/repo_file/file/1361/textfile.txt +1 -0
  62. data/spec/dummy/public/uploads/repo_file/file/1365/textfile.txt +1 -0
  63. data/spec/dummy/public/uploads/repo_file/file/1367/textfile.txt +1 -0
  64. data/spec/dummy/public/uploads/repo_file/file/1369/textfile.txt +1 -0
  65. data/spec/dummy/public/uploads/repo_file/file/1371/textfile.txt +1 -0
  66. data/spec/dummy/public/uploads/repo_file/file/1373/textfile.txt +1 -0
  67. data/spec/dummy/public/uploads/repo_file/file/1375/textfile.txt +1 -0
  68. data/spec/dummy/public/uploads/repo_file/file/1377/textfile.txt +1 -0
  69. data/spec/dummy/public/uploads/repo_file/file/1379/textfile.txt +1 -0
  70. data/spec/dummy/public/uploads/repo_file/file/1381/textfile.txt +1 -0
  71. data/spec/dummy/public/uploads/repo_file/file/1383/textfile.txt +1 -0
  72. data/spec/dummy/public/uploads/repo_file/file/1386/textfile.txt +1 -0
  73. data/spec/dummy/public/uploads/repo_file/file/1388/textfile.txt +1 -0
  74. data/spec/dummy/public/uploads/repo_file/file/1389/textfile.txt +1 -0
  75. data/spec/dummy/public/uploads/repo_file/file/1390/textfile.txt +1 -0
  76. data/spec/dummy/public/uploads/repo_file/file/1391/textfile.txt +1 -0
  77. data/spec/dummy/public/uploads/repo_file/file/1392/textfile.txt +1 -0
  78. data/spec/dummy/public/uploads/repo_file/file/1393/textfile.txt +1 -0
  79. data/spec/dummy/public/uploads/repo_file/file/1394/textfile.txt +1 -0
  80. data/spec/dummy/public/uploads/repo_file/file/1395/textfile.txt +1 -0
  81. data/spec/dummy/public/uploads/repo_file/file/1396/textfile.txt +1 -0
  82. data/spec/dummy/public/uploads/repo_file/file/1397/textfile.txt +1 -0
  83. data/spec/dummy/public/uploads/repo_file/file/1406/textfile.txt +1 -0
  84. data/spec/dummy/public/uploads/repo_file/file/1408/textfile.txt +1 -0
  85. data/spec/dummy/public/uploads/repo_file/file/1412/textfile.txt +1 -0
  86. data/spec/dummy/public/uploads/repo_file/file/1415/textfile.txt +1 -0
  87. data/spec/dummy/public/uploads/repo_file/file/1417/textfile.txt +1 -0
  88. data/spec/dummy/public/uploads/repo_file/file/1418/textfile.txt +1 -0
  89. data/spec/dummy/public/uploads/repo_file/file/1420/textfile.txt +1 -0
  90. data/spec/dummy/public/uploads/repo_file/file/1426/textfile.txt +1 -0
  91. data/spec/dummy/public/uploads/repo_file/file/1428/textfile.txt +1 -0
  92. data/spec/dummy/public/uploads/repo_file/file/1430/textfile.txt +1 -0
  93. data/spec/dummy/public/uploads/repo_file/file/1432/textfile.txt +1 -0
  94. data/spec/dummy/public/uploads/repo_file/file/1434/textfile.txt +1 -0
  95. data/spec/dummy/public/uploads/repo_file/file/1436/textfile.txt +1 -0
  96. data/spec/dummy/public/uploads/repo_file/file/1438/textfile.txt +1 -0
  97. data/spec/dummy/public/uploads/repo_file/file/1440/textfile.txt +1 -0
  98. data/spec/dummy/public/uploads/repo_file/file/1442/textfile.txt +1 -0
  99. data/spec/dummy/public/uploads/repo_file/file/1445/textfile.txt +1 -0
  100. data/spec/dummy/public/uploads/repo_file/file/1446/textfile.txt +1 -0
  101. data/spec/dummy/public/uploads/repo_file/file/1448/textfile.txt +1 -0
  102. data/spec/dummy/public/uploads/repo_file/file/1451/textfile.txt +1 -0
  103. data/spec/dummy/public/uploads/repo_file/file/1452/textfile.txt +1 -0
  104. data/spec/dummy/public/uploads/repo_file/file/1453/textfile.txt +1 -0
  105. data/spec/dummy/public/uploads/repo_file/file/1454/textfile.txt +1 -0
  106. data/spec/dummy/public/uploads/repo_file/file/1455/textfile.txt +1 -0
  107. data/spec/dummy/public/uploads/repo_file/file/1456/textfile.txt +1 -0
  108. data/spec/dummy/public/uploads/repo_file/file/1457/textfile.txt +1 -0
  109. data/spec/dummy/public/uploads/repo_file/file/1458/textfile.txt +1 -0
  110. data/spec/dummy/public/uploads/repo_file/file/1459/textfile.txt +1 -0
  111. data/spec/dummy/public/uploads/repo_file/file/1460/textfile.txt +1 -0
  112. data/spec/dummy/public/uploads/repo_file/file/1469/textfile.txt +1 -0
  113. data/spec/dummy/public/uploads/repo_file/file/1471/textfile.txt +1 -0
  114. data/spec/dummy/public/uploads/repo_file/file/1475/textfile.txt +1 -0
  115. data/spec/dummy/public/uploads/repo_file/file/1478/textfile.txt +1 -0
  116. data/spec/dummy/public/uploads/repo_file/file/1480/textfile.txt +1 -0
  117. data/spec/dummy/public/uploads/repo_file/file/1481/textfile.txt +1 -0
  118. data/spec/dummy/public/uploads/repo_file/file/1483/textfile.txt +1 -0
  119. data/spec/dummy/public/uploads/repo_file/file/1489/textfile.txt +1 -0
  120. data/spec/dummy/public/uploads/repo_file/file/1491/textfile.txt +1 -0
  121. data/spec/dummy/public/uploads/repo_file/file/1493/textfile.txt +1 -0
  122. data/spec/dummy/public/uploads/repo_file/file/1495/textfile.txt +1 -0
  123. data/spec/dummy/public/uploads/repo_file/file/1497/textfile.txt +1 -0
  124. data/spec/dummy/public/uploads/repo_file/file/1499/textfile.txt +1 -0
  125. data/spec/dummy/public/uploads/repo_file/file/1501/textfile.txt +1 -0
  126. data/spec/dummy/public/uploads/repo_file/file/1503/textfile.txt +1 -0
  127. data/spec/dummy/public/uploads/repo_file/file/1505/textfile.txt +1 -0
  128. data/spec/dummy/public/uploads/repo_file/file/1508/textfile.txt +1 -0
  129. data/spec/dummy/public/uploads/repo_file/file/1509/textfile.txt +1 -0
  130. data/spec/dummy/public/uploads/repo_file/file/1511/textfile.txt +1 -0
  131. data/spec/dummy/public/uploads/repo_file/file/1515/textfile.txt +1 -0
  132. data/spec/dummy/public/uploads/repo_file/file/1516/textfile.txt +1 -0
  133. data/spec/dummy/public/uploads/repo_file/file/1517/textfile.txt +1 -0
  134. data/spec/dummy/public/uploads/repo_file/file/1518/textfile.txt +1 -0
  135. data/spec/dummy/public/uploads/repo_file/file/1519/textfile.txt +1 -0
  136. data/spec/dummy/public/uploads/repo_file/file/1520/textfile.txt +1 -0
  137. data/spec/dummy/public/uploads/repo_file/file/1521/textfile.txt +1 -0
  138. data/spec/dummy/public/uploads/repo_file/file/1522/textfile.txt +1 -0
  139. data/spec/dummy/public/uploads/repo_file/file/1523/textfile.txt +1 -0
  140. data/spec/dummy/public/uploads/repo_file/file/1524/textfile.txt +1 -0
  141. data/spec/dummy/public/uploads/repo_file/file/1533/textfile.txt +1 -0
  142. data/spec/dummy/public/uploads/repo_file/file/1535/textfile.txt +1 -0
  143. data/spec/dummy/public/uploads/repo_file/file/1539/textfile.txt +1 -0
  144. data/spec/dummy/public/uploads/repo_file/file/1542/textfile.txt +1 -0
  145. data/spec/dummy/public/uploads/repo_file/file/1544/textfile.txt +1 -0
  146. data/spec/dummy/public/uploads/repo_file/file/1545/textfile.txt +1 -0
  147. data/spec/dummy/public/uploads/repo_file/file/1547/textfile.txt +1 -0
  148. data/spec/dummy/public/uploads/repo_file/file/1553/textfile.txt +1 -0
  149. data/spec/dummy/public/uploads/repo_file/file/1555/textfile.txt +1 -0
  150. data/spec/dummy/public/uploads/repo_file/file/1557/textfile.txt +1 -0
  151. data/spec/dummy/public/uploads/repo_file/file/1559/textfile.txt +1 -0
  152. data/spec/dummy/public/uploads/repo_file/file/1561/textfile.txt +1 -0
  153. data/spec/dummy/public/uploads/repo_file/file/1563/textfile.txt +1 -0
  154. data/spec/dummy/public/uploads/repo_file/file/1565/textfile.txt +1 -0
  155. data/spec/dummy/public/uploads/repo_file/file/1567/textfile.txt +1 -0
  156. data/spec/dummy/public/uploads/repo_file/file/1569/textfile.txt +1 -0
  157. data/spec/dummy/public/uploads/repo_file/file/1572/textfile.txt +1 -0
  158. data/spec/dummy/public/uploads/repo_file/file/1573/textfile.txt +1 -0
  159. data/spec/dummy/public/uploads/repo_file/file/1575/textfile.txt +1 -0
  160. data/spec/dummy/public/uploads/repo_file/file/1579/textfile.txt +1 -0
  161. data/spec/dummy/public/uploads/repo_file/file/1580/textfile.txt +1 -0
  162. data/spec/dummy/public/uploads/repo_file/file/1581/textfile.txt +1 -0
  163. data/spec/dummy/public/uploads/repo_file/file/1582/textfile.txt +1 -0
  164. data/spec/dummy/public/uploads/repo_file/file/1583/textfile.txt +1 -0
  165. data/spec/dummy/public/uploads/repo_file/file/1584/textfile.txt +1 -0
  166. data/spec/dummy/public/uploads/repo_file/file/1585/textfile.txt +1 -0
  167. data/spec/dummy/public/uploads/repo_file/file/1586/textfile.txt +1 -0
  168. data/spec/dummy/public/uploads/repo_file/file/1587/textfile.txt +1 -0
  169. data/spec/dummy/public/uploads/repo_file/file/1588/textfile.txt +1 -0
  170. data/spec/dummy/public/uploads/repo_file/file/1597/textfile.txt +1 -0
  171. data/spec/dummy/public/uploads/repo_file/file/1599/textfile.txt +1 -0
  172. data/spec/dummy/public/uploads/repo_file/file/1603/textfile.txt +1 -0
  173. data/spec/dummy/public/uploads/repo_file/file/1606/textfile.txt +1 -0
  174. data/spec/dummy/public/uploads/repo_file/file/1608/textfile.txt +1 -0
  175. data/spec/dummy/public/uploads/repo_file/file/1609/textfile.txt +1 -0
  176. data/spec/dummy/public/uploads/repo_file/file/1611/textfile.txt +1 -0
  177. data/spec/dummy/public/uploads/repo_file/file/1617/textfile.txt +1 -0
  178. data/spec/dummy/public/uploads/repo_file/file/1619/textfile.txt +1 -0
  179. data/spec/dummy/public/uploads/repo_file/file/1621/textfile.txt +1 -0
  180. data/spec/dummy/public/uploads/repo_file/file/1623/textfile.txt +1 -0
  181. data/spec/dummy/public/uploads/repo_file/file/1625/textfile.txt +1 -0
  182. data/spec/dummy/public/uploads/repo_file/file/1627/textfile.txt +1 -0
  183. data/spec/dummy/public/uploads/repo_file/file/1629/textfile.txt +1 -0
  184. data/spec/dummy/public/uploads/repo_file/file/1631/textfile.txt +1 -0
  185. data/spec/dummy/public/uploads/repo_file/file/1633/textfile.txt +1 -0
  186. data/spec/dummy/public/uploads/repo_file/file/1636/textfile.txt +1 -0
  187. data/spec/dummy/public/uploads/repo_file/file/1637/textfile.txt +1 -0
  188. data/spec/dummy/public/uploads/repo_file/file/1639/textfile.txt +1 -0
  189. data/spec/dummy/public/uploads/repo_file/file/1643/textfile.txt +1 -0
  190. data/spec/dummy/public/uploads/repo_file/file/1644/textfile.txt +1 -0
  191. data/spec/dummy/public/uploads/repo_file/file/1645/textfile.txt +1 -0
  192. data/spec/dummy/public/uploads/repo_file/file/1646/textfile.txt +1 -0
  193. data/spec/dummy/public/uploads/repo_file/file/1647/textfile.txt +1 -0
  194. data/spec/dummy/public/uploads/repo_file/file/1648/textfile.txt +1 -0
  195. data/spec/dummy/public/uploads/repo_file/file/1649/textfile.txt +1 -0
  196. data/spec/dummy/public/uploads/repo_file/file/1650/textfile.txt +1 -0
  197. data/spec/dummy/public/uploads/repo_file/file/1651/textfile.txt +1 -0
  198. data/spec/dummy/public/uploads/repo_file/file/1652/textfile.txt +1 -0
  199. data/spec/dummy/public/uploads/repo_file/file/1661/textfile.txt +1 -0
  200. data/spec/dummy/public/uploads/repo_file/file/1663/textfile.txt +1 -0
  201. data/spec/dummy/public/uploads/repo_file/file/1667/textfile.txt +1 -0
  202. data/spec/dummy/public/uploads/repo_file/file/1670/textfile.txt +1 -0
  203. data/spec/dummy/public/uploads/repo_file/file/1672/textfile.txt +1 -0
  204. data/spec/dummy/public/uploads/repo_file/file/1673/textfile.txt +1 -0
  205. data/spec/dummy/public/uploads/repo_file/file/1675/textfile.txt +1 -0
  206. data/spec/dummy/public/uploads/repo_file/file/1681/textfile.txt +1 -0
  207. data/spec/dummy/public/uploads/repo_file/file/1683/textfile.txt +1 -0
  208. data/spec/dummy/public/uploads/repo_file/file/1685/textfile.txt +1 -0
  209. data/spec/dummy/public/uploads/repo_file/file/1687/textfile.txt +1 -0
  210. data/spec/dummy/public/uploads/repo_file/file/1689/textfile.txt +1 -0
  211. data/spec/dummy/public/uploads/repo_file/file/1691/textfile.txt +1 -0
  212. data/spec/dummy/public/uploads/repo_file/file/1693/textfile.txt +1 -0
  213. data/spec/dummy/public/uploads/repo_file/file/1695/textfile.txt +1 -0
  214. data/spec/dummy/public/uploads/repo_file/file/1697/textfile.txt +1 -0
  215. data/spec/dummy/public/uploads/repo_file/file/1700/textfile.txt +1 -0
  216. data/spec/dummy/public/uploads/repo_file/file/1701/textfile.txt +1 -0
  217. data/spec/dummy/public/uploads/repo_file/file/1703/textfile.txt +1 -0
  218. data/spec/dummy/public/uploads/repo_file/file/1707/textfile.txt +1 -0
  219. data/spec/dummy/public/uploads/repo_file/file/1708/textfile.txt +1 -0
  220. data/spec/dummy/public/uploads/repo_file/file/1709/textfile.txt +1 -0
  221. data/spec/dummy/public/uploads/repo_file/file/1710/textfile.txt +1 -0
  222. data/spec/dummy/public/uploads/repo_file/file/1711/textfile.txt +1 -0
  223. data/spec/dummy/public/uploads/repo_file/file/1712/textfile.txt +1 -0
  224. data/spec/dummy/public/uploads/repo_file/file/1713/textfile.txt +1 -0
  225. data/spec/dummy/public/uploads/repo_file/file/1714/textfile.txt +1 -0
  226. data/spec/dummy/public/uploads/repo_file/file/1715/textfile.txt +1 -0
  227. data/spec/dummy/public/uploads/repo_file/file/1716/textfile.txt +1 -0
  228. data/spec/dummy/public/uploads/repo_file/file/1725/textfile.txt +1 -0
  229. data/spec/dummy/public/uploads/repo_file/file/1727/textfile.txt +1 -0
  230. data/spec/dummy/public/uploads/repo_file/file/1731/textfile.txt +1 -0
  231. data/spec/dummy/public/uploads/repo_file/file/1734/textfile.txt +1 -0
  232. data/spec/dummy/public/uploads/repo_file/file/1736/textfile.txt +1 -0
  233. data/spec/dummy/public/uploads/repo_file/file/1737/textfile.txt +1 -0
  234. data/spec/dummy/public/uploads/repo_file/file/1739/textfile.txt +1 -0
  235. data/spec/dummy/public/uploads/repo_file/file/1745/textfile.txt +1 -0
  236. data/spec/dummy/public/uploads/repo_file/file/1747/textfile.txt +1 -0
  237. data/spec/dummy/public/uploads/repo_file/file/1749/textfile.txt +1 -0
  238. data/spec/dummy/public/uploads/repo_file/file/1751/textfile.txt +1 -0
  239. data/spec/dummy/public/uploads/repo_file/file/1753/textfile.txt +1 -0
  240. data/spec/dummy/public/uploads/repo_file/file/1755/textfile.txt +1 -0
  241. data/spec/dummy/public/uploads/repo_file/file/1757/textfile.txt +1 -0
  242. data/spec/dummy/public/uploads/repo_file/file/1759/textfile.txt +1 -0
  243. data/spec/dummy/public/uploads/repo_file/file/1761/textfile.txt +1 -0
  244. data/spec/dummy/public/uploads/repo_file/file/1764/textfile.txt +1 -0
  245. data/spec/dummy/public/uploads/repo_file/file/1765/textfile.txt +1 -0
  246. data/spec/dummy/public/uploads/repo_file/file/1767/textfile.txt +1 -0
  247. data/spec/dummy/public/uploads/repo_file/file/1771/textfile.txt +1 -0
  248. data/spec/dummy/public/uploads/repo_file/file/1772/textfile.txt +1 -0
  249. data/spec/dummy/public/uploads/repo_file/file/1773/textfile.txt +1 -0
  250. data/spec/dummy/public/uploads/repo_file/file/1774/textfile.txt +1 -0
  251. data/spec/dummy/public/uploads/repo_file/file/1775/textfile.txt +1 -0
  252. data/spec/dummy/public/uploads/repo_file/file/1776/textfile.txt +1 -0
  253. data/spec/dummy/public/uploads/repo_file/file/1777/textfile.txt +1 -0
  254. data/spec/dummy/public/uploads/repo_file/file/1778/textfile.txt +1 -0
  255. data/spec/dummy/public/uploads/repo_file/file/1779/textfile.txt +1 -0
  256. data/spec/dummy/public/uploads/repo_file/file/1780/textfile.txt +1 -0
  257. data/spec/dummy/public/uploads/repo_file/file/1789/textfile.txt +1 -0
  258. data/spec/dummy/public/uploads/repo_file/file/1791/textfile.txt +1 -0
  259. data/spec/dummy/public/uploads/repo_file/file/1795/textfile.txt +1 -0
  260. data/spec/dummy/public/uploads/repo_file/file/1798/textfile.txt +1 -0
  261. data/spec/dummy/public/uploads/repo_file/file/1800/textfile.txt +1 -0
  262. data/spec/dummy/public/uploads/repo_file/file/1801/textfile.txt +1 -0
  263. data/spec/dummy/public/uploads/repo_file/file/1803/textfile.txt +1 -0
  264. data/spec/dummy/public/uploads/repo_file/file/1809/textfile.txt +1 -0
  265. data/spec/dummy/public/uploads/repo_file/file/1811/textfile.txt +1 -0
  266. data/spec/dummy/public/uploads/repo_file/file/1813/textfile.txt +1 -0
  267. data/spec/dummy/public/uploads/repo_file/file/1815/textfile.txt +1 -0
  268. data/spec/dummy/public/uploads/repo_file/file/1817/textfile.txt +1 -0
  269. data/spec/dummy/public/uploads/repo_file/file/1819/textfile.txt +1 -0
  270. data/spec/dummy/public/uploads/repo_file/file/1821/textfile.txt +1 -0
  271. data/spec/dummy/public/uploads/repo_file/file/1823/textfile.txt +1 -0
  272. data/spec/dummy/public/uploads/repo_file/file/1825/textfile.txt +1 -0
  273. data/spec/dummy/public/uploads/repo_file/file/1828/textfile.txt +1 -0
  274. data/spec/dummy/public/uploads/repo_file/file/1829/textfile.txt +1 -0
  275. data/spec/dummy/public/uploads/repo_file/file/1831/textfile.txt +1 -0
  276. data/spec/dummy/public/uploads/repo_file/file/1835/textfile.txt +1 -0
  277. data/spec/dummy/public/uploads/repo_file/file/1836/textfile.txt +1 -0
  278. data/spec/dummy/public/uploads/repo_file/file/1837/textfile.txt +1 -0
  279. data/spec/dummy/public/uploads/repo_file/file/1838/textfile.txt +1 -0
  280. data/spec/dummy/public/uploads/repo_file/file/1839/textfile.txt +1 -0
  281. data/spec/dummy/public/uploads/repo_file/file/1840/textfile.txt +1 -0
  282. data/spec/dummy/public/uploads/repo_file/file/1841/textfile.txt +1 -0
  283. data/spec/dummy/public/uploads/repo_file/file/1842/textfile.txt +1 -0
  284. data/spec/dummy/public/uploads/repo_file/file/1843/textfile.txt +1 -0
  285. data/spec/dummy/public/uploads/repo_file/file/1844/textfile.txt +1 -0
  286. data/spec/dummy/public/uploads/repo_file/file/1853/textfile.txt +1 -0
  287. data/spec/dummy/public/uploads/repo_file/file/1855/textfile.txt +1 -0
  288. data/spec/dummy/public/uploads/repo_file/file/1859/textfile.txt +1 -0
  289. data/spec/dummy/public/uploads/repo_file/file/1862/textfile.txt +1 -0
  290. data/spec/dummy/public/uploads/repo_file/file/1864/textfile.txt +1 -0
  291. data/spec/dummy/public/uploads/repo_file/file/1865/textfile.txt +1 -0
  292. data/spec/dummy/public/uploads/repo_file/file/1867/textfile.txt +1 -0
  293. data/spec/dummy/public/uploads/repo_file/file/1873/textfile.txt +1 -0
  294. data/spec/dummy/public/uploads/repo_file/file/1875/textfile.txt +1 -0
  295. data/spec/dummy/public/uploads/repo_file/file/1877/textfile.txt +1 -0
  296. data/spec/dummy/public/uploads/repo_file/file/1879/textfile.txt +1 -0
  297. data/spec/dummy/public/uploads/repo_file/file/1881/textfile.txt +1 -0
  298. data/spec/dummy/public/uploads/repo_file/file/1883/textfile.txt +1 -0
  299. data/spec/dummy/public/uploads/repo_file/file/1885/textfile.txt +1 -0
  300. data/spec/dummy/public/uploads/repo_file/file/1887/textfile.txt +1 -0
  301. data/spec/dummy/public/uploads/repo_file/file/1889/textfile.txt +1 -0
  302. data/spec/dummy/public/uploads/repo_file/file/1892/textfile.txt +1 -0
  303. data/spec/dummy/public/uploads/repo_file/file/1893/textfile.txt +1 -0
  304. data/spec/dummy/public/uploads/repo_file/file/1895/textfile.txt +1 -0
  305. data/spec/dummy/public/uploads/repo_file/file/1899/textfile.txt +1 -0
  306. data/spec/dummy/public/uploads/repo_file/file/1900/textfile.txt +1 -0
  307. data/spec/dummy/public/uploads/repo_file/file/1901/textfile.txt +1 -0
  308. data/spec/dummy/public/uploads/repo_file/file/1902/textfile.txt +1 -0
  309. data/spec/dummy/public/uploads/repo_file/file/1903/textfile.txt +1 -0
  310. data/spec/dummy/public/uploads/repo_file/file/1904/textfile.txt +1 -0
  311. data/spec/dummy/public/uploads/repo_file/file/1905/textfile.txt +1 -0
  312. data/spec/dummy/public/uploads/repo_file/file/1906/textfile.txt +1 -0
  313. data/spec/dummy/public/uploads/repo_file/file/1907/textfile.txt +1 -0
  314. data/spec/dummy/public/uploads/repo_file/file/1908/textfile.txt +1 -0
  315. data/spec/dummy/public/uploads/repo_file/file/1917/textfile.txt +1 -0
  316. data/spec/dummy/public/uploads/repo_file/file/1919/textfile.txt +1 -0
  317. data/spec/dummy/public/uploads/repo_file/file/1923/textfile.txt +1 -0
  318. data/spec/dummy/public/uploads/repo_file/file/1926/textfile.txt +1 -0
  319. data/spec/dummy/public/uploads/repo_file/file/1928/textfile.txt +1 -0
  320. data/spec/dummy/public/uploads/repo_file/file/1929/textfile.txt +1 -0
  321. data/spec/dummy/public/uploads/repo_file/file/1931/textfile.txt +1 -0
  322. data/spec/dummy/public/uploads/repo_file/file/1937/textfile.txt +1 -0
  323. data/spec/dummy/public/uploads/repo_file/file/1939/textfile.txt +1 -0
  324. data/spec/dummy/public/uploads/repo_file/file/1941/textfile.txt +1 -0
  325. data/spec/dummy/public/uploads/repo_file/file/1943/textfile.txt +1 -0
  326. data/spec/dummy/public/uploads/repo_file/file/1945/textfile.txt +1 -0
  327. data/spec/dummy/public/uploads/repo_file/file/1947/textfile.txt +1 -0
  328. data/spec/dummy/public/uploads/repo_file/file/1949/textfile.txt +1 -0
  329. data/spec/dummy/public/uploads/repo_file/file/1951/textfile.txt +1 -0
  330. data/spec/dummy/public/uploads/repo_file/file/1953/textfile.txt +1 -0
  331. data/spec/dummy/public/uploads/repo_file/file/1956/textfile.txt +1 -0
  332. data/spec/dummy/public/uploads/repo_file/file/1957/textfile.txt +1 -0
  333. data/spec/dummy/public/uploads/repo_file/file/1959/textfile.txt +1 -0
  334. data/spec/dummy/public/uploads/repo_file/file/1963/textfile.txt +1 -0
  335. data/spec/dummy/public/uploads/repo_file/file/1964/textfile.txt +1 -0
  336. data/spec/dummy/public/uploads/repo_file/file/1965/textfile.txt +1 -0
  337. data/spec/dummy/public/uploads/repo_file/file/1966/textfile.txt +1 -0
  338. data/spec/dummy/public/uploads/repo_file/file/1967/textfile.txt +1 -0
  339. data/spec/dummy/public/uploads/repo_file/file/1968/textfile.txt +1 -0
  340. data/spec/dummy/public/uploads/repo_file/file/1969/textfile.txt +1 -0
  341. data/spec/dummy/public/uploads/repo_file/file/1970/textfile.txt +1 -0
  342. data/spec/dummy/public/uploads/repo_file/file/1971/textfile.txt +1 -0
  343. data/spec/dummy/public/uploads/repo_file/file/1972/textfile.txt +1 -0
  344. data/spec/dummy/public/uploads/repo_file/file/1981/textfile.txt +1 -0
  345. data/spec/dummy/public/uploads/repo_file/file/1983/textfile.txt +1 -0
  346. data/spec/dummy/public/uploads/repo_file/file/1987/textfile.txt +1 -0
  347. data/spec/dummy/public/uploads/repo_file/file/1990/textfile.txt +1 -0
  348. data/spec/dummy/public/uploads/repo_file/file/1992/textfile.txt +1 -0
  349. data/spec/dummy/public/uploads/repo_file/file/1993/textfile.txt +1 -0
  350. data/spec/dummy/public/uploads/repo_file/file/1995/textfile.txt +1 -0
  351. data/spec/dummy/public/uploads/repo_file/file/2001/textfile.txt +1 -0
  352. data/spec/dummy/public/uploads/repo_file/file/2003/textfile.txt +1 -0
  353. data/spec/dummy/public/uploads/repo_file/file/2005/textfile.txt +1 -0
  354. data/spec/dummy/public/uploads/repo_file/file/2007/textfile.txt +1 -0
  355. data/spec/dummy/public/uploads/repo_file/file/2009/textfile.txt +1 -0
  356. data/spec/dummy/public/uploads/repo_file/file/2011/textfile.txt +1 -0
  357. data/spec/dummy/public/uploads/repo_file/file/2013/textfile.txt +1 -0
  358. data/spec/dummy/public/uploads/repo_file/file/2015/textfile.txt +1 -0
  359. data/spec/dummy/public/uploads/repo_file/file/2017/textfile.txt +1 -0
  360. data/spec/dummy/public/uploads/repo_file/file/2020/textfile.txt +1 -0
  361. data/spec/dummy/public/uploads/repo_file/file/2021/textfile.txt +1 -0
  362. data/spec/dummy/public/uploads/repo_file/file/2023/textfile.txt +1 -0
  363. data/spec/dummy/public/uploads/repo_file/file/2027/textfile.txt +1 -0
  364. data/spec/dummy/public/uploads/repo_file/file/2028/textfile.txt +1 -0
  365. data/spec/dummy/public/uploads/repo_file/file/2029/textfile.txt +1 -0
  366. data/spec/dummy/public/uploads/repo_file/file/2030/textfile.txt +1 -0
  367. data/spec/dummy/public/uploads/repo_file/file/2031/textfile.txt +1 -0
  368. data/spec/dummy/public/uploads/repo_file/file/2032/textfile.txt +1 -0
  369. data/spec/dummy/public/uploads/repo_file/file/2033/textfile.txt +1 -0
  370. data/spec/dummy/public/uploads/repo_file/file/2034/textfile.txt +1 -0
  371. data/spec/dummy/public/uploads/repo_file/file/2035/textfile.txt +1 -0
  372. data/spec/dummy/public/uploads/repo_file/file/2036/textfile.txt +1 -0
  373. data/spec/dummy/public/uploads/repo_file/file/2045/textfile.txt +1 -0
  374. data/spec/dummy/public/uploads/repo_file/file/2047/textfile.txt +1 -0
  375. data/spec/dummy/public/uploads/repo_file/file/2051/textfile.txt +1 -0
  376. data/spec/dummy/public/uploads/repo_file/file/2054/textfile.txt +1 -0
  377. data/spec/dummy/public/uploads/repo_file/file/2056/textfile.txt +1 -0
  378. data/spec/dummy/public/uploads/repo_file/file/2057/textfile.txt +1 -0
  379. data/spec/dummy/public/uploads/repo_file/file/2059/textfile.txt +1 -0
  380. data/spec/dummy/public/uploads/repo_file/file/2065/textfile.txt +1 -0
  381. data/spec/dummy/public/uploads/repo_file/file/2067/textfile.txt +1 -0
  382. data/spec/dummy/public/uploads/repo_file/file/2069/textfile.txt +1 -0
  383. data/spec/dummy/public/uploads/repo_file/file/2071/textfile.txt +1 -0
  384. data/spec/dummy/public/uploads/repo_file/file/2073/textfile.txt +1 -0
  385. data/spec/dummy/public/uploads/repo_file/file/2075/textfile.txt +1 -0
  386. data/spec/dummy/public/uploads/repo_file/file/2077/textfile.txt +1 -0
  387. data/spec/dummy/public/uploads/repo_file/file/2079/textfile.txt +1 -0
  388. data/spec/dummy/public/uploads/repo_file/file/2081/textfile.txt +1 -0
  389. data/spec/dummy/public/uploads/repo_file/file/2084/textfile.txt +1 -0
  390. data/spec/dummy/public/uploads/repo_file/file/2085/textfile.txt +1 -0
  391. data/spec/dummy/public/uploads/repo_file/file/2087/textfile.txt +1 -0
  392. data/spec/dummy/public/uploads/repo_file/file/2091/textfile.txt +1 -0
  393. data/spec/dummy/public/uploads/repo_file/file/2092/textfile.txt +1 -0
  394. data/spec/dummy/public/uploads/repo_file/file/2093/textfile.txt +1 -0
  395. data/spec/dummy/public/uploads/repo_file/file/2094/textfile.txt +1 -0
  396. data/spec/dummy/public/uploads/repo_file/file/2095/textfile.txt +1 -0
  397. data/spec/dummy/public/uploads/repo_file/file/2096/textfile.txt +1 -0
  398. data/spec/dummy/public/uploads/repo_file/file/2097/textfile.txt +1 -0
  399. data/spec/dummy/public/uploads/repo_file/file/2098/textfile.txt +1 -0
  400. data/spec/dummy/public/uploads/repo_file/file/2099/textfile.txt +1 -0
  401. data/spec/dummy/public/uploads/repo_file/file/2100/textfile.txt +1 -0
  402. data/spec/dummy/public/uploads/repo_file/file/2109/textfile.txt +1 -0
  403. data/spec/dummy/public/uploads/repo_file/file/2111/textfile.txt +1 -0
  404. data/spec/dummy/public/uploads/repo_file/file/2115/textfile.txt +1 -0
  405. data/spec/dummy/public/uploads/repo_file/file/2118/textfile.txt +1 -0
  406. data/spec/dummy/public/uploads/repo_file/file/2120/textfile.txt +1 -0
  407. data/spec/dummy/public/uploads/repo_file/file/2121/textfile.txt +1 -0
  408. data/spec/dummy/public/uploads/repo_file/file/2123/textfile.txt +1 -0
  409. data/spec/dummy/public/uploads/repo_file/file/2129/textfile.txt +1 -0
  410. data/spec/dummy/public/uploads/repo_file/file/2131/textfile.txt +1 -0
  411. data/spec/dummy/public/uploads/repo_file/file/2133/textfile.txt +1 -0
  412. data/spec/dummy/public/uploads/repo_file/file/2135/textfile.txt +1 -0
  413. data/spec/dummy/public/uploads/repo_file/file/2137/textfile.txt +1 -0
  414. data/spec/dummy/public/uploads/repo_file/file/2139/textfile.txt +1 -0
  415. data/spec/dummy/public/uploads/repo_file/file/2141/textfile.txt +1 -0
  416. data/spec/dummy/public/uploads/repo_file/file/2143/textfile.txt +1 -0
  417. data/spec/dummy/public/uploads/repo_file/file/2145/textfile.txt +1 -0
  418. data/spec/dummy/public/uploads/repo_file/file/2148/textfile.txt +1 -0
  419. data/spec/dummy/public/uploads/repo_file/file/2149/textfile.txt +1 -0
  420. data/spec/dummy/public/uploads/repo_file/file/2151/textfile.txt +1 -0
  421. data/spec/dummy/public/uploads/repo_file/file/2155/textfile.txt +1 -0
  422. data/spec/dummy/public/uploads/repo_file/file/2156/textfile.txt +1 -0
  423. data/spec/dummy/public/uploads/repo_file/file/2157/textfile.txt +1 -0
  424. data/spec/dummy/public/uploads/repo_file/file/2158/textfile.txt +1 -0
  425. data/spec/dummy/public/uploads/repo_file/file/2159/textfile.txt +1 -0
  426. data/spec/dummy/public/uploads/repo_file/file/2160/textfile.txt +1 -0
  427. data/spec/dummy/public/uploads/repo_file/file/2161/textfile.txt +1 -0
  428. data/spec/dummy/public/uploads/repo_file/file/2162/textfile.txt +1 -0
  429. data/spec/dummy/public/uploads/repo_file/file/2163/textfile.txt +1 -0
  430. data/spec/dummy/public/uploads/repo_file/file/2164/textfile.txt +1 -0
  431. data/spec/dummy/public/uploads/repo_file/file/2173/textfile.txt +1 -0
  432. data/spec/dummy/public/uploads/repo_file/file/2175/textfile.txt +1 -0
  433. data/spec/dummy/public/uploads/repo_file/file/2179/textfile.txt +1 -0
  434. data/spec/dummy/public/uploads/repo_file/file/2182/textfile.txt +1 -0
  435. data/spec/dummy/public/uploads/repo_file/file/2184/textfile.txt +1 -0
  436. data/spec/dummy/public/uploads/repo_file/file/2185/textfile.txt +1 -0
  437. data/spec/dummy/public/uploads/repo_file/file/2187/textfile.txt +1 -0
  438. data/spec/dummy/public/uploads/repo_file/file/2193/textfile.txt +1 -0
  439. data/spec/dummy/public/uploads/repo_file/file/2195/textfile.txt +1 -0
  440. data/spec/dummy/public/uploads/repo_file/file/2197/textfile.txt +1 -0
  441. data/spec/dummy/public/uploads/repo_file/file/2199/textfile.txt +1 -0
  442. data/spec/dummy/public/uploads/repo_file/file/2201/textfile.txt +1 -0
  443. data/spec/dummy/public/uploads/repo_file/file/2203/textfile.txt +1 -0
  444. data/spec/dummy/public/uploads/repo_file/file/2205/textfile.txt +1 -0
  445. data/spec/dummy/public/uploads/repo_file/file/2207/textfile.txt +1 -0
  446. data/spec/dummy/public/uploads/repo_file/file/2209/textfile.txt +1 -0
  447. data/spec/dummy/public/uploads/repo_file/file/2212/textfile.txt +1 -0
  448. data/spec/dummy/public/uploads/repo_file/file/2213/textfile.txt +1 -0
  449. data/spec/dummy/public/uploads/repo_file/file/2215/textfile.txt +1 -0
  450. data/spec/dummy/public/uploads/repo_file/file/2219/textfile.txt +1 -0
  451. data/spec/dummy/public/uploads/repo_file/file/2220/textfile.txt +1 -0
  452. data/spec/dummy/public/uploads/repo_file/file/2221/textfile.txt +1 -0
  453. data/spec/dummy/public/uploads/repo_file/file/2222/textfile.txt +1 -0
  454. data/spec/dummy/public/uploads/repo_file/file/2223/textfile.txt +1 -0
  455. data/spec/dummy/public/uploads/repo_file/file/2224/textfile.txt +1 -0
  456. data/spec/dummy/public/uploads/repo_file/file/2225/textfile.txt +1 -0
  457. data/spec/dummy/public/uploads/repo_file/file/2226/textfile.txt +1 -0
  458. data/spec/dummy/public/uploads/repo_file/file/2227/textfile.txt +1 -0
  459. data/spec/dummy/public/uploads/repo_file/file/2228/textfile.txt +1 -0
  460. data/spec/dummy/public/uploads/repo_file/file/2237/textfile.txt +1 -0
  461. data/spec/dummy/public/uploads/repo_file/file/2239/textfile.txt +1 -0
  462. data/spec/dummy/public/uploads/repo_file/file/2243/textfile.txt +1 -0
  463. data/spec/dummy/public/uploads/repo_file/file/2246/textfile.txt +1 -0
  464. data/spec/dummy/public/uploads/repo_file/file/2248/textfile.txt +1 -0
  465. data/spec/dummy/public/uploads/repo_file/file/2249/textfile.txt +1 -0
  466. data/spec/dummy/public/uploads/repo_file/file/2251/textfile.txt +1 -0
  467. data/spec/dummy/public/uploads/repo_file/file/2257/textfile.txt +1 -0
  468. data/spec/dummy/public/uploads/repo_file/file/2259/textfile.txt +1 -0
  469. data/spec/dummy/public/uploads/repo_file/file/2261/textfile.txt +1 -0
  470. data/spec/dummy/public/uploads/repo_file/file/2263/textfile.txt +1 -0
  471. data/spec/dummy/public/uploads/repo_file/file/2265/textfile.txt +1 -0
  472. data/spec/dummy/public/uploads/repo_file/file/2267/textfile.txt +1 -0
  473. data/spec/dummy/public/uploads/repo_file/file/2269/textfile.txt +1 -0
  474. data/spec/dummy/public/uploads/repo_file/file/2271/textfile.txt +1 -0
  475. data/spec/dummy/public/uploads/repo_file/file/2273/textfile.txt +1 -0
  476. data/spec/dummy/public/uploads/repo_file/file/2276/textfile.txt +1 -0
  477. data/spec/dummy/public/uploads/repo_file/file/2277/textfile.txt +1 -0
  478. data/spec/dummy/public/uploads/repo_file/file/2279/textfile.txt +1 -0
  479. data/spec/dummy/public/uploads/repo_file/file/2283/textfile.txt +1 -0
  480. data/spec/dummy/public/uploads/repo_file/file/2284/textfile.txt +1 -0
  481. data/spec/dummy/public/uploads/repo_file/file/2285/textfile.txt +1 -0
  482. data/spec/dummy/public/uploads/repo_file/file/2286/textfile.txt +1 -0
  483. data/spec/dummy/public/uploads/repo_file/file/2287/textfile.txt +1 -0
  484. data/spec/dummy/public/uploads/repo_file/file/2288/textfile.txt +1 -0
  485. data/spec/dummy/public/uploads/repo_file/file/2289/textfile.txt +1 -0
  486. data/spec/dummy/public/uploads/repo_file/file/2290/textfile.txt +1 -0
  487. data/spec/dummy/public/uploads/repo_file/file/2291/textfile.txt +1 -0
  488. data/spec/dummy/public/uploads/repo_file/file/2292/textfile.txt +1 -0
  489. data/spec/dummy/public/uploads/repo_file/file/2301/textfile.txt +1 -0
  490. data/spec/dummy/public/uploads/repo_file/file/2303/textfile.txt +1 -0
  491. data/spec/dummy/public/uploads/repo_file/file/2307/textfile.txt +1 -0
  492. data/spec/dummy/public/uploads/repo_file/file/2310/textfile.txt +1 -0
  493. data/spec/dummy/public/uploads/repo_file/file/2312/textfile.txt +1 -0
  494. data/spec/dummy/public/uploads/repo_file/file/2313/textfile.txt +1 -0
  495. data/spec/dummy/public/uploads/repo_file/file/2315/textfile.txt +1 -0
  496. data/spec/dummy/public/uploads/repo_file/file/2321/textfile.txt +1 -0
  497. data/spec/dummy/public/uploads/repo_file/file/2323/textfile.txt +1 -0
  498. data/spec/dummy/public/uploads/repo_file/file/2325/textfile.txt +1 -0
  499. data/spec/dummy/public/uploads/repo_file/file/2327/textfile.txt +1 -0
  500. data/spec/dummy/public/uploads/repo_file/file/2329/textfile.txt +1 -0
  501. data/spec/dummy/public/uploads/repo_file/file/2331/textfile.txt +1 -0
  502. data/spec/dummy/public/uploads/repo_file/file/2333/textfile.txt +1 -0
  503. data/spec/dummy/public/uploads/repo_file/file/2335/textfile.txt +1 -0
  504. data/spec/dummy/public/uploads/repo_file/file/2337/textfile.txt +1 -0
  505. data/spec/dummy/public/uploads/repo_file/file/2340/textfile.txt +1 -0
  506. data/spec/dummy/public/uploads/repo_file/file/2341/textfile.txt +1 -0
  507. data/spec/dummy/public/uploads/repo_file/file/2343/textfile.txt +1 -0
  508. data/spec/dummy/public/uploads/repo_file/file/2347/textfile.txt +1 -0
  509. data/spec/dummy/public/uploads/repo_file/file/2348/textfile.txt +1 -0
  510. data/spec/dummy/public/uploads/repo_file/file/2349/textfile.txt +1 -0
  511. data/spec/dummy/public/uploads/repo_file/file/2350/textfile.txt +1 -0
  512. data/spec/dummy/public/uploads/repo_file/file/2351/textfile.txt +1 -0
  513. data/spec/dummy/public/uploads/repo_file/file/2352/textfile.txt +1 -0
  514. data/spec/dummy/public/uploads/repo_file/file/2353/textfile.txt +1 -0
  515. data/spec/dummy/public/uploads/repo_file/file/2354/textfile.txt +1 -0
  516. data/spec/dummy/public/uploads/repo_file/file/2355/textfile.txt +1 -0
  517. data/spec/dummy/public/uploads/repo_file/file/2356/textfile.txt +1 -0
  518. data/spec/dummy/public/uploads/repo_file/file/2365/textfile.txt +1 -0
  519. data/spec/dummy/public/uploads/repo_file/file/2367/textfile.txt +1 -0
  520. data/spec/dummy/public/uploads/repo_file/file/2371/textfile.txt +1 -0
  521. data/spec/dummy/public/uploads/repo_file/file/2374/textfile.txt +1 -0
  522. data/spec/dummy/public/uploads/repo_file/file/2376/textfile.txt +1 -0
  523. data/spec/dummy/public/uploads/repo_file/file/2377/textfile.txt +1 -0
  524. data/spec/dummy/public/uploads/repo_file/file/2379/textfile.txt +1 -0
  525. data/spec/dummy/public/uploads/repo_file/file/2385/textfile.txt +1 -0
  526. data/spec/dummy/public/uploads/repo_file/file/2387/textfile.txt +1 -0
  527. data/spec/dummy/public/uploads/repo_file/file/2389/textfile.txt +1 -0
  528. data/spec/dummy/public/uploads/repo_file/file/2391/textfile.txt +1 -0
  529. data/spec/dummy/public/uploads/repo_file/file/2393/textfile.txt +1 -0
  530. data/spec/dummy/public/uploads/repo_file/file/2395/textfile.txt +1 -0
  531. data/spec/dummy/public/uploads/repo_file/file/2397/textfile.txt +1 -0
  532. data/spec/dummy/public/uploads/repo_file/file/2399/textfile.txt +1 -0
  533. data/spec/dummy/public/uploads/repo_file/file/2401/textfile.txt +1 -0
  534. data/spec/dummy/public/uploads/repo_file/file/2404/textfile.txt +1 -0
  535. data/spec/dummy/public/uploads/repo_file/file/2405/textfile.txt +1 -0
  536. data/spec/dummy/public/uploads/repo_file/file/2407/textfile.txt +1 -0
  537. data/spec/dummy/public/uploads/repo_file/file/2411/textfile.txt +1 -0
  538. data/spec/dummy/public/uploads/repo_file/file/2412/textfile.txt +1 -0
  539. data/spec/dummy/public/uploads/repo_file/file/2413/textfile.txt +1 -0
  540. data/spec/dummy/public/uploads/repo_file/file/2414/textfile.txt +1 -0
  541. data/spec/dummy/public/uploads/repo_file/file/2415/textfile.txt +1 -0
  542. data/spec/dummy/public/uploads/repo_file/file/2416/textfile.txt +1 -0
  543. data/spec/dummy/public/uploads/repo_file/file/2417/textfile.txt +1 -0
  544. data/spec/dummy/public/uploads/repo_file/file/2418/textfile.txt +1 -0
  545. data/spec/dummy/public/uploads/repo_file/file/2419/textfile.txt +1 -0
  546. data/spec/dummy/public/uploads/repo_file/file/2420/textfile.txt +1 -0
  547. data/spec/dummy/public/uploads/repo_file/file/2429/textfile.txt +1 -0
  548. data/spec/dummy/public/uploads/repo_file/file/2431/textfile.txt +1 -0
  549. data/spec/dummy/public/uploads/repo_file/file/2435/textfile.txt +1 -0
  550. data/spec/dummy/public/uploads/repo_file/file/2438/textfile.txt +1 -0
  551. data/spec/dummy/public/uploads/repo_file/file/2440/textfile.txt +1 -0
  552. data/spec/dummy/public/uploads/repo_file/file/2441/textfile.txt +1 -0
  553. data/spec/dummy/public/uploads/repo_file/file/2443/textfile.txt +1 -0
  554. data/spec/dummy/public/uploads/repo_file/file/2449/textfile.txt +1 -0
  555. data/spec/dummy/public/uploads/repo_file/file/2451/textfile.txt +1 -0
  556. data/spec/dummy/public/uploads/repo_file/file/2453/textfile.txt +1 -0
  557. data/spec/dummy/public/uploads/repo_file/file/2455/textfile.txt +1 -0
  558. data/spec/dummy/public/uploads/repo_file/file/2457/textfile.txt +1 -0
  559. data/spec/dummy/public/uploads/repo_file/file/2459/textfile.txt +1 -0
  560. data/spec/dummy/public/uploads/repo_file/file/2461/textfile.txt +1 -0
  561. data/spec/dummy/public/uploads/repo_file/file/2463/textfile.txt +1 -0
  562. data/spec/dummy/public/uploads/repo_file/file/2465/textfile.txt +1 -0
  563. data/spec/dummy/public/uploads/repo_file/file/2468/textfile.txt +1 -0
  564. data/spec/dummy/public/uploads/repo_file/file/2469/textfile.txt +1 -0
  565. data/spec/dummy/public/uploads/repo_file/file/2471/textfile.txt +1 -0
  566. data/spec/dummy/public/uploads/repo_file/file/2475/textfile.txt +1 -0
  567. data/spec/dummy/public/uploads/repo_file/file/2476/textfile.txt +1 -0
  568. data/spec/dummy/public/uploads/repo_file/file/2477/textfile.txt +1 -0
  569. data/spec/dummy/public/uploads/repo_file/file/2478/textfile.txt +1 -0
  570. data/spec/dummy/public/uploads/repo_file/file/2479/textfile.txt +1 -0
  571. data/spec/dummy/public/uploads/repo_file/file/2480/textfile.txt +1 -0
  572. data/spec/dummy/public/uploads/repo_file/file/2481/textfile.txt +1 -0
  573. data/spec/dummy/public/uploads/repo_file/file/2482/textfile.txt +1 -0
  574. data/spec/dummy/public/uploads/repo_file/file/2483/textfile.txt +1 -0
  575. data/spec/dummy/public/uploads/repo_file/file/2484/textfile.txt +1 -0
  576. data/spec/dummy/public/uploads/repo_file/file/2493/textfile.txt +1 -0
  577. data/spec/dummy/public/uploads/repo_file/file/2495/textfile.txt +1 -0
  578. data/spec/dummy/public/uploads/repo_file/file/2499/textfile.txt +1 -0
  579. data/spec/dummy/public/uploads/repo_file/file/2502/textfile.txt +1 -0
  580. data/spec/dummy/public/uploads/repo_file/file/2504/textfile.txt +1 -0
  581. data/spec/dummy/public/uploads/repo_file/file/2505/textfile.txt +1 -0
  582. data/spec/dummy/public/uploads/repo_file/file/2507/textfile.txt +1 -0
  583. data/spec/dummy/public/uploads/repo_file/file/2513/textfile.txt +1 -0
  584. data/spec/dummy/public/uploads/repo_file/file/2515/textfile.txt +1 -0
  585. data/spec/dummy/public/uploads/repo_file/file/2517/textfile.txt +1 -0
  586. data/spec/dummy/public/uploads/repo_file/file/2519/textfile.txt +1 -0
  587. data/spec/dummy/public/uploads/repo_file/file/2521/textfile.txt +1 -0
  588. data/spec/dummy/public/uploads/repo_file/file/2523/textfile.txt +1 -0
  589. data/spec/dummy/public/uploads/repo_file/file/2525/textfile.txt +1 -0
  590. data/spec/dummy/public/uploads/repo_file/file/2527/textfile.txt +1 -0
  591. data/spec/dummy/public/uploads/repo_file/file/2529/textfile.txt +1 -0
  592. data/spec/dummy/public/uploads/repo_file/file/2532/textfile.txt +1 -0
  593. data/spec/dummy/public/uploads/repo_file/file/2533/textfile.txt +1 -0
  594. data/spec/dummy/public/uploads/repo_file/file/2535/textfile.txt +1 -0
  595. data/spec/dummy/public/uploads/repo_file/file/2539/textfile.txt +1 -0
  596. data/spec/dummy/public/uploads/repo_file/file/2540/textfile.txt +1 -0
  597. data/spec/dummy/public/uploads/repo_file/file/2541/textfile.txt +1 -0
  598. data/spec/dummy/public/uploads/repo_file/file/2542/textfile.txt +1 -0
  599. data/spec/dummy/public/uploads/repo_file/file/2543/textfile.txt +1 -0
  600. data/spec/dummy/public/uploads/repo_file/file/2544/textfile.txt +1 -0
  601. data/spec/dummy/public/uploads/repo_file/file/2545/textfile.txt +1 -0
  602. data/spec/dummy/public/uploads/repo_file/file/2546/textfile.txt +1 -0
  603. data/spec/dummy/public/uploads/repo_file/file/2547/textfile.txt +1 -0
  604. data/spec/dummy/public/uploads/repo_file/file/2548/textfile.txt +1 -0
  605. data/spec/dummy/public/uploads/repo_file/file/2557/textfile.txt +1 -0
  606. data/spec/dummy/public/uploads/repo_file/file/2559/textfile.txt +1 -0
  607. data/spec/dummy/public/uploads/repo_file/file/2563/textfile.txt +1 -0
  608. data/spec/dummy/public/uploads/repo_file/file/2566/textfile.txt +1 -0
  609. data/spec/dummy/public/uploads/repo_file/file/2568/textfile.txt +1 -0
  610. data/spec/dummy/public/uploads/repo_file/file/2569/textfile.txt +1 -0
  611. data/spec/dummy/public/uploads/repo_file/file/2571/textfile.txt +1 -0
  612. data/spec/dummy/public/uploads/repo_file/file/2577/textfile.txt +1 -0
  613. data/spec/dummy/public/uploads/repo_file/file/2579/textfile.txt +1 -0
  614. data/spec/dummy/public/uploads/repo_file/file/2581/textfile.txt +1 -0
  615. data/spec/dummy/public/uploads/repo_file/file/2583/textfile.txt +1 -0
  616. data/spec/dummy/public/uploads/repo_file/file/2585/textfile.txt +1 -0
  617. data/spec/dummy/public/uploads/repo_file/file/2587/textfile.txt +1 -0
  618. data/spec/dummy/public/uploads/repo_file/file/2589/textfile.txt +1 -0
  619. data/spec/dummy/public/uploads/repo_file/file/2591/textfile.txt +1 -0
  620. data/spec/dummy/public/uploads/repo_file/file/2593/textfile.txt +1 -0
  621. data/spec/dummy/public/uploads/repo_file/file/2596/textfile.txt +1 -0
  622. data/spec/dummy/public/uploads/repo_file/file/2597/textfile.txt +1 -0
  623. data/spec/dummy/public/uploads/repo_file/file/2599/textfile.txt +1 -0
  624. data/spec/dummy/public/uploads/repo_file/file/2605/textfile.txt +1 -0
  625. data/spec/dummy/public/uploads/repo_file/file/2609/textfile.txt +1 -0
  626. data/spec/dummy/public/uploads/repo_file/file/2610/textfile.txt +1 -0
  627. data/spec/dummy/public/uploads/repo_file/file/2611/textfile.txt +1 -0
  628. data/spec/dummy/public/uploads/repo_file/file/2612/textfile.txt +1 -0
  629. data/spec/dummy/public/uploads/repo_file/file/2613/textfile.txt +1 -0
  630. data/spec/dummy/public/uploads/repo_file/file/2614/textfile.txt +1 -0
  631. data/spec/dummy/public/uploads/repo_file/file/2615/textfile.txt +1 -0
  632. data/spec/dummy/public/uploads/repo_file/file/2616/textfile.txt +1 -0
  633. data/spec/dummy/public/uploads/repo_file/file/2617/textfile.txt +1 -0
  634. data/spec/dummy/public/uploads/repo_file/file/2618/textfile.txt +1 -0
  635. data/spec/dummy/public/uploads/repo_file/file/2627/textfile.txt +1 -0
  636. data/spec/dummy/public/uploads/repo_file/file/2629/textfile.txt +1 -0
  637. data/spec/dummy/public/uploads/repo_file/file/2633/textfile.txt +1 -0
  638. data/spec/dummy/public/uploads/repo_file/file/2636/textfile.txt +1 -0
  639. data/spec/dummy/public/uploads/repo_file/file/2638/textfile.txt +1 -0
  640. data/spec/dummy/public/uploads/repo_file/file/2639/textfile.txt +1 -0
  641. data/spec/dummy/public/uploads/repo_file/file/2641/textfile.txt +1 -0
  642. data/spec/dummy/public/uploads/repo_file/file/2647/textfile.txt +1 -0
  643. data/spec/dummy/public/uploads/repo_file/file/2649/textfile.txt +1 -0
  644. data/spec/dummy/public/uploads/repo_file/file/2651/textfile.txt +1 -0
  645. data/spec/dummy/public/uploads/repo_file/file/2653/textfile.txt +1 -0
  646. data/spec/dummy/public/uploads/repo_file/file/2655/textfile.txt +1 -0
  647. data/spec/dummy/public/uploads/repo_file/file/2657/textfile.txt +1 -0
  648. data/spec/dummy/public/uploads/repo_file/file/2659/textfile.txt +1 -0
  649. data/spec/dummy/public/uploads/repo_file/file/2661/textfile.txt +1 -0
  650. data/spec/dummy/public/uploads/repo_file/file/2663/textfile.txt +1 -0
  651. data/spec/dummy/public/uploads/repo_file/file/2666/textfile.txt +1 -0
  652. data/spec/dummy/public/uploads/repo_file/file/2667/textfile.txt +1 -0
  653. data/spec/dummy/public/uploads/repo_file/file/2669/textfile.txt +1 -0
  654. data/spec/dummy/public/uploads/repo_file/file/2675/textfile.txt +1 -0
  655. data/spec/dummy/public/uploads/repo_file/file/2679/textfile.txt +1 -0
  656. data/spec/dummy/public/uploads/repo_file/file/2680/textfile.txt +1 -0
  657. data/spec/dummy/public/uploads/repo_file/file/2681/textfile.txt +1 -0
  658. data/spec/dummy/public/uploads/repo_file/file/2682/textfile.txt +1 -0
  659. data/spec/dummy/public/uploads/repo_file/file/2683/textfile.txt +1 -0
  660. data/spec/dummy/public/uploads/repo_file/file/2684/textfile.txt +1 -0
  661. data/spec/dummy/public/uploads/repo_file/file/2685/textfile.txt +1 -0
  662. data/spec/dummy/public/uploads/repo_file/file/2686/textfile.txt +1 -0
  663. data/spec/dummy/public/uploads/repo_file/file/2687/textfile.txt +1 -0
  664. data/spec/dummy/public/uploads/repo_file/file/2688/textfile.txt +1 -0
  665. data/spec/dummy/public/uploads/repo_file/file/2697/textfile.txt +1 -0
  666. data/spec/dummy/public/uploads/repo_file/file/2699/textfile.txt +1 -0
  667. data/spec/dummy/public/uploads/repo_file/file/2703/textfile.txt +1 -0
  668. data/spec/dummy/public/uploads/repo_file/file/2706/textfile.txt +1 -0
  669. data/spec/dummy/public/uploads/repo_file/file/2708/textfile.txt +1 -0
  670. data/spec/dummy/public/uploads/repo_file/file/2709/textfile.txt +1 -0
  671. data/spec/dummy/public/uploads/repo_file/file/2711/textfile.txt +1 -0
  672. data/spec/dummy/public/uploads/repo_file/file/2717/textfile.txt +1 -0
  673. data/spec/dummy/public/uploads/repo_file/file/2719/textfile.txt +1 -0
  674. data/spec/dummy/public/uploads/repo_file/file/2721/textfile.txt +1 -0
  675. data/spec/dummy/public/uploads/repo_file/file/2723/textfile.txt +1 -0
  676. data/spec/dummy/public/uploads/repo_file/file/2725/textfile.txt +1 -0
  677. data/spec/dummy/public/uploads/repo_file/file/2727/textfile.txt +1 -0
  678. data/spec/dummy/public/uploads/repo_file/file/2729/textfile.txt +1 -0
  679. data/spec/dummy/public/uploads/repo_file/file/2731/textfile.txt +1 -0
  680. data/spec/dummy/public/uploads/repo_file/file/2733/textfile.txt +1 -0
  681. data/spec/dummy/public/uploads/repo_file/file/2736/textfile.txt +1 -0
  682. data/spec/dummy/public/uploads/repo_file/file/2737/textfile.txt +1 -0
  683. data/spec/dummy/public/uploads/repo_file/file/2739/textfile.txt +1 -0
  684. data/spec/dummy/public/uploads/repo_file/file/2745/textfile.txt +1 -0
  685. data/spec/dummy/public/uploads/repo_file/file/2749/textfile.txt +1 -0
  686. data/spec/dummy/public/uploads/repo_file/file/2750/textfile.txt +1 -0
  687. data/spec/dummy/public/uploads/repo_file/file/2751/textfile.txt +1 -0
  688. data/spec/dummy/public/uploads/repo_file/file/2752/textfile.txt +1 -0
  689. data/spec/dummy/public/uploads/repo_file/file/2753/textfile.txt +1 -0
  690. data/spec/dummy/public/uploads/repo_file/file/2754/textfile.txt +1 -0
  691. data/spec/dummy/public/uploads/repo_file/file/2755/textfile.txt +1 -0
  692. data/spec/dummy/public/uploads/repo_file/file/2756/textfile.txt +1 -0
  693. data/spec/dummy/public/uploads/repo_file/file/2757/textfile.txt +1 -0
  694. data/spec/dummy/public/uploads/repo_file/file/2758/textfile.txt +1 -0
  695. data/spec/dummy/public/uploads/repo_file/file/2767/textfile.txt +1 -0
  696. data/spec/dummy/public/uploads/repo_file/file/2769/textfile.txt +1 -0
  697. data/spec/dummy/public/uploads/repo_file/file/2773/textfile.txt +1 -0
  698. data/spec/dummy/public/uploads/repo_file/file/2776/textfile.txt +1 -0
  699. data/spec/dummy/public/uploads/repo_file/file/2778/textfile.txt +1 -0
  700. data/spec/dummy/public/uploads/repo_file/file/2779/textfile.txt +1 -0
  701. data/spec/dummy/public/uploads/repo_file/file/2781/textfile.txt +1 -0
  702. data/spec/dummy/public/uploads/repo_file/file/2787/textfile.txt +1 -0
  703. data/spec/dummy/public/uploads/repo_file/file/2789/textfile.txt +1 -0
  704. data/spec/dummy/public/uploads/repo_file/file/2791/textfile.txt +1 -0
  705. data/spec/dummy/public/uploads/repo_file/file/2793/textfile.txt +1 -0
  706. data/spec/dummy/public/uploads/repo_file/file/2795/textfile.txt +1 -0
  707. data/spec/dummy/public/uploads/repo_file/file/2797/textfile.txt +1 -0
  708. data/spec/dummy/public/uploads/repo_file/file/2799/textfile.txt +1 -0
  709. data/spec/dummy/public/uploads/repo_file/file/2801/textfile.txt +1 -0
  710. data/spec/dummy/public/uploads/repo_file/file/2803/textfile.txt +1 -0
  711. data/spec/dummy/public/uploads/repo_file/file/2806/textfile.txt +1 -0
  712. data/spec/dummy/public/uploads/repo_file/file/2807/textfile.txt +1 -0
  713. data/spec/dummy/public/uploads/repo_file/file/2809/textfile.txt +1 -0
  714. data/spec/dummy/public/uploads/repo_file/file/2815/textfile.txt +1 -0
  715. data/spec/dummy/public/uploads/repo_file/file/2819/textfile.txt +1 -0
  716. data/spec/dummy/public/uploads/repo_file/file/2820/textfile.txt +1 -0
  717. data/spec/dummy/public/uploads/repo_file/file/2821/textfile.txt +1 -0
  718. data/spec/dummy/public/uploads/repo_file/file/2822/textfile.txt +1 -0
  719. data/spec/dummy/public/uploads/repo_file/file/2823/textfile.txt +1 -0
  720. data/spec/dummy/public/uploads/repo_file/file/2824/textfile.txt +1 -0
  721. data/spec/dummy/public/uploads/repo_file/file/2825/textfile.txt +1 -0
  722. data/spec/dummy/public/uploads/repo_file/file/2826/textfile.txt +1 -0
  723. data/spec/dummy/public/uploads/repo_file/file/2827/textfile.txt +1 -0
  724. data/spec/dummy/public/uploads/repo_file/file/2828/textfile.txt +1 -0
  725. data/spec/dummy/public/uploads/repo_file/file/2837/textfile.txt +1 -0
  726. data/spec/dummy/public/uploads/repo_file/file/2839/textfile.txt +1 -0
  727. data/spec/dummy/public/uploads/repo_file/file/2843/textfile.txt +1 -0
  728. data/spec/dummy/public/uploads/repo_file/file/2846/textfile.txt +1 -0
  729. data/spec/dummy/public/uploads/repo_file/file/2848/textfile.txt +1 -0
  730. data/spec/dummy/public/uploads/repo_file/file/2849/textfile.txt +1 -0
  731. data/spec/dummy/public/uploads/repo_file/file/2851/textfile.txt +1 -0
  732. data/spec/dummy/public/uploads/repo_file/file/2857/textfile.txt +1 -0
  733. data/spec/dummy/public/uploads/repo_file/file/2859/textfile.txt +1 -0
  734. data/spec/dummy/public/uploads/repo_file/file/2861/textfile.txt +1 -0
  735. data/spec/dummy/public/uploads/repo_file/file/2863/textfile.txt +1 -0
  736. data/spec/dummy/public/uploads/repo_file/file/2865/textfile.txt +1 -0
  737. data/spec/dummy/public/uploads/repo_file/file/2867/textfile.txt +1 -0
  738. data/spec/dummy/public/uploads/repo_file/file/2869/textfile.txt +1 -0
  739. data/spec/dummy/public/uploads/repo_file/file/2871/textfile.txt +1 -0
  740. data/spec/dummy/public/uploads/repo_file/file/2873/textfile.txt +1 -0
  741. data/spec/dummy/public/uploads/repo_file/file/2876/textfile.txt +1 -0
  742. data/spec/dummy/public/uploads/repo_file/file/2877/textfile.txt +1 -0
  743. data/spec/dummy/public/uploads/repo_file/file/2879/textfile.txt +1 -0
  744. data/spec/dummy/public/uploads/repo_file/file/2885/textfile.txt +1 -0
  745. data/spec/dummy/public/uploads/repo_file/file/2889/textfile.txt +1 -0
  746. data/spec/dummy/public/uploads/repo_file/file/2890/textfile.txt +1 -0
  747. data/spec/dummy/public/uploads/repo_file/file/2891/textfile.txt +1 -0
  748. data/spec/dummy/public/uploads/repo_file/file/2892/textfile.txt +1 -0
  749. data/spec/dummy/public/uploads/repo_file/file/2893/textfile.txt +1 -0
  750. data/spec/dummy/public/uploads/repo_file/file/2894/textfile.txt +1 -0
  751. data/spec/dummy/public/uploads/repo_file/file/2895/textfile.txt +1 -0
  752. data/spec/dummy/public/uploads/repo_file/file/2896/textfile.txt +1 -0
  753. data/spec/dummy/public/uploads/repo_file/file/2897/textfile.txt +1 -0
  754. data/spec/dummy/public/uploads/repo_file/file/2898/textfile.txt +1 -0
  755. data/spec/dummy/public/uploads/repo_file/file/2907/textfile.txt +1 -0
  756. data/spec/dummy/public/uploads/repo_file/file/2909/textfile.txt +1 -0
  757. data/spec/dummy/public/uploads/repo_file/file/2913/textfile.txt +1 -0
  758. data/spec/dummy/public/uploads/repo_file/file/2916/textfile.txt +1 -0
  759. data/spec/dummy/public/uploads/repo_file/file/2918/textfile.txt +1 -0
  760. data/spec/dummy/public/uploads/repo_file/file/2919/textfile.txt +1 -0
  761. data/spec/dummy/public/uploads/repo_file/file/2921/textfile.txt +1 -0
  762. data/spec/dummy/public/uploads/repo_file/file/2927/textfile.txt +1 -0
  763. data/spec/dummy/public/uploads/repo_file/file/2929/textfile.txt +1 -0
  764. data/spec/dummy/public/uploads/repo_file/file/2931/textfile.txt +1 -0
  765. data/spec/dummy/public/uploads/repo_file/file/2933/textfile.txt +1 -0
  766. data/spec/dummy/public/uploads/repo_file/file/2935/textfile.txt +1 -0
  767. data/spec/dummy/public/uploads/repo_file/file/2937/textfile.txt +1 -0
  768. data/spec/dummy/public/uploads/repo_file/file/2939/textfile.txt +1 -0
  769. data/spec/dummy/public/uploads/repo_file/file/2941/textfile.txt +1 -0
  770. data/spec/dummy/public/uploads/repo_file/file/2943/textfile.txt +1 -0
  771. data/spec/dummy/public/uploads/repo_file/file/2946/textfile.txt +1 -0
  772. data/spec/dummy/public/uploads/repo_file/file/2947/textfile.txt +1 -0
  773. data/spec/dummy/public/uploads/repo_file/file/2949/textfile.txt +1 -0
  774. data/spec/dummy/public/uploads/repo_file/file/2955/textfile.txt +1 -0
  775. data/spec/dummy/public/uploads/repo_file/file/2959/textfile.txt +1 -0
  776. data/spec/dummy/public/uploads/repo_file/file/2960/textfile.txt +1 -0
  777. data/spec/dummy/public/uploads/repo_file/file/2961/textfile.txt +1 -0
  778. data/spec/dummy/public/uploads/repo_file/file/2962/textfile.txt +1 -0
  779. data/spec/dummy/public/uploads/repo_file/file/2963/textfile.txt +1 -0
  780. data/spec/dummy/public/uploads/repo_file/file/2964/textfile.txt +1 -0
  781. data/spec/dummy/public/uploads/repo_file/file/2965/textfile.txt +1 -0
  782. data/spec/dummy/public/uploads/repo_file/file/2966/textfile.txt +1 -0
  783. data/spec/dummy/public/uploads/repo_file/file/2967/textfile.txt +1 -0
  784. data/spec/dummy/public/uploads/repo_file/file/2968/textfile.txt +1 -0
  785. data/spec/dummy/public/uploads/repo_file/file/2977/textfile.txt +1 -0
  786. data/spec/dummy/public/uploads/repo_file/file/2979/textfile.txt +1 -0
  787. data/spec/dummy/public/uploads/repo_file/file/2983/textfile.txt +1 -0
  788. data/spec/dummy/public/uploads/repo_file/file/2986/textfile.txt +1 -0
  789. data/spec/dummy/public/uploads/repo_file/file/2988/textfile.txt +1 -0
  790. data/spec/dummy/public/uploads/repo_file/file/2989/textfile.txt +1 -0
  791. data/spec/dummy/public/uploads/repo_file/file/2991/textfile.txt +1 -0
  792. data/spec/dummy/public/uploads/repo_file/file/2997/textfile.txt +1 -0
  793. data/spec/dummy/public/uploads/repo_file/file/2999/textfile.txt +1 -0
  794. data/spec/dummy/public/uploads/repo_file/file/3001/textfile.txt +1 -0
  795. data/spec/dummy/public/uploads/repo_file/file/3003/textfile.txt +1 -0
  796. data/spec/dummy/public/uploads/repo_file/file/3005/textfile.txt +1 -0
  797. data/spec/dummy/public/uploads/repo_file/file/3007/textfile.txt +1 -0
  798. data/spec/dummy/public/uploads/repo_file/file/3009/textfile.txt +1 -0
  799. data/spec/dummy/public/uploads/repo_file/file/3011/textfile.txt +1 -0
  800. data/spec/dummy/public/uploads/repo_file/file/3013/textfile.txt +1 -0
  801. data/spec/dummy/public/uploads/repo_file/file/3016/textfile.txt +1 -0
  802. data/spec/dummy/public/uploads/repo_file/file/3017/textfile.txt +1 -0
  803. data/spec/dummy/public/uploads/repo_file/file/3019/textfile.txt +1 -0
  804. data/spec/dummy/public/uploads/repo_file/file/3025/textfile.txt +1 -0
  805. data/spec/dummy/public/uploads/repo_file/file/3029/textfile.txt +1 -0
  806. data/spec/dummy/public/uploads/repo_file/file/3030/textfile.txt +1 -0
  807. data/spec/dummy/public/uploads/repo_file/file/3031/textfile.txt +1 -0
  808. data/spec/dummy/public/uploads/repo_file/file/3032/textfile.txt +1 -0
  809. data/spec/dummy/public/uploads/repo_file/file/3033/textfile.txt +1 -0
  810. data/spec/dummy/public/uploads/repo_file/file/3034/textfile.txt +1 -0
  811. data/spec/dummy/public/uploads/repo_file/file/3035/textfile.txt +1 -0
  812. data/spec/dummy/public/uploads/repo_file/file/3036/textfile.txt +1 -0
  813. data/spec/dummy/public/uploads/repo_file/file/3037/textfile.txt +1 -0
  814. data/spec/dummy/public/uploads/repo_file/file/3038/textfile.txt +1 -0
  815. data/spec/dummy/public/uploads/repo_file/file/3047/textfile.txt +1 -0
  816. data/spec/dummy/public/uploads/repo_file/file/3049/textfile.txt +1 -0
  817. data/spec/dummy/public/uploads/repo_file/file/3053/textfile.txt +1 -0
  818. data/spec/dummy/public/uploads/repo_file/file/3056/textfile.txt +1 -0
  819. data/spec/dummy/public/uploads/repo_file/file/3058/textfile.txt +1 -0
  820. data/spec/dummy/public/uploads/repo_file/file/3059/textfile.txt +1 -0
  821. data/spec/dummy/public/uploads/repo_file/file/3061/textfile.txt +1 -0
  822. data/spec/dummy/public/uploads/repo_file/file/3067/textfile.txt +1 -0
  823. data/spec/dummy/public/uploads/repo_file/file/3069/textfile.txt +1 -0
  824. data/spec/dummy/public/uploads/repo_file/file/3071/textfile.txt +1 -0
  825. data/spec/dummy/public/uploads/repo_file/file/3073/textfile.txt +1 -0
  826. data/spec/dummy/public/uploads/repo_file/file/3075/textfile.txt +1 -0
  827. data/spec/dummy/public/uploads/repo_file/file/3077/textfile.txt +1 -0
  828. data/spec/dummy/public/uploads/repo_file/file/3079/textfile.txt +1 -0
  829. data/spec/dummy/public/uploads/repo_file/file/3081/textfile.txt +1 -0
  830. data/spec/dummy/public/uploads/repo_file/file/3083/textfile.txt +1 -0
  831. data/spec/dummy/public/uploads/repo_file/file/3086/textfile.txt +1 -0
  832. data/spec/dummy/public/uploads/repo_file/file/3087/textfile.txt +1 -0
  833. data/spec/dummy/public/uploads/repo_file/file/3089/textfile.txt +1 -0
  834. data/spec/dummy/public/uploads/repo_file/file/3095/textfile.txt +1 -0
  835. data/spec/dummy/public/uploads/repo_file/file/3099/textfile.txt +1 -0
  836. data/spec/dummy/public/uploads/repo_file/file/3100/textfile.txt +1 -0
  837. data/spec/dummy/public/uploads/repo_file/file/3101/textfile.txt +1 -0
  838. data/spec/dummy/public/uploads/repo_file/file/3102/textfile.txt +1 -0
  839. data/spec/dummy/public/uploads/repo_file/file/3103/textfile.txt +1 -0
  840. data/spec/dummy/public/uploads/repo_file/file/3104/textfile.txt +1 -0
  841. data/spec/dummy/public/uploads/repo_file/file/3105/textfile.txt +1 -0
  842. data/spec/dummy/public/uploads/repo_file/file/3106/textfile.txt +1 -0
  843. data/spec/dummy/public/uploads/repo_file/file/3107/textfile.txt +1 -0
  844. data/spec/dummy/public/uploads/repo_file/file/3108/textfile.txt +1 -0
  845. data/spec/dummy/public/uploads/repo_file/file/3117/textfile.txt +1 -0
  846. data/spec/dummy/public/uploads/repo_file/file/3119/textfile.txt +1 -0
  847. data/spec/dummy/public/uploads/repo_file/file/3123/textfile.txt +1 -0
  848. data/spec/dummy/public/uploads/repo_file/file/3126/textfile.txt +1 -0
  849. data/spec/dummy/public/uploads/repo_file/file/3128/textfile.txt +1 -0
  850. data/spec/dummy/public/uploads/repo_file/file/3129/textfile.txt +1 -0
  851. data/spec/dummy/public/uploads/repo_file/file/3131/textfile.txt +1 -0
  852. data/spec/dummy/public/uploads/repo_file/file/3137/textfile.txt +1 -0
  853. data/spec/dummy/public/uploads/repo_file/file/3139/textfile.txt +1 -0
  854. data/spec/dummy/public/uploads/repo_file/file/3141/textfile.txt +1 -0
  855. data/spec/dummy/public/uploads/repo_file/file/3143/textfile.txt +1 -0
  856. data/spec/dummy/public/uploads/repo_file/file/3145/textfile.txt +1 -0
  857. data/spec/dummy/public/uploads/repo_file/file/3147/textfile.txt +1 -0
  858. data/spec/dummy/public/uploads/repo_file/file/3149/textfile.txt +1 -0
  859. data/spec/dummy/public/uploads/repo_file/file/3151/textfile.txt +1 -0
  860. data/spec/dummy/public/uploads/repo_file/file/3153/textfile.txt +1 -0
  861. data/spec/dummy/public/uploads/repo_file/file/3156/textfile.txt +1 -0
  862. data/spec/dummy/public/uploads/repo_file/file/3157/textfile.txt +1 -0
  863. data/spec/dummy/public/uploads/repo_file/file/3159/textfile.txt +1 -0
  864. data/spec/dummy/public/uploads/repo_file/file/3165/textfile.txt +1 -0
  865. data/spec/dummy/public/uploads/repo_file/file/3169/textfile.txt +1 -0
  866. data/spec/dummy/public/uploads/repo_file/file/3170/textfile.txt +1 -0
  867. data/spec/dummy/public/uploads/repo_file/file/3171/textfile.txt +1 -0
  868. data/spec/dummy/public/uploads/repo_file/file/3172/textfile.txt +1 -0
  869. data/spec/dummy/public/uploads/repo_file/file/3173/textfile.txt +1 -0
  870. data/spec/dummy/public/uploads/repo_file/file/3174/textfile.txt +1 -0
  871. data/spec/dummy/public/uploads/repo_file/file/3175/textfile.txt +1 -0
  872. data/spec/dummy/public/uploads/repo_file/file/3176/textfile.txt +1 -0
  873. data/spec/dummy/public/uploads/repo_file/file/3177/textfile.txt +1 -0
  874. data/spec/dummy/public/uploads/repo_file/file/3178/textfile.txt +1 -0
  875. data/spec/dummy/public/uploads/repo_file/file/3187/textfile.txt +1 -0
  876. data/spec/dummy/public/uploads/repo_file/file/3189/textfile.txt +1 -0
  877. data/spec/dummy/public/uploads/repo_file/file/3193/textfile.txt +1 -0
  878. data/spec/dummy/public/uploads/repo_file/file/3196/textfile.txt +1 -0
  879. data/spec/dummy/public/uploads/repo_file/file/3198/textfile.txt +1 -0
  880. data/spec/dummy/public/uploads/repo_file/file/3199/textfile.txt +1 -0
  881. data/spec/dummy/public/uploads/repo_file/file/3201/textfile.txt +1 -0
  882. data/spec/dummy/public/uploads/repo_file/file/3207/textfile.txt +1 -0
  883. data/spec/dummy/public/uploads/repo_file/file/3209/textfile.txt +1 -0
  884. data/spec/dummy/public/uploads/repo_file/file/3211/textfile.txt +1 -0
  885. data/spec/dummy/public/uploads/repo_file/file/3213/textfile.txt +1 -0
  886. data/spec/dummy/public/uploads/repo_file/file/3215/textfile.txt +1 -0
  887. data/spec/dummy/public/uploads/repo_file/file/3217/textfile.txt +1 -0
  888. data/spec/dummy/public/uploads/repo_file/file/3219/textfile.txt +1 -0
  889. data/spec/dummy/public/uploads/repo_file/file/3221/textfile.txt +1 -0
  890. data/spec/dummy/public/uploads/repo_file/file/3223/textfile.txt +1 -0
  891. data/spec/dummy/public/uploads/repo_file/file/3226/textfile.txt +1 -0
  892. data/spec/dummy/public/uploads/repo_file/file/3227/textfile.txt +1 -0
  893. data/spec/dummy/public/uploads/repo_file/file/3229/textfile.txt +1 -0
  894. data/spec/dummy/public/uploads/repo_file/file/3235/textfile.txt +1 -0
  895. data/spec/dummy/public/uploads/repo_file/file/3239/textfile.txt +1 -0
  896. data/spec/dummy/public/uploads/repo_file/file/3240/textfile.txt +1 -0
  897. data/spec/dummy/public/uploads/repo_file/file/3241/textfile.txt +1 -0
  898. data/spec/dummy/public/uploads/repo_file/file/3242/textfile.txt +1 -0
  899. data/spec/dummy/public/uploads/repo_file/file/3243/textfile.txt +1 -0
  900. data/spec/dummy/public/uploads/repo_file/file/3244/textfile.txt +1 -0
  901. data/spec/dummy/public/uploads/repo_file/file/3245/textfile.txt +1 -0
  902. data/spec/dummy/public/uploads/repo_file/file/3246/textfile.txt +1 -0
  903. data/spec/dummy/public/uploads/repo_file/file/3247/textfile.txt +1 -0
  904. data/spec/dummy/public/uploads/repo_file/file/3248/textfile.txt +1 -0
  905. data/spec/dummy/public/uploads/repo_file/file/3257/textfile.txt +1 -0
  906. data/spec/dummy/public/uploads/repo_file/file/3259/textfile.txt +1 -0
  907. data/spec/dummy/public/uploads/repo_file/file/3263/textfile.txt +1 -0
  908. data/spec/dummy/public/uploads/repo_file/file/3266/textfile.txt +1 -0
  909. data/spec/dummy/public/uploads/repo_file/file/3268/textfile.txt +1 -0
  910. data/spec/dummy/public/uploads/repo_file/file/3269/textfile.txt +1 -0
  911. data/spec/dummy/public/uploads/repo_file/file/3271/textfile.txt +1 -0
  912. data/spec/dummy/public/uploads/repo_file/file/3277/textfile.txt +1 -0
  913. data/spec/dummy/public/uploads/repo_file/file/3279/textfile.txt +1 -0
  914. data/spec/dummy/public/uploads/repo_file/file/3281/textfile.txt +1 -0
  915. data/spec/dummy/public/uploads/repo_file/file/3283/textfile.txt +1 -0
  916. data/spec/dummy/public/uploads/repo_file/file/3285/textfile.txt +1 -0
  917. data/spec/dummy/public/uploads/repo_file/file/3287/textfile.txt +1 -0
  918. data/spec/dummy/public/uploads/repo_file/file/3289/textfile.txt +1 -0
  919. data/spec/dummy/public/uploads/repo_file/file/3291/textfile.txt +1 -0
  920. data/spec/dummy/public/uploads/repo_file/file/3293/textfile.txt +1 -0
  921. data/spec/dummy/public/uploads/repo_file/file/3296/textfile.txt +1 -0
  922. data/spec/dummy/public/uploads/repo_file/file/3297/textfile.txt +1 -0
  923. data/spec/dummy/public/uploads/repo_file/file/3299/textfile.txt +1 -0
  924. data/spec/dummy/public/uploads/repo_file/file/3305/textfile.txt +1 -0
  925. data/spec/dummy/public/uploads/repo_file/file/3309/textfile.txt +1 -0
  926. data/spec/dummy/public/uploads/repo_file/file/3310/textfile.txt +1 -0
  927. data/spec/dummy/public/uploads/repo_file/file/3311/textfile.txt +1 -0
  928. data/spec/dummy/public/uploads/repo_file/file/3312/textfile.txt +1 -0
  929. data/spec/dummy/public/uploads/repo_file/file/3313/textfile.txt +1 -0
  930. data/spec/dummy/public/uploads/repo_file/file/3314/textfile.txt +1 -0
  931. data/spec/dummy/public/uploads/repo_file/file/3315/textfile.txt +1 -0
  932. data/spec/dummy/public/uploads/repo_file/file/3316/textfile.txt +1 -0
  933. data/spec/dummy/public/uploads/repo_file/file/3317/textfile.txt +1 -0
  934. data/spec/dummy/public/uploads/repo_file/file/3318/textfile.txt +1 -0
  935. data/spec/dummy/public/uploads/repo_file/file/3327/textfile.txt +1 -0
  936. data/spec/dummy/public/uploads/repo_file/file/3329/textfile.txt +1 -0
  937. data/spec/dummy/public/uploads/repo_file/file/3333/textfile.txt +1 -0
  938. data/spec/dummy/public/uploads/repo_file/file/3336/textfile.txt +1 -0
  939. data/spec/dummy/public/uploads/repo_file/file/3338/textfile.txt +1 -0
  940. data/spec/dummy/public/uploads/repo_file/file/3339/textfile.txt +1 -0
  941. data/spec/dummy/public/uploads/repo_file/file/3341/textfile.txt +1 -0
  942. data/spec/dummy/public/uploads/repo_file/file/3347/textfile.txt +1 -0
  943. data/spec/dummy/public/uploads/repo_file/file/3349/textfile.txt +1 -0
  944. data/spec/dummy/public/uploads/repo_file/file/3351/textfile.txt +1 -0
  945. data/spec/dummy/public/uploads/repo_file/file/3353/textfile.txt +1 -0
  946. data/spec/dummy/public/uploads/repo_file/file/3355/textfile.txt +1 -0
  947. data/spec/dummy/public/uploads/repo_file/file/3357/textfile.txt +1 -0
  948. data/spec/dummy/public/uploads/repo_file/file/3359/textfile.txt +1 -0
  949. data/spec/dummy/public/uploads/repo_file/file/3361/textfile.txt +1 -0
  950. data/spec/dummy/public/uploads/repo_file/file/3363/textfile.txt +1 -0
  951. data/spec/dummy/public/uploads/repo_file/file/3366/textfile.txt +1 -0
  952. data/spec/dummy/public/uploads/repo_file/file/3367/textfile.txt +1 -0
  953. data/spec/dummy/public/uploads/repo_file/file/3369/textfile.txt +1 -0
  954. data/spec/dummy/public/uploads/repo_file/file/3375/textfile.txt +1 -0
  955. data/spec/dummy/public/uploads/repo_file/file/3379/textfile.txt +1 -0
  956. data/spec/dummy/public/uploads/repo_file/file/3380/textfile.txt +1 -0
  957. data/spec/dummy/public/uploads/repo_file/file/3381/textfile.txt +1 -0
  958. data/spec/dummy/public/uploads/repo_file/file/3382/textfile.txt +1 -0
  959. data/spec/dummy/public/uploads/repo_file/file/3383/textfile.txt +1 -0
  960. data/spec/dummy/public/uploads/repo_file/file/3384/textfile.txt +1 -0
  961. data/spec/dummy/public/uploads/repo_file/file/3385/textfile.txt +1 -0
  962. data/spec/dummy/public/uploads/repo_file/file/3386/textfile.txt +1 -0
  963. data/spec/dummy/public/uploads/repo_file/file/3387/textfile.txt +1 -0
  964. data/spec/dummy/public/uploads/repo_file/file/3388/textfile.txt +1 -0
  965. data/spec/dummy/public/uploads/repo_file/file/3397/textfile.txt +1 -0
  966. data/spec/dummy/public/uploads/repo_file/file/3399/textfile.txt +1 -0
  967. data/spec/dummy/public/uploads/repo_file/file/3403/textfile.txt +1 -0
  968. data/spec/dummy/public/uploads/repo_file/file/3406/textfile.txt +1 -0
  969. data/spec/dummy/public/uploads/repo_file/file/3408/textfile.txt +1 -0
  970. data/spec/dummy/public/uploads/repo_file/file/3409/textfile.txt +1 -0
  971. data/spec/dummy/public/uploads/repo_file/file/3411/textfile.txt +1 -0
  972. data/spec/dummy/public/uploads/repo_file/file/3417/textfile.txt +1 -0
  973. data/spec/dummy/public/uploads/repo_file/file/3419/textfile.txt +1 -0
  974. data/spec/dummy/public/uploads/repo_file/file/3421/textfile.txt +1 -0
  975. data/spec/dummy/public/uploads/repo_file/file/3423/textfile.txt +1 -0
  976. data/spec/dummy/public/uploads/repo_file/file/3425/textfile.txt +1 -0
  977. data/spec/dummy/public/uploads/repo_file/file/3427/textfile.txt +1 -0
  978. data/spec/dummy/public/uploads/repo_file/file/3429/textfile.txt +1 -0
  979. data/spec/dummy/public/uploads/repo_file/file/3431/textfile.txt +1 -0
  980. data/spec/dummy/public/uploads/repo_file/file/3433/textfile.txt +1 -0
  981. data/spec/dummy/public/uploads/repo_file/file/3436/textfile.txt +1 -0
  982. data/spec/dummy/public/uploads/repo_file/file/3437/textfile.txt +1 -0
  983. data/spec/dummy/public/uploads/repo_file/file/3439/textfile.txt +1 -0
  984. data/spec/dummy/public/uploads/repo_file/file/3445/textfile.txt +1 -0
  985. data/spec/dummy/public/uploads/repo_file/file/3449/textfile.txt +1 -0
  986. data/spec/dummy/public/uploads/repo_file/file/3450/textfile.txt +1 -0
  987. data/spec/dummy/public/uploads/repo_file/file/3451/textfile.txt +1 -0
  988. data/spec/dummy/public/uploads/repo_file/file/3452/textfile.txt +1 -0
  989. data/spec/dummy/public/uploads/repo_file/file/3453/textfile.txt +1 -0
  990. data/spec/dummy/public/uploads/repo_file/file/3454/textfile.txt +1 -0
  991. data/spec/dummy/public/uploads/repo_file/file/3455/textfile.txt +1 -0
  992. data/spec/dummy/public/uploads/repo_file/file/3456/textfile.txt +1 -0
  993. data/spec/dummy/public/uploads/repo_file/file/3457/textfile.txt +1 -0
  994. data/spec/dummy/public/uploads/repo_file/file/3458/textfile.txt +1 -0
  995. data/spec/dummy/public/uploads/repo_file/file/3467/textfile.txt +1 -0
  996. data/spec/dummy/public/uploads/repo_file/file/3469/textfile.txt +1 -0
  997. data/spec/dummy/public/uploads/repo_file/file/3473/textfile.txt +1 -0
  998. data/spec/dummy/public/uploads/repo_file/file/3476/textfile.txt +1 -0
  999. data/spec/dummy/public/uploads/repo_file/file/3478/textfile.txt +1 -0
  1000. data/spec/dummy/public/uploads/repo_file/file/3479/textfile.txt +1 -0
  1001. data/spec/dummy/public/uploads/repo_file/file/3481/textfile.txt +1 -0
  1002. data/spec/dummy/public/uploads/repo_file/file/3487/textfile.txt +1 -0
  1003. data/spec/dummy/public/uploads/repo_file/file/3489/textfile.txt +1 -0
  1004. data/spec/dummy/public/uploads/repo_file/file/3491/textfile.txt +1 -0
  1005. data/spec/dummy/public/uploads/repo_file/file/3493/textfile.txt +1 -0
  1006. data/spec/dummy/public/uploads/repo_file/file/3495/textfile.txt +1 -0
  1007. data/spec/dummy/public/uploads/repo_file/file/3497/textfile.txt +1 -0
  1008. data/spec/dummy/public/uploads/repo_file/file/3499/textfile.txt +1 -0
  1009. data/spec/dummy/public/uploads/repo_file/file/3501/textfile.txt +1 -0
  1010. data/spec/dummy/public/uploads/repo_file/file/3503/textfile.txt +1 -0
  1011. data/spec/dummy/public/uploads/repo_file/file/3506/textfile.txt +1 -0
  1012. data/spec/dummy/public/uploads/repo_file/file/3507/textfile.txt +1 -0
  1013. data/spec/dummy/public/uploads/repo_file/file/3509/textfile.txt +1 -0
  1014. data/spec/dummy/public/uploads/repo_file/file/3515/textfile.txt +1 -0
  1015. data/spec/dummy/public/uploads/repo_file/file/3518/textfile.txt +1 -0
  1016. data/spec/dummy/public/uploads/repo_file/file/3519/textfile.txt +1 -0
  1017. data/spec/dummy/public/uploads/repo_file/file/3520/textfile.txt +1 -0
  1018. data/spec/dummy/public/uploads/repo_file/file/3521/textfile.txt +1 -0
  1019. data/spec/dummy/public/uploads/repo_file/file/3522/textfile.txt +1 -0
  1020. data/spec/dummy/public/uploads/repo_file/file/3523/textfile.txt +1 -0
  1021. data/spec/dummy/public/uploads/repo_file/file/3524/textfile.txt +1 -0
  1022. data/spec/dummy/public/uploads/repo_file/file/3525/textfile.txt +1 -0
  1023. data/spec/dummy/public/uploads/repo_file/file/3526/textfile.txt +1 -0
  1024. data/spec/dummy/public/uploads/repo_file/file/3527/textfile.txt +1 -0
  1025. data/spec/dummy/public/uploads/repo_file/file/3536/textfile.txt +1 -0
  1026. data/spec/dummy/public/uploads/repo_file/file/3538/textfile.txt +1 -0
  1027. data/spec/dummy/public/uploads/repo_file/file/3542/textfile.txt +1 -0
  1028. data/spec/dummy/public/uploads/repo_file/file/3545/textfile.txt +1 -0
  1029. data/spec/dummy/public/uploads/repo_file/file/3547/textfile.txt +1 -0
  1030. data/spec/dummy/public/uploads/repo_file/file/3548/textfile.txt +1 -0
  1031. data/spec/dummy/public/uploads/repo_file/file/3550/textfile.txt +1 -0
  1032. data/spec/dummy/public/uploads/repo_file/file/3556/textfile.txt +1 -0
  1033. data/spec/dummy/public/uploads/repo_file/file/3558/textfile.txt +1 -0
  1034. data/spec/dummy/public/uploads/repo_file/file/3560/textfile.txt +1 -0
  1035. data/spec/dummy/public/uploads/repo_file/file/3562/textfile.txt +1 -0
  1036. data/spec/dummy/public/uploads/repo_file/file/3564/textfile.txt +1 -0
  1037. data/spec/dummy/public/uploads/repo_file/file/3566/textfile.txt +1 -0
  1038. data/spec/dummy/public/uploads/repo_file/file/3568/textfile.txt +1 -0
  1039. data/spec/dummy/public/uploads/repo_file/file/3570/textfile.txt +1 -0
  1040. data/spec/dummy/public/uploads/repo_file/file/3572/textfile.txt +1 -0
  1041. data/spec/dummy/public/uploads/repo_file/file/3575/textfile.txt +1 -0
  1042. data/spec/dummy/public/uploads/repo_file/file/3576/textfile.txt +1 -0
  1043. data/spec/dummy/public/uploads/repo_file/file/3578/textfile.txt +1 -0
  1044. data/spec/dummy/public/uploads/repo_file/file/3584/textfile.txt +1 -0
  1045. data/spec/dummy/public/uploads/repo_file/file/3587/textfile.txt +1 -0
  1046. data/spec/dummy/public/uploads/repo_file/file/3588/textfile.txt +1 -0
  1047. data/spec/dummy/public/uploads/repo_file/file/3589/textfile.txt +1 -0
  1048. data/spec/dummy/public/uploads/repo_file/file/3590/textfile.txt +1 -0
  1049. data/spec/dummy/public/uploads/repo_file/file/3591/textfile.txt +1 -0
  1050. data/spec/dummy/public/uploads/repo_file/file/3592/textfile.txt +1 -0
  1051. data/spec/dummy/public/uploads/repo_file/file/3593/textfile.txt +1 -0
  1052. data/spec/dummy/public/uploads/repo_file/file/3594/textfile.txt +1 -0
  1053. data/spec/dummy/public/uploads/repo_file/file/3595/textfile.txt +1 -0
  1054. data/spec/dummy/public/uploads/repo_file/file/3596/textfile.txt +1 -0
  1055. data/spec/dummy/public/uploads/repo_file/file/3605/textfile.txt +1 -0
  1056. data/spec/dummy/public/uploads/repo_file/file/3607/textfile.txt +1 -0
  1057. data/spec/dummy/public/uploads/repo_file/file/3611/textfile.txt +1 -0
  1058. data/spec/dummy/public/uploads/repo_file/file/3614/textfile.txt +1 -0
  1059. data/spec/dummy/public/uploads/repo_file/file/3616/textfile.txt +1 -0
  1060. data/spec/dummy/public/uploads/repo_file/file/3617/textfile.txt +1 -0
  1061. data/spec/dummy/public/uploads/repo_file/file/3619/textfile.txt +1 -0
  1062. data/spec/dummy/public/uploads/repo_file/file/3625/textfile.txt +1 -0
  1063. data/spec/dummy/public/uploads/repo_file/file/3627/textfile.txt +1 -0
  1064. data/spec/dummy/public/uploads/repo_file/file/3629/textfile.txt +1 -0
  1065. data/spec/dummy/public/uploads/repo_file/file/3631/textfile.txt +1 -0
  1066. data/spec/dummy/public/uploads/repo_file/file/3633/textfile.txt +1 -0
  1067. data/spec/dummy/public/uploads/repo_file/file/3635/textfile.txt +1 -0
  1068. data/spec/dummy/public/uploads/repo_file/file/3637/textfile.txt +1 -0
  1069. data/spec/dummy/public/uploads/repo_file/file/3639/textfile.txt +1 -0
  1070. data/spec/dummy/public/uploads/repo_file/file/3641/textfile.txt +1 -0
  1071. data/spec/dummy/public/uploads/repo_file/file/3644/textfile.txt +1 -0
  1072. data/spec/dummy/public/uploads/repo_file/file/3645/textfile.txt +1 -0
  1073. data/spec/dummy/public/uploads/repo_file/file/3647/textfile.txt +1 -0
  1074. data/spec/dummy/public/uploads/repo_file/file/3653/textfile.txt +1 -0
  1075. data/spec/dummy/public/uploads/repo_file/file/3656/textfile.txt +1 -0
  1076. data/spec/dummy/public/uploads/repo_file/file/3657/textfile.txt +1 -0
  1077. data/spec/dummy/public/uploads/repo_file/file/3658/textfile.txt +1 -0
  1078. data/spec/dummy/public/uploads/repo_file/file/3659/textfile.txt +1 -0
  1079. data/spec/dummy/public/uploads/repo_file/file/3660/textfile.txt +1 -0
  1080. data/spec/dummy/public/uploads/repo_file/file/3661/textfile.txt +1 -0
  1081. data/spec/dummy/public/uploads/repo_file/file/3662/textfile.txt +1 -0
  1082. data/spec/dummy/public/uploads/repo_file/file/3663/textfile.txt +1 -0
  1083. data/spec/dummy/public/uploads/repo_file/file/3664/textfile.txt +1 -0
  1084. data/spec/dummy/public/uploads/repo_file/file/3665/textfile.txt +1 -0
  1085. data/spec/dummy/public/uploads/repo_file/file/3674/textfile.txt +1 -0
  1086. data/spec/dummy/public/uploads/repo_file/file/3676/textfile.txt +1 -0
  1087. data/spec/dummy/public/uploads/repo_file/file/3680/textfile.txt +1 -0
  1088. data/spec/dummy/public/uploads/repo_file/file/3683/textfile.txt +1 -0
  1089. data/spec/dummy/public/uploads/repo_file/file/3685/textfile.txt +1 -0
  1090. data/spec/dummy/public/uploads/repo_file/file/3686/textfile.txt +1 -0
  1091. data/spec/dummy/public/uploads/repo_file/file/3688/textfile.txt +1 -0
  1092. data/spec/dummy/public/uploads/repo_file/file/3694/textfile.txt +1 -0
  1093. data/spec/dummy/public/uploads/repo_file/file/3696/textfile.txt +1 -0
  1094. data/spec/dummy/public/uploads/repo_file/file/3698/textfile.txt +1 -0
  1095. data/spec/dummy/public/uploads/repo_file/file/3700/textfile.txt +1 -0
  1096. data/spec/dummy/public/uploads/repo_file/file/3702/textfile.txt +1 -0
  1097. data/spec/dummy/public/uploads/repo_file/file/3704/textfile.txt +1 -0
  1098. data/spec/dummy/public/uploads/repo_file/file/3706/textfile.txt +1 -0
  1099. data/spec/dummy/public/uploads/repo_file/file/3708/textfile.txt +1 -0
  1100. data/spec/dummy/public/uploads/repo_file/file/3710/textfile.txt +1 -0
  1101. data/spec/dummy/public/uploads/repo_file/file/3713/textfile.txt +1 -0
  1102. data/spec/dummy/public/uploads/repo_file/file/3714/textfile.txt +1 -0
  1103. data/spec/dummy/public/uploads/repo_file/file/3716/textfile.txt +1 -0
  1104. data/spec/dummy/public/uploads/repo_file/file/3722/textfile.txt +1 -0
  1105. data/spec/dummy/public/uploads/repo_file/file/3725/textfile.txt +1 -0
  1106. data/spec/dummy/public/uploads/repo_file/file/3726/textfile.txt +1 -0
  1107. data/spec/dummy/public/uploads/repo_file/file/3727/textfile.txt +1 -0
  1108. data/spec/dummy/public/uploads/repo_file/file/3728/textfile.txt +1 -0
  1109. data/spec/dummy/public/uploads/repo_file/file/3729/textfile.txt +1 -0
  1110. data/spec/dummy/public/uploads/repo_file/file/3730/textfile.txt +1 -0
  1111. data/spec/dummy/public/uploads/repo_file/file/3731/textfile.txt +1 -0
  1112. data/spec/dummy/public/uploads/repo_file/file/3732/textfile.txt +1 -0
  1113. data/spec/dummy/public/uploads/repo_file/file/3733/textfile.txt +1 -0
  1114. data/spec/dummy/public/uploads/repo_file/file/3734/textfile.txt +1 -0
  1115. data/spec/dummy/public/uploads/repo_file/file/3743/textfile.txt +1 -0
  1116. data/spec/dummy/public/uploads/repo_file/file/3745/textfile.txt +1 -0
  1117. data/spec/dummy/public/uploads/repo_file/file/3749/textfile.txt +1 -0
  1118. data/spec/dummy/public/uploads/repo_file/file/3752/textfile.txt +1 -0
  1119. data/spec/dummy/public/uploads/repo_file/file/3754/textfile.txt +1 -0
  1120. data/spec/dummy/public/uploads/repo_file/file/3755/textfile.txt +1 -0
  1121. data/spec/dummy/public/uploads/repo_file/file/3757/textfile.txt +1 -0
  1122. data/spec/dummy/public/uploads/repo_file/file/3763/textfile.txt +1 -0
  1123. data/spec/dummy/public/uploads/repo_file/file/3765/textfile.txt +1 -0
  1124. data/spec/dummy/public/uploads/repo_file/file/3767/textfile.txt +1 -0
  1125. data/spec/dummy/public/uploads/repo_file/file/3769/textfile.txt +1 -0
  1126. data/spec/dummy/public/uploads/repo_file/file/3771/textfile.txt +1 -0
  1127. data/spec/dummy/public/uploads/repo_file/file/3773/textfile.txt +1 -0
  1128. data/spec/dummy/public/uploads/repo_file/file/3775/textfile.txt +1 -0
  1129. data/spec/dummy/public/uploads/repo_file/file/3777/textfile.txt +1 -0
  1130. data/spec/dummy/public/uploads/repo_file/file/3779/textfile.txt +1 -0
  1131. data/spec/dummy/public/uploads/repo_file/file/3782/textfile.txt +1 -0
  1132. data/spec/dummy/public/uploads/repo_file/file/3783/textfile.txt +1 -0
  1133. data/spec/dummy/public/uploads/repo_file/file/3785/textfile.txt +1 -0
  1134. data/spec/dummy/public/uploads/repo_file/file/3791/textfile.txt +1 -0
  1135. data/spec/dummy/public/uploads/repo_file/file/3795/textfile.txt +1 -0
  1136. data/spec/dummy/public/uploads/repo_file/file/3796/textfile.txt +1 -0
  1137. data/spec/dummy/public/uploads/repo_file/file/3797/textfile.txt +1 -0
  1138. data/spec/dummy/public/uploads/repo_file/file/3798/textfile.txt +1 -0
  1139. data/spec/dummy/public/uploads/repo_file/file/3799/textfile.txt +1 -0
  1140. data/spec/dummy/public/uploads/repo_file/file/3800/textfile.txt +1 -0
  1141. data/spec/dummy/public/uploads/repo_file/file/3801/textfile.txt +1 -0
  1142. data/spec/dummy/public/uploads/repo_file/file/3802/textfile.txt +1 -0
  1143. data/spec/dummy/public/uploads/repo_file/file/3803/textfile.txt +1 -0
  1144. data/spec/dummy/public/uploads/repo_file/file/3804/textfile.txt +1 -0
  1145. data/spec/dummy/public/uploads/repo_file/file/3813/textfile.txt +1 -0
  1146. data/spec/dummy/public/uploads/repo_file/file/3815/textfile.txt +1 -0
  1147. data/spec/dummy/public/uploads/repo_file/file/3819/textfile.txt +1 -0
  1148. data/spec/dummy/public/uploads/repo_file/file/3822/textfile.txt +1 -0
  1149. data/spec/dummy/public/uploads/repo_file/file/3824/textfile.txt +1 -0
  1150. data/spec/dummy/public/uploads/repo_file/file/3825/textfile.txt +1 -0
  1151. data/spec/dummy/public/uploads/repo_file/file/3827/textfile.txt +1 -0
  1152. data/spec/dummy/public/uploads/repo_file/file/3833/textfile.txt +1 -0
  1153. data/spec/dummy/public/uploads/repo_file/file/3835/textfile.txt +1 -0
  1154. data/spec/dummy/public/uploads/repo_file/file/3837/textfile.txt +1 -0
  1155. data/spec/dummy/public/uploads/repo_file/file/3839/textfile.txt +1 -0
  1156. data/spec/dummy/public/uploads/repo_file/file/3841/textfile.txt +1 -0
  1157. data/spec/dummy/public/uploads/repo_file/file/3843/textfile.txt +1 -0
  1158. data/spec/dummy/public/uploads/repo_file/file/3845/textfile.txt +1 -0
  1159. data/spec/dummy/public/uploads/repo_file/file/3847/textfile.txt +1 -0
  1160. data/spec/dummy/public/uploads/repo_file/file/3849/textfile.txt +1 -0
  1161. data/spec/dummy/public/uploads/repo_file/file/3852/textfile.txt +1 -0
  1162. data/spec/dummy/public/uploads/repo_file/file/3853/textfile.txt +1 -0
  1163. data/spec/dummy/public/uploads/repo_file/file/3855/textfile.txt +1 -0
  1164. data/spec/dummy/public/uploads/repo_file/file/3861/textfile.txt +1 -0
  1165. data/spec/dummy/public/uploads/repo_file/file/3865/textfile.txt +1 -0
  1166. data/spec/dummy/public/uploads/repo_file/file/3866/textfile.txt +1 -0
  1167. data/spec/dummy/public/uploads/repo_file/file/3867/textfile.txt +1 -0
  1168. data/spec/dummy/public/uploads/repo_file/file/3868/textfile.txt +1 -0
  1169. data/spec/dummy/public/uploads/repo_file/file/3869/textfile.txt +1 -0
  1170. data/spec/dummy/public/uploads/repo_file/file/3870/textfile.txt +1 -0
  1171. data/spec/dummy/public/uploads/repo_file/file/3871/textfile.txt +1 -0
  1172. data/spec/dummy/public/uploads/repo_file/file/3872/textfile.txt +1 -0
  1173. data/spec/dummy/public/uploads/repo_file/file/3873/textfile.txt +1 -0
  1174. data/spec/dummy/public/uploads/repo_file/file/3874/textfile.txt +1 -0
  1175. data/spec/dummy/public/uploads/repo_file/file/3883/textfile.txt +1 -0
  1176. data/spec/dummy/public/uploads/repo_file/file/3885/textfile.txt +1 -0
  1177. data/spec/dummy/public/uploads/repo_file/file/3889/textfile.txt +1 -0
  1178. data/spec/dummy/public/uploads/repo_file/file/3892/textfile.txt +1 -0
  1179. data/spec/dummy/public/uploads/repo_file/file/3894/textfile.txt +1 -0
  1180. data/spec/dummy/public/uploads/repo_file/file/3895/textfile.txt +1 -0
  1181. data/spec/dummy/public/uploads/repo_file/file/3897/textfile.txt +1 -0
  1182. data/spec/dummy/public/uploads/repo_file/file/3903/textfile.txt +1 -0
  1183. data/spec/dummy/public/uploads/repo_file/file/3905/textfile.txt +1 -0
  1184. data/spec/dummy/public/uploads/repo_file/file/3907/textfile.txt +1 -0
  1185. data/spec/dummy/public/uploads/repo_file/file/3909/textfile.txt +1 -0
  1186. data/spec/dummy/public/uploads/repo_file/file/3911/textfile.txt +1 -0
  1187. data/spec/dummy/public/uploads/repo_file/file/3913/textfile.txt +1 -0
  1188. data/spec/dummy/public/uploads/repo_file/file/3915/textfile.txt +1 -0
  1189. data/spec/dummy/public/uploads/repo_file/file/3917/textfile.txt +1 -0
  1190. data/spec/dummy/public/uploads/repo_file/file/3919/textfile.txt +1 -0
  1191. data/spec/dummy/public/uploads/repo_file/file/3922/textfile.txt +1 -0
  1192. data/spec/dummy/public/uploads/repo_file/file/3923/textfile.txt +1 -0
  1193. data/spec/dummy/public/uploads/repo_file/file/3925/textfile.txt +1 -0
  1194. data/spec/dummy/public/uploads/repo_file/file/3931/textfile.txt +1 -0
  1195. data/spec/dummy/public/uploads/repo_file/file/3935/textfile.txt +1 -0
  1196. data/spec/dummy/public/uploads/repo_file/file/3936/textfile.txt +1 -0
  1197. data/spec/dummy/public/uploads/repo_file/file/3937/textfile.txt +1 -0
  1198. data/spec/dummy/public/uploads/repo_file/file/3938/textfile.txt +1 -0
  1199. data/spec/dummy/public/uploads/repo_file/file/3939/textfile.txt +1 -0
  1200. data/spec/dummy/public/uploads/repo_file/file/3940/textfile.txt +1 -0
  1201. data/spec/dummy/public/uploads/repo_file/file/3941/textfile.txt +1 -0
  1202. data/spec/dummy/public/uploads/repo_file/file/3942/textfile.txt +1 -0
  1203. data/spec/dummy/public/uploads/repo_file/file/3943/textfile.txt +1 -0
  1204. data/spec/dummy/public/uploads/repo_file/file/3944/textfile.txt +1 -0
  1205. data/spec/dummy/public/uploads/repo_file/file/3953/textfile.txt +1 -0
  1206. data/spec/dummy/public/uploads/repo_file/file/3955/textfile.txt +1 -0
  1207. data/spec/dummy/public/uploads/repo_file/file/3959/textfile.txt +1 -0
  1208. data/spec/dummy/public/uploads/repo_file/file/3962/textfile.txt +1 -0
  1209. data/spec/dummy/public/uploads/repo_file/file/3964/textfile.txt +1 -0
  1210. data/spec/dummy/public/uploads/repo_file/file/3965/textfile.txt +1 -0
  1211. data/spec/dummy/public/uploads/repo_file/file/3967/textfile.txt +1 -0
  1212. data/spec/dummy/public/uploads/repo_file/file/3973/textfile.txt +1 -0
  1213. data/spec/dummy/public/uploads/repo_file/file/3975/textfile.txt +1 -0
  1214. data/spec/dummy/public/uploads/repo_file/file/3977/textfile.txt +1 -0
  1215. data/spec/dummy/public/uploads/repo_file/file/3979/textfile.txt +1 -0
  1216. data/spec/dummy/public/uploads/repo_file/file/3981/textfile.txt +1 -0
  1217. data/spec/dummy/public/uploads/repo_file/file/3983/textfile.txt +1 -0
  1218. data/spec/dummy/public/uploads/repo_file/file/3985/textfile.txt +1 -0
  1219. data/spec/dummy/public/uploads/repo_file/file/3987/textfile.txt +1 -0
  1220. data/spec/dummy/public/uploads/repo_file/file/3989/textfile.txt +1 -0
  1221. data/spec/dummy/public/uploads/repo_file/file/3992/textfile.txt +1 -0
  1222. data/spec/dummy/public/uploads/repo_file/file/3993/textfile.txt +1 -0
  1223. data/spec/dummy/public/uploads/repo_file/file/3995/textfile.txt +1 -0
  1224. data/spec/dummy/public/uploads/repo_file/file/4001/textfile.txt +1 -0
  1225. data/spec/dummy/public/uploads/repo_file/file/4005/textfile.txt +1 -0
  1226. data/spec/dummy/public/uploads/repo_file/file/4006/textfile.txt +1 -0
  1227. data/spec/dummy/public/uploads/repo_file/file/4007/textfile.txt +1 -0
  1228. data/spec/dummy/public/uploads/repo_file/file/4008/textfile.txt +1 -0
  1229. data/spec/dummy/public/uploads/repo_file/file/4009/textfile.txt +1 -0
  1230. data/spec/dummy/public/uploads/repo_file/file/4010/textfile.txt +1 -0
  1231. data/spec/dummy/public/uploads/repo_file/file/4011/textfile.txt +1 -0
  1232. data/spec/dummy/public/uploads/repo_file/file/4012/textfile.txt +1 -0
  1233. data/spec/dummy/public/uploads/repo_file/file/4013/textfile.txt +1 -0
  1234. data/spec/dummy/public/uploads/repo_file/file/4014/textfile.txt +1 -0
  1235. data/spec/dummy/public/uploads/repo_file/file/4023/textfile.txt +1 -0
  1236. data/spec/dummy/public/uploads/repo_file/file/4025/textfile.txt +1 -0
  1237. data/spec/dummy/public/uploads/repo_file/file/4029/textfile.txt +1 -0
  1238. data/spec/dummy/public/uploads/repo_file/file/4032/textfile.txt +1 -0
  1239. data/spec/dummy/public/uploads/repo_file/file/4034/textfile.txt +1 -0
  1240. data/spec/dummy/public/uploads/repo_file/file/4035/textfile.txt +1 -0
  1241. data/spec/dummy/public/uploads/repo_file/file/4037/textfile.txt +1 -0
  1242. data/spec/dummy/public/uploads/repo_file/file/4043/textfile.txt +1 -0
  1243. data/spec/dummy/public/uploads/repo_file/file/4045/textfile.txt +1 -0
  1244. data/spec/dummy/public/uploads/repo_file/file/4047/textfile.txt +1 -0
  1245. data/spec/dummy/public/uploads/repo_file/file/4049/textfile.txt +1 -0
  1246. data/spec/dummy/public/uploads/repo_file/file/4051/textfile.txt +1 -0
  1247. data/spec/dummy/public/uploads/repo_file/file/4053/textfile.txt +1 -0
  1248. data/spec/dummy/public/uploads/repo_file/file/4055/textfile.txt +1 -0
  1249. data/spec/dummy/public/uploads/repo_file/file/4057/textfile.txt +1 -0
  1250. data/spec/dummy/public/uploads/repo_file/file/4059/textfile.txt +1 -0
  1251. data/spec/dummy/public/uploads/repo_file/file/4062/textfile.txt +1 -0
  1252. data/spec/dummy/public/uploads/repo_file/file/4063/textfile.txt +1 -0
  1253. data/spec/dummy/public/uploads/repo_file/file/4065/textfile.txt +1 -0
  1254. data/spec/dummy/public/uploads/repo_file/file/4071/textfile.txt +1 -0
  1255. data/spec/dummy/public/uploads/repo_file/file/4075/textfile.txt +1 -0
  1256. data/spec/dummy/public/uploads/repo_file/file/4076/textfile.txt +1 -0
  1257. data/spec/dummy/public/uploads/repo_file/file/4077/textfile.txt +1 -0
  1258. data/spec/dummy/public/uploads/repo_file/file/4078/textfile.txt +1 -0
  1259. data/spec/dummy/public/uploads/repo_file/file/4079/textfile.txt +1 -0
  1260. data/spec/dummy/public/uploads/repo_file/file/4080/textfile.txt +1 -0
  1261. data/spec/dummy/public/uploads/repo_file/file/4081/textfile.txt +1 -0
  1262. data/spec/dummy/public/uploads/repo_file/file/4082/textfile.txt +1 -0
  1263. data/spec/dummy/public/uploads/repo_file/file/4083/textfile.txt +1 -0
  1264. data/spec/dummy/public/uploads/repo_file/file/4084/textfile.txt +1 -0
  1265. data/spec/dummy/public/uploads/repo_file/file/4093/textfile.txt +1 -0
  1266. data/spec/dummy/public/uploads/repo_file/file/4095/textfile.txt +1 -0
  1267. data/spec/dummy/public/uploads/repo_file/file/4099/textfile.txt +1 -0
  1268. data/spec/dummy/public/uploads/repo_file/file/4102/textfile.txt +1 -0
  1269. data/spec/dummy/public/uploads/repo_file/file/4104/textfile.txt +1 -0
  1270. data/spec/dummy/public/uploads/repo_file/file/4105/textfile.txt +1 -0
  1271. data/spec/dummy/public/uploads/repo_file/file/4107/textfile.txt +1 -0
  1272. data/spec/dummy/public/uploads/repo_file/file/4113/textfile.txt +1 -0
  1273. data/spec/dummy/public/uploads/repo_file/file/4115/textfile.txt +1 -0
  1274. data/spec/dummy/public/uploads/repo_file/file/4117/textfile.txt +1 -0
  1275. data/spec/dummy/public/uploads/repo_file/file/4119/textfile.txt +1 -0
  1276. data/spec/dummy/public/uploads/repo_file/file/4121/textfile.txt +1 -0
  1277. data/spec/dummy/public/uploads/repo_file/file/4123/textfile.txt +1 -0
  1278. data/spec/dummy/public/uploads/repo_file/file/4125/textfile.txt +1 -0
  1279. data/spec/dummy/public/uploads/repo_file/file/4127/textfile.txt +1 -0
  1280. data/spec/dummy/public/uploads/repo_file/file/4129/textfile.txt +1 -0
  1281. data/spec/dummy/public/uploads/repo_file/file/4132/textfile.txt +1 -0
  1282. data/spec/dummy/public/uploads/repo_file/file/4133/textfile.txt +1 -0
  1283. data/spec/dummy/public/uploads/repo_file/file/4135/textfile.txt +1 -0
  1284. data/spec/dummy/public/uploads/repo_file/file/4141/textfile.txt +1 -0
  1285. data/spec/dummy/public/uploads/repo_file/file/4145/textfile.txt +1 -0
  1286. data/spec/dummy/public/uploads/repo_file/file/4146/textfile.txt +1 -0
  1287. data/spec/dummy/public/uploads/repo_file/file/4147/textfile.txt +1 -0
  1288. data/spec/dummy/public/uploads/repo_file/file/4148/textfile.txt +1 -0
  1289. data/spec/dummy/public/uploads/repo_file/file/4149/textfile.txt +1 -0
  1290. data/spec/dummy/public/uploads/repo_file/file/4150/textfile.txt +1 -0
  1291. data/spec/dummy/public/uploads/repo_file/file/4151/textfile.txt +1 -0
  1292. data/spec/dummy/public/uploads/repo_file/file/4152/textfile.txt +1 -0
  1293. data/spec/dummy/public/uploads/repo_file/file/4153/textfile.txt +1 -0
  1294. data/spec/dummy/public/uploads/repo_file/file/4154/textfile.txt +1 -0
  1295. data/spec/dummy/public/uploads/repo_file/file/4163/textfile.txt +1 -0
  1296. data/spec/dummy/public/uploads/repo_file/file/4165/textfile.txt +1 -0
  1297. data/spec/dummy/public/uploads/repo_file/file/4169/textfile.txt +1 -0
  1298. data/spec/dummy/public/uploads/repo_file/file/4172/textfile.txt +1 -0
  1299. data/spec/dummy/public/uploads/repo_file/file/4174/textfile.txt +1 -0
  1300. data/spec/dummy/public/uploads/repo_file/file/4175/textfile.txt +1 -0
  1301. data/spec/dummy/public/uploads/repo_file/file/4177/textfile.txt +1 -0
  1302. data/spec/dummy/public/uploads/repo_file/file/4183/textfile.txt +1 -0
  1303. data/spec/dummy/public/uploads/repo_file/file/4185/textfile.txt +1 -0
  1304. data/spec/dummy/public/uploads/repo_file/file/4187/textfile.txt +1 -0
  1305. data/spec/dummy/public/uploads/repo_file/file/4189/textfile.txt +1 -0
  1306. data/spec/dummy/public/uploads/repo_file/file/4191/textfile.txt +1 -0
  1307. data/spec/dummy/public/uploads/repo_file/file/4193/textfile.txt +1 -0
  1308. data/spec/dummy/public/uploads/repo_file/file/4195/textfile.txt +1 -0
  1309. data/spec/dummy/public/uploads/repo_file/file/4197/textfile.txt +1 -0
  1310. data/spec/dummy/public/uploads/repo_file/file/4199/textfile.txt +1 -0
  1311. data/spec/dummy/public/uploads/repo_file/file/4202/textfile.txt +1 -0
  1312. data/spec/dummy/public/uploads/repo_file/file/4203/textfile.txt +1 -0
  1313. data/spec/dummy/public/uploads/repo_file/file/4205/textfile.txt +1 -0
  1314. data/spec/dummy/public/uploads/repo_file/file/4211/textfile.txt +1 -0
  1315. data/spec/dummy/public/uploads/repo_file/file/4215/textfile.txt +1 -0
  1316. data/spec/dummy/public/uploads/repo_file/file/4216/textfile.txt +1 -0
  1317. data/spec/dummy/public/uploads/repo_file/file/4217/textfile.txt +1 -0
  1318. data/spec/dummy/public/uploads/repo_file/file/4218/textfile.txt +1 -0
  1319. data/spec/dummy/public/uploads/repo_file/file/4219/textfile.txt +1 -0
  1320. data/spec/dummy/public/uploads/repo_file/file/4220/textfile.txt +1 -0
  1321. data/spec/dummy/public/uploads/repo_file/file/4221/textfile.txt +1 -0
  1322. data/spec/dummy/public/uploads/repo_file/file/4222/textfile.txt +1 -0
  1323. data/spec/dummy/public/uploads/repo_file/file/4223/textfile.txt +1 -0
  1324. data/spec/dummy/public/uploads/repo_file/file/4224/textfile.txt +1 -0
  1325. data/spec/dummy/public/uploads/repo_file/file/4233/textfile.txt +1 -0
  1326. data/spec/dummy/public/uploads/repo_file/file/4235/textfile.txt +1 -0
  1327. data/spec/dummy/public/uploads/repo_file/file/4239/textfile.txt +1 -0
  1328. data/spec/dummy/public/uploads/repo_file/file/4242/textfile.txt +1 -0
  1329. data/spec/dummy/public/uploads/repo_file/file/4244/textfile.txt +1 -0
  1330. data/spec/dummy/public/uploads/repo_file/file/4245/textfile.txt +1 -0
  1331. data/spec/dummy/public/uploads/repo_file/file/4247/textfile.txt +1 -0
  1332. data/spec/dummy/public/uploads/repo_file/file/4253/textfile.txt +1 -0
  1333. data/spec/dummy/public/uploads/repo_file/file/4255/textfile.txt +1 -0
  1334. data/spec/dummy/public/uploads/repo_file/file/4257/textfile.txt +1 -0
  1335. data/spec/dummy/public/uploads/repo_file/file/4259/textfile.txt +1 -0
  1336. data/spec/dummy/public/uploads/repo_file/file/4261/textfile.txt +1 -0
  1337. data/spec/dummy/public/uploads/repo_file/file/4263/textfile.txt +1 -0
  1338. data/spec/dummy/public/uploads/repo_file/file/4265/textfile.txt +1 -0
  1339. data/spec/dummy/public/uploads/repo_file/file/4267/textfile.txt +1 -0
  1340. data/spec/dummy/public/uploads/repo_file/file/4269/textfile.txt +1 -0
  1341. data/spec/dummy/public/uploads/repo_file/file/4272/textfile.txt +1 -0
  1342. data/spec/dummy/public/uploads/repo_file/file/4273/textfile.txt +1 -0
  1343. data/spec/dummy/public/uploads/repo_file/file/4275/textfile.txt +1 -0
  1344. data/spec/dummy/public/uploads/repo_file/file/4281/textfile.txt +1 -0
  1345. data/spec/dummy/public/uploads/repo_file/file/4285/textfile.txt +1 -0
  1346. data/spec/dummy/public/uploads/repo_file/file/4286/textfile.txt +1 -0
  1347. data/spec/dummy/public/uploads/repo_file/file/4287/textfile.txt +1 -0
  1348. data/spec/dummy/public/uploads/repo_file/file/4288/textfile.txt +1 -0
  1349. data/spec/dummy/public/uploads/repo_file/file/4289/textfile.txt +1 -0
  1350. data/spec/dummy/public/uploads/repo_file/file/4290/textfile.txt +1 -0
  1351. data/spec/dummy/public/uploads/repo_file/file/4291/textfile.txt +1 -0
  1352. data/spec/dummy/public/uploads/repo_file/file/4292/textfile.txt +1 -0
  1353. data/spec/dummy/public/uploads/repo_file/file/4293/textfile.txt +1 -0
  1354. data/spec/dummy/public/uploads/repo_file/file/4294/textfile.txt +1 -0
  1355. data/spec/dummy/public/uploads/repo_file/file/4303/textfile.txt +1 -0
  1356. data/spec/dummy/public/uploads/repo_file/file/4305/textfile.txt +1 -0
  1357. data/spec/dummy/public/uploads/repo_file/file/4309/textfile.txt +1 -0
  1358. data/spec/dummy/public/uploads/repo_file/file/4312/textfile.txt +1 -0
  1359. data/spec/dummy/public/uploads/repo_file/file/4314/textfile.txt +1 -0
  1360. data/spec/dummy/public/uploads/repo_file/file/4315/textfile.txt +1 -0
  1361. data/spec/dummy/public/uploads/repo_file/file/4317/textfile.txt +1 -0
  1362. data/spec/dummy/public/uploads/repo_file/file/4323/textfile.txt +1 -0
  1363. data/spec/dummy/public/uploads/repo_file/file/4325/textfile.txt +1 -0
  1364. data/spec/dummy/public/uploads/repo_file/file/4327/textfile.txt +1 -0
  1365. data/spec/dummy/public/uploads/repo_file/file/4329/textfile.txt +1 -0
  1366. data/spec/dummy/public/uploads/repo_file/file/4331/textfile.txt +1 -0
  1367. data/spec/dummy/public/uploads/repo_file/file/4333/textfile.txt +1 -0
  1368. data/spec/dummy/public/uploads/repo_file/file/4335/textfile.txt +1 -0
  1369. data/spec/dummy/public/uploads/repo_file/file/4337/textfile.txt +1 -0
  1370. data/spec/dummy/public/uploads/repo_file/file/4339/textfile.txt +1 -0
  1371. data/spec/dummy/public/uploads/repo_file/file/4342/textfile.txt +1 -0
  1372. data/spec/dummy/public/uploads/repo_file/file/4343/textfile.txt +1 -0
  1373. data/spec/dummy/public/uploads/repo_file/file/4345/textfile.txt +1 -0
  1374. data/spec/dummy/public/uploads/repo_file/file/4351/textfile.txt +1 -0
  1375. data/spec/dummy/public/uploads/repo_file/file/4355/textfile.txt +1 -0
  1376. data/spec/dummy/public/uploads/repo_file/file/4356/textfile.txt +1 -0
  1377. data/spec/dummy/public/uploads/repo_file/file/4357/textfile.txt +1 -0
  1378. data/spec/dummy/public/uploads/repo_file/file/4358/textfile.txt +1 -0
  1379. data/spec/dummy/public/uploads/repo_file/file/4359/textfile.txt +1 -0
  1380. data/spec/dummy/public/uploads/repo_file/file/4360/textfile.txt +1 -0
  1381. data/spec/dummy/public/uploads/repo_file/file/4361/textfile.txt +1 -0
  1382. data/spec/dummy/public/uploads/repo_file/file/4362/textfile.txt +1 -0
  1383. data/spec/dummy/public/uploads/repo_file/file/4363/textfile.txt +1 -0
  1384. data/spec/dummy/public/uploads/repo_file/file/4364/textfile.txt +1 -0
  1385. data/spec/dummy/public/uploads/repo_file/file/4373/textfile.txt +1 -0
  1386. data/spec/dummy/public/uploads/repo_file/file/4375/textfile.txt +1 -0
  1387. data/spec/dummy/public/uploads/repo_file/file/4379/textfile.txt +1 -0
  1388. data/spec/dummy/public/uploads/repo_file/file/4382/textfile.txt +1 -0
  1389. data/spec/dummy/public/uploads/repo_file/file/4384/textfile.txt +1 -0
  1390. data/spec/dummy/public/uploads/repo_file/file/4385/textfile.txt +1 -0
  1391. data/spec/dummy/public/uploads/repo_file/file/4387/textfile.txt +1 -0
  1392. data/spec/dummy/public/uploads/repo_file/file/4393/textfile.txt +1 -0
  1393. data/spec/dummy/public/uploads/repo_file/file/4395/textfile.txt +1 -0
  1394. data/spec/dummy/public/uploads/repo_file/file/4397/textfile.txt +1 -0
  1395. data/spec/dummy/public/uploads/repo_file/file/4399/textfile.txt +1 -0
  1396. data/spec/dummy/public/uploads/repo_file/file/4401/textfile.txt +1 -0
  1397. data/spec/dummy/public/uploads/repo_file/file/4403/textfile.txt +1 -0
  1398. data/spec/dummy/public/uploads/repo_file/file/4405/textfile.txt +1 -0
  1399. data/spec/dummy/public/uploads/repo_file/file/4407/textfile.txt +1 -0
  1400. data/spec/dummy/public/uploads/repo_file/file/4409/textfile.txt +1 -0
  1401. data/spec/dummy/public/uploads/repo_file/file/4412/textfile.txt +1 -0
  1402. data/spec/dummy/public/uploads/repo_file/file/4413/textfile.txt +1 -0
  1403. data/spec/dummy/public/uploads/repo_file/file/4415/textfile.txt +1 -0
  1404. data/spec/dummy/public/uploads/repo_file/file/4421/textfile.txt +1 -0
  1405. data/spec/dummy/public/uploads/repo_file/file/4425/textfile.txt +1 -0
  1406. data/spec/dummy/public/uploads/repo_file/file/4426/textfile.txt +1 -0
  1407. data/spec/dummy/public/uploads/repo_file/file/4427/textfile.txt +1 -0
  1408. data/spec/dummy/public/uploads/repo_file/file/4428/textfile.txt +1 -0
  1409. data/spec/dummy/public/uploads/repo_file/file/4429/textfile.txt +1 -0
  1410. data/spec/dummy/public/uploads/repo_file/file/4430/textfile.txt +1 -0
  1411. data/spec/dummy/public/uploads/repo_file/file/4431/textfile.txt +1 -0
  1412. data/spec/dummy/public/uploads/repo_file/file/4432/textfile.txt +1 -0
  1413. data/spec/dummy/public/uploads/repo_file/file/4433/textfile.txt +1 -0
  1414. data/spec/dummy/public/uploads/repo_file/file/4434/textfile.txt +1 -0
  1415. data/spec/dummy/public/uploads/repo_file/file/4443/textfile.txt +1 -0
  1416. data/spec/dummy/public/uploads/repo_file/file/4445/textfile.txt +1 -0
  1417. data/spec/dummy/public/uploads/repo_file/file/4449/textfile.txt +1 -0
  1418. data/spec/dummy/public/uploads/repo_file/file/4452/textfile.txt +1 -0
  1419. data/spec/dummy/public/uploads/repo_file/file/4454/textfile.txt +1 -0
  1420. data/spec/dummy/public/uploads/repo_file/file/4455/textfile.txt +1 -0
  1421. data/spec/dummy/public/uploads/repo_file/file/4457/textfile.txt +1 -0
  1422. data/spec/dummy/public/uploads/repo_file/file/4463/textfile.txt +1 -0
  1423. data/spec/dummy/public/uploads/repo_file/file/4465/textfile.txt +1 -0
  1424. data/spec/dummy/public/uploads/repo_file/file/4467/textfile.txt +1 -0
  1425. data/spec/dummy/public/uploads/repo_file/file/4469/textfile.txt +1 -0
  1426. data/spec/dummy/public/uploads/repo_file/file/4471/textfile.txt +1 -0
  1427. data/spec/dummy/public/uploads/repo_file/file/4473/textfile.txt +1 -0
  1428. data/spec/dummy/public/uploads/repo_file/file/4475/textfile.txt +1 -0
  1429. data/spec/dummy/public/uploads/repo_file/file/4477/textfile.txt +1 -0
  1430. data/spec/dummy/public/uploads/repo_file/file/4479/textfile.txt +1 -0
  1431. data/spec/dummy/public/uploads/repo_file/file/4482/textfile.txt +1 -0
  1432. data/spec/dummy/public/uploads/repo_file/file/4483/textfile.txt +1 -0
  1433. data/spec/dummy/public/uploads/repo_file/file/4485/textfile.txt +1 -0
  1434. data/spec/dummy/public/uploads/repo_file/file/4491/textfile.txt +1 -0
  1435. data/spec/dummy/public/uploads/repo_file/file/4495/textfile.txt +1 -0
  1436. data/spec/dummy/public/uploads/repo_file/file/4496/textfile.txt +1 -0
  1437. data/spec/dummy/public/uploads/repo_file/file/4497/textfile.txt +1 -0
  1438. data/spec/dummy/public/uploads/repo_file/file/4498/textfile.txt +1 -0
  1439. data/spec/dummy/public/uploads/repo_file/file/4499/textfile.txt +1 -0
  1440. data/spec/dummy/public/uploads/repo_file/file/4500/textfile.txt +1 -0
  1441. data/spec/dummy/public/uploads/repo_file/file/4501/textfile.txt +1 -0
  1442. data/spec/dummy/public/uploads/repo_file/file/4502/textfile.txt +1 -0
  1443. data/spec/dummy/public/uploads/repo_file/file/4503/textfile.txt +1 -0
  1444. data/spec/dummy/public/uploads/repo_file/file/4504/textfile.txt +1 -0
  1445. data/spec/dummy/public/uploads/repo_file/file/4516/textfile.txt +1 -0
  1446. data/spec/dummy/public/uploads/repo_file/file/4518/textfile.txt +1 -0
  1447. data/spec/dummy/public/uploads/repo_file/file/4522/textfile.txt +1 -0
  1448. data/spec/dummy/public/uploads/repo_file/file/4525/textfile.txt +1 -0
  1449. data/spec/dummy/public/uploads/repo_file/file/4527/textfile.txt +1 -0
  1450. data/spec/dummy/public/uploads/repo_file/file/4528/textfile.txt +1 -0
  1451. data/spec/dummy/public/uploads/repo_file/file/4530/textfile.txt +1 -0
  1452. data/spec/dummy/public/uploads/repo_file/file/4536/textfile.txt +1 -0
  1453. data/spec/dummy/public/uploads/repo_file/file/4538/textfile.txt +1 -0
  1454. data/spec/dummy/public/uploads/repo_file/file/4540/textfile.txt +1 -0
  1455. data/spec/dummy/public/uploads/repo_file/file/4542/textfile.txt +1 -0
  1456. data/spec/dummy/public/uploads/repo_file/file/4544/textfile.txt +1 -0
  1457. data/spec/dummy/public/uploads/repo_file/file/4546/textfile.txt +1 -0
  1458. data/spec/dummy/public/uploads/repo_file/file/4548/textfile.txt +1 -0
  1459. data/spec/dummy/public/uploads/repo_file/file/4550/textfile.txt +1 -0
  1460. data/spec/dummy/public/uploads/repo_file/file/4552/textfile.txt +1 -0
  1461. data/spec/dummy/public/uploads/repo_file/file/4555/textfile.txt +1 -0
  1462. data/spec/dummy/public/uploads/repo_file/file/4556/textfile.txt +1 -0
  1463. data/spec/dummy/public/uploads/repo_file/file/4558/textfile.txt +1 -0
  1464. data/spec/dummy/public/uploads/repo_file/file/4564/textfile.txt +1 -0
  1465. data/spec/dummy/public/uploads/repo_file/file/4568/textfile.txt +1 -0
  1466. data/spec/dummy/public/uploads/repo_file/file/4569/textfile.txt +1 -0
  1467. data/spec/dummy/public/uploads/repo_file/file/4570/textfile.txt +1 -0
  1468. data/spec/dummy/public/uploads/repo_file/file/4571/textfile.txt +1 -0
  1469. data/spec/dummy/public/uploads/repo_file/file/4572/textfile.txt +1 -0
  1470. data/spec/dummy/public/uploads/repo_file/file/4573/textfile.txt +1 -0
  1471. data/spec/dummy/public/uploads/repo_file/file/4574/textfile.txt +1 -0
  1472. data/spec/dummy/public/uploads/repo_file/file/4575/textfile.txt +1 -0
  1473. data/spec/dummy/public/uploads/repo_file/file/4576/textfile.txt +1 -0
  1474. data/spec/dummy/public/uploads/repo_file/file/4577/textfile.txt +1 -0
  1475. data/spec/dummy/public/uploads/repo_file/file/4589/textfile.txt +1 -0
  1476. data/spec/dummy/public/uploads/repo_file/file/4591/textfile.txt +1 -0
  1477. data/spec/dummy/public/uploads/repo_file/file/4595/textfile.txt +1 -0
  1478. data/spec/dummy/public/uploads/repo_file/file/4598/textfile.txt +1 -0
  1479. data/spec/dummy/public/uploads/repo_file/file/4600/textfile.txt +1 -0
  1480. data/spec/dummy/public/uploads/repo_file/file/4601/textfile.txt +1 -0
  1481. data/spec/dummy/public/uploads/repo_file/file/4603/textfile.txt +1 -0
  1482. data/spec/dummy/public/uploads/repo_file/file/4609/textfile.txt +1 -0
  1483. data/spec/dummy/public/uploads/repo_file/file/4611/textfile.txt +1 -0
  1484. data/spec/dummy/public/uploads/repo_file/file/4613/textfile.txt +1 -0
  1485. data/spec/dummy/public/uploads/repo_file/file/4615/textfile.txt +1 -0
  1486. data/spec/dummy/public/uploads/repo_file/file/4617/textfile.txt +1 -0
  1487. data/spec/dummy/public/uploads/repo_file/file/4619/textfile.txt +1 -0
  1488. data/spec/dummy/public/uploads/repo_file/file/4621/textfile.txt +1 -0
  1489. data/spec/dummy/public/uploads/repo_file/file/4623/textfile.txt +1 -0
  1490. data/spec/dummy/public/uploads/repo_file/file/4625/textfile.txt +1 -0
  1491. data/spec/dummy/public/uploads/repo_file/file/4628/textfile.txt +1 -0
  1492. data/spec/dummy/public/uploads/repo_file/file/4629/textfile.txt +1 -0
  1493. data/spec/dummy/public/uploads/repo_file/file/4631/textfile.txt +1 -0
  1494. data/spec/dummy/public/uploads/repo_file/file/4637/textfile.txt +1 -0
  1495. data/spec/dummy/public/uploads/repo_file/file/4641/textfile.txt +1 -0
  1496. data/spec/dummy/public/uploads/repo_file/file/4642/textfile.txt +1 -0
  1497. data/spec/dummy/public/uploads/repo_file/file/4643/textfile.txt +1 -0
  1498. data/spec/dummy/public/uploads/repo_file/file/4644/textfile.txt +1 -0
  1499. data/spec/dummy/public/uploads/repo_file/file/4645/textfile.txt +1 -0
  1500. data/spec/dummy/public/uploads/repo_file/file/4646/textfile.txt +1 -0
  1501. data/spec/dummy/public/uploads/repo_file/file/4647/textfile.txt +1 -0
  1502. data/spec/dummy/public/uploads/repo_file/file/4648/textfile.txt +1 -0
  1503. data/spec/dummy/public/uploads/repo_file/file/4649/textfile.txt +1 -0
  1504. data/spec/dummy/public/uploads/repo_file/file/4650/textfile.txt +1 -0
  1505. data/spec/dummy/public/uploads/repo_file/file/4662/textfile.txt +1 -0
  1506. data/spec/dummy/public/uploads/repo_file/file/4664/textfile.txt +1 -0
  1507. data/spec/dummy/public/uploads/repo_file/file/4668/textfile.txt +1 -0
  1508. data/spec/dummy/public/uploads/repo_file/file/4671/textfile.txt +1 -0
  1509. data/spec/dummy/public/uploads/repo_file/file/4673/textfile.txt +1 -0
  1510. data/spec/dummy/public/uploads/repo_file/file/4674/textfile.txt +1 -0
  1511. data/spec/dummy/public/uploads/repo_file/file/4676/textfile.txt +1 -0
  1512. data/spec/dummy/public/uploads/repo_file/file/4682/textfile.txt +1 -0
  1513. data/spec/dummy/public/uploads/repo_file/file/4684/textfile.txt +1 -0
  1514. data/spec/dummy/public/uploads/repo_file/file/4686/textfile.txt +1 -0
  1515. data/spec/dummy/public/uploads/repo_file/file/4688/textfile.txt +1 -0
  1516. data/spec/dummy/public/uploads/repo_file/file/4690/textfile.txt +1 -0
  1517. data/spec/dummy/public/uploads/repo_file/file/4692/textfile.txt +1 -0
  1518. data/spec/dummy/public/uploads/repo_file/file/4694/textfile.txt +1 -0
  1519. data/spec/dummy/public/uploads/repo_file/file/4696/textfile.txt +1 -0
  1520. data/spec/dummy/public/uploads/repo_file/file/4698/textfile.txt +1 -0
  1521. data/spec/dummy/public/uploads/repo_file/file/4701/textfile.txt +1 -0
  1522. data/spec/dummy/public/uploads/repo_file/file/4702/textfile.txt +1 -0
  1523. data/spec/dummy/public/uploads/repo_file/file/4704/textfile.txt +1 -0
  1524. data/spec/dummy/public/uploads/repo_file/file/4710/textfile.txt +1 -0
  1525. data/spec/dummy/public/uploads/repo_file/file/4714/textfile.txt +1 -0
  1526. data/spec/dummy/public/uploads/repo_file/file/4715/textfile.txt +1 -0
  1527. data/spec/dummy/public/uploads/repo_file/file/4716/textfile.txt +1 -0
  1528. data/spec/dummy/public/uploads/repo_file/file/4717/textfile.txt +1 -0
  1529. data/spec/dummy/public/uploads/repo_file/file/4718/textfile.txt +1 -0
  1530. data/spec/dummy/public/uploads/repo_file/file/4719/textfile.txt +1 -0
  1531. data/spec/dummy/public/uploads/repo_file/file/4720/textfile.txt +1 -0
  1532. data/spec/dummy/public/uploads/repo_file/file/4721/textfile.txt +1 -0
  1533. data/spec/dummy/public/uploads/repo_file/file/4722/textfile.txt +1 -0
  1534. data/spec/dummy/public/uploads/repo_file/file/4723/textfile.txt +1 -0
  1535. data/spec/dummy/public/uploads/repo_file/file/4735/textfile.txt +1 -0
  1536. data/spec/dummy/public/uploads/repo_file/file/4737/textfile.txt +1 -0
  1537. data/spec/dummy/public/uploads/repo_file/file/4741/textfile.txt +1 -0
  1538. data/spec/dummy/public/uploads/repo_file/file/4744/textfile.txt +1 -0
  1539. data/spec/dummy/public/uploads/repo_file/file/4746/textfile.txt +1 -0
  1540. data/spec/dummy/public/uploads/repo_file/file/4747/textfile.txt +1 -0
  1541. data/spec/dummy/public/uploads/repo_file/file/4749/textfile.txt +1 -0
  1542. data/spec/dummy/public/uploads/repo_file/file/4755/textfile.txt +1 -0
  1543. data/spec/dummy/public/uploads/repo_file/file/4757/textfile.txt +1 -0
  1544. data/spec/dummy/public/uploads/repo_file/file/4759/textfile.txt +1 -0
  1545. data/spec/dummy/public/uploads/repo_file/file/4761/textfile.txt +1 -0
  1546. data/spec/dummy/public/uploads/repo_file/file/4763/textfile.txt +1 -0
  1547. data/spec/dummy/public/uploads/repo_file/file/4765/textfile.txt +1 -0
  1548. data/spec/dummy/public/uploads/repo_file/file/4767/textfile.txt +1 -0
  1549. data/spec/dummy/public/uploads/repo_file/file/4769/textfile.txt +1 -0
  1550. data/spec/dummy/public/uploads/repo_file/file/4771/textfile.txt +1 -0
  1551. data/spec/dummy/public/uploads/repo_file/file/4774/textfile.txt +1 -0
  1552. data/spec/dummy/public/uploads/repo_file/file/4775/textfile.txt +1 -0
  1553. data/spec/dummy/public/uploads/repo_file/file/4777/textfile.txt +1 -0
  1554. data/spec/dummy/public/uploads/repo_file/file/4783/textfile.txt +1 -0
  1555. data/spec/dummy/public/uploads/repo_file/file/4787/textfile.txt +1 -0
  1556. data/spec/dummy/public/uploads/repo_file/file/4788/textfile.txt +1 -0
  1557. data/spec/dummy/public/uploads/repo_file/file/4789/textfile.txt +1 -0
  1558. data/spec/dummy/public/uploads/repo_file/file/4790/textfile.txt +1 -0
  1559. data/spec/dummy/public/uploads/repo_file/file/4791/textfile.txt +1 -0
  1560. data/spec/dummy/public/uploads/repo_file/file/4792/textfile.txt +1 -0
  1561. data/spec/dummy/public/uploads/repo_file/file/4793/textfile.txt +1 -0
  1562. data/spec/dummy/public/uploads/repo_file/file/4794/textfile.txt +1 -0
  1563. data/spec/dummy/public/uploads/repo_file/file/4795/textfile.txt +1 -0
  1564. data/spec/dummy/public/uploads/repo_file/file/4796/textfile.txt +1 -0
  1565. data/spec/dummy/public/uploads/repo_file/file/4808/textfile.txt +1 -0
  1566. data/spec/dummy/public/uploads/repo_file/file/4810/textfile.txt +1 -0
  1567. data/spec/dummy/public/uploads/repo_file/file/4814/textfile.txt +1 -0
  1568. data/spec/dummy/public/uploads/repo_file/file/4817/textfile.txt +1 -0
  1569. data/spec/dummy/public/uploads/repo_file/file/4819/textfile.txt +1 -0
  1570. data/spec/dummy/public/uploads/repo_file/file/4820/textfile.txt +1 -0
  1571. data/spec/dummy/public/uploads/repo_file/file/4822/textfile.txt +1 -0
  1572. data/spec/dummy/public/uploads/repo_file/file/4828/textfile.txt +1 -0
  1573. data/spec/dummy/public/uploads/repo_file/file/4830/textfile.txt +1 -0
  1574. data/spec/dummy/public/uploads/repo_file/file/4832/textfile.txt +1 -0
  1575. data/spec/dummy/public/uploads/repo_file/file/4834/textfile.txt +1 -0
  1576. data/spec/dummy/public/uploads/repo_file/file/4836/textfile.txt +1 -0
  1577. data/spec/dummy/public/uploads/repo_file/file/4838/textfile.txt +1 -0
  1578. data/spec/dummy/public/uploads/repo_file/file/4840/textfile.txt +1 -0
  1579. data/spec/dummy/public/uploads/repo_file/file/4842/textfile.txt +1 -0
  1580. data/spec/dummy/public/uploads/repo_file/file/4844/textfile.txt +1 -0
  1581. data/spec/dummy/public/uploads/repo_file/file/4847/textfile.txt +1 -0
  1582. data/spec/dummy/public/uploads/repo_file/file/4848/textfile.txt +1 -0
  1583. data/spec/dummy/public/uploads/repo_file/file/4850/textfile.txt +1 -0
  1584. data/spec/dummy/public/uploads/repo_file/file/4856/textfile.txt +1 -0
  1585. data/spec/dummy/public/uploads/repo_file/file/4860/textfile.txt +1 -0
  1586. data/spec/dummy/public/uploads/repo_file/file/4861/textfile.txt +1 -0
  1587. data/spec/dummy/public/uploads/repo_file/file/4862/textfile.txt +1 -0
  1588. data/spec/dummy/public/uploads/repo_file/file/4863/textfile.txt +1 -0
  1589. data/spec/dummy/public/uploads/repo_file/file/4864/textfile.txt +1 -0
  1590. data/spec/dummy/public/uploads/repo_file/file/4865/textfile.txt +1 -0
  1591. data/spec/dummy/public/uploads/repo_file/file/4866/textfile.txt +1 -0
  1592. data/spec/dummy/public/uploads/repo_file/file/4867/textfile.txt +1 -0
  1593. data/spec/dummy/public/uploads/repo_file/file/4868/textfile.txt +1 -0
  1594. data/spec/dummy/public/uploads/repo_file/file/4869/textfile.txt +1 -0
  1595. data/spec/dummy/public/uploads/repo_file/file/4881/textfile.txt +1 -0
  1596. data/spec/dummy/public/uploads/repo_file/file/4883/textfile.txt +1 -0
  1597. data/spec/dummy/public/uploads/repo_file/file/4887/textfile.txt +1 -0
  1598. data/spec/dummy/public/uploads/repo_file/file/4890/textfile.txt +1 -0
  1599. data/spec/dummy/public/uploads/repo_file/file/4892/textfile.txt +1 -0
  1600. data/spec/dummy/public/uploads/repo_file/file/4893/textfile.txt +1 -0
  1601. data/spec/dummy/public/uploads/repo_file/file/4895/textfile.txt +1 -0
  1602. data/spec/dummy/public/uploads/repo_file/file/4901/textfile.txt +1 -0
  1603. data/spec/dummy/public/uploads/repo_file/file/4903/textfile.txt +1 -0
  1604. data/spec/dummy/public/uploads/repo_file/file/4905/textfile.txt +1 -0
  1605. data/spec/dummy/public/uploads/repo_file/file/4907/textfile.txt +1 -0
  1606. data/spec/dummy/public/uploads/repo_file/file/4909/textfile.txt +1 -0
  1607. data/spec/dummy/public/uploads/repo_file/file/4911/textfile.txt +1 -0
  1608. data/spec/dummy/public/uploads/repo_file/file/4913/textfile.txt +1 -0
  1609. data/spec/dummy/public/uploads/repo_file/file/4915/textfile.txt +1 -0
  1610. data/spec/dummy/public/uploads/repo_file/file/4917/textfile.txt +1 -0
  1611. data/spec/dummy/public/uploads/repo_file/file/4920/textfile.txt +1 -0
  1612. data/spec/dummy/public/uploads/repo_file/file/4921/textfile.txt +1 -0
  1613. data/spec/dummy/public/uploads/repo_file/file/4923/textfile.txt +1 -0
  1614. data/spec/dummy/public/uploads/repo_file/file/4929/textfile.txt +1 -0
  1615. data/spec/dummy/public/uploads/repo_file/file/4933/textfile.txt +1 -0
  1616. data/spec/dummy/public/uploads/repo_file/file/4934/textfile.txt +1 -0
  1617. data/spec/dummy/public/uploads/repo_file/file/4935/textfile.txt +1 -0
  1618. data/spec/dummy/public/uploads/repo_file/file/4936/textfile.txt +1 -0
  1619. data/spec/dummy/public/uploads/repo_file/file/4937/textfile.txt +1 -0
  1620. data/spec/dummy/public/uploads/repo_file/file/4938/textfile.txt +1 -0
  1621. data/spec/dummy/public/uploads/repo_file/file/4939/textfile.txt +1 -0
  1622. data/spec/dummy/public/uploads/repo_file/file/4940/textfile.txt +1 -0
  1623. data/spec/dummy/public/uploads/repo_file/file/4941/textfile.txt +1 -0
  1624. data/spec/dummy/public/uploads/repo_file/file/4942/textfile.txt +1 -0
  1625. data/spec/dummy/public/uploads/repo_file/file/4954/textfile.txt +1 -0
  1626. data/spec/dummy/public/uploads/repo_file/file/4956/textfile.txt +1 -0
  1627. data/spec/dummy/public/uploads/repo_file/file/4960/textfile.txt +1 -0
  1628. data/spec/dummy/public/uploads/repo_file/file/4963/textfile.txt +1 -0
  1629. data/spec/dummy/public/uploads/repo_file/file/4965/textfile.txt +1 -0
  1630. data/spec/dummy/public/uploads/repo_file/file/4966/textfile.txt +1 -0
  1631. data/spec/dummy/public/uploads/repo_file/file/4968/textfile.txt +1 -0
  1632. data/spec/dummy/public/uploads/repo_file/file/4974/textfile.txt +1 -0
  1633. data/spec/dummy/public/uploads/repo_file/file/4976/textfile.txt +1 -0
  1634. data/spec/dummy/public/uploads/repo_file/file/4978/textfile.txt +1 -0
  1635. data/spec/dummy/public/uploads/repo_file/file/4980/textfile.txt +1 -0
  1636. data/spec/dummy/public/uploads/repo_file/file/4982/textfile.txt +1 -0
  1637. data/spec/dummy/public/uploads/repo_file/file/4984/textfile.txt +1 -0
  1638. data/spec/dummy/public/uploads/repo_file/file/4986/textfile.txt +1 -0
  1639. data/spec/dummy/public/uploads/repo_file/file/4988/textfile.txt +1 -0
  1640. data/spec/dummy/public/uploads/repo_file/file/4990/textfile.txt +1 -0
  1641. data/spec/dummy/public/uploads/repo_file/file/4993/textfile.txt +1 -0
  1642. data/spec/dummy/public/uploads/repo_file/file/4994/textfile.txt +1 -0
  1643. data/spec/dummy/public/uploads/repo_file/file/4996/textfile.txt +1 -0
  1644. data/spec/dummy/public/uploads/repo_file/file/5002/textfile.txt +1 -0
  1645. data/spec/dummy/public/uploads/repo_file/file/5006/textfile.txt +1 -0
  1646. data/spec/dummy/public/uploads/repo_file/file/5007/textfile.txt +1 -0
  1647. data/spec/dummy/public/uploads/repo_file/file/5008/textfile.txt +1 -0
  1648. data/spec/dummy/public/uploads/repo_file/file/5009/textfile.txt +1 -0
  1649. data/spec/dummy/public/uploads/repo_file/file/5010/textfile.txt +1 -0
  1650. data/spec/dummy/public/uploads/repo_file/file/5011/textfile.txt +1 -0
  1651. data/spec/dummy/public/uploads/repo_file/file/5012/textfile.txt +1 -0
  1652. data/spec/dummy/public/uploads/repo_file/file/5013/textfile.txt +1 -0
  1653. data/spec/dummy/public/uploads/repo_file/file/8479/textfile.txt +1 -0
  1654. data/spec/dummy/public/uploads/repo_file/file/8480/textfile.txt +1 -0
  1655. data/spec/dummy/public/uploads/repo_file/file/8492/textfile.txt +1 -0
  1656. data/spec/dummy/public/uploads/repo_file/file/8494/textfile.txt +1 -0
  1657. data/spec/dummy/public/uploads/repo_file/file/8498/textfile.txt +1 -0
  1658. data/spec/dummy/public/uploads/repo_file/file/8501/textfile.txt +1 -0
  1659. data/spec/dummy/public/uploads/repo_file/file/8503/textfile.txt +1 -0
  1660. data/spec/dummy/public/uploads/repo_file/file/8504/textfile.txt +1 -0
  1661. data/spec/dummy/public/uploads/repo_file/file/8506/textfile.txt +1 -0
  1662. data/spec/dummy/public/uploads/repo_file/file/8512/textfile.txt +1 -0
  1663. data/spec/dummy/public/uploads/repo_file/file/8514/textfile.txt +1 -0
  1664. data/spec/dummy/public/uploads/repo_file/file/8516/textfile.txt +1 -0
  1665. data/spec/dummy/public/uploads/repo_file/file/8518/textfile.txt +1 -0
  1666. data/spec/dummy/public/uploads/repo_file/file/8520/textfile.txt +1 -0
  1667. data/spec/dummy/public/uploads/repo_file/file/8522/textfile.txt +1 -0
  1668. data/spec/dummy/public/uploads/repo_file/file/8524/textfile.txt +1 -0
  1669. data/spec/dummy/public/uploads/repo_file/file/8526/textfile.txt +1 -0
  1670. data/spec/dummy/public/uploads/repo_file/file/8528/textfile.txt +1 -0
  1671. data/spec/dummy/public/uploads/repo_file/file/8531/textfile.txt +1 -0
  1672. data/spec/dummy/public/uploads/repo_file/file/8532/textfile.txt +1 -0
  1673. data/spec/dummy/public/uploads/repo_file/file/8534/textfile.txt +1 -0
  1674. data/spec/dummy/public/uploads/repo_file/file/8540/textfile.txt +1 -0
  1675. data/spec/dummy/public/uploads/repo_file/file/8545/textfile.txt +1 -0
  1676. data/spec/dummy/public/uploads/repo_file/file/8547/textfile.txt +1 -0
  1677. data/spec/dummy/public/uploads/repo_file/file/8549/textfile.txt +1 -0
  1678. data/spec/dummy/public/uploads/repo_file/file/8551/textfile.txt +1 -0
  1679. data/spec/dummy/public/uploads/repo_file/file/8553/textfile.txt +1 -0
  1680. data/spec/dummy/public/uploads/repo_file/file/8559/textfile.txt +1 -0
  1681. data/spec/dummy/public/uploads/repo_file/file/8562/textfile.txt +1 -0
  1682. data/spec/dummy/public/uploads/repo_file/file/8563/textfile.txt +1 -0
  1683. data/spec/dummy/public/uploads/repo_file/file/8564/textfile.txt +1 -0
  1684. data/spec/dummy/public/uploads/repo_file/file/8566/textfile.txt +1 -0
  1685. data/spec/dummy/public/uploads/repo_file/file/8567/textfile.txt +1 -0
  1686. data/spec/dummy/public/uploads/repo_file/file/8568/textfile.txt +1 -0
  1687. data/spec/dummy/public/uploads/repo_file/file/8569/textfile.txt +1 -0
  1688. data/spec/dummy/public/uploads/repo_file/file/8570/textfile.txt +1 -0
  1689. data/spec/dummy/public/uploads/repo_file/file/8571/textfile.txt +1 -0
  1690. data/spec/dummy/public/uploads/repo_file/file/8572/textfile.txt +1 -0
  1691. data/spec/dummy/public/uploads/repo_file/file/8573/textfile.txt +1 -0
  1692. data/spec/dummy/public/uploads/repo_file/file/8574/textfile.txt +1 -0
  1693. data/spec/dummy/public/uploads/repo_file/file/8575/textfile.txt +1 -0
  1694. data/spec/dummy/public/uploads/repo_file/file/8576/textfile.txt +1 -0
  1695. data/spec/dummy/public/uploads/repo_file/file/8580/textfile.txt +1 -0
  1696. data/spec/dummy/public/uploads/repo_file/file/8582/textfile.txt +1 -0
  1697. data/spec/dummy/public/uploads/repo_file/file/8584/textfile.txt +1 -0
  1698. data/spec/dummy/public/uploads/repo_file/file/8586/textfile.txt +1 -0
  1699. data/spec/dummy/public/uploads/repo_file/file/8588/textfile.txt +1 -0
  1700. data/spec/dummy/public/uploads/repo_file/file/8590/textfile.txt +1 -0
  1701. data/spec/dummy/public/uploads/repo_file/file/8592/textfile.txt +1 -0
  1702. data/spec/dummy/public/uploads/repo_file/file/8594/textfile.txt +1 -0
  1703. data/spec/dummy/public/uploads/repo_file/file/8596/textfile.txt +1 -0
  1704. data/spec/dummy/public/uploads/repo_file/file/8598/textfile.txt +1 -0
  1705. data/spec/dummy/public/uploads/repo_file/file/8600/textfile.txt +1 -0
  1706. data/spec/dummy/public/uploads/repo_file/file/8602/textfile.txt +1 -0
  1707. data/spec/dummy/public/uploads/repo_file/file/8604/textfile.txt +1 -0
  1708. data/spec/dummy/public/uploads/repo_file/file/8606/textfile.txt +1 -0
  1709. data/spec/dummy/public/uploads/repo_file/file/8608/textfile.txt +1 -0
  1710. data/spec/dummy/public/uploads/repo_file/file/8610/textfile.txt +1 -0
  1711. data/spec/dummy/public/uploads/repo_file/file/8612/textfile.txt +1 -0
  1712. data/spec/dummy/public/uploads/repo_file/file/8614/textfile.txt +1 -0
  1713. data/spec/dummy/public/uploads/repo_file/file/8616/textfile.txt +1 -0
  1714. data/spec/dummy/public/uploads/repo_file/file/8618/textfile.txt +1 -0
  1715. data/spec/dummy/public/uploads/repo_file/file/8620/textfile.txt +1 -0
  1716. data/spec/dummy/public/uploads/repo_file/file/8622/textfile.txt +1 -0
  1717. data/spec/dummy/public/uploads/repo_file/file/8624/textfile.txt +1 -0
  1718. data/spec/dummy/public/uploads/repo_file/file/8626/textfile.txt +1 -0
  1719. data/spec/dummy/public/uploads/repo_file/file/8628/textfile.txt +1 -0
  1720. data/spec/dummy/public/uploads/repo_file/file/8629/textfile.txt +1 -0
  1721. data/spec/dummy/public/uploads/repo_file/file/8630/textfile.txt +1 -0
  1722. data/spec/dummy/public/uploads/repo_file/file/8631/textfile.txt +1 -0
  1723. data/spec/dummy/public/uploads/repo_file/file/8632/textfile.txt +1 -0
  1724. data/spec/dummy/public/uploads/repo_file/file/8633/textfile.txt +1 -0
  1725. data/spec/dummy/public/uploads/repo_file/file/8634/textfile.txt +1 -0
  1726. data/spec/dummy/public/uploads/repo_file/file/8635/textfile.txt +1 -0
  1727. data/spec/dummy/public/uploads/repo_file/file/8636/textfile.txt +1 -0
  1728. data/spec/dummy/public/uploads/repo_file/file/8640/textfile.txt +1 -0
  1729. data/spec/dummy/public/uploads/repo_file/file/8642/textfile.txt +1 -0
  1730. data/spec/dummy/public/uploads/repo_file/file/8644/textfile.txt +1 -0
  1731. data/spec/dummy/public/uploads/repo_file/file/8646/textfile.txt +1 -0
  1732. data/spec/dummy/public/uploads/repo_file/file/8648/textfile.txt +1 -0
  1733. data/spec/dummy/public/uploads/repo_file/file/8650/textfile.txt +1 -0
  1734. data/spec/dummy/public/uploads/repo_file/file/8652/textfile.txt +1 -0
  1735. data/spec/dummy/public/uploads/repo_file/file/8654/textfile.txt +1 -0
  1736. data/spec/dummy/public/uploads/repo_file/file/8656/textfile.txt +1 -0
  1737. data/spec/dummy/public/uploads/repo_file/file/8658/textfile.txt +1 -0
  1738. data/spec/dummy/public/uploads/repo_file/file/8660/textfile.txt +1 -0
  1739. data/spec/dummy/public/uploads/repo_file/file/8662/textfile.txt +1 -0
  1740. data/spec/dummy/public/uploads/repo_file/file/8664/textfile.txt +1 -0
  1741. data/spec/dummy/public/uploads/repo_file/file/8666/textfile.txt +1 -0
  1742. data/spec/dummy/public/uploads/repo_file/file/8668/textfile.txt +1 -0
  1743. data/spec/dummy/public/uploads/repo_file/file/8670/textfile.txt +1 -0
  1744. data/spec/dummy/public/uploads/repo_file/file/8672/textfile.txt +1 -0
  1745. data/spec/dummy/public/uploads/repo_file/file/8674/textfile.txt +1 -0
  1746. data/spec/dummy/public/uploads/repo_file/file/8676/textfile.txt +1 -0
  1747. data/spec/dummy/public/uploads/repo_file/file/8678/textfile.txt +1 -0
  1748. data/spec/dummy/public/uploads/repo_file/file/8680/textfile.txt +1 -0
  1749. data/spec/dummy/public/uploads/repo_file/file/8682/textfile.txt +1 -0
  1750. data/spec/dummy/public/uploads/repo_file/file/8684/textfile.txt +1 -0
  1751. data/spec/dummy/public/uploads/repo_file/file/8686/textfile.txt +1 -0
  1752. data/spec/dummy/public/uploads/repo_file/file/8688/textfile.txt +1 -0
  1753. data/spec/dummy/public/uploads/repo_file/file/8689/textfile.txt +1 -0
  1754. data/spec/dummy/public/uploads/repo_file/file/8690/textfile.txt +1 -0
  1755. data/spec/dummy/public/uploads/repo_file/file/8691/textfile.txt +1 -0
  1756. data/spec/dummy/public/uploads/repo_file/file/8692/textfile.txt +1 -0
  1757. data/spec/dummy/public/uploads/repo_file/file/8693/textfile.txt +1 -0
  1758. data/spec/dummy/public/uploads/repo_file/file/8694/textfile.txt +1 -0
  1759. data/spec/dummy/public/uploads/repo_file/file/8695/textfile.txt +1 -0
  1760. data/spec/dummy/public/uploads/repo_file/file/8696/textfile.txt +1 -0
  1761. data/spec/dummy/public/uploads/repo_file/file/8700/textfile.txt +1 -0
  1762. data/spec/dummy/public/uploads/repo_file/file/8702/textfile.txt +1 -0
  1763. data/spec/dummy/public/uploads/repo_file/file/8704/textfile.txt +1 -0
  1764. data/spec/dummy/public/uploads/repo_file/file/8706/textfile.txt +1 -0
  1765. data/spec/dummy/public/uploads/repo_file/file/8708/textfile.txt +1 -0
  1766. data/spec/dummy/public/uploads/repo_file/file/8710/textfile.txt +1 -0
  1767. data/spec/dummy/public/uploads/repo_file/file/8712/textfile.txt +1 -0
  1768. data/spec/dummy/public/uploads/repo_file/file/8714/textfile.txt +1 -0
  1769. data/spec/dummy/public/uploads/repo_file/file/8716/textfile.txt +1 -0
  1770. data/spec/dummy/public/uploads/repo_file/file/8718/textfile.txt +1 -0
  1771. data/spec/dummy/public/uploads/repo_file/file/8720/textfile.txt +1 -0
  1772. data/spec/dummy/public/uploads/repo_file/file/8722/textfile.txt +1 -0
  1773. data/spec/dummy/public/uploads/repo_file/file/8724/textfile.txt +1 -0
  1774. data/spec/dummy/public/uploads/repo_file/file/8726/textfile.txt +1 -0
  1775. data/spec/dummy/public/uploads/repo_file/file/8728/textfile.txt +1 -0
  1776. data/spec/dummy/public/uploads/repo_file/file/8730/textfile.txt +1 -0
  1777. data/spec/dummy/public/uploads/repo_file/file/8732/textfile.txt +1 -0
  1778. data/spec/dummy/public/uploads/repo_file/file/8734/textfile.txt +1 -0
  1779. data/spec/dummy/public/uploads/repo_file/file/8736/textfile.txt +1 -0
  1780. data/spec/dummy/public/uploads/repo_file/file/8738/textfile.txt +1 -0
  1781. data/spec/dummy/public/uploads/repo_file/file/8740/textfile.txt +1 -0
  1782. data/spec/dummy/public/uploads/repo_file/file/8742/textfile.txt +1 -0
  1783. data/spec/dummy/public/uploads/repo_file/file/8744/textfile.txt +1 -0
  1784. data/spec/dummy/public/uploads/repo_file/file/8746/textfile.txt +1 -0
  1785. data/spec/dummy/public/uploads/repo_file/file/8748/textfile.txt +1 -0
  1786. data/spec/dummy/public/uploads/repo_file/file/8749/textfile.txt +1 -0
  1787. data/spec/dummy/public/uploads/repo_file/file/8750/textfile.txt +1 -0
  1788. data/spec/dummy/public/uploads/repo_file/file/8751/textfile.txt +1 -0
  1789. data/spec/dummy/public/uploads/repo_file/file/8752/textfile.txt +1 -0
  1790. data/spec/dummy/public/uploads/repo_file/file/8753/textfile.txt +1 -0
  1791. data/spec/dummy/public/uploads/repo_file/file/8754/textfile.txt +1 -0
  1792. data/spec/dummy/public/uploads/repo_file/file/8755/textfile.txt +1 -0
  1793. data/spec/dummy/public/uploads/repo_file/file/8756/textfile.txt +1 -0
  1794. data/spec/dummy/public/uploads/repo_file/file/8757/textfile.txt +1 -0
  1795. data/spec/dummy/public/uploads/repo_file/file/8758/textfile.txt +1 -0
  1796. data/spec/dummy/public/uploads/repo_file/file/8770/textfile.txt +1 -0
  1797. data/spec/dummy/public/uploads/repo_file/file/8772/textfile.txt +1 -0
  1798. data/spec/dummy/public/uploads/repo_file/file/8776/textfile.txt +1 -0
  1799. data/spec/dummy/public/uploads/repo_file/file/8779/textfile.txt +1 -0
  1800. data/spec/dummy/public/uploads/repo_file/file/8781/textfile.txt +1 -0
  1801. data/spec/dummy/public/uploads/repo_file/file/8782/textfile.txt +1 -0
  1802. data/spec/dummy/public/uploads/repo_file/file/8784/textfile.txt +1 -0
  1803. data/spec/dummy/public/uploads/repo_file/file/8790/textfile.txt +1 -0
  1804. data/spec/dummy/public/uploads/repo_file/file/8792/textfile.txt +1 -0
  1805. data/spec/dummy/public/uploads/repo_file/file/8794/textfile.txt +1 -0
  1806. data/spec/dummy/public/uploads/repo_file/file/8796/textfile.txt +1 -0
  1807. data/spec/dummy/public/uploads/repo_file/file/8798/textfile.txt +1 -0
  1808. data/spec/dummy/public/uploads/repo_file/file/8800/textfile.txt +1 -0
  1809. data/spec/dummy/public/uploads/repo_file/file/8802/textfile.txt +1 -0
  1810. data/spec/dummy/public/uploads/repo_file/file/8804/textfile.txt +1 -0
  1811. data/spec/dummy/public/uploads/repo_file/file/8806/textfile.txt +1 -0
  1812. data/spec/dummy/public/uploads/repo_file/file/8809/textfile.txt +1 -0
  1813. data/spec/dummy/public/uploads/repo_file/file/8810/textfile.txt +1 -0
  1814. data/spec/dummy/public/uploads/repo_file/file/8812/textfile.txt +1 -0
  1815. data/spec/dummy/public/uploads/repo_file/file/8818/textfile.txt +1 -0
  1816. data/spec/dummy/public/uploads/repo_file/file/8823/textfile.txt +1 -0
  1817. data/spec/dummy/public/uploads/repo_file/file/8825/textfile.txt +1 -0
  1818. data/spec/dummy/public/uploads/repo_file/file/8827/textfile.txt +1 -0
  1819. data/spec/dummy/public/uploads/repo_file/file/8829/textfile.txt +1 -0
  1820. data/spec/dummy/public/uploads/repo_file/file/8831/textfile.txt +1 -0
  1821. data/spec/dummy/public/uploads/repo_file/file/8837/textfile.txt +1 -0
  1822. data/spec/dummy/public/uploads/repo_file/file/8840/textfile.txt +1 -0
  1823. data/spec/dummy/public/uploads/repo_file/file/8841/textfile.txt +1 -0
  1824. data/spec/dummy/public/uploads/repo_file/file/8842/textfile.txt +1 -0
  1825. data/spec/dummy/public/uploads/repo_file/file/8844/textfile.txt +1 -0
  1826. data/spec/dummy/public/uploads/repo_file/file/8845/textfile.txt +1 -0
  1827. data/spec/dummy/public/uploads/repo_file/file/8846/textfile.txt +1 -0
  1828. data/spec/dummy/public/uploads/repo_file/file/8847/textfile.txt +1 -0
  1829. data/spec/dummy/public/uploads/repo_file/file/8848/textfile.txt +1 -0
  1830. data/spec/dummy/public/uploads/repo_file/file/8849/textfile.txt +1 -0
  1831. data/spec/dummy/public/uploads/repo_file/file/8850/textfile.txt +1 -0
  1832. data/spec/dummy/public/uploads/repo_file/file/8851/textfile.txt +1 -0
  1833. data/spec/dummy/public/uploads/repo_file/file/8852/textfile.txt +1 -0
  1834. data/spec/dummy/public/uploads/repo_file/file/8853/textfile.txt +1 -0
  1835. data/spec/dummy/public/uploads/repo_file/file/8854/textfile.txt +1 -0
  1836. data/spec/dummy/public/uploads/repo_file/file/8855/textfile.txt +1 -0
  1837. data/spec/dummy/public/uploads/repo_file/file/8856/textfile.txt +1 -0
  1838. data/spec/dummy/public/uploads/repo_file/file/8868/textfile.txt +1 -0
  1839. data/spec/dummy/public/uploads/repo_file/file/8870/textfile.txt +1 -0
  1840. data/spec/dummy/public/uploads/repo_file/file/8874/textfile.txt +1 -0
  1841. data/spec/dummy/public/uploads/repo_file/file/8877/textfile.txt +1 -0
  1842. data/spec/dummy/public/uploads/repo_file/file/8879/textfile.txt +1 -0
  1843. data/spec/dummy/public/uploads/repo_file/file/8880/textfile.txt +1 -0
  1844. data/spec/dummy/public/uploads/repo_file/file/8882/textfile.txt +1 -0
  1845. data/spec/dummy/public/uploads/repo_file/file/8888/textfile.txt +1 -0
  1846. data/spec/dummy/public/uploads/repo_file/file/8890/textfile.txt +1 -0
  1847. data/spec/dummy/public/uploads/repo_file/file/8892/textfile.txt +1 -0
  1848. data/spec/dummy/public/uploads/repo_file/file/8894/textfile.txt +1 -0
  1849. data/spec/dummy/public/uploads/repo_file/file/8896/textfile.txt +1 -0
  1850. data/spec/dummy/public/uploads/repo_file/file/8898/textfile.txt +1 -0
  1851. data/spec/dummy/public/uploads/repo_file/file/8900/textfile.txt +1 -0
  1852. data/spec/dummy/public/uploads/repo_file/file/8902/textfile.txt +1 -0
  1853. data/spec/dummy/public/uploads/repo_file/file/8904/textfile.txt +1 -0
  1854. data/spec/dummy/public/uploads/repo_file/file/8907/textfile.txt +1 -0
  1855. data/spec/dummy/public/uploads/repo_file/file/8908/textfile.txt +1 -0
  1856. data/spec/dummy/public/uploads/repo_file/file/8910/textfile.txt +1 -0
  1857. data/spec/dummy/public/uploads/repo_file/file/8916/textfile.txt +1 -0
  1858. data/spec/dummy/public/uploads/repo_file/file/8921/textfile.txt +1 -0
  1859. data/spec/dummy/public/uploads/repo_file/file/8923/textfile.txt +1 -0
  1860. data/spec/dummy/public/uploads/repo_file/file/8925/textfile.txt +1 -0
  1861. data/spec/dummy/public/uploads/repo_file/file/8927/textfile.txt +1 -0
  1862. data/spec/dummy/public/uploads/repo_file/file/8929/textfile.txt +1 -0
  1863. data/spec/dummy/public/uploads/repo_file/file/8935/textfile.txt +1 -0
  1864. data/spec/dummy/public/uploads/repo_file/file/8938/textfile.txt +1 -0
  1865. data/spec/dummy/public/uploads/repo_file/file/8939/textfile.txt +1 -0
  1866. data/spec/dummy/public/uploads/repo_file/file/8940/textfile.txt +1 -0
  1867. data/spec/dummy/public/uploads/repo_file/file/8942/textfile.txt +1 -0
  1868. data/spec/dummy/public/uploads/repo_file/file/8943/textfile.txt +1 -0
  1869. data/spec/dummy/public/uploads/repo_file/file/8944/textfile.txt +1 -0
  1870. data/spec/dummy/public/uploads/repo_file/file/8945/textfile.txt +1 -0
  1871. data/spec/dummy/public/uploads/repo_file/file/8946/textfile.txt +1 -0
  1872. data/spec/dummy/public/uploads/repo_file/file/8947/textfile.txt +1 -0
  1873. data/spec/dummy/public/uploads/repo_file/file/8948/textfile.txt +1 -0
  1874. data/spec/dummy/public/uploads/repo_file/file/8949/textfile.txt +1 -0
  1875. data/spec/dummy/public/uploads/repo_file/file/8950/textfile.txt +1 -0
  1876. data/spec/dummy/public/uploads/repo_file/file/8951/textfile.txt +1 -0
  1877. data/spec/dummy/public/uploads/repo_file/file/8952/textfile.txt +1 -0
  1878. data/spec/dummy/public/uploads/repo_file/file/8953/textfile.txt +1 -0
  1879. data/spec/dummy/public/uploads/repo_file/file/8954/textfile.txt +1 -0
  1880. data/spec/dummy/public/uploads/repo_file/file/8966/textfile.txt +1 -0
  1881. data/spec/dummy/public/uploads/repo_file/file/8968/textfile.txt +1 -0
  1882. data/spec/dummy/public/uploads/repo_file/file/8972/textfile.txt +1 -0
  1883. data/spec/dummy/public/uploads/repo_file/file/8975/textfile.txt +1 -0
  1884. data/spec/dummy/public/uploads/repo_file/file/8977/textfile.txt +1 -0
  1885. data/spec/dummy/public/uploads/repo_file/file/8978/textfile.txt +1 -0
  1886. data/spec/dummy/public/uploads/repo_file/file/8980/textfile.txt +1 -0
  1887. data/spec/dummy/public/uploads/repo_file/file/8986/textfile.txt +1 -0
  1888. data/spec/dummy/public/uploads/repo_file/file/8988/textfile.txt +1 -0
  1889. data/spec/dummy/public/uploads/repo_file/file/8990/textfile.txt +1 -0
  1890. data/spec/dummy/public/uploads/repo_file/file/8992/textfile.txt +1 -0
  1891. data/spec/dummy/public/uploads/repo_file/file/8994/textfile.txt +1 -0
  1892. data/spec/dummy/public/uploads/repo_file/file/8996/textfile.txt +1 -0
  1893. data/spec/dummy/public/uploads/repo_file/file/8998/textfile.txt +1 -0
  1894. data/spec/dummy/public/uploads/repo_file/file/9000/textfile.txt +1 -0
  1895. data/spec/dummy/public/uploads/repo_file/file/9002/textfile.txt +1 -0
  1896. data/spec/dummy/public/uploads/repo_file/file/9005/textfile.txt +1 -0
  1897. data/spec/dummy/public/uploads/repo_file/file/9006/textfile.txt +1 -0
  1898. data/spec/dummy/public/uploads/repo_file/file/9008/textfile.txt +1 -0
  1899. data/spec/dummy/public/uploads/repo_file/file/9014/textfile.txt +1 -0
  1900. data/spec/dummy/public/uploads/repo_file/file/9019/textfile.txt +1 -0
  1901. data/spec/dummy/public/uploads/repo_file/file/9021/textfile.txt +1 -0
  1902. data/spec/dummy/public/uploads/repo_file/file/9023/textfile.txt +1 -0
  1903. data/spec/dummy/public/uploads/repo_file/file/9025/textfile.txt +1 -0
  1904. data/spec/dummy/public/uploads/repo_file/file/9027/textfile.txt +1 -0
  1905. data/spec/dummy/public/uploads/repo_file/file/9033/textfile.txt +1 -0
  1906. data/spec/dummy/public/uploads/repo_file/file/9036/textfile.txt +1 -0
  1907. data/spec/dummy/public/uploads/repo_file/file/9037/textfile.txt +1 -0
  1908. data/spec/dummy/public/uploads/repo_file/file/9038/textfile.txt +1 -0
  1909. data/spec/dummy/public/uploads/repo_file/file/9040/textfile.txt +1 -0
  1910. data/spec/dummy/public/uploads/repo_file/file/9041/textfile.txt +1 -0
  1911. data/spec/dummy/public/uploads/repo_file/file/9042/textfile.txt +1 -0
  1912. data/spec/dummy/public/uploads/repo_file/file/9043/textfile.txt +1 -0
  1913. data/spec/dummy/public/uploads/repo_file/file/9044/textfile.txt +1 -0
  1914. data/spec/dummy/public/uploads/repo_file/file/9045/textfile.txt +1 -0
  1915. data/spec/dummy/public/uploads/repo_file/file/9046/textfile.txt +1 -0
  1916. data/spec/dummy/public/uploads/repo_file/file/9047/textfile.txt +1 -0
  1917. data/spec/dummy/public/uploads/repo_file/file/9048/textfile.txt +1 -0
  1918. data/spec/dummy/public/uploads/repo_file/file/9049/textfile.txt +1 -0
  1919. data/spec/dummy/public/uploads/repo_file/file/9050/textfile.txt +1 -0
  1920. data/spec/factories/group.rb +7 -7
  1921. data/spec/factories/repo_file.rb +12 -12
  1922. data/spec/factories/repo_folder.rb +7 -7
  1923. data/spec/factories/user.rb +13 -13
  1924. data/spec/has_repository_spec.rb +299 -274
  1925. data/spec/models/associations_spec.rb +93 -93
  1926. data/spec/models/repository_spec.rb +261 -245
  1927. data/spec/models/share_spec.rb +67 -67
  1928. data/spec/support/spec_test_helper.rb +4 -4
  1929. metadata +3817 -22
@@ -1,10 +1,10 @@
1
- module RepositoryManager
2
- class RepositoryManagerException < RuntimeError
3
- end
4
-
5
- class AuthorisationException < RepositoryManagerException
6
- end
7
-
8
- class NestedSharingException < RepositoryManagerException
9
- end
1
+ module RepositoryManager
2
+ class RepositoryManagerException < RuntimeError
3
+ end
4
+
5
+ class AuthorisationException < RepositoryManagerException
6
+ end
7
+
8
+ class NestedSharingException < RepositoryManagerException
9
+ end
10
10
  end
@@ -1,553 +1,561 @@
1
- module RepositoryManager
2
- module HasRepository
3
- extend ActiveSupport::Concern
4
-
5
- module ClassMethods
6
- def has_repository(options = {})
7
-
8
- has_many :sharings, through: :sharings_members, class_name: 'RepositoryManager::Sharing'
9
- has_many :sharings_members, class_name: 'RepositoryManager::SharingsMember', as: :member, dependent: :destroy
10
- has_many :sharings_owners, as: :owner, class_name: 'RepositoryManager::Sharing'
11
-
12
- # The own repo_items
13
- has_many :repo_items, as: :owner, class_name: 'RepositoryManager::RepoItem' #, dependent: :destroy
14
- # The sharing repo_items
15
- has_many :shared_repo_items, through: :sharings, source: :repo_item, class_name: 'RepositoryManager::RepoItem'
16
-
17
- #scope :all_repo_items, -> { self.repo_items.shared_repo_items }
18
-
19
- #All repo_items (own and sharings)
20
- #has_many :all_repo_items
21
-
22
- include RepositoryManager::HasRepository::LocalInstanceMethods
23
- end
24
- end
25
-
26
- module LocalInstanceMethods
27
-
28
- # Sharing the repo_item with the members, with the options
29
- # options[:repo_item_permissions] contains :
30
- # <tt>:can_read</tt> - Member can download the repo_item
31
- # <tt>:can_create</tt> - Member can create a new repo_item on it
32
- # <tt>:can_edit</tt> - Member can edit the repo_item
33
- # <tt>:can_delete</tt> - Member can delete the repo_item
34
- # <tt>:can_share</tt> - Member can share the repo_item
35
- # options[:sharing_permissions] contains :
36
- # <tt>:can_add</tt> - Specify if the member can add objects to the sharing
37
- # <tt>:can_remove</tt> - Specify if the member can remove object to the sharing
38
- def share!(repo_item, members, options = {})
39
-
40
- # Nested sharing are not accepted
41
- if !RepositoryManager.accept_nested_sharing
42
- # Check if no other sharing exist in the path
43
- if repo_item.has_nested_sharing?
44
- raise RepositoryManager::NestedSharingException.new("sharing failed. Another sharing already exist on the subtree or an ancestor '#{repo_item.name}'")
45
- end
46
- end
47
-
48
- authorisations = get_authorisations(repo_item)
49
-
50
- # Here we look if the instance has the authorisation for making a sharing
51
- if can_share?(nil, authorisations)
52
-
53
- # We put the default options
54
- repo_item_permissions = RepositoryManager.default_repo_item_permissions
55
- sharing_permissions = RepositoryManager.default_sharing_permissions
56
-
57
- # If there is options, we have to take it
58
- repo_item_permissions = options[:repo_item_permissions] if options[:repo_item_permissions]
59
- sharing_permissions = options[:sharing_permissions] if options[:sharing_permissions]
60
-
61
- # Correct the item permission with accepted permissions
62
- repo_item_permissions = make_repo_item_permissions(repo_item_permissions, authorisations)
63
-
64
- sharing = RepositoryManager::Sharing.new(repo_item_permissions)
65
- sharing.owner = self
66
- #sharing.user = RepositoryManager.user_model.constantize.find(session[:user_id]) if RepositoryManager.user_model
67
-
68
- sharing.add_members(members, sharing_permissions)
69
-
70
- repo_item.sharings << sharing
71
- repo_item.save
72
- sharing
73
- else
74
- # No permission => No sharing
75
- raise RepositoryManager::AuthorisationException.new("sharing failed. You don't have the permission to share the repo_item '#{repo_item.name}'")
76
- end
77
- end
78
-
79
- def share(repo_item, members, options = {})
80
- begin
81
- share!(repo_item, members, options)
82
- rescue RepositoryManager::AuthorisationException, RepositoryManager::NestedSharingException
83
- false
84
- end
85
- end
86
-
87
- # Create a folder with the name (name)
88
- # options :
89
- # :source_folder = The directory in with the folder is created
90
- # :sender = The object of the sender (ex : current_user)
91
- # Returns the object of the folder created if it is ok
92
- # Returns an Exception if the folder is not created
93
- # RepositoryManagerException if the name already exist
94
- # AuthorisationException if the object don't have the permission
95
- def create_folder!(name = '', options = {})
96
- source_folder = options[:source_folder]
97
- if source_folder
98
- unless source_folder.is_folder?
99
- raise RepositoryManager::RepositoryManagerException.new("create folder failed. The source folder must be a repo_folder.")
100
- end
101
- end
102
-
103
- # If he want to create a folder in a directory, we have to check if he have the authorisation
104
- if can_create?(source_folder)
105
-
106
- folder = RepoFolder.new
107
- if name == ''
108
- folder.name = default_folder_name(source_folder)
109
- else
110
- folder.name = name
111
- end
112
- folder.owner = self
113
- folder.sender = options[:sender]
114
-
115
- # If we are in root path we check if we can add this folder name
116
- if !source_folder && repo_item_name_exist_in_root?(name)
117
- raise RepositoryManager::RepositoryManagerException.new("create folder failed. The repo_item '#{name}' already exist in the root folder.")
118
- end
119
-
120
- unless folder.save
121
- raise RepositoryManager::RepositoryManagerException.new("create_folder failed. Can\'t save the folder '#{name}'.")
122
- end
123
-
124
- # It raise an error if name already exist and destroy the folder
125
- source_folder.add!(folder, true) if source_folder
126
- else
127
- raise RepositoryManager::AuthorisationException.new("create_folder failed. You don't have the permission to create a folder in '#{source_folder.name}'")
128
- end
129
- folder
130
- end
131
-
132
- # Like create_folder!
133
- # Returns false if the folder is not created instead of an exception
134
- def create_folder(name = '', options = {})
135
- begin
136
- create_folder!(name, options)
137
- rescue RepositoryManager::AuthorisationException, RepositoryManager::RepositoryManagerException
138
- false
139
- end
140
- end
141
-
142
- # Delete the repo_item
143
- def delete_repo_item!(repo_item)
144
- if can_delete?(repo_item)
145
- repo_item.destroy
146
- else
147
- raise RepositoryManager::AuthorisationException.new("delete_repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
148
- end
149
- end
150
-
151
- def delete_repo_item(repo_item)
152
- begin
153
- delete_repo_item!(repo_item)
154
- rescue RepositoryManager::AuthorisationException
155
- false
156
- end
157
- end
158
-
159
- # Create the file (file) in the directory (source_folder)
160
- # options :
161
- # :source_folder = The directory in with the folder is created
162
- # :sender = The object of the sender (ex : current_user)
163
- #
164
- # Param file can be a File, or a instance of RepoFile
165
- # Returns the object of the file created if it is ok
166
- # Returns an Exception if the folder is not created
167
- # RepositoryManagerException if the file already exist
168
- # AuthorisationException if the object don't have the permission
169
- def create_file!(file, options = {})
170
- source_folder = options[:source_folder]
171
- if source_folder
172
- unless source_folder.is_folder?
173
- raise RepositoryManager::RepositoryManagerException.new("create file failed. The source folder must be a repo_folder.")
174
- end
175
- end
176
-
177
- # If he want to create a file in a directory, we have to check if he have the authorisation
178
- if can_create?(source_folder)
179
-
180
- if file.class.name == 'RepositoryManager::RepoFile'
181
- repo_file = file
182
- elsif file.class.name == 'File' || file.class.name == 'ActionDispatch::Http::UploadedFile'
183
- repo_file = RepositoryManager::RepoFile.new()
184
- repo_file.file = file
185
- else # "ActionController::Parameters"
186
- repo_file = RepositoryManager::RepoFile.new(file)
187
- end
188
-
189
- repo_file.owner = self
190
- repo_file.sender = options[:sender]
191
-
192
-
193
- # If we are in root path we check if we can add this file name
194
- if !source_folder && repo_item_name_exist_in_root?(repo_file.file.identifier)
195
- raise RepositoryManager::RepositoryManagerException.new("create file failed. The repo_item '#{repo_file.file.identifier}' already exist in the root folder.")
196
- end
197
-
198
- unless repo_file.save
199
- raise RepositoryManager::RepositoryManagerException.new("create_file failed. The file can't be save")
200
- end
201
-
202
- # It raise an error if name already exist and destroy the file
203
- source_folder.add!(repo_file, true) if source_folder
204
- else
205
- raise RepositoryManager::AuthorisationException.new("create_file failed. You don't have the permission to create a file")
206
- end
207
- repo_file
208
- end
209
-
210
- def create_file(file, options = {})
211
- begin
212
- create_file!(file, options)
213
- rescue RepositoryManager::AuthorisationException, RepositoryManager::RepositoryManagerException
214
- false
215
- end
216
- end
217
-
218
- # Gets the repo authorisations
219
- # Return false if the entity has not the authorisation to share this rep
220
- # Return true if the entity can share this rep with all the authorisations
221
- # Return an Array if the entity can share but with restriction
222
- # Return true if the repo_item is nil (he as all authorisations on his own rep)
223
- def get_authorisations(repo_item = nil)
224
- # If repo_item is nil, he can do what he want
225
- return true if repo_item == nil
226
-
227
- # If the member is the owner, he can do what he want !
228
- if repo_item.owner == self
229
- # You can do what ever you want :)
230
- return true
231
- # Find if a sharing of this rep exist for the self instance or it ancestors
232
- else
233
- path_ids = repo_item.path_ids
234
- # Check the nearest sharing if it exist
235
- if s = self.sharings.where(repo_item_id: path_ids).last
236
- return {can_share: s.can_share, can_read: s.can_read, can_create: s.can_create, can_update: s.can_update, can_delete: s.can_delete}
237
- end
238
- end
239
- # Else, false
240
- return false
241
- end
242
-
243
- # Download a repo_item if the object can_read it
244
- # If it is a file, he download the file
245
- # If it is a folder, we check witch repo_item is in it, and witch he can_read
246
- # We zip all the content that the object has access.
247
- # options
248
- # :path => 'path/to/zip'
249
- def download!(repo_item, options = {})
250
- if can_download?(repo_item)
251
- path = options[:path] if options[:path]
252
-
253
- repo_item.download!({object: self, path: path})
254
- else
255
- raise RepositoryManager::AuthorisationException.new("download failed. You don't have the permission to download the repo_item '#{repo_item.name}'")
256
- end
257
- end
258
-
259
- def download(repo_item, options = {})
260
- begin
261
- download!(repo_item, options)
262
- rescue RepositoryManager::AuthorisationException
263
- false
264
- end
265
- end
266
-
267
- # Rename the repo_item with the new_name
268
- def rename_repo_item!(repo_item, new_name)
269
- unless can_update?(repo_item)
270
- raise RepositoryManager::AuthorisationException.new("rename repo_item failed. You don't have the permission to update the repo_item '#{repo_item.name}'")
271
- end
272
- repo_item.rename!(new_name)
273
- end
274
-
275
- # Rename the repo_item with the new_name
276
- def rename_repo_item(repo_item, new_name)
277
- begin
278
- rename_repo_item!(repo_item, new_name)
279
- rescue RepositoryManager::AuthorisationException
280
- false
281
- end
282
- end
283
-
284
- # Move the repo_item in the target_folder
285
- def move_repo_item!(repo_item, target_folder)
286
- unless can_delete?(repo_item)
287
- raise RepositoryManager::AuthorisationException.new("move repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
288
- end
289
- unless can_create?(target_folder)
290
- raise RepositoryManager::AuthorisationException.new("move repo_item failed. You don't have the permission to create in the target_folder '#{target_folder.name}'")
291
- end
292
- # If it has the permission, we move the repo_item in the target_folder
293
- repo_item.move!(target_folder)
294
- end
295
-
296
- def move_repo_item(repo_item, target_folder)
297
- begin
298
- move_repo_item!(repo_item, target_folder)
299
- rescue RepositoryManager::RepositoryManagerException, RepositoryManager::AuthorisationException
300
- false
301
- end
302
- end
303
-
304
- # Delete the download folder of the user
305
- def delete_download_path
306
- FileUtils.rm_rf(self.get_default_download_path())
307
- end
308
-
309
- #Return the authorisations of the sharing (can_add, can_remove)
310
- def get_sharing_authorisations(sharing)
311
- sharing.get_authorisations(self)
312
- end
313
-
314
- # Return true if you can share the repo, else false
315
- # You can give the authorisations or the repo_item as params
316
- def can_share?(repo_item, authorisations = nil)
317
- can_do?('share', repo_item, authorisations)
318
- end
319
-
320
- # Return true if you can read the repo, else false
321
- def can_read?(repo_item, authorisations = nil)
322
- can_do?('read', repo_item, authorisations)
323
- end
324
-
325
- # Return true if you can download the repo, else false
326
- # Read = Download for the moment
327
- def can_download?(repo_item, authorisations = nil)
328
- can_do?('read', repo_item, authorisations)
329
- end
330
-
331
- # Return true if you can create in the repo, false else
332
- def can_create?(repo_item, authorisations = nil)
333
- can_do?('create', repo_item, authorisations)
334
- end
335
-
336
- # Returns true if you can edit the repo, false else
337
- def can_update?(repo_item, authorisations = nil)
338
- can_do?('update', repo_item, authorisations)
339
- end
340
-
341
- # Returns true if you can delete the repo, false else
342
- def can_delete?(repo_item, authorisations = nil)
343
- can_do?('delete', repo_item, authorisations)
344
- end
345
-
346
- ## Returns true if it exist a sharing in the ancestors of descendant_ids of the repo_item (without itself)
347
- #def has_sharing?(repo_item)
348
- # # An array with the ids of all ancestors and descendants
349
- # ancestor_and_descendant_ids = []
350
- # ancestor_and_descendant_ids << repo_item.descendant_ids if !repo_item.descendant_ids.empty?
351
- # ancestor_and_descendant_ids << repo_item.ancestor_ids if !repo_item.ancestor_ids.empty?
352
- #
353
- # # If it is a sharing, it returns true
354
- # if self.sharings.where(repo_item_id: ancestor_and_descendant_ids).count > 0
355
- # true
356
- # else
357
- # false
358
- # end
359
- #
360
- #end
361
-
362
- # Return true if you can add a member in this sharing, false else
363
- def can_add_to?(sharing)
364
- can_do_to?('add', sharing)
365
- end
366
-
367
- # Return true if you can remove a member in this sharing, false else
368
- def can_remove_from?(sharing)
369
- can_do_to?('remove', sharing)
370
- end
371
-
372
- # You can here add new members in the sharing
373
- # Param member could be an object or an array of object
374
- def add_members_to!(sharing, members, options = RepositoryManager.default_sharing_permissions)
375
- authorisations = get_sharing_authorisations(sharing)
376
- if can_add_to?(sharing)
377
- sharing_permissions = make_sharing_permissions(options, authorisations)
378
- sharing.add_members(members, sharing_permissions)
379
- else
380
- raise RepositoryManager::AuthorisationException.new("add members failed. You don't have the permission to add a member in this sharing")
381
- end
382
- end
383
-
384
- def add_members_to(sharing, members, options = RepositoryManager.default_sharing_permissions)
385
- begin
386
- add_members_to!(sharing, members, options = RepositoryManager.default_sharing_permissions)
387
- rescue RepositoryManager::AuthorisationException
388
- false
389
- end
390
- end
391
-
392
- # You can here remove members in the sharing
393
- # Param member could be an object or an array of object
394
- def remove_members_from!(sharing, members)
395
- if can_remove_from?(sharing)
396
- sharing.remove_members(members)
397
- else
398
- raise RepositoryManager::AuthorisationException.new("remove members failed. You don't have the permission to remove a member on this sharing")
399
- end
400
- end
401
-
402
- def remove_members_from(sharing, members)
403
- begin
404
- remove_members_from!(sharing, members)
405
- rescue RepositoryManager::AuthorisationException
406
- false
407
- end
408
- end
409
-
410
- # Get the download path of the member
411
- def get_default_download_path(prefix = 'download/')
412
- "#{prefix}#{self.class.to_s.underscore}/#{self.id}/"
413
- end
414
-
415
- # Returns true of false if the name exist in the root path of this instance
416
- def repo_item_name_exist_in_root?(name)
417
- # add : or file : name
418
- #RepoItem.where(name: name).where(owner: self).where(ancestry: nil).first ? true : false
419
- #puts RepoItem.where('name = ? OR file = ?', name, name).where(owner: self).where(ancestry: nil).first.inspect
420
- #puts self.inspect
421
-
422
- RepoItem.where('name = ? OR file = ?', name, name).where(owner: self).where(ancestry: nil).first ? true : false
423
-
424
- end
425
-
426
- private
427
-
428
- # Return if you can do or not this action in the sharing
429
- def can_do_to?(what, sharing, authorisations = nil)
430
- if authorisations == nil
431
- authorisations = sharing.get_authorisations(self)
432
- end
433
- case what
434
- when 'add'
435
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_add] == true)
436
- when 'remove'
437
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_remove] == true)
438
- end
439
- end
440
-
441
- # Return if you can do or not this action (what)
442
- def can_do?(what, repo_item, authorisations = nil)
443
- # If we pass no authorisations we have to get it
444
- if authorisations == nil
445
- authorisations = get_authorisations(repo_item)
446
- end
447
-
448
- case what
449
- when 'read'
450
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_read] == true)
451
- when 'delete'
452
- if RepositoryManager.accept_nested_sharing
453
- # TODO implement to look if he can delete all the folder
454
- else
455
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_delete] == true)
456
- end
457
- when 'update'
458
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_update] == true)
459
- when 'share'
460
- if RepositoryManager.accept_nested_sharing
461
- # TODO implement to look if he can delete all the folder
462
- else
463
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_share] == true)
464
- end
465
- when 'create'
466
- if RepositoryManager.accept_nested_sharing
467
- # TODO implement to look if he can delete all the folder
468
- else
469
- authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_create] == true)
470
- end
471
- else
472
- false
473
- end
474
-
475
- end
476
-
477
- # Correct the repo_item_permissions with the authorisations
478
- def make_repo_item_permissions(wanted_permissions, authorisations)
479
- # If it is an array, we have restriction in the permissions
480
- if authorisations.kind_of?(Hash) && wanted_permissions
481
- # Built the sharing with the accepted permissions
482
- # We remove the permission if we can't sharing it
483
- if wanted_permissions[:can_read] == true && authorisations[:can_read] == false
484
- wanted_permissions[:can_read] = false
485
- end
486
- if wanted_permissions[:can_create] == true && authorisations[:can_create] == false
487
- wanted_permissions[:can_create] = false
488
- end
489
- if wanted_permissions[:can_update] == true && authorisations[:can_update] == false
490
- wanted_permissions[:can_update] = false
491
- end
492
- if wanted_permissions[:can_delete] == true && authorisations[:can_delete] == false
493
- wanted_permissions[:can_delete] = false
494
- end
495
- if wanted_permissions[:can_share] == true && authorisations[:can_share] == false
496
- wanted_permissions[:can_share] = false
497
- end
498
- end
499
- return wanted_permissions
500
- end
501
-
502
- # Correct the sharing_permissions with the authorisations
503
- def make_sharing_permissions(wanted_permissions, authorisations)
504
- # If it is an array, we have restriction in the permissions
505
- if authorisations.kind_of?(Hash) && wanted_permissions
506
- # Built the sharing with the accepted permissions
507
- # We remove the permission if we can't share it
508
- if wanted_permissions[:can_add] == true && authorisations[:can_add] == false
509
- wanted_permissions[:can_add] = false
510
- end
511
- if wanted_permissions[:can_remove] == true && authorisations[:can_remove] == false
512
- wanted_permissions[:can_remove] = false
513
- end
514
- end
515
- return wanted_permissions
516
- end
517
-
518
- # Put a default name if none is given
519
- def default_folder_name(source_folder)
520
- i = ''
521
- name = "#{I18n.t 'repository_manager.models.repo_folder.name'}"
522
- # We check if another item has the same name
523
-
524
- if source_folder
525
- #TODO Optimiser, récupérer tout les instances contenants le nom, puis faire la boucle (pas boucle de requete)
526
- # We check if another item has the same name
527
- until !source_folder.name_exist_in_children?(name) do
528
- if i == ''
529
- i = 1
530
- end
531
- i += 1
532
- name = "#{I18n.t 'repository_manager.models.repo_folder.name'} #{i}"
533
- end
534
- else
535
- #TODO Optimiser, récupérer tout les instances contenants le nom, puis faire la boucle (pas boucle de requete)
536
- # Si il n'a pas de parent, racine
537
- until !repo_item_name_exist_in_root?(name) do
538
- if i == ''
539
- i = 1
540
- end
541
- i += 1
542
- name = "#{I18n.t 'repository_manager.models.repo_folder.name'} #{i}"
543
- end
544
-
545
- end
546
- name
547
- end
548
-
549
- end
550
- end
551
- end
552
-
1
+ module RepositoryManager
2
+ module HasRepository
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def has_repository(options = {})
7
+
8
+ has_many :sharings, through: :sharings_members, class_name: 'RepositoryManager::Sharing'
9
+ has_many :sharings_members, class_name: 'RepositoryManager::SharingsMember', as: :member, dependent: :destroy
10
+ has_many :sharings_owners, as: :owner, class_name: 'RepositoryManager::Sharing'
11
+
12
+ # The own repo_items
13
+ has_many :repo_items, as: :owner, class_name: 'RepositoryManager::RepoItem' #, dependent: :destroy
14
+ # The sharing repo_items
15
+ has_many :shared_repo_items, through: :sharings, source: :repo_item, class_name: 'RepositoryManager::RepoItem'
16
+
17
+ if Rails::VERSION::MAJOR == 4
18
+ has_many :root_repo_items, -> { where ancestry: nil }, as: :owner, class_name: 'RepositoryManager::RepoItem'
19
+ #scope :root_repo_items, -> { where ancestry: nil }
20
+ else
21
+ has_many :root_repo_items, -> { where ancestry: nil}, as: :owner, class_name: 'RepositoryManager::RepoItem'
22
+ #scope :root_repo_items, where(where ancestry: nil)
23
+ end
24
+
25
+ #scope :all_repo_items, -> { self.repo_items.shared_repo_items }
26
+
27
+ #All repo_items (own and sharings)
28
+ #has_many :all_repo_items
29
+
30
+ include RepositoryManager::HasRepository::LocalInstanceMethods
31
+ end
32
+ end
33
+
34
+ module LocalInstanceMethods
35
+
36
+ # Sharing the repo_item with the members, with the options
37
+ # options[:repo_item_permissions] contains :
38
+ # <tt>:can_read</tt> - Member can download the repo_item
39
+ # <tt>:can_create</tt> - Member can create a new repo_item on it
40
+ # <tt>:can_edit</tt> - Member can edit the repo_item
41
+ # <tt>:can_delete</tt> - Member can delete the repo_item
42
+ # <tt>:can_share</tt> - Member can share the repo_item
43
+ # options[:sharing_permissions] contains :
44
+ # <tt>:can_add</tt> - Specify if the member can add objects to the sharing
45
+ # <tt>:can_remove</tt> - Specify if the member can remove object to the sharing
46
+ def share!(repo_item, members, options = {})
47
+
48
+ # Nested sharing are not accepted
49
+ if !RepositoryManager.accept_nested_sharing
50
+ # Check if no other sharing exist in the path
51
+ if repo_item.has_nested_sharing?
52
+ raise RepositoryManager::NestedSharingException.new("sharing failed. Another sharing already exist on the subtree or an ancestor of '#{repo_item.name}'")
53
+ end
54
+ end
55
+
56
+ authorisations = get_authorisations(repo_item)
57
+
58
+ # Here we look if the instance has the authorisation for making a sharing
59
+ if can_share?(nil, authorisations)
60
+
61
+ # We put the default options
62
+ repo_item_permissions = RepositoryManager.default_repo_item_permissions
63
+ sharing_permissions = RepositoryManager.default_sharing_permissions
64
+
65
+ # If there is options, we have to take it
66
+ repo_item_permissions = options[:repo_item_permissions] if options[:repo_item_permissions]
67
+ sharing_permissions = options[:sharing_permissions] if options[:sharing_permissions]
68
+
69
+ # Correct the item permission with accepted permissions
70
+ repo_item_permissions = make_repo_item_permissions(repo_item_permissions, authorisations)
71
+
72
+ sharing = RepositoryManager::Sharing.new(repo_item_permissions)
73
+ sharing.owner = self
74
+ sharing.creator = options[:creator]
75
+
76
+ sharing.add_members(members, sharing_permissions)
77
+
78
+ repo_item.sharings << sharing
79
+ repo_item.save
80
+ sharing
81
+ else
82
+ # No permission => No sharing
83
+ raise RepositoryManager::AuthorisationException.new("sharing failed. You don't have the permission to share the repo_item '#{repo_item.name}'")
84
+ end
85
+ end
86
+
87
+ def share(repo_item, members, options = {})
88
+ begin
89
+ share!(repo_item, members, options)
90
+ rescue RepositoryManager::AuthorisationException, RepositoryManager::NestedSharingException
91
+ false
92
+ end
93
+ end
94
+
95
+ # Create a folder with the name (name)
96
+ # options :
97
+ # :source_folder = The directory in with the folder is created
98
+ # :sender = The object of the sender (ex : current_user)
99
+ # Returns the object of the folder created if it is ok
100
+ # Returns an Exception if the folder is not created
101
+ # RepositoryManagerException if the name already exist
102
+ # AuthorisationException if the object don't have the permission
103
+ def create_folder!(name = '', options = {})
104
+ source_folder = options[:source_folder]
105
+ if source_folder
106
+ unless source_folder.is_folder?
107
+ raise RepositoryManager::RepositoryManagerException.new("create folder failed. The source folder must be a repo_folder.")
108
+ end
109
+ end
110
+
111
+ # If he want to create a folder in a directory, we have to check if he have the authorisation
112
+ if can_create?(source_folder)
113
+
114
+ folder = RepoFolder.new
115
+ if name == '' || name == nil || name == false || name.blank?
116
+ folder.name = default_folder_name(source_folder)
117
+ else
118
+ folder.name = name
119
+ end
120
+ folder.owner = self
121
+ folder.sender = options[:sender]
122
+
123
+ # If we are in root path we check if we can add this folder name
124
+ if !source_folder && repo_item_name_exist_in_root?(name)
125
+ raise RepositoryManager::RepositoryManagerException.new("create folder failed. The repo_item '#{name}' already exist in the root folder.")
126
+ end
127
+
128
+ unless folder.save
129
+ raise RepositoryManager::RepositoryManagerException.new("create_folder failed. Can\'t save the folder '#{name}'.")
130
+ end
131
+
132
+ # It raise an error if name already exist and destroy the folder
133
+ source_folder.add!(folder, true) if source_folder
134
+ else
135
+ raise RepositoryManager::AuthorisationException.new("create_folder failed. You don't have the permission to create a folder in '#{source_folder.name}'")
136
+ end
137
+ folder
138
+ end
139
+
140
+ # Like create_folder!
141
+ # Returns false if the folder is not created instead of an exception
142
+ def create_folder(name = '', options = {})
143
+ begin
144
+ create_folder!(name, options)
145
+ rescue RepositoryManager::AuthorisationException, RepositoryManager::RepositoryManagerException
146
+ false
147
+ end
148
+ end
149
+
150
+ # Delete the repo_item
151
+ def delete_repo_item!(repo_item)
152
+ if can_delete?(repo_item)
153
+ repo_item.destroy
154
+ else
155
+ raise RepositoryManager::AuthorisationException.new("delete_repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
156
+ end
157
+ end
158
+
159
+ def delete_repo_item(repo_item)
160
+ begin
161
+ delete_repo_item!(repo_item)
162
+ rescue RepositoryManager::AuthorisationException
163
+ false
164
+ end
165
+ end
166
+
167
+ # Create the file (file) in the directory (source_folder)
168
+ # options :
169
+ # :source_folder = The directory in with the folder is created
170
+ # :sender = The object of the sender (ex : current_user)
171
+ #
172
+ # Param file can be a File, or a instance of RepoFile
173
+ # Returns the object of the file created if it is ok
174
+ # Returns an Exception if the folder is not created
175
+ # RepositoryManagerException if the file already exist
176
+ # AuthorisationException if the object don't have the permission
177
+ def create_file!(file, options = {})
178
+ source_folder = options[:source_folder]
179
+ if source_folder
180
+ unless source_folder.is_folder?
181
+ raise RepositoryManager::RepositoryManagerException.new("create file failed. The source folder must be a repo_folder.")
182
+ end
183
+ end
184
+
185
+ # If he want to create a file in a directory, we have to check if he have the authorisation
186
+ if can_create?(source_folder)
187
+
188
+ if file.class.name == 'RepositoryManager::RepoFile'
189
+ repo_file = file
190
+ elsif file.class.name == 'File' || file.class.name == 'ActionDispatch::Http::UploadedFile'
191
+ repo_file = RepositoryManager::RepoFile.new()
192
+ repo_file.file = file
193
+ else # "ActionController::Parameters"
194
+ repo_file = RepositoryManager::RepoFile.new(file)
195
+ end
196
+
197
+ repo_file.owner = self
198
+ repo_file.sender = options[:sender]
199
+
200
+
201
+ # If we are in root path we check if we can add this file name
202
+ if !source_folder && repo_item_name_exist_in_root?(repo_file.file.identifier)
203
+ raise RepositoryManager::RepositoryManagerException.new("create file failed. The repo_item '#{repo_file.file.identifier}' already exist in the root folder.")
204
+ end
205
+
206
+ unless repo_file.save
207
+ raise RepositoryManager::RepositoryManagerException.new("create_file failed. The file can't be save")
208
+ end
209
+
210
+ # It raise an error if name already exist and destroy the file
211
+ source_folder.add!(repo_file, true) if source_folder
212
+ else
213
+ raise RepositoryManager::AuthorisationException.new("create_file failed. You don't have the permission to create a file")
214
+ end
215
+ repo_file
216
+ end
217
+
218
+ def create_file(file, options = {})
219
+ begin
220
+ create_file!(file, options)
221
+ rescue RepositoryManager::AuthorisationException, RepositoryManager::RepositoryManagerException
222
+ false
223
+ end
224
+ end
225
+
226
+ # Gets the repo authorisations
227
+ # Return false if the entity has not the authorisation to share this rep
228
+ # Return true if the entity can share this rep with all the authorisations
229
+ # Return an Array if the entity can share but with restriction
230
+ # Return true if the repo_item is nil (he as all authorisations on his own rep)
231
+ def get_authorisations(repo_item = nil)
232
+ # If repo_item is nil, he can do what he want
233
+ return true if repo_item == nil
234
+
235
+ # If the member is the owner, he can do what he want !
236
+ if repo_item.owner == self
237
+ # You can do what ever you want :)
238
+ return true
239
+ # Find if a sharing of this rep exist for the self instance or it ancestors
240
+ else
241
+ path_ids = repo_item.path_ids
242
+ # Check the nearest sharing if it exist
243
+ if s = self.sharings.where(repo_item_id: path_ids).last
244
+ return {can_share: s.can_share, can_read: s.can_read, can_create: s.can_create, can_update: s.can_update, can_delete: s.can_delete}
245
+ end
246
+ end
247
+ # Else, false
248
+ return false
249
+ end
250
+
251
+ # Download a repo_item if the object can_read it
252
+ # If it is a file, he download the file
253
+ # If it is a folder, we check witch repo_item is in it, and witch he can_read
254
+ # We zip all the content that the object has access.
255
+ # options
256
+ # :path => 'path/to/zip'
257
+ def download!(repo_item, options = {})
258
+ if can_download?(repo_item)
259
+ path = options[:path] if options[:path]
260
+
261
+ repo_item.download!({object: self, path: path})
262
+ else
263
+ raise RepositoryManager::AuthorisationException.new("download failed. You don't have the permission to download the repo_item '#{repo_item.name}'")
264
+ end
265
+ end
266
+
267
+ def download(repo_item, options = {})
268
+ begin
269
+ download!(repo_item, options)
270
+ rescue RepositoryManager::AuthorisationException
271
+ false
272
+ end
273
+ end
274
+
275
+ # Rename the repo_item with the new_name
276
+ def rename_repo_item!(repo_item, new_name)
277
+ unless can_update?(repo_item)
278
+ raise RepositoryManager::AuthorisationException.new("rename repo_item failed. You don't have the permission to update the repo_item '#{repo_item.name}'")
279
+ end
280
+ repo_item.rename!(new_name)
281
+ end
282
+
283
+ # Rename the repo_item with the new_name
284
+ def rename_repo_item(repo_item, new_name)
285
+ begin
286
+ rename_repo_item!(repo_item, new_name)
287
+ rescue RepositoryManager::AuthorisationException
288
+ false
289
+ end
290
+ end
291
+
292
+ # Move the repo_item in the target_folder
293
+ def move_repo_item!(repo_item, target_folder)
294
+ unless can_delete?(repo_item)
295
+ raise RepositoryManager::AuthorisationException.new("move repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
296
+ end
297
+ unless can_create?(target_folder)
298
+ raise RepositoryManager::AuthorisationException.new("move repo_item failed. You don't have the permission to create in the target_folder '#{target_folder.name}'")
299
+ end
300
+ # If it has the permission, we move the repo_item in the target_folder
301
+ repo_item.move!(target_folder)
302
+ end
303
+
304
+ def move_repo_item(repo_item, target_folder)
305
+ begin
306
+ move_repo_item!(repo_item, target_folder)
307
+ rescue RepositoryManager::RepositoryManagerException, RepositoryManager::AuthorisationException
308
+ false
309
+ end
310
+ end
311
+
312
+ # Delete the download folder of the user
313
+ def delete_download_path
314
+ FileUtils.rm_rf(self.get_default_download_path())
315
+ end
316
+
317
+ #Return the authorisations of the sharing (can_add, can_remove)
318
+ def get_sharing_authorisations(sharing)
319
+ sharing.get_authorisations(self)
320
+ end
321
+
322
+ # Return true if you can share the repo, else false
323
+ # You can give the authorisations or the repo_item as params
324
+ def can_share?(repo_item, authorisations = nil)
325
+ can_do?('share', repo_item, authorisations)
326
+ end
327
+
328
+ # Return true if you can read the repo, else false
329
+ def can_read?(repo_item, authorisations = nil)
330
+ can_do?('read', repo_item, authorisations)
331
+ end
332
+
333
+ # Return true if you can download the repo, else false
334
+ # Read = Download for the moment
335
+ def can_download?(repo_item, authorisations = nil)
336
+ can_do?('read', repo_item, authorisations)
337
+ end
338
+
339
+ # Return true if you can create in the repo, false else
340
+ def can_create?(repo_item, authorisations = nil)
341
+ can_do?('create', repo_item, authorisations)
342
+ end
343
+
344
+ # Returns true if you can edit the repo, false else
345
+ def can_update?(repo_item, authorisations = nil)
346
+ can_do?('update', repo_item, authorisations)
347
+ end
348
+
349
+ # Returns true if you can delete the repo, false else
350
+ def can_delete?(repo_item, authorisations = nil)
351
+ can_do?('delete', repo_item, authorisations)
352
+ end
353
+
354
+ ## Returns true if it exist a sharing in the ancestors of descendant_ids of the repo_item (without itself)
355
+ #def has_sharing?(repo_item)
356
+ # # An array with the ids of all ancestors and descendants
357
+ # ancestor_and_descendant_ids = []
358
+ # ancestor_and_descendant_ids << repo_item.descendant_ids if !repo_item.descendant_ids.empty?
359
+ # ancestor_and_descendant_ids << repo_item.ancestor_ids if !repo_item.ancestor_ids.empty?
360
+ #
361
+ # # If it is a sharing, it returns true
362
+ # if self.sharings.where(repo_item_id: ancestor_and_descendant_ids).count > 0
363
+ # true
364
+ # else
365
+ # false
366
+ # end
367
+ #
368
+ #end
369
+
370
+ # Return true if you can add a member in this sharing, false else
371
+ def can_add_to?(sharing)
372
+ can_do_to?('add', sharing)
373
+ end
374
+
375
+ # Return true if you can remove a member in this sharing, false else
376
+ def can_remove_from?(sharing)
377
+ can_do_to?('remove', sharing)
378
+ end
379
+
380
+ # You can here add new members in the sharing
381
+ # Param member could be an object or an array of object
382
+ def add_members_to!(sharing, members, options = RepositoryManager.default_sharing_permissions)
383
+ authorisations = get_sharing_authorisations(sharing)
384
+ if can_add_to?(sharing)
385
+ sharing_permissions = make_sharing_permissions(options, authorisations)
386
+ sharing.add_members(members, sharing_permissions)
387
+ else
388
+ raise RepositoryManager::AuthorisationException.new("add members failed. You don't have the permission to add a member in this sharing")
389
+ end
390
+ end
391
+
392
+ def add_members_to(sharing, members, options = RepositoryManager.default_sharing_permissions)
393
+ begin
394
+ add_members_to!(sharing, members, options = RepositoryManager.default_sharing_permissions)
395
+ rescue RepositoryManager::AuthorisationException
396
+ false
397
+ end
398
+ end
399
+
400
+ # You can here remove members in the sharing
401
+ # Param member could be an object or an array of object
402
+ def remove_members_from!(sharing, members)
403
+ if can_remove_from?(sharing)
404
+ sharing.remove_members(members)
405
+ else
406
+ raise RepositoryManager::AuthorisationException.new("remove members failed. You don't have the permission to remove a member on this sharing")
407
+ end
408
+ end
409
+
410
+ def remove_members_from(sharing, members)
411
+ begin
412
+ remove_members_from!(sharing, members)
413
+ rescue RepositoryManager::AuthorisationException
414
+ false
415
+ end
416
+ end
417
+
418
+ # Get the download path of the member
419
+ def get_default_download_path(prefix = 'download/')
420
+ "#{prefix}#{self.class.base_class.to_s.underscore}/#{self.id}/"
421
+ end
422
+
423
+ # Returns true of false if the name exist in the root path of this instance
424
+ def repo_item_name_exist_in_root?(name)
425
+ # add : or file : name
426
+ #RepoItem.where(name: name).where(owner: self).where(ancestry: nil).first ? true : false
427
+ #puts RepoItem.where('name = ? OR file = ?', name, name).where(owner: self).where(ancestry: nil).first.inspect
428
+ #puts self.inspect
429
+
430
+ RepoItem.where('name = ? OR file = ?', name, name).where(owner: self).where(ancestry: nil).first ? true : false
431
+
432
+ end
433
+
434
+ private
435
+
436
+ # Return if you can do or not this action in the sharing
437
+ def can_do_to?(what, sharing, authorisations = nil)
438
+ if authorisations == nil
439
+ authorisations = sharing.get_authorisations(self)
440
+ end
441
+ case what
442
+ when 'add'
443
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_add] == true)
444
+ when 'remove'
445
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_remove] == true)
446
+ end
447
+ end
448
+
449
+ # Return if you can do or not this action (what)
450
+ def can_do?(what, repo_item, authorisations = nil)
451
+ # If we pass no authorisations we have to get it
452
+ if authorisations == nil
453
+ authorisations = get_authorisations(repo_item)
454
+ end
455
+
456
+ case what
457
+ when 'read'
458
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_read] == true)
459
+ when 'delete'
460
+ if RepositoryManager.accept_nested_sharing
461
+ # TODO implement to look if he can delete all the folder
462
+ else
463
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_delete] == true)
464
+ end
465
+ when 'update'
466
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_update] == true)
467
+ when 'share'
468
+ if RepositoryManager.accept_nested_sharing
469
+ # TODO implement to look if he can delete all the folder
470
+ else
471
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_share] == true)
472
+ end
473
+ when 'create'
474
+ if RepositoryManager.accept_nested_sharing
475
+ # TODO implement to look if he can delete all the folder
476
+ else
477
+ authorisations == true || (authorisations.kind_of?(Hash) && authorisations[:can_create] == true)
478
+ end
479
+ else
480
+ false
481
+ end
482
+
483
+ end
484
+
485
+ # Correct the repo_item_permissions with the authorisations
486
+ def make_repo_item_permissions(wanted_permissions, authorisations)
487
+ # If it is an array, we have restriction in the permissions
488
+ if authorisations.kind_of?(Hash) && wanted_permissions
489
+ # Built the sharing with the accepted permissions
490
+ # We remove the permission if we can't sharing it
491
+ if wanted_permissions[:can_read] == true && authorisations[:can_read] == false
492
+ wanted_permissions[:can_read] = false
493
+ end
494
+ if wanted_permissions[:can_create] == true && authorisations[:can_create] == false
495
+ wanted_permissions[:can_create] = false
496
+ end
497
+ if wanted_permissions[:can_update] == true && authorisations[:can_update] == false
498
+ wanted_permissions[:can_update] = false
499
+ end
500
+ if wanted_permissions[:can_delete] == true && authorisations[:can_delete] == false
501
+ wanted_permissions[:can_delete] = false
502
+ end
503
+ if wanted_permissions[:can_share] == true && authorisations[:can_share] == false
504
+ wanted_permissions[:can_share] = false
505
+ end
506
+ end
507
+ return wanted_permissions
508
+ end
509
+
510
+ # Correct the sharing_permissions with the authorisations
511
+ def make_sharing_permissions(wanted_permissions, authorisations)
512
+ # If it is an array, we have restriction in the permissions
513
+ if authorisations.kind_of?(Hash) && wanted_permissions
514
+ # Built the sharing with the accepted permissions
515
+ # We remove the permission if we can't share it
516
+ if wanted_permissions[:can_add] == true && authorisations[:can_add] == false
517
+ wanted_permissions[:can_add] = false
518
+ end
519
+ if wanted_permissions[:can_remove] == true && authorisations[:can_remove] == false
520
+ wanted_permissions[:can_remove] = false
521
+ end
522
+ end
523
+ return wanted_permissions
524
+ end
525
+
526
+ # Put a default name if none is given
527
+ def default_folder_name(source_folder)
528
+ i = ''
529
+ name = "#{I18n.t 'repository_manager.models.repo_folder.name'}"
530
+ # We check if another item has the same name
531
+
532
+ if source_folder
533
+ #TODO Optimiser, récupérer tout les instances contenants le nom, puis faire la boucle (pas boucle de requete)
534
+ # We check if another item has the same name
535
+ until !source_folder.name_exist_in_children?(name) do
536
+ if i == ''
537
+ i = 1
538
+ end
539
+ i += 1
540
+ name = "#{I18n.t 'repository_manager.models.repo_folder.name'} #{i}"
541
+ end
542
+ else
543
+ #TODO Optimiser, récupérer tout les instances contenants le nom, puis faire la boucle (pas boucle de requete)
544
+ # Si il n'a pas de parent, racine
545
+ until !repo_item_name_exist_in_root?(name) do
546
+ if i == ''
547
+ i = 1
548
+ end
549
+ i += 1
550
+ name = "#{I18n.t 'repository_manager.models.repo_folder.name'} #{i}"
551
+ end
552
+
553
+ end
554
+ name
555
+ end
556
+
557
+ end
558
+ end
559
+ end
560
+
553
561
  ActiveRecord::Base.send :include, RepositoryManager::HasRepository