attached 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +6 -5
  3. data/Rakefile +0 -3
  4. data/lib/attached.rb +23 -151
  5. data/lib/attached/attachment.rb +8 -60
  6. data/lib/attached/attatcher.rb +165 -0
  7. data/lib/attached/definition.rb +16 -0
  8. data/lib/attached/job.rb +0 -1
  9. data/lib/attached/processor.rb +2 -6
  10. data/lib/attached/processor/audio.rb +0 -19
  11. data/lib/attached/processor/base.rb +0 -5
  12. data/lib/attached/processor/error.rb +1 -1
  13. data/lib/attached/processor/image.rb +0 -31
  14. data/lib/attached/railtie.rb +4 -1
  15. data/lib/attached/storage.rb +5 -9
  16. data/lib/attached/storage/aws.rb +6 -17
  17. data/lib/attached/storage/base.rb +1 -10
  18. data/lib/attached/storage/error.rb +1 -1
  19. data/lib/attached/storage/fog.rb +2 -26
  20. data/lib/attached/storage/google.rb +5 -18
  21. data/lib/attached/storage/local.rb +1 -13
  22. data/lib/attached/storage/rackspace.rb +7 -18
  23. data/lib/attached/version.rb +1 -1
  24. data/test/dummy/app/controllers/application_controller.rb +1 -1
  25. data/test/dummy/app/models/audio.rb +7 -7
  26. data/test/dummy/app/models/image.rb +8 -8
  27. data/test/dummy/app/views/audios/_form.html.haml +5 -5
  28. data/test/dummy/app/views/audios/edit.html.haml +1 -1
  29. data/test/dummy/app/views/audios/index.html.haml +8 -8
  30. data/test/dummy/app/views/audios/new.html.haml +1 -1
  31. data/test/dummy/app/views/audios/show.html.haml +2 -2
  32. data/test/dummy/app/views/images/_form.html.haml +5 -5
  33. data/test/dummy/app/views/images/edit.html.haml +1 -1
  34. data/test/dummy/app/views/images/index.html.haml +8 -8
  35. data/test/dummy/app/views/images/new.html.haml +1 -1
  36. data/test/dummy/app/views/images/show.html.haml +3 -3
  37. data/test/dummy/app/views/layouts/application.html.haml +2 -2
  38. data/test/dummy/app/views/main/index.html.haml +2 -2
  39. data/test/dummy/app/views/shared/_error.html.haml +1 -1
  40. data/test/dummy/config/aws.yml +0 -2
  41. data/test/dummy/config/initializers/other.rb +2 -2
  42. data/test/dummy/config/routes.rb +1 -1
  43. data/test/dummy/db/schema.rb +7 -7
  44. data/test/dummy/db/test.sqlite3 +0 -0
  45. data/test/dummy/log/test.log +5487 -0
  46. data/test/dummy/public/system/audios/files/full/053225f9-c6d3-4472-8228-2cc701fc1a41.aac +0 -0
  47. data/test/dummy/public/system/audios/files/full/0b55eae0-52a0-4af0-a24e-2de3fcabfbf4.aac +0 -0
  48. data/test/dummy/public/system/audios/files/full/16a35230-6ae5-47e4-9e09-2ecdbd31cd58.aac +0 -0
  49. data/test/dummy/public/system/audios/files/full/344825e7-6315-47b6-986b-c731a6d08cd5.aac +0 -0
  50. data/test/dummy/public/system/audios/files/full/398e2cc8-f19d-4250-a528-a1fe146a35b3.aac +0 -0
  51. data/test/dummy/public/system/audios/files/full/4036c6ad-3ec2-4714-b453-357b0e708f3c.aac +0 -0
  52. data/test/dummy/public/system/audios/files/full/41c23f05-15fe-46fe-b6e4-0f3d95c4f3ab.aac +0 -0
  53. data/test/dummy/public/system/audios/files/full/41d57894-31d9-4b68-81a5-008e804b66a0.aac +0 -0
  54. data/test/dummy/public/system/audios/files/full/4c81067f-15e4-4152-a2c4-92b0f29e05f3.aac +0 -0
  55. data/test/dummy/public/system/audios/files/full/560a41f2-83cd-4734-a741-5da103917a9b.aac +0 -0
  56. data/test/dummy/public/system/audios/files/full/6569067f-276a-4a15-8376-57709201b209.aac +0 -0
  57. data/test/dummy/public/system/audios/files/full/68a0b6a2-d41a-4b09-970d-397860563669.aac +0 -0
  58. data/test/dummy/public/system/audios/files/full/6f91f04a-4894-4b16-87b6-ccfc686ba659.aac +0 -0
  59. data/test/dummy/public/system/audios/files/full/7aad29c4-7736-4492-9455-1a6ff333d807.aac +0 -0
  60. data/test/dummy/public/system/audios/files/full/7f4b261e-c56a-41cb-a0e0-ad7888116642.aac +0 -0
  61. data/test/dummy/public/system/audios/files/full/828531f1-a38d-4406-b147-1a01cff06a67.aac +0 -0
  62. data/test/dummy/public/system/audios/files/full/86bf96b6-e784-40e0-9edd-a47eb09059a0.aac +0 -0
  63. data/test/dummy/public/system/audios/files/full/90a9e337-b07b-441d-9c49-0090a7e6b9c0.aac +0 -0
  64. data/test/dummy/public/system/audios/files/full/90fc1944-196e-4a47-945e-4344ef62eb8c.aac +0 -0
  65. data/test/dummy/public/system/audios/files/full/975ce729-487c-4e6d-bce5-9523dbfa952c.aac +0 -0
  66. data/test/dummy/public/system/audios/files/full/9a096e89-4ce2-4ad9-9ff6-503f7200a8c8.aac +0 -0
  67. data/test/dummy/public/system/audios/files/full/9a186341-4c3b-4b30-b605-f234eb371d4c.aac +0 -0
  68. data/test/dummy/public/system/audios/files/full/a9034b45-c9c6-4387-b611-ef0c64c641e6.aac +0 -0
  69. data/test/dummy/public/system/audios/files/full/a96d0f64-2c94-4378-980e-d12e3492d412.aac +0 -0
  70. data/test/dummy/public/system/audios/files/full/b24e5454-f642-43f0-8107-4c92dfe3f770.aac +0 -0
  71. data/test/dummy/public/system/audios/files/full/c0c22ae4-a660-4ebd-8640-d1c82246911f.aac +0 -0
  72. data/test/dummy/public/system/audios/files/full/cd9bcb87-f6f1-4a63-8989-433f71e44803.aac +0 -0
  73. data/test/dummy/public/system/audios/files/full/cfda40b9-14ce-4cd1-b843-604a2e5fd37a.aac +0 -0
  74. data/test/dummy/public/system/audios/files/full/d6421e75-ec3b-4c68-8f50-0365b131505a.aac +0 -0
  75. data/test/dummy/public/system/audios/files/full/d7a777c2-ce13-4dc3-a401-ac81b469734f.aac +0 -0
  76. data/test/dummy/public/system/audios/files/full/d97113db-5a93-4cdb-a022-74292de1e40b.aac +0 -0
  77. data/test/dummy/public/system/audios/files/full/de5a8bbe-292b-49b8-8fdd-b84dc78be9dc.aac +0 -0
  78. data/test/dummy/public/system/audios/files/full/e0847f0e-90f9-4950-9b87-e2809768dd5a.aac +0 -0
  79. data/test/dummy/public/system/audios/files/full/e318d820-8e5c-49fd-af55-1b1617c94e51.aac +0 -0
  80. data/test/dummy/public/system/audios/files/full/e6eb96eb-8688-49ab-8188-3b0c3586e5db.aac +0 -0
  81. data/test/dummy/public/system/audios/files/full/e8b653fe-9f0a-458e-a4f1-f2a3c43b57b0.aac +0 -0
  82. data/test/dummy/public/system/audios/files/full/e90ebfbd-b590-4fe9-9cd5-b13b9ba7bb04.aac +0 -0
  83. data/test/dummy/public/system/audios/files/full/f2663b76-efdf-4522-8a15-31bb94b92c5f.aac +0 -0
  84. data/test/dummy/public/system/audios/files/full/fb02d110-db44-4c45-951d-69d471af9990.aac +0 -0
  85. data/test/dummy/public/system/audios/files/large/053225f9-c6d3-4472-8228-2cc701fc1a41.aac +0 -0
  86. data/test/dummy/public/system/audios/files/large/0b55eae0-52a0-4af0-a24e-2de3fcabfbf4.aac +0 -0
  87. data/test/dummy/public/system/audios/files/large/16a35230-6ae5-47e4-9e09-2ecdbd31cd58.aac +0 -0
  88. data/test/dummy/public/system/audios/files/large/344825e7-6315-47b6-986b-c731a6d08cd5.aac +0 -0
  89. data/test/dummy/public/system/audios/files/large/398e2cc8-f19d-4250-a528-a1fe146a35b3.aac +0 -0
  90. data/test/dummy/public/system/audios/files/large/4036c6ad-3ec2-4714-b453-357b0e708f3c.aac +0 -0
  91. data/test/dummy/public/system/audios/files/large/41c23f05-15fe-46fe-b6e4-0f3d95c4f3ab.aac +0 -0
  92. data/test/dummy/public/system/audios/files/large/41d57894-31d9-4b68-81a5-008e804b66a0.aac +0 -0
  93. data/test/dummy/public/system/audios/files/large/4c81067f-15e4-4152-a2c4-92b0f29e05f3.aac +0 -0
  94. data/test/dummy/public/system/audios/files/large/560a41f2-83cd-4734-a741-5da103917a9b.aac +0 -0
  95. data/test/dummy/public/system/audios/files/large/6569067f-276a-4a15-8376-57709201b209.aac +0 -0
  96. data/test/dummy/public/system/audios/files/large/68a0b6a2-d41a-4b09-970d-397860563669.aac +0 -0
  97. data/test/dummy/public/system/audios/files/large/6f91f04a-4894-4b16-87b6-ccfc686ba659.aac +0 -0
  98. data/test/dummy/public/system/audios/files/large/7aad29c4-7736-4492-9455-1a6ff333d807.aac +0 -0
  99. data/test/dummy/public/system/audios/files/large/7f4b261e-c56a-41cb-a0e0-ad7888116642.aac +0 -0
  100. data/test/dummy/public/system/audios/files/large/828531f1-a38d-4406-b147-1a01cff06a67.aac +0 -0
  101. data/test/dummy/public/system/audios/files/large/86bf96b6-e784-40e0-9edd-a47eb09059a0.aac +0 -0
  102. data/test/dummy/public/system/audios/files/large/90a9e337-b07b-441d-9c49-0090a7e6b9c0.aac +0 -0
  103. data/test/dummy/public/system/audios/files/large/90fc1944-196e-4a47-945e-4344ef62eb8c.aac +0 -0
  104. data/test/dummy/public/system/audios/files/large/975ce729-487c-4e6d-bce5-9523dbfa952c.aac +0 -0
  105. data/test/dummy/public/system/audios/files/large/9a096e89-4ce2-4ad9-9ff6-503f7200a8c8.aac +0 -0
  106. data/test/dummy/public/system/audios/files/large/9a186341-4c3b-4b30-b605-f234eb371d4c.aac +0 -0
  107. data/test/dummy/public/system/audios/files/large/a9034b45-c9c6-4387-b611-ef0c64c641e6.aac +0 -0
  108. data/test/dummy/public/system/audios/files/large/a96d0f64-2c94-4378-980e-d12e3492d412.aac +0 -0
  109. data/test/dummy/public/system/audios/files/large/b24e5454-f642-43f0-8107-4c92dfe3f770.aac +0 -0
  110. data/test/dummy/public/system/audios/files/large/c0c22ae4-a660-4ebd-8640-d1c82246911f.aac +0 -0
  111. data/test/dummy/public/system/audios/files/large/cd9bcb87-f6f1-4a63-8989-433f71e44803.aac +0 -0
  112. data/test/dummy/public/system/audios/files/large/cfda40b9-14ce-4cd1-b843-604a2e5fd37a.aac +0 -0
  113. data/test/dummy/public/system/audios/files/large/d6421e75-ec3b-4c68-8f50-0365b131505a.aac +0 -0
  114. data/test/dummy/public/system/audios/files/large/d7a777c2-ce13-4dc3-a401-ac81b469734f.aac +0 -0
  115. data/test/dummy/public/system/audios/files/large/d97113db-5a93-4cdb-a022-74292de1e40b.aac +0 -0
  116. data/test/dummy/public/system/audios/files/large/de5a8bbe-292b-49b8-8fdd-b84dc78be9dc.aac +0 -0
  117. data/test/dummy/public/system/audios/files/large/e0847f0e-90f9-4950-9b87-e2809768dd5a.aac +0 -0
  118. data/test/dummy/public/system/audios/files/large/e318d820-8e5c-49fd-af55-1b1617c94e51.aac +0 -0
  119. data/test/dummy/public/system/audios/files/large/e6eb96eb-8688-49ab-8188-3b0c3586e5db.aac +0 -0
  120. data/test/dummy/public/system/audios/files/large/e8b653fe-9f0a-458e-a4f1-f2a3c43b57b0.aac +0 -0
  121. data/test/dummy/public/system/audios/files/large/e90ebfbd-b590-4fe9-9cd5-b13b9ba7bb04.aac +0 -0
  122. data/test/dummy/public/system/audios/files/large/f2663b76-efdf-4522-8a15-31bb94b92c5f.aac +0 -0
  123. data/test/dummy/public/system/audios/files/large/fb02d110-db44-4c45-951d-69d471af9990.aac +0 -0
  124. data/test/dummy/public/system/audios/files/original/053225f9-c6d3-4472-8228-2cc701fc1a41.wav +0 -0
  125. data/test/dummy/public/system/audios/files/original/0b55eae0-52a0-4af0-a24e-2de3fcabfbf4.wav +0 -0
  126. data/test/dummy/public/system/audios/files/original/16a35230-6ae5-47e4-9e09-2ecdbd31cd58.wav +0 -0
  127. data/test/dummy/public/system/audios/files/original/344825e7-6315-47b6-986b-c731a6d08cd5.wav +0 -0
  128. data/test/dummy/public/system/audios/files/original/398e2cc8-f19d-4250-a528-a1fe146a35b3.wav +0 -0
  129. data/test/dummy/public/system/audios/files/original/4036c6ad-3ec2-4714-b453-357b0e708f3c.wav +0 -0
  130. data/test/dummy/public/system/audios/files/original/41c23f05-15fe-46fe-b6e4-0f3d95c4f3ab.wav +0 -0
  131. data/test/dummy/public/system/audios/files/original/41d57894-31d9-4b68-81a5-008e804b66a0.wav +0 -0
  132. data/test/dummy/public/system/audios/files/original/4c81067f-15e4-4152-a2c4-92b0f29e05f3.wav +0 -0
  133. data/test/dummy/public/system/audios/files/original/560a41f2-83cd-4734-a741-5da103917a9b.wav +0 -0
  134. data/test/dummy/public/system/audios/files/original/6569067f-276a-4a15-8376-57709201b209.wav +0 -0
  135. data/test/dummy/public/system/audios/files/original/68a0b6a2-d41a-4b09-970d-397860563669.wav +0 -0
  136. data/test/dummy/public/system/audios/files/original/6f91f04a-4894-4b16-87b6-ccfc686ba659.wav +0 -0
  137. data/test/dummy/public/system/audios/files/original/7aad29c4-7736-4492-9455-1a6ff333d807.wav +0 -0
  138. data/test/dummy/public/system/audios/files/original/7f4b261e-c56a-41cb-a0e0-ad7888116642.wav +0 -0
  139. data/test/dummy/public/system/audios/files/original/828531f1-a38d-4406-b147-1a01cff06a67.wav +0 -0
  140. data/test/dummy/public/system/audios/files/original/86bf96b6-e784-40e0-9edd-a47eb09059a0.wav +0 -0
  141. data/test/dummy/public/system/audios/files/original/90a9e337-b07b-441d-9c49-0090a7e6b9c0.wav +0 -0
  142. data/test/dummy/public/system/audios/files/original/975ce729-487c-4e6d-bce5-9523dbfa952c.wav +0 -0
  143. data/test/dummy/public/system/audios/files/original/9a096e89-4ce2-4ad9-9ff6-503f7200a8c8.wav +0 -0
  144. data/test/dummy/public/system/audios/files/original/9a186341-4c3b-4b30-b605-f234eb371d4c.wav +0 -0
  145. data/test/dummy/public/system/audios/files/original/b24e5454-f642-43f0-8107-4c92dfe3f770.wav +0 -0
  146. data/test/dummy/public/system/audios/files/original/cfda40b9-14ce-4cd1-b843-604a2e5fd37a.wav +0 -0
  147. data/test/dummy/public/system/audios/files/original/e318d820-8e5c-49fd-af55-1b1617c94e51.wav +0 -0
  148. data/test/dummy/public/system/audios/files/original/e6eb96eb-8688-49ab-8188-3b0c3586e5db.wav +0 -0
  149. data/test/dummy/public/system/audios/files/original/f2663b76-efdf-4522-8a15-31bb94b92c5f.wav +0 -0
  150. data/test/dummy/public/system/audios/files/original/fb02d110-db44-4c45-951d-69d471af9990.wav +0 -0
  151. data/test/dummy/public/system/audios/files/small/053225f9-c6d3-4472-8228-2cc701fc1a41.aac +0 -0
  152. data/test/dummy/public/system/audios/files/small/0b55eae0-52a0-4af0-a24e-2de3fcabfbf4.aac +0 -0
  153. data/test/dummy/public/system/audios/files/small/398e2cc8-f19d-4250-a528-a1fe146a35b3.aac +0 -0
  154. data/test/dummy/public/system/audios/files/small/4036c6ad-3ec2-4714-b453-357b0e708f3c.aac +0 -0
  155. data/test/dummy/public/system/audios/files/small/41c23f05-15fe-46fe-b6e4-0f3d95c4f3ab.aac +0 -0
  156. data/test/dummy/public/system/audios/files/small/41d57894-31d9-4b68-81a5-008e804b66a0.aac +0 -0
  157. data/test/dummy/public/system/audios/files/small/4c81067f-15e4-4152-a2c4-92b0f29e05f3.aac +0 -0
  158. data/test/dummy/public/system/audios/files/small/6569067f-276a-4a15-8376-57709201b209.aac +0 -0
  159. data/test/dummy/public/system/audios/files/small/68a0b6a2-d41a-4b09-970d-397860563669.aac +0 -0
  160. data/test/dummy/public/system/audios/files/small/6f91f04a-4894-4b16-87b6-ccfc686ba659.aac +0 -0
  161. data/test/dummy/public/system/audios/files/small/7f4b261e-c56a-41cb-a0e0-ad7888116642.aac +0 -0
  162. data/test/dummy/public/system/audios/files/small/86bf96b6-e784-40e0-9edd-a47eb09059a0.aac +0 -0
  163. data/test/dummy/public/system/audios/files/small/90a9e337-b07b-441d-9c49-0090a7e6b9c0.aac +0 -0
  164. data/test/dummy/public/system/audios/files/small/975ce729-487c-4e6d-bce5-9523dbfa952c.aac +0 -0
  165. data/test/dummy/public/system/audios/files/small/9a096e89-4ce2-4ad9-9ff6-503f7200a8c8.aac +0 -0
  166. data/test/dummy/public/system/audios/files/small/9a186341-4c3b-4b30-b605-f234eb371d4c.aac +0 -0
  167. data/test/dummy/public/system/audios/files/small/b24e5454-f642-43f0-8107-4c92dfe3f770.aac +0 -0
  168. data/test/dummy/public/system/audios/files/small/cfda40b9-14ce-4cd1-b843-604a2e5fd37a.aac +0 -0
  169. data/test/dummy/public/system/audios/files/small/e318d820-8e5c-49fd-af55-1b1617c94e51.aac +0 -0
  170. data/test/dummy/public/system/audios/files/small/e6eb96eb-8688-49ab-8188-3b0c3586e5db.aac +0 -0
  171. data/test/dummy/public/system/audios/files/small/f2663b76-efdf-4522-8a15-31bb94b92c5f.aac +0 -0
  172. data/test/dummy/public/system/audios/files/small/fb02d110-db44-4c45-951d-69d471af9990.aac +0 -0
  173. data/test/dummy/public/system/images/files/full/04a05143-2ea9-4ee0-bca3-64f436bac3d2.jpg +0 -0
  174. data/test/dummy/public/system/images/files/full/187e58dd-d90c-4000-8118-c46da7f1f71f.jpg +0 -0
  175. data/test/dummy/public/system/images/files/full/1fd5231d-04d1-4691-bceb-871810ac982b.jpg +0 -0
  176. data/test/dummy/public/system/images/files/full/25d98e6f-6419-4bb9-990c-cc5113f8606d.jpg +0 -0
  177. data/test/dummy/public/system/images/files/full/3401af18-b401-404f-9bd7-58424fe33e26.jpg +0 -0
  178. data/test/dummy/public/system/images/files/full/38bcfbac-5b70-4510-a0dd-9296fc22ed0e.jpg +0 -0
  179. data/test/dummy/public/system/images/files/full/49f59ee9-98cf-4991-8c96-aebef8f34a21.jpg +0 -0
  180. data/test/dummy/public/system/images/files/full/520dcbea-ce4a-474b-8e42-3b6c947181b3.jpg +0 -0
  181. data/test/dummy/public/system/images/files/full/5dea55cb-4d09-453c-b9fa-a6783c2b82e6.jpg +0 -0
  182. data/test/dummy/public/system/images/files/full/5dfc0dc2-909f-4525-9d5a-d04dc9e9f9ac.jpg +0 -0
  183. data/test/dummy/public/system/images/files/full/6cb55f24-12c1-4019-aa1d-d7d379ffb4b3.jpg +0 -0
  184. data/test/dummy/public/system/images/files/full/71e117d2-a77a-4daf-a0cc-39c629727b57.jpg +0 -0
  185. data/test/dummy/public/system/images/files/full/7426b7d6-2950-4064-8bcd-f7d081fbbd27.jpg +0 -0
  186. data/test/dummy/public/system/images/files/full/88286a62-ef1b-4532-82f4-7a9e72e32f2a.jpg +0 -0
  187. data/test/dummy/public/system/images/files/full/8daf45e0-c8c2-4768-9536-53b8dc269c14.jpg +0 -0
  188. data/test/dummy/public/system/images/files/full/970ec9d8-052c-4c7c-b1eb-a163004dcb35.jpg +0 -0
  189. data/test/dummy/public/system/images/files/full/9a74af84-4e37-451d-abff-84499ca198db.jpg +0 -0
  190. data/test/dummy/public/system/images/files/full/b784910f-bc64-4bbb-bc4f-77cc5b9faf7e.jpg +0 -0
  191. data/test/dummy/public/system/images/files/full/c8ec0593-49f5-44c5-957e-ce61a15678c9.jpg +0 -0
  192. data/test/dummy/public/system/images/files/full/ef58124a-9bd6-4da7-9dcb-a4dfe83e7cc1.jpg +0 -0
  193. data/test/dummy/public/system/images/files/full/f905a6f3-1626-4a3b-89dd-53f1c1a88379.jpg +0 -0
  194. data/test/dummy/public/system/images/files/full/fbe00e7d-98d7-4f89-86db-09918fedb9c5.jpg +0 -0
  195. data/test/dummy/public/system/images/files/large/04a05143-2ea9-4ee0-bca3-64f436bac3d2.jpg +0 -0
  196. data/test/dummy/public/system/images/files/large/187e58dd-d90c-4000-8118-c46da7f1f71f.jpg +0 -0
  197. data/test/dummy/public/system/images/files/large/1fd5231d-04d1-4691-bceb-871810ac982b.jpg +0 -0
  198. data/test/dummy/public/system/images/files/large/25d98e6f-6419-4bb9-990c-cc5113f8606d.jpg +0 -0
  199. data/test/dummy/public/system/images/files/large/3401af18-b401-404f-9bd7-58424fe33e26.jpg +0 -0
  200. data/test/dummy/public/system/images/files/large/38bcfbac-5b70-4510-a0dd-9296fc22ed0e.jpg +0 -0
  201. data/test/dummy/public/system/images/files/large/49f59ee9-98cf-4991-8c96-aebef8f34a21.jpg +0 -0
  202. data/test/dummy/public/system/images/files/large/520dcbea-ce4a-474b-8e42-3b6c947181b3.jpg +0 -0
  203. data/test/dummy/public/system/images/files/large/5dea55cb-4d09-453c-b9fa-a6783c2b82e6.jpg +0 -0
  204. data/test/dummy/public/system/images/files/large/5dfc0dc2-909f-4525-9d5a-d04dc9e9f9ac.jpg +0 -0
  205. data/test/dummy/public/system/images/files/large/6cb55f24-12c1-4019-aa1d-d7d379ffb4b3.jpg +0 -0
  206. data/test/dummy/public/system/images/files/large/71e117d2-a77a-4daf-a0cc-39c629727b57.jpg +0 -0
  207. data/test/dummy/public/system/images/files/large/7426b7d6-2950-4064-8bcd-f7d081fbbd27.jpg +0 -0
  208. data/test/dummy/public/system/images/files/large/88286a62-ef1b-4532-82f4-7a9e72e32f2a.jpg +0 -0
  209. data/test/dummy/public/system/images/files/large/8daf45e0-c8c2-4768-9536-53b8dc269c14.jpg +0 -0
  210. data/test/dummy/public/system/images/files/large/970ec9d8-052c-4c7c-b1eb-a163004dcb35.jpg +0 -0
  211. data/test/dummy/public/system/images/files/large/9a74af84-4e37-451d-abff-84499ca198db.jpg +0 -0
  212. data/test/dummy/public/system/images/files/large/b784910f-bc64-4bbb-bc4f-77cc5b9faf7e.jpg +0 -0
  213. data/test/dummy/public/system/images/files/large/c8ec0593-49f5-44c5-957e-ce61a15678c9.jpg +0 -0
  214. data/test/dummy/public/system/images/files/large/ef58124a-9bd6-4da7-9dcb-a4dfe83e7cc1.jpg +0 -0
  215. data/test/dummy/public/system/images/files/large/f905a6f3-1626-4a3b-89dd-53f1c1a88379.jpg +0 -0
  216. data/test/dummy/public/system/images/files/large/fbe00e7d-98d7-4f89-86db-09918fedb9c5.jpg +0 -0
  217. data/test/dummy/public/system/images/files/original/04a05143-2ea9-4ee0-bca3-64f436bac3d2.png +0 -0
  218. data/test/dummy/public/system/images/files/original/187e58dd-d90c-4000-8118-c46da7f1f71f.png +0 -0
  219. data/test/dummy/public/system/images/files/original/1fd5231d-04d1-4691-bceb-871810ac982b.png +0 -0
  220. data/test/dummy/public/system/images/files/original/25d98e6f-6419-4bb9-990c-cc5113f8606d.png +0 -0
  221. data/test/dummy/public/system/images/files/original/3401af18-b401-404f-9bd7-58424fe33e26.png +0 -0
  222. data/test/dummy/public/system/images/files/original/38bcfbac-5b70-4510-a0dd-9296fc22ed0e.png +0 -0
  223. data/test/dummy/public/system/images/files/original/49f59ee9-98cf-4991-8c96-aebef8f34a21.png +0 -0
  224. data/test/dummy/public/system/images/files/original/520dcbea-ce4a-474b-8e42-3b6c947181b3.png +0 -0
  225. data/test/dummy/public/system/images/files/original/5dea55cb-4d09-453c-b9fa-a6783c2b82e6.png +0 -0
  226. data/test/dummy/public/system/images/files/original/5dfc0dc2-909f-4525-9d5a-d04dc9e9f9ac.png +0 -0
  227. data/test/dummy/public/system/images/files/original/6cb55f24-12c1-4019-aa1d-d7d379ffb4b3.png +0 -0
  228. data/test/dummy/public/system/images/files/original/71e117d2-a77a-4daf-a0cc-39c629727b57.png +0 -0
  229. data/test/dummy/public/system/images/files/original/7426b7d6-2950-4064-8bcd-f7d081fbbd27.png +0 -0
  230. data/test/dummy/public/system/images/files/original/88286a62-ef1b-4532-82f4-7a9e72e32f2a.png +0 -0
  231. data/test/dummy/public/system/images/files/original/8daf45e0-c8c2-4768-9536-53b8dc269c14.png +0 -0
  232. data/test/dummy/public/system/images/files/original/970ec9d8-052c-4c7c-b1eb-a163004dcb35.png +0 -0
  233. data/test/dummy/public/system/images/files/original/9a74af84-4e37-451d-abff-84499ca198db.png +0 -0
  234. data/test/dummy/public/system/images/files/original/b784910f-bc64-4bbb-bc4f-77cc5b9faf7e.png +0 -0
  235. data/test/dummy/public/system/images/files/original/c8ec0593-49f5-44c5-957e-ce61a15678c9.png +0 -0
  236. data/test/dummy/public/system/images/files/original/ef58124a-9bd6-4da7-9dcb-a4dfe83e7cc1.png +0 -0
  237. data/test/dummy/public/system/images/files/original/f905a6f3-1626-4a3b-89dd-53f1c1a88379.png +0 -0
  238. data/test/dummy/public/system/images/files/original/fbe00e7d-98d7-4f89-86db-09918fedb9c5.png +0 -0
  239. data/test/dummy/public/system/images/files/small/04a05143-2ea9-4ee0-bca3-64f436bac3d2.jpg +0 -0
  240. data/test/dummy/public/system/images/files/small/187e58dd-d90c-4000-8118-c46da7f1f71f.jpg +0 -0
  241. data/test/dummy/public/system/images/files/small/1fd5231d-04d1-4691-bceb-871810ac982b.jpg +0 -0
  242. data/test/dummy/public/system/images/files/small/25d98e6f-6419-4bb9-990c-cc5113f8606d.jpg +0 -0
  243. data/test/dummy/public/system/images/files/small/3401af18-b401-404f-9bd7-58424fe33e26.jpg +0 -0
  244. data/test/dummy/public/system/images/files/small/38bcfbac-5b70-4510-a0dd-9296fc22ed0e.jpg +0 -0
  245. data/test/dummy/public/system/images/files/small/49f59ee9-98cf-4991-8c96-aebef8f34a21.jpg +0 -0
  246. data/test/dummy/public/system/images/files/small/520dcbea-ce4a-474b-8e42-3b6c947181b3.jpg +0 -0
  247. data/test/dummy/public/system/images/files/small/5dea55cb-4d09-453c-b9fa-a6783c2b82e6.jpg +0 -0
  248. data/test/dummy/public/system/images/files/small/5dfc0dc2-909f-4525-9d5a-d04dc9e9f9ac.jpg +0 -0
  249. data/test/dummy/public/system/images/files/small/6cb55f24-12c1-4019-aa1d-d7d379ffb4b3.jpg +0 -0
  250. data/test/dummy/public/system/images/files/small/71e117d2-a77a-4daf-a0cc-39c629727b57.jpg +0 -0
  251. data/test/dummy/public/system/images/files/small/7426b7d6-2950-4064-8bcd-f7d081fbbd27.jpg +0 -0
  252. data/test/dummy/public/system/images/files/small/88286a62-ef1b-4532-82f4-7a9e72e32f2a.jpg +0 -0
  253. data/test/dummy/public/system/images/files/small/8daf45e0-c8c2-4768-9536-53b8dc269c14.jpg +0 -0
  254. data/test/dummy/public/system/images/files/small/970ec9d8-052c-4c7c-b1eb-a163004dcb35.jpg +0 -0
  255. data/test/dummy/public/system/images/files/small/9a74af84-4e37-451d-abff-84499ca198db.jpg +0 -0
  256. data/test/dummy/public/system/images/files/small/b784910f-bc64-4bbb-bc4f-77cc5b9faf7e.jpg +0 -0
  257. data/test/dummy/public/system/images/files/small/c8ec0593-49f5-44c5-957e-ce61a15678c9.jpg +0 -0
  258. data/test/dummy/public/system/images/files/small/ef58124a-9bd6-4da7-9dcb-a4dfe83e7cc1.jpg +0 -0
  259. data/test/dummy/public/system/images/files/small/f905a6f3-1626-4a3b-89dd-53f1c1a88379.jpg +0 -0
  260. data/test/dummy/public/system/images/files/small/fbe00e7d-98d7-4f89-86db-09918fedb9c5.jpg +0 -0
  261. data/test/dummy/public/system/images/files/thumb/04a05143-2ea9-4ee0-bca3-64f436bac3d2.jpg +0 -0
  262. data/test/dummy/public/system/images/files/thumb/187e58dd-d90c-4000-8118-c46da7f1f71f.jpg +0 -0
  263. data/test/dummy/public/system/images/files/thumb/1fd5231d-04d1-4691-bceb-871810ac982b.jpg +0 -0
  264. data/test/dummy/public/system/images/files/thumb/25d98e6f-6419-4bb9-990c-cc5113f8606d.jpg +0 -0
  265. data/test/dummy/public/system/images/files/thumb/3401af18-b401-404f-9bd7-58424fe33e26.jpg +0 -0
  266. data/test/dummy/public/system/images/files/thumb/38bcfbac-5b70-4510-a0dd-9296fc22ed0e.jpg +0 -0
  267. data/test/dummy/public/system/images/files/thumb/49f59ee9-98cf-4991-8c96-aebef8f34a21.jpg +0 -0
  268. data/test/dummy/public/system/images/files/thumb/520dcbea-ce4a-474b-8e42-3b6c947181b3.jpg +0 -0
  269. data/test/dummy/public/system/images/files/thumb/5dea55cb-4d09-453c-b9fa-a6783c2b82e6.jpg +0 -0
  270. data/test/dummy/public/system/images/files/thumb/5dfc0dc2-909f-4525-9d5a-d04dc9e9f9ac.jpg +0 -0
  271. data/test/dummy/public/system/images/files/thumb/6cb55f24-12c1-4019-aa1d-d7d379ffb4b3.jpg +0 -0
  272. data/test/dummy/public/system/images/files/thumb/71e117d2-a77a-4daf-a0cc-39c629727b57.jpg +0 -0
  273. data/test/dummy/public/system/images/files/thumb/7426b7d6-2950-4064-8bcd-f7d081fbbd27.jpg +0 -0
  274. data/test/dummy/public/system/images/files/thumb/88286a62-ef1b-4532-82f4-7a9e72e32f2a.jpg +0 -0
  275. data/test/dummy/public/system/images/files/thumb/8daf45e0-c8c2-4768-9536-53b8dc269c14.jpg +0 -0
  276. data/test/dummy/public/system/images/files/thumb/970ec9d8-052c-4c7c-b1eb-a163004dcb35.jpg +0 -0
  277. data/test/dummy/public/system/images/files/thumb/9a74af84-4e37-451d-abff-84499ca198db.jpg +0 -0
  278. data/test/dummy/public/system/images/files/thumb/b784910f-bc64-4bbb-bc4f-77cc5b9faf7e.jpg +0 -0
  279. data/test/dummy/public/system/images/files/thumb/c8ec0593-49f5-44c5-957e-ce61a15678c9.jpg +0 -0
  280. data/test/dummy/public/system/images/files/thumb/ef58124a-9bd6-4da7-9dcb-a4dfe83e7cc1.jpg +0 -0
  281. data/test/dummy/public/system/images/files/thumb/f905a6f3-1626-4a3b-89dd-53f1c1a88379.jpg +0 -0
  282. data/test/dummy/public/system/images/files/thumb/fbe00e7d-98d7-4f89-86db-09918fedb9c5.jpg +0 -0
  283. data/test/dummy/test/controllers/audios_controller_test.rb +5 -5
  284. data/test/dummy/test/controllers/images_controller_test.rb +5 -5
  285. data/test/dummy/test/models/audio_test.rb +5 -5
  286. data/test/dummy/test/models/image_test.rb +5 -5
  287. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_alerts.scssc +0 -0
  288. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_background-variant.scssc +0 -0
  289. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_border-radius.scssc +0 -0
  290. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_buttons.scssc +0 -0
  291. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_center-block.scssc +0 -0
  292. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_clearfix.scssc +0 -0
  293. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_forms.scssc +0 -0
  294. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_gradients.scssc +0 -0
  295. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_grid-framework.scssc +0 -0
  296. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_grid.scssc +0 -0
  297. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_hide-text.scssc +0 -0
  298. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_image.scssc +0 -0
  299. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_labels.scssc +0 -0
  300. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_list-group.scssc +0 -0
  301. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_nav-divider.scssc +0 -0
  302. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_nav-vertical-align.scssc +0 -0
  303. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_opacity.scssc +0 -0
  304. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_pagination.scssc +0 -0
  305. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_panels.scssc +0 -0
  306. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_progress-bar.scssc +0 -0
  307. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_reset-filter.scssc +0 -0
  308. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_resize.scssc +0 -0
  309. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_responsive-visibility.scssc +0 -0
  310. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_size.scssc +0 -0
  311. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_tab-focus.scssc +0 -0
  312. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_table-row.scssc +0 -0
  313. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_text-emphasis.scssc +0 -0
  314. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_text-overflow.scssc +0 -0
  315. data/test/dummy/tmp/cache/assets/test/sass/11e4b32482f2a6837bf1eb6d86d3ed3fb479ba9c/_vendor-prefixes.scssc +0 -0
  316. data/test/dummy/tmp/cache/assets/test/sass/4064a56df5bbb01ee76e4d304234a109a364de14/bootstrap.scssc +0 -0
  317. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_alerts.scssc +0 -0
  318. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_badges.scssc +0 -0
  319. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_breadcrumbs.scssc +0 -0
  320. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_button-groups.scssc +0 -0
  321. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_buttons.scssc +0 -0
  322. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_carousel.scssc +0 -0
  323. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_close.scssc +0 -0
  324. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_code.scssc +0 -0
  325. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_component-animations.scssc +0 -0
  326. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_dropdowns.scssc +0 -0
  327. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_forms.scssc +0 -0
  328. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_glyphicons.scssc +0 -0
  329. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_grid.scssc +0 -0
  330. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_input-groups.scssc +0 -0
  331. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_jumbotron.scssc +0 -0
  332. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_labels.scssc +0 -0
  333. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_list-group.scssc +0 -0
  334. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_media.scssc +0 -0
  335. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_mixins.scssc +0 -0
  336. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_modals.scssc +0 -0
  337. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_navbar.scssc +0 -0
  338. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_navs.scssc +0 -0
  339. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_normalize.scssc +0 -0
  340. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_pager.scssc +0 -0
  341. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_pagination.scssc +0 -0
  342. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_panels.scssc +0 -0
  343. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_popovers.scssc +0 -0
  344. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_print.scssc +0 -0
  345. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_progress-bars.scssc +0 -0
  346. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_responsive-embed.scssc +0 -0
  347. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_responsive-utilities.scssc +0 -0
  348. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_scaffolding.scssc +0 -0
  349. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_tables.scssc +0 -0
  350. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_thumbnails.scssc +0 -0
  351. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_tooltip.scssc +0 -0
  352. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_type.scssc +0 -0
  353. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_utilities.scssc +0 -0
  354. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_variables.scssc +0 -0
  355. data/test/dummy/tmp/cache/assets/test/sass/e934b98bab29972344df0ce895ad77edec08210c/_wells.scssc +0 -0
  356. data/test/dummy/tmp/cache/assets/test/sprockets/0d3881005b0646df783d5c24683d34f5 +0 -0
  357. data/test/dummy/tmp/cache/assets/test/sprockets/16d61d604995abc9503196afa7ee8a1a +0 -0
  358. data/test/dummy/tmp/cache/assets/test/sprockets/1a6846f0a837ae2524e2f9ec89e6ef43 +0 -0
  359. data/test/dummy/tmp/cache/assets/test/sprockets/2013f4301be82fc1e4c20d363d5f595a +0 -0
  360. data/test/dummy/tmp/cache/assets/test/sprockets/416ba8d8c55d6f42571b681274e22d5d +0 -0
  361. data/test/dummy/tmp/cache/assets/test/sprockets/50c1885539f61359c48af74fcae1df31 +0 -0
  362. data/test/dummy/tmp/cache/assets/test/sprockets/6c3e053393afe303432ca73f1b41490b +0 -0
  363. data/test/dummy/tmp/cache/assets/test/sprockets/86e145a39f85cceeaffdff91ebb61449 +0 -0
  364. data/test/dummy/tmp/cache/assets/test/sprockets/c5880aca76ccbb51f9388362e8afc1e6 +0 -0
  365. data/test/dummy/tmp/cache/assets/test/sprockets/e69b39cad15408a142ce4b079f08d5c7 +0 -0
  366. data/test/dummy/tmp/cache/assets/test/sprockets/ea90d3d29d22654f1c3309fdcadb2703 +0 -0
  367. data/test/dummy/tmp/cache/assets/test/sprockets/fe2a206a96f1e0b21d535fa35ddd5f59 +0 -0
  368. data/test/test_helper.rb +4 -0
  369. metadata +550 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e45f92f25ab1b73622afb14386c57fc6cf0d8a5
