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
@@ -2,6 +2,7 @@ require 'attached'
2
2
  require 'rails'
3
3
 
4
4
  module Attached
5
+
5
6
  class Railtie < Rails::Railtie
6
7
 
7
8
  rake_tasks do
@@ -14,5 +15,7 @@ module Attached
14
15
  ActiveRecord::ConnectionAdapters::TableDefinition.send :include, Attached::Definition
15
16
  end
16
17
  end
18
+
17
19
  end
18
- end
20
+
21
+ end
@@ -7,7 +7,6 @@ require 'attached/storage/local'
7
7
  module Attached
8
8
  module Storage
9
9
 
10
-
11
10
  # Create a storage object given a medium and credentials.
12
11
  #
13
12
  # Usage:
@@ -19,19 +18,16 @@ module Attached
19
18
  # Attached::Storage.storage(Attached::Storage::Custom.new)
20
19
 
21
20
  def self.storage(storage, credentials)
22
-
23
21
  return storage if storage.is_a? Attached::Storage::Base
24
-
25
22
  case storage
26
- when :aws then return Attached::Storage::AWS.new credentials
27
- when :google then return Attached::Storage::Google.new credentials
23
+ when :aws then return Attached::Storage::AWS.new credentials
24
+ when :google then return Attached::Storage::Google.new credentials
28
25
  when :rackspace then return Attached::Storage::Rackspace.new credentials
29
- when :local then return Attached::Storage::Local.new
26
+ when :local then return Attached::Storage::Local.new
30
27
  else raise "undefined storage '#{storage}'"
31
28
  end
32
-
33
29
  end
34
30
 
35
-
36
31
  end
37
- end
32
+
33
+ end
@@ -1,17 +1,14 @@
1
1
  require 'attached/storage/fog'
2
2
  require 'fog'
3
3
 
4
-
5
4
  module Attached
6
5
  module Storage
7
6
  class AWS < Fog
8
7
 
9
-
10
8
  attr_reader :bucket
11
9
  attr_reader :access_key_id
12
10
  attr_reader :secret_access_key
13
11
 
14
-
15
12
  # Create a new interface supporting save and destroy operations.
16
13
  #
17
14
  # Usage:
@@ -21,17 +18,13 @@ module Attached
21
18
 
22
19
  def initialize(credentials)
23
20
  super
24
-
25
21
  credentials = parse(credentials)
26
-
27
22
  @bucket = credentials[:bucket] || credentials['bucket']
28
23
  @access_key_id = credentials[:access_key_id] || credentials['access_key_id']
29
24
  @secret_access_key = credentials[:secret_access_key] || credentials['secret_access_key']
30
-
31
25
  raise "'bucket' must be specified if using 'aws' for storage" unless @bucket
32
26
  end
33
27
 
34
-
35
28
  # Access the host (e.g. bucket.s3.amazonaws.com) for a storage service.
36
29
  #
37
30
  # Usage:
@@ -42,24 +35,20 @@ module Attached
42
35
  "https://#{self.bucket}.s3.amazonaws.com/"
43
36
  end
44
37
 
45
-
46
38
  private
47
39
 
48
-
49
- def directory()
50
- connection.directories.get(self.bucket) || connection.directories.create(self.defaults.merge(:key => self.bucket))
51
- end
52
-
40
+ def directory()
41
+ connection.directories.get(self.bucket) || connection.directories.create(self.defaults.merge(key: self.bucket))
42
+ end
53
43
 
54
44
  def connection
55
45
  @connection ||= ::Fog::Storage.new(
56
- :aws_secret_access_key => self.secret_access_key,
57
- :aws_access_key_id => self.access_key_id,
58
- :provider => 'AWS'
46
+ aws_secret_access_key: self.secret_access_key,
47
+ aws_access_key_id: self.access_key_id,
48
+ provider: 'AWS'
59
49
  )
60
50
  end
61
51
 
62
-
63
52
  end
64
53
  end