4
- data.tar.gz: 0e27bcc32bda3d8655571e1e5f3a272b471ee77b
3
+ metadata.gz: 8bc176dbc2ad38b99ab49a128971f1e32103e009
4
+ data.tar.gz: d56c4292c0979d826074d95546d42a7907edb677
5
5
  SHA512:
6
- metadata.gz: 724488b8ed45dd27a81f7576a3c9c74448e1a582343e3634f634e4ae3cbe497a6298478425ee11afc4f7d29505130ac858d22e961e9cf031a89fa1899090152f
7
- data.tar.gz: 4d252660428dfc6bde86c5def8f18bfa232e43790235a92fb5b1c0857a497f9996c2041b5c08ec31908e40c4991be940c508e647ebe1185d74f31193abff344c
6
+ metadata.gz: 862c1a697e68afe188aba95ef8e1b3db5b241f666d2d314630a11b558f0e1f31caf31e6a8b12a7658b9ebbacd75ebc517b1513fa941662a8b4962fe952bdf4f6
7
+ data.tar.gz: 0426cbf46893ad05460682f7f7153168923409919f26e3e1ca73741dfd11eaf024008b0f9ee736f6823c5bd235e8f9aff452a119c74c98b82833bbc5b062ad10
@@ -6,8 +6,8 @@ Attached is a Ruby on Rails file attachment tool that lets users upload to the c
6
6
 
7
7
  The gem is tested with:
8
8
 
9
- * Ruby on Rails 4.1.1
10
- * Ruby on Rails 4.0.5
9
+ * Ruby on Rails 4.1.2
10
+ * Ruby on Rails 4.0.6
11
11
  * Ruby 2.1.2
12
12
  * Ruby 2.0.0
13
13
  * Ruby 1.9.3
@@ -166,9 +166,10 @@ View:
166
166
 
167
167
  == Status
168
168
 
169
- {<img src="http://img.shields.io/gemnasium/ksylvest/attached.svg" />}[https://gemnasium.com/ksylvest/attached]
170
- {<img src="http://img.shields.io/travis/ksylvest/attached.svg" />}[https://travis-ci.org/ksylvest/attached]
171
- {<img src="http://img.shields.io/codeclimate/github/ksylvest/attached.svg" />}[https://codeclimate.com/github/ksylvest/attached]
169
+ {<img src="https://img.shields.io/gemnasium/ksylvest/attached.svg" />}[https://gemnasium.com/ksylvest/attached]
170
+ {<img src="https://img.shields.io/travis/ksylvest/attached.svg" />}[https://travis-ci.org/ksylvest/attached]
171
+ {<img src="https://img.shields.io/coveralls/ksylvest/attached.svg" />}[https://coveralls.io/r/ksylvest/attached]
172
+ {<img src="https://img.shields.io/codeclimate/github/ksylvest/attached.svg" />}[https://codeclimate.com/github/ksylvest/attached]
172
173
 
173
174
  == Copyright
174
175
 
data/Rakefile CHANGED
@@ -14,9 +14,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
-
18
-
19
-
20
17
  Bundler::GemHelper.install_tasks
21
18
 
22
19
  require 'rake/testtask'
@@ -1,37 +1,20 @@
1
+ require 'attached/definition'
1
2
  require 'attached/attachment'
3
+ require 'attached/attatcher'
2
4
  require 'attached/railtie'
3
5
 
4
-
5
6
  module Attached
6
7
 
7
-
8
8
  def self.mock!
9
9
  Fog.mock!
10
10
  end
11
11
 
12
-
13
12
  def self.included(base)
14
13
  base.extend ClassMethods
15
- base.class_attribute :attached_options
16
- end
17
-
18
-
19
- module Definition
20
- def attachment(*args)
21
- options = args.extract_options!
22
-
23
- args.each do |name|
24
- column("#{name}_identifier", :string, options)
25
- column("#{name}_extension", :string, options)
26
- column("#{name}_size", :integer, options)
27
- end
28
- end
29
14
  end
30
15
 
31
-
32
16
  module ClassMethods
33
17
 
34
-
35
18
  # Add an attachment to a class.
36
19
  #
37
20
  # Options:
@@ -43,70 +26,13 @@ module Attached
43
26
  # Usage:
44
27
  #
45
28
  # has_attached :video
46
- # has_attached :video, :storage => :aws
47
- # has_attached :video, styles => { :mov => { :size => "480p", :format => "mov" } }
29
+ # has_attached :video, storage: :aws
30
+ # has_attached :video, styles: { mov: { size: "480p", format: "mov" } }
48
31
 
49
32
  def has_attached(name, options = {})
50
-
51
- include InstanceMethods
52
-
53
- self.attached_options ||= {}
54
- self.attached_options[name] = options
55
-
56
- before_save :save_attached
57
- before_destroy :destroy_attached
58
-
59
- define_method name do
60
- attachment_for(name)
61
- end
62
-
63
- define_method "#{name}=" do |file|
64
- attachment_for(name).assign(file)
65
- end
66
-
67
- define_method "#{name}?" do
68
- attachment_for(name).attached?
69
- end
70
-
71
- define_method "#{name}_url=" do |url|
72
- attachment_for(name).url = url
73
- end
74
-
75
- validates_each(name) do |record, attr, value|
76
- attachment = record.attachment_for(name)
77
- attachment.errors.each do |error|
78
- record.errors.add(name, error)
79
- end
80
- end
81
-
82
- after_validation do
83
-
84
- if self.errors.include?(:"#{name}_size")
85
- self.errors[:"#{name}_size"].each do |message|
86
- self.errors.add(name, message)
87
- end
88
- self.errors[:"#{name}_size"].clear
89
- end
90
-
91
- if self.errors.include?(:"#{name}_extension")
92
- self.errors[:"#{name}_extension"].each do |message|
93
- self.errors.add(name, message)
94
- end
95
- self.errors[:"#{name}_extension"].clear
96
- end
97
-
98
- if self.errors.include?(:"#{name}_identifier")
99
- self.errors[:"#{name}_identifier"].each do |message|
100
- self.errors.add(name, message)
101
- end
102
- self.errors[:"#{name}_identifier"].clear
103
- end
104
-
105
- end
106
-
33
+ Attatcher.define(self, name, options)
107
34
  end
108
35
 
109
-
110
36
  # Validates an attached size in a specified range or minimum and maximum.
111
37
  #
112
38
  # Options:
@@ -118,9 +44,9 @@ module Attached
118
44
  #
119
45
  # Usage:
120
46
  #
121
- # validates_attached_size :avatar, :range => 10.megabytes .. 20.megabytes
122
- # validates_attached_size :avatar, :minimum => 10.megabytes, :maximum => 20.megabytes
123
- # validates_attached_size :avatar, :message => "size must be between :minimum and :maximum bytes"
47
+ # validates_attached_size :avatar, range: 10.megabytes .. 20.megabytes
48
+ # validates_attached_size :avatar, minimum: 10.megabytes, maximum: 20.megabytes
49
+ # validates_attached_size :avatar, message: "size must be between :minimum and :maximum bytes"
124
50
 
125
51
  def validates_attached_size(name, options = {})
126
52
 
@@ -141,12 +67,11 @@ module Attached
141
67
  message.gsub!(/:minimum/, number_to_size(minimum)) unless minimum == zero
142
68
  message.gsub!(/:maximum/, number_to_size(maximum)) unless maximum == infi
143
69
 
144
- validates_inclusion_of :"#{name}_size", :in => range, :message => message,
145
- :if => options[:if], :unless => options[:unless]
70
+ validates_inclusion_of :"#{name}_size", in: range, message: message,
71
+ if: options[:if], unless: options[:unless]
146
72
 
147
73
  end
148
74
 
149
-
150
75
  # Validates an attached extension in a specified set.
151
76
  #
152
77
  # Options:
@@ -155,11 +80,11 @@ module Attached
155
80
  #
156
81
  # Usage:
157
82
  #
158
- # validates_attached_extension :avatar, :is => 'png'
159
- # validates_attached_extension :avatar, :in => %w(png jpg)
160
- # validates_attached_extension :avatar, :in => [:png, :jpg]
161
- # validates_attached_extension :avatar, :in => %w(png jpg), :message => "extension must be :in"
162
- # validates_attached_extension :avatar, :in => %w(png jpg), :message => "extension must be :in"
83
+ # validates_attached_extension :avatar, is: 'png'
84
+ # validates_attached_extension :avatar, in: %w(png jpg)
85
+ # validates_attached_extension :avatar, in: [:png, :jpg]
86
+ # validates_attached_extension :avatar, in: %w(png jpg), message: "extension must be :in"
87
+ # validates_attached_extension :avatar, in: %w(png jpg), message: "extension must be :in"
163
88
 
164
89
  def validates_attached_extension(name, options = {})
165
90
 
@@ -170,11 +95,10 @@ module Attached
170
95
 
171
96
  range = options[:in].map { |element| ".#{element}" }
172
97
 
173
- validates_inclusion_of :"#{name}_extension", :in => range, :message => message,
174
- :if => options[:if], :unless => options[:unless]
98
+ validates_inclusion_of :"#{name}_extension", in: range, message: message,
99
+ if: options[:if], unless: options[:unless]
175
100
  end
176
101
 
177
-
178
102
  # Validates that an attachment is included.
179
103
  #
180
104
  # Options:
@@ -184,22 +108,20 @@ module Attached
184
108
  # Usage:
185
109
  #
186
110
  # validates_attached_presence :avatar
187
- # validates_attached_presence :avatar, :message => "must be attached"
111
+ # validates_attached_presence :avatar, message: "must be attached"
188
112
 
189
113
  def validates_attached_presence(name, options = {})
190
114
 
191
115
  message = options[:message]
192
116
  message ||= "must be attached"
193
117
 
194
- validates_presence_of :"#{name}_identifier", :message => message,
195
- :if => options[:if], :unless => options[:unless]
118
+ validates_presence_of :"#{name}_identifier", message: message,
119
+ if: options[:if], unless: options[:unless]
196
120
 
197
121
  end
198
122
 
199
-
200
123
  private
201
124
 
202
-
203
125
  # Convert a number to a human readable size.
204
126
  #
205
127
  # Usage:
@@ -213,9 +135,9 @@ module Attached
213
135
  return if number == 0.0 / 1.0
214
136
  return if number == 1.0 / 0.0
215
137
 
216
- singular = options['singular'] || 1
217
- base = options['base'] || 1024
218
- units = options['units'] || ["byte", "kilobyte", "megabyte", "gigabyte", "terabyte", "petabyte"]
138
+ singular = options[:singular] || 1
139
+ base = options[:base] || 1024
140
+ units = options[:units] || ["byte", "kilobyte", "megabyte", "gigabyte", "terabyte", "petabyte"]
219
141
 
220
142
  exponent = (Math.log(number) / Math.log(base)).floor
221
143
 
@@ -227,56 +149,6 @@ module Attached
227
149
  "#{number} #{unit}"
228
150
  end
229
151
 
230
-
231
152
  end
232
153
 
233
-
234
- module InstanceMethods
235
-
236
-
237
- # Create or access attachment.
238
- #
239
- # Usage:
240
- #
241
- # attachment_for :avatar
242
-
243
- def attachment_for(name)
244
- @_attached_attachments ||= {}
245
- @_attached_attachments[name] ||= Attachment.new(name, self, self.class.attached_options[name])
246
- end
247
-
248
-
249
- # Log and save all attached (using specified storage).
250
- #
251
- # Usage:
252
- #
253
- # before_save :save_attached
254
-
255
- def save_attached
256
- logger.info "[attached] save attached"
257
-
258
- self.class.attached_options.each do |name, options|
259
- attachment_for(name).save
260
- end
261
- end
262
-
263
-
264
- # Log and destroy all attached (using specified storage).
265
- #
266
- # Usage:
267
- #
268
- # before_save :destroy_attached
269
-
270
- def destroy_attached
271
- logger.info "[attached] destroy attached"
272
-
273
- self.class.attached_options.each do |name, options|
274
- attachment_for(name).destroy
275
- end
276
- end
277
-
278
-
279
- end
280
-
281
-
282
154
  end
@@ -1,18 +1,13 @@
1
1
  require 'open-uri'
2
-
3
2
  require 'identifier'
4
-
5
3
  require 'attached/storage'
6
4
  require 'attached/storage/error'
7
-
8
5
  require 'attached/processor'
9
6
  require 'attached/processor/error'
10
7
 
11
8
  module Attached
12
-
13
9
  class Attachment
14
10
 
15
-
16
11
  attr_reader :file
17
12
  attr_reader :name
18
13
  attr_reader :instance
@@ -33,25 +28,23 @@ module Attached
33
28
  attr_reader :storage
34
29
  attr_reader :host
35
30
 
36
-
37
31
  # A default set of options that can be extended to customize the path, storage or credentials.
38
32
  #
39
33
  # Usage:
40
34
  #
41
- # Attached::Attachment.options = { :storage => :fs, :path => ":name/:style/:identifier:extension" }
35
+ # Attached::Attachment.options = { storage: :fs, path: ":name/:style/:identifier:extension" }
42
36
 
43
37
  def self.options
44
38
  @options ||= {
45
- :path => ":name/:style/:identifier:extension",
46
- :missing => ":name/:style/missing:extension",
47
- :default => :original,
48
- :medium => :local,
49
- :credentials => {},
50
- :metadata => { 'Cache-Control' => 'max-age=3153600' }
39
+ path: ":name/:style/:identifier:extension",
40
+ missing: ":name/:style/missing:extension",
41
+ default: :original,
42
+ medium: :local,
43
+ credentials: {},
44
+ metadata: { 'Cache-Control' => 'max-age=3153600' }
51
45
  }
52
46
  end
53
47
 
54
-
55
48
  # Initialize a new attachment by providing a name and the instance the attachment is associated with.
56
49
  #
57
50
  # Parameters:
@@ -71,7 +64,7 @@ module Attached
71
64
  # * :aliases - An array of aliases
72
65
 
73
66
  def initialize(name, instance, options = {})
74
- options = self.class.options.clone.merge(options)
67
+ options = self.class.options.clone.merge(options)
75
68
 
76
69
  options[:styles] ||= {}
77
70
  options[:aliases] ||= []
@@ -79,11 +72,9 @@ module Attached
79
72
 
80
73
  @name = name
81
74
  @instance = instance
82
-
83
75
  @queue = {}
84
76
  @purge = []
85
77
  @errors = []
86
-
87
78
  @path = options[:path]
88
79
  @missing = options[:missing]
89
80
  @styles = options[:styles]
@@ -95,16 +86,12 @@ module Attached
95
86
  @processor = options[:processor]
96
87
  @aliases = options[:aliases]
97
88
  @alias = options[:alias]
98
-
99
89
  @aliases = self.aliases << self.alias if self.alias
100
90
  @processors = self.processors << self.processor if self.processor
101
-
102
91
  @storage = Attached::Storage.storage(self.medium, self.credentials)
103
-
104
92
  @host = self.storage.host
105
93
  end
106
94
 
107
-
108
95
  # Check if an attachment has been modified.
109
96
  #
110
97
  # Usage:
@@ -115,7 +102,6 @@ module Attached
115
102
  instance.changed.include? "#{name}_identifier"
116
103
  end
117
104
 
118
-
119
105
  # Check if an attachment is present.
120
106
  #
121
107
  # Usage:
@@ -126,7 +112,6 @@ module Attached
126
112
  not identifier.blank?
127
113
  end
128
114
 
129
-
130
115
  # Check if an attachment is present.
131
116
  #
132
117
  # Usage:
@@ -137,7 +122,6 @@ module Attached
137
122
  not identifier.blank?
138
123
  end
139
124
 
140
-
141
125
  # Custom setter for specifying an attachment.
142
126
  #
143
127
  # Usage:
@@ -148,7 +132,6 @@ module Attached
148
132
  @file = file.respond_to?(:tempfile) ? file.tempfile : file
149
133
  end
150
134
 
151
-
152
135
  # Assign an attachment to a file.
153
136
  #
154
137
  # Usage:
@@ -162,7 +145,6 @@ module Attached
162
145
  extension ||= file.extension if file.respond_to? :extension
163
146
  extension ||= File.extname(file.original_filename) if file.respond_to? :original_filename
164
147
  extension ||= File.extname(file.path) if file.respond_to? :path
165
-
166
148
  size ||= file.size if file.respond_to? :size
167
149
  size ||= File.size(file.path) if file.respond_to? :path
168
150
  end
@@ -176,7 +158,6 @@ module Attached
176
158
  process if file
177
159
  end
178
160
 
179
-
180
161
  # Assign an attachment to a file.
181
162
  #
182
163
  # Usage:
@@ -185,16 +166,12 @@ module Attached
185
166
 
186
167
  def url=(url)
187
168
  extension = File.extname(url)
188
-
189
169
  file = Tempfile.new(["", extension])
190
170
  file.binmode
191
-
192
171
  file << open(url).read
193
-
194
172
  self.assign(file)
195
173
  end
196
174
 
197
-
198
175
  # Save an attachment.
199
176
  #
200
177
  # Usage:
@@ -206,16 +183,13 @@ module Attached
206
183
  path = self.path(style)
207
184
  self.storage.save(file, path) if file and path
208
185
  end
209
-
210
186
  self.purge.each do |path|
211
187
  self.storage.destroy(path)
212
188
  end
213
-
214
189
  @purge = []
215
190
  @queue = {}
216
191
  end
217
192
 
218
-
219
193
  # Destroy an attachment.
220
194
  #
221
195
  # Usage:
@@ -229,12 +203,10 @@ module Attached
229
203
  self.storage.destroy(self.path(style))
230
204
  end
231
205
  end
232
-
233
206
  @purge = []
234
207
  @queue = {}
235
208
  end
236
209
 
237
-
238
210
  # Acesss the URL for an attachment.
239
211
  #
240
212
  # Usage:
@@ -245,14 +217,11 @@ module Attached
245
217
 
246
218
  def url(style = self.default)
247
219
  path = self.path(style)
248
-
249
220
  host = self.host
250
221
  host = self.aliases[path.hash % self.aliases.count] unless self.aliases.empty?
251
-
252
222
  return "#{host}#{path}"
253
223
  end
254
224
 
255
-
256
225
  # Access the path for an attachment.
257
226
  #
258
227
  # Usage:
@@ -263,16 +232,13 @@ module Attached
263
232
 
264
233
  def path(style = self.default)
265
234
  path = self.attached? ? @path.clone : @missing.clone
266
-
267
235
  path.gsub!(/:name/, name.to_s)
268
236
  path.gsub!(/:style/, style.to_s)
269
237
  path.gsub!(/:extension/, extension(style).to_s)
270
238
  path.gsub!(/:identifier/, identifier(style).to_s)
271
-
272
239
  return path
273
240
  end
274
241
 
275
-
276
242
  # Access the size for an attachment.
277
243
  #
278
244
  # Usage:
@@ -283,7 +249,6 @@ module Attached
283
249
  return instance_get(:size)
284
250
  end
285
251
 
286
-
287
252
  # Access the status for an attachment.
288
253
  #
289
254
  # Usage:
@@ -294,7 +259,6 @@ module Attached
294
259
  instance_get(:status)
295
260
  end
296
261
 
297
-
298
262
  # Access the extension for an attachment. It will first check the styles
299
263
  # to see if one is specified before checking the instance.
300
264
  #
@@ -310,7 +274,6 @@ module Attached
310
274
  instance_get(:extension)
311
275
  end
312
276
 
313
-
314
277
  # Access the identifier for an attachment. It will first check the styles
315
278
  # to see if one is specified before checking the instance.
316
279
  #
@@ -326,7 +289,6 @@ module Attached
326
289
  instance_get(:identifier)
327
290
  end
328
291
 
329
-
330
292
  # Set the size for an attachment.
331
293
  #
332
294
  # Usage:
@@ -337,7 +299,6 @@ module Attached
337
299
  instance_set(:size, size)
338
300
  end
339
301
 
340
-
341
302
  # Set the status for an attachment.
342
303
  #
343
304
  # Usage:
@@ -348,7 +309,6 @@ module Attached
348
309
  instance_set(:size, status)
349
310
  end
350
311
 
351
-
352
312
  # Set the extension for an attachment. It will act independently of the
353
313
  # defined style.
354
314
  #
@@ -360,7 +320,6 @@ module Attached
360
320
  instance_set(:extension, extension)
361
321
  end
362
322
 
363
-
364
323
  # Set the identifier for an attachment. It will act independently of the
365
324
  # defined style.
366
325
  #
@@ -372,19 +331,15 @@ module Attached
372
331
  instance_set(:identifier, identifier)
373
332
  end
374
333
 
375
-
376
334
  # Access the original file .
377
335
 
378
336
  def reprocess!
379
337
  self.file = self.storage.retrieve(self.path)
380
-
381
338
  process
382
339
  end
383
340
 
384
-
385
341
  private
386
342
 
387
-
388
343
  # Helper function for calling processors (will queue default).
389
344
  #
390
345
  # Usage:
@@ -393,22 +348,18 @@ module Attached
393
348
 
394
349
  def process
395
350
  self.queue[self.default] = self.file
396
-
397
351
  begin
398
-
399
352
  self.processors.each do |processor|
400
353
  processor = Attached::Processor.processor(processor)
401
354
  self.styles.each do |style, options|
402
355
  self.queue[style] = processor.process(self.queue[style] || self.file, options, self)
403
356
  end
404
357
  end
405
-
406
358
  rescue Attached::Processor::Error => error
407
359
  self.errors << error.message
408
360
  end
409
361
  end
410
362
 
411
-
412
363
  # Helper function for setting instance variables.
413
364
  #
414
365
  # Usage:
@@ -420,7 +371,6 @@ module Attached
420
371
  self.instance.send(setter, value) if instance.respond_to?(setter)
421
372
  end
422
373
 
423
-
424
374
  # Helper function for getting instance variables.
425
375
  #
426
376
  # Usage:
@@ -432,7 +382,5 @@ module Attached
432
382
  self.instance.send(getter) if instance.respond_to?(getter)
433
383
  end
434
384
 
435
-
436
385
  end
437
-
438
386
  end