65
54
  end
@@ -2,7 +2,6 @@ module Attached
2
2
  module Storage
3
3
  class Base
4
4
 
5
-
6
5
  # Helper for parsing credentials from a hash, file, or string.
7
6
  #
8
7
  # Usage:
@@ -20,7 +19,6 @@ module Attached
20
19
  end
21
20
  end
22
21
 
23
-
24
22
  # Helper for determining options from a file
25
23
  #
26
24
  # Usage:
@@ -32,7 +30,6 @@ module Attached
32
30
 
33
31
  def options(path)
34
32
  options = {}
35
-
36
33
  options[:content_type] = case File.extname(path)
37
34
  when /tiff/ then "image/tiff"
38
35
  when /tif/ then "image/tiff"
@@ -58,11 +55,9 @@ module Attached
58
55
  when /txt/ then "text/plain"
59
56
  when /csv/ then "text/csv"
60
57
  end
61
-
62
58
  return options
63
59
  end
64
60
 
65
-
66
61
  # Create a new file system storage interface supporting save and destroy operations.
67
62
  #
68
63
  # Usage:
@@ -73,7 +68,6 @@ module Attached
73
68
  raise NotImplementedError.new
74
69
  end
75
70
 
76
-
77
71
  # Access the host for a storage service or return null if local.
78
72
  #
79
73
  # Usage:
@@ -84,7 +78,6 @@ module Attached
84
78
  raise NotImplementedError.new
85
79
  end
86
80
 
87
-
88
81
  # Save a file to a given path (abstract).
89
82
  #
90
83
  # Parameters:
@@ -96,7 +89,6 @@ module Attached
96
89
  raise NotImplementedError.new
97
90
  end
98
91
 
99
-
100
92
  # Retrieve a file from a given path.
101
93
  #
102
94
  # Parameters:
@@ -107,7 +99,6 @@ module Attached
107
99
  raise NotImplementedError.new
108
100
  end
109
101
 
110
-
111
102
  # Destroy a file at a given path (abstract).
112
103
  #
113
104
  # Parameters:
@@ -120,4 +111,4 @@ module Attached
120
111
 
121
112
  end
122
113
  end
123
- end
114
+ end
@@ -3,4 +3,4 @@ module Attached
3
3
  class Error < StandardError
4
4
  end
5
5
  end
6
- end
6
+ end
@@ -1,98 +1,74 @@
1
1
  require 'attached/storage/base'
2
2
  require 'fog'
3
3
 
4
-
5
4
  module Attached
6
5
  module Storage
7
6
  class Fog < Base
8
7
 
9
-
10
8
  attr_reader :defaults
11
9
 
12
- attr_reader :bucket
13
- attr_reader :access_key_id
14
- attr_reader :secret_access_key
15
-
16
-
17
10
  # Create a new interface supporting save and destroy operations (should be overridden and called).
18
-
19
11
  def initialize(credentials)
20
- @defaults = { :public => true, :metadata => Attached::Attachment.options[:metadata] }
12
+ @defaults = { public: true, metadata: Attached::Attachment.options[:metadata] }
21
13
  end
22
14
 
23
-
24
15
  # Access the host for a storage service (must override).
25
16
  #
26
17
  # Usage:
27
18
  #
28
19
  # storage.host
29
-
30
20
  def host()
31
21
  raise NotImplementedError.new
32
22
  end
33
23
 
34
-
35
24
  # Save a file to a given path.
36
25
  #
37
26
  # Parameters:
38
27
  #
39
28
  # * file - The file to save.
40
29
  # * path - The path to save.
41
-
42
30
  def save(file, path)
43
31
  file = File.open(file.path)
44
- directory.files.create(self.options(path).merge(self.defaults.merge(:key => path, :body => file)))
32
+ directory.files.create(self.options(path).merge(self.defaults.merge(key: path, body: file)))
45
33
  file.close
46
34
  end
47
35
 
48
-
49
36
  # Retrieve a file from a given path.
50
37
  #
51
38
  # Parameters:
52
39
  #
53
40
  # * path - The path to retrieve.
54
-
55
41
  def retrieve(path)
56
42
  file = directory.files.get(path)
57
-
58
43
  body = file.body
59
-
60
44
  extname = File.extname(path)
61
45
  basename = File.basename(path, extname)
62
-
63
46
  file = Tempfile.new([basename, extname])
64
47
  file.binmode
65
48
  file.write(body)
66
49
  file.rewind
67
-
68
50
  file
69
51
  end
70
52
 
71
-
72
53
  # Destroy a file at a given path.
73
54
  #
74
55
  # Parameters:
75
56
  #
76
57
  # * path - The path to destroy.
77
-
78
58
  def destroy(path)
79
59
  directory.files.get(path).destroy if directory.files.head(path)
80
60
  end
81
61
 
82
-
83
62
  private
84
63
 
85
-
86
64
  def directory
87
65
  raise NotImplementedError.new
88
66
  end
89
67
 
90
-
91
68
  def connection
92
69
  raise NotImplementedError.new
93
70
  end
94
71
 
95
-
96
72
  end
97
73
  end
98
74
  end
@@ -1,65 +1,52 @@
1
1
  require 'attached/storage/fog'
2
2
 
3
-
4
3
  module Attached
5
4
  module Storage
6
5
  class Google < Fog
7
6
 
8
-
9
7
  attr_reader :bucket
10
8
  attr_reader :access_key_id
11
9
  attr_reader :secret_access_key
12
10
 
13
-
14
11
  # Create a new interface supporting save and destroy operations.
15
12
  #
16
13
  # Usage:
17
14
  #
18
15
  # Attached::Storage::Google.new()
19
16
  # Attached::Storage::Google.new("google.yml")
20
-
21
17
  def initialize(credentials)
22
18
  super
23
-
24
19
  credentials = parse(credentials)
25
20
 
26
-
27
21
  @bucket = credentials[:bucket] || credentials['bucket']
28
22
  @access_key_id = credentials[:access_key_id] || credentials['access_key_id']
29
23
  @secret_access_key = credentials[:secret_access_key] || credentials['secret_access_key']
30
-
31
24
  raise "'bucket' must be specified if using 'google' for storage" unless @bucket
32
25
  end
33
26
 
34
-
35
27
  # Access the host (e.g. https://attached.commondatastorage.googleapis.com/) for a storage service.
36
28
  #
37
29
  # Usage:
38
30
  #
39
31
  # storage.host
40
-
41
32
  def host()
42
33
  "https://#{self.bucket}.commondatastorage.googleapis.com/"
43
34
  end
44
35
 
45
-
46
36
  private
47
37
 
48
-
49
38
  def directory()
50
- connection.directories.get(self.bucket) || connection.directories.create(self.defaults.merge(:key => self.bucket))
39
+ connection.directories.get(self.bucket) || connection.directories.create(self.defaults.merge(key: self.bucket))
51
40
  end
52
41
 
53
-
54
42
  def connection
55
43
  @connection ||= ::Fog::Storage.new(
56
- :google_storage_secret_access_key => self.secret_access_key,
57
- :google_storage_access_key_id => self.access_key_id,
58
- :provider => 'Google'
44
+ google_storage_secret_access_key: self.secret_access_key,
45
+ google_storage_access_key_id: self.access_key_id,
46
+ provider: 'Google'
59
47
  )
60
48
  end
61
49
 
62
-
63
50
  end
64
51
  end
65
- end
52
+ end
@@ -1,14 +1,11 @@
1
1
  require 'attached/storage/base'
2
2
 
3
-
4
3
  module Attached
5
4
  module Storage
6
5
  class Local < Base
7
6
 
8
-
9
7
  attr_reader :mode
10
8
 
11
-
12
9
  # Create a new interface supporting save and destroy operations.
13
10
  #
14
11
  # Usage:
@@ -19,7 +16,6 @@ module Attached
19
16
  @mode = 0644
20
17
  end
21
18
 
22
-
23
19
  # Access the host (e.g. /system/) for a storage service.
24
20
  #
25
21
  # Usage:
@@ -30,7 +26,6 @@ module Attached
30
26
  "/system/"
31
27
  end
32
28
 
33
-
34
29
  # Save a file to a given path.
35
30
  #
36
31
  # Parameters:
@@ -41,9 +36,7 @@ module Attached
41
36
  def save(file, path)
42
37
  path = "#{Rails.root}/public/system/#{path}"
43
38
  dirname, basename = File.split(path)
44
-
45
39
  return if file.path == path
46
-
47
40
  begin
48
41
  FileUtils.mkdir_p(dirname)
49
42
  FileUtils.cp(file.path, path)
@@ -52,7 +45,6 @@ module Attached
52
45
  end
53
46
  end
54
47
 
55
-
56
48
  # Retrieve a file from a given path.
57
49
  #
58
50
  # Parameters:
@@ -61,11 +53,9 @@ module Attached
61
53
 
62
54
  def retrieve(path)
63
55
  path = "#{Rails.root}/public/system/#{path}"
64
-
65
56
  File.open(path)
66
57
  end
67
58
 
68
-
69
59
  # Destroy a file at a given path.
70
60
  #
71
61
  # Parameters:
@@ -75,14 +65,12 @@ module Attached
75
65
  def destroy(path)
76
66
  path = "#{Rails.root}/public/system/#{path}"
77
67
  dirname, basename = File.split(path)
78
-
79
68
  begin
80
69
  FileUtils.rm(path)
81
70
  rescue Errno::ENOENT
82
71
  end
83
72
  end
84
73
 
85
-
86
74
  end
87
75
  end
88
- end
76
+ end
@@ -1,17 +1,14 @@
1
1
  require 'attached/storage/base'
2
2
  require 'fog'
3
3
 
4
-
5
4
  module Attached
6
5
  module Storage
7
6
  class Rackspace < Fog
8
7
 
9
-
10
8
  attr_reader :container
11
9
  attr_reader :username
12
10
  attr_reader :api_key
13
11
 
14
-
15
12
  # Create a new interface supporting save and destroy operations.
16
13
  #
17
14
  # Usage:
@@ -21,17 +18,13 @@ module Attached
21
18
 
22
19
  def initialize(credentials)
23
20
  super
24
-
25
21
  credentials = parse(credentials)
26
-
27
22
  @container = credentials[:container] || credentials['container']
28
23
  @username = credentials[:username] || credentials['username']
29
24
  @api_key = credentials[:api_key] || credentials['api_key']
30
-
31
25
  raise "'container' must be specified if using 'rackspace' for storage" unless @container
32
26
  end
33
27
 
34
-
35
28
  # Access the host (e.g. https://storage.clouddrive.com/container) for a storage service.
36
29
  #
37
30
  # Usage:
@@ -42,24 +35,20 @@ module Attached
42
35
  "https://storage.clouddrive.com/#{self.container}/"
43
36
  end
44
37
 
45
-
46
38
  private
47
39
 
48
-
49
- def directory()
50
- connection.directories.get(self.container) || connection.directories.create(self.defaults.merge(:key => self.container))
51
- end
52
-
40
+ def directory()
41
+ connection.directories.get(self.container) || connection.directories.create(self.defaults.merge(key: self.container))
42
+ end
53
43
 
54
44
  def connection
55
45
  @connection ||= ::Fog::Storage.new(
56
- :rackspace_username => self.username,
57
- :rackspace_api_key => self.api_key,
58
- :provider => 'Rackspace'
46
+ rackspace_username: self.username,
47
+ rackspace_api_key: self.api_key,
48
+ provider: 'Rackspace'
59
49
  )
60
50
  end
61
51
 
62
-
63
52
  end
64
53
  end
65
- end
54
+ end