saphira 0.1.0 → 0.1.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (665) hide show
  1. data/app/assets/images/saphira/cancel.png +0 -0
  2. data/app/assets/images/saphira/com/adobe/air/logging/FileTarget.as +98 -0
  3. data/app/assets/images/saphira/com/adobe/crypto/HMAC.as +127 -0
  4. data/app/assets/images/saphira/com/adobe/crypto/MD5.as +281 -0
  5. data/app/assets/images/saphira/com/adobe/crypto/MD5Stream.as +402 -0
  6. data/app/assets/images/saphira/com/adobe/crypto/SHA1.as +271 -0
  7. data/app/assets/images/saphira/com/adobe/crypto/SHA224.as +257 -0
  8. data/app/assets/images/saphira/com/adobe/crypto/SHA256.as +261 -0
  9. data/app/assets/images/saphira/com/adobe/crypto/WSSEUsernameToken.as +114 -0
  10. data/app/assets/images/saphira/com/adobe/errors/IllegalStateError.as +63 -0
  11. data/app/assets/images/saphira/com/adobe/fileformats/vcard/Address.as +47 -0
  12. data/app/assets/images/saphira/com/adobe/fileformats/vcard/Email.as +39 -0
  13. data/app/assets/images/saphira/com/adobe/fileformats/vcard/Phone.as +39 -0
  14. data/app/assets/images/saphira/com/adobe/fileformats/vcard/VCard.as +54 -0
  15. data/app/assets/images/saphira/com/adobe/fileformats/vcard/VCardParser.as +246 -0
  16. data/app/assets/images/saphira/com/adobe/images/BitString.as +39 -0
  17. data/app/assets/images/saphira/com/adobe/images/JPGEncoder.as +648 -0
  18. data/app/assets/images/saphira/com/adobe/images/PNGEncoder.as +141 -0
  19. data/app/assets/images/saphira/com/adobe/net/DynamicURLLoader.as +55 -0
  20. data/app/assets/images/saphira/com/adobe/net/IURIResolver.as +76 -0
  21. data/app/assets/images/saphira/com/adobe/net/MimeTypeMap.as +196 -0
  22. data/app/assets/images/saphira/com/adobe/net/URI.as +2466 -0
  23. data/app/assets/images/saphira/com/adobe/net/URIEncodingBitmap.as +139 -0
  24. data/app/assets/images/saphira/com/adobe/net/proxies/RFC2817Socket.as +198 -0
  25. data/app/assets/images/saphira/com/adobe/protocols/dict/Database.as +34 -0
  26. data/app/assets/images/saphira/com/adobe/protocols/dict/Definition.as +39 -0
  27. data/app/assets/images/saphira/com/adobe/protocols/dict/Dict.as +328 -0
  28. data/app/assets/images/saphira/com/adobe/protocols/dict/DictionaryServer.as +28 -0
  29. data/app/assets/images/saphira/com/adobe/protocols/dict/MatchStrategy.as +34 -0
  30. data/app/assets/images/saphira/com/adobe/protocols/dict/Response.as +39 -0
  31. data/app/assets/images/saphira/com/adobe/protocols/dict/events/ConnectedEvent.as +14 -0
  32. data/app/assets/images/saphira/com/adobe/protocols/dict/events/DatabaseEvent.as +26 -0
  33. data/app/assets/images/saphira/com/adobe/protocols/dict/events/DefinitionEvent.as +27 -0
  34. data/app/assets/images/saphira/com/adobe/protocols/dict/events/DefinitionHeaderEvent.as +26 -0
  35. data/app/assets/images/saphira/com/adobe/protocols/dict/events/DictionaryServerEvent.as +26 -0
  36. data/app/assets/images/saphira/com/adobe/protocols/dict/events/DisconnectedEvent.as +14 -0
  37. data/app/assets/images/saphira/com/adobe/protocols/dict/events/ErrorEvent.as +37 -0
  38. data/app/assets/images/saphira/com/adobe/protocols/dict/events/MatchEvent.as +26 -0
  39. data/app/assets/images/saphira/com/adobe/protocols/dict/events/MatchStrategiesEvent.as +26 -0
  40. data/app/assets/images/saphira/com/adobe/protocols/dict/events/NoMatchEvent.as +14 -0
  41. data/app/assets/images/saphira/com/adobe/protocols/dict/util/CompleteResponseEvent.as +25 -0
  42. data/app/assets/images/saphira/com/adobe/protocols/dict/util/SocketHelper.as +49 -0
  43. data/app/assets/images/saphira/com/adobe/serialization/json/JSON.as +85 -0
  44. data/app/assets/images/saphira/com/adobe/serialization/json/JSONDecoder.as +221 -0
  45. data/app/assets/images/saphira/com/adobe/serialization/json/JSONEncoder.as +299 -0
  46. data/app/assets/images/saphira/com/adobe/serialization/json/JSONParseError.as +87 -0
  47. data/app/assets/images/saphira/com/adobe/serialization/json/JSONToken.as +104 -0
  48. data/app/assets/images/saphira/com/adobe/serialization/json/JSONTokenType.as +67 -0
  49. data/app/assets/images/saphira/com/adobe/serialization/json/JSONTokenizer.as +583 -0
  50. data/app/assets/images/saphira/com/adobe/utils/ArrayUtil.as +187 -0
  51. data/app/assets/images/saphira/com/adobe/utils/DateUtil.as +699 -0
  52. data/app/assets/images/saphira/com/adobe/utils/DictionaryUtil.as +87 -0
  53. data/app/assets/images/saphira/com/adobe/utils/IntUtil.as +99 -0
  54. data/app/assets/images/saphira/com/adobe/utils/NumberFormatter.as +74 -0
  55. data/app/assets/images/saphira/com/adobe/utils/StringUtil.as +270 -0
  56. data/app/assets/images/saphira/com/adobe/utils/XMLUtil.as +168 -0
  57. data/app/assets/images/saphira/com/adobe/webapis/ServiceBase.as +48 -0
  58. data/app/assets/images/saphira/com/adobe/webapis/URLLoaderBase.as +108 -0
  59. data/app/assets/images/saphira/com/adobe/webapis/events/ServiceEvent.as +75 -0
  60. data/app/assets/images/saphira/expressInstall.swf +0 -0
  61. data/app/assets/images/saphira/jcrop.gif +0 -0
  62. data/app/assets/images/saphira/uploadify.allglyphs.swf +0 -0
  63. data/app/assets/images/saphira/uploadify.fla +0 -0
  64. data/app/assets/images/saphira/uploadify.swf +0 -0
  65. data/app/assets/javascripts/saphira/image_variant_settings.js +2 -0
  66. data/app/assets/javascripts/saphira/image_variants.js +2 -0
  67. data/app/assets/javascripts/saphira/jquery.color.js +123 -0
  68. data/app/assets/javascripts/saphira/jquery.jcrop.js +1600 -0
  69. data/app/assets/javascripts/saphira/jquery.uploadify.v2.1.4.js +296 -0
  70. data/app/assets/javascripts/saphira/swfobject.js +4 -0
  71. data/app/assets/stylesheets/saphira/image_variant_settings.css +4 -0
  72. data/app/assets/stylesheets/saphira/image_variants.css +4 -0
  73. data/app/assets/stylesheets/saphira/jquery.jcrop.css +35 -0
  74. data/app/assets/stylesheets/saphira/uploadify.css +52 -0
  75. data/app/controllers/saphira/file_items_controller.rb +8 -1
  76. data/app/controllers/saphira/image_variant_settings_controller.rb +41 -0
  77. data/app/controllers/saphira/image_variants_controller.rb +85 -0
  78. data/app/helpers/saphira/image_variant_settings_helper.rb +4 -0
  79. data/app/helpers/saphira/image_variants_helper.rb +4 -0
  80. data/app/models/saphira/file_item.rb +43 -0
  81. data/app/models/saphira/image_variant.rb +4 -0
  82. data/app/views/layouts/saphira/application.html.erb +5 -0
  83. data/app/views/saphira/file_items/index.html.erb +4 -3
  84. data/app/views/saphira/file_items/show.html.erb +16 -1
  85. data/app/views/saphira/file_items/upload_files.html.erb +33 -0
  86. data/app/views/saphira/image_variant_settings/edit.html.erb +18 -0
  87. data/app/views/saphira/image_variant_settings/show.html.erb +55 -0
  88. data/app/views/saphira/image_variant_settings/update.html.erb +2 -0
  89. data/app/views/saphira/image_variants/_form.html.erb +29 -0
  90. data/app/views/saphira/image_variants/edit.html.erb +6 -0
  91. data/app/views/saphira/image_variants/index.html.erb +27 -0
  92. data/app/views/saphira/image_variants/new.html.erb +5 -0
  93. data/app/views/saphira/image_variants/show.html.erb +21 -0
  94. data/config/initializers/dragonfly.rb +10 -1
  95. data/config/initializers/helpers.rb +5 -0
  96. data/config/initializers/mini_magick.rb +1 -0
  97. data/config/routes.rb +5 -1
  98. data/db/migrate/20110909143712_create_saphira_image_variants.rb +11 -0
  99. data/lib/saphira/engine.rb +9 -0
  100. data/lib/saphira/helpers/form_builder.rb +19 -0
  101. data/lib/saphira/helpers/form_helper.rb +69 -0
  102. data/lib/saphira/middleware/flash_session_cookie.rb +23 -0
  103. data/lib/saphira/version.rb +1 -1
  104. data/test/dummy/config/initializers/pry.rb +1 -0
  105. data/test/dummy/db/development.sqlite3 +0 -0
  106. data/test/dummy/db/migrate/20110909143951_create_saphira_image_variants.rb +11 -0
  107. data/test/dummy/db/schema.rb +9 -1
  108. data/test/dummy/db/test.sqlite3 +0 -0
  109. data/test/dummy/features/manage_file_items.feature +2 -1
  110. data/test/dummy/features/manage_image_variants.feature +24 -0
  111. data/test/dummy/features/step_definitions/file_item_steps.rb +19 -0
  112. data/test/dummy/features/step_definitions/image_variant_steps.rb +31 -0
  113. data/test/dummy/features/support/env.rb +2 -0
  114. data/test/dummy/features/support/paths.rb +3 -0
  115. data/test/dummy/lib/tasks/custom.rake +3 -0
  116. data/test/dummy/log/development.log +54425 -0
  117. data/test/dummy/log/test.log +15514 -0
  118. data/test/dummy/system/files/development/2011/09/09/16_51_37_135_IMG_4704.JPG +0 -0
  119. data/test/dummy/system/files/development/2011/09/09/16_51_37_135_IMG_4704.JPG.meta +1 -0
  120. data/test/dummy/system/files/development/2011/09/09/16_54_54_247_IMG_4707.JPG +0 -0
  121. data/test/dummy/system/files/development/2011/09/09/16_54_54_247_IMG_4707.JPG.meta +1 -0
  122. data/test/dummy/system/files/development/2011/09/09/18_26_01_701_IMG_4712.JPG +0 -0
  123. data/test/dummy/system/files/development/2011/09/09/18_26_01_701_IMG_4712.JPG.meta +1 -0
  124. data/test/dummy/system/files/development/2011/09/20/10_54_49_597_G_rtz1_2040_1_CMYK.jpg +0 -0
  125. data/test/dummy/system/files/development/2011/09/20/10_54_49_597_G_rtz1_2040_1_CMYK.jpg.meta +1 -0
  126. data/test/dummy/system/files/development/2011/09/20/12_44_23_621_DSC02119.JPG +0 -0
  127. data/test/dummy/system/files/development/2011/09/20/12_44_23_621_DSC02119.JPG.meta +1 -0
  128. data/test/dummy/system/files/development/2011/09/20/12_46_58_387_DSC02119.JPG +0 -0
  129. data/test/dummy/system/files/development/2011/09/20/12_46_58_387_DSC02119.JPG.meta +1 -0
  130. data/test/dummy/system/files/development/2011/09/20/12_49_02_756_DSC02120.JPG +0 -0
  131. data/test/dummy/system/files/development/2011/09/20/12_49_02_756_DSC02120.JPG.meta +1 -0
  132. data/test/dummy/system/files/development/2011/09/20/12_50_19_290_G_rtz1_0989_2_CMYK.jpg +0 -0
  133. data/test/dummy/system/files/development/2011/09/20/12_50_19_290_G_rtz1_0989_2_CMYK.jpg.meta +1 -0
  134. data/test/dummy/system/files/development/2011/09/20/12_50_23_519_G_rtz1_1628_1_CMYK.jpg +0 -0
  135. data/test/dummy/system/files/development/2011/09/20/12_50_23_519_G_rtz1_1628_1_CMYK.jpg.meta +1 -0
  136. data/test/dummy/system/files/development/2011/09/20/12_50_26_44_G_rtz1_1663_CMYK.jpg +0 -0
  137. data/test/dummy/system/files/development/2011/09/20/12_50_26_44_G_rtz1_1663_CMYK.jpg.meta +1 -0
  138. data/test/dummy/system/files/development/2011/09/20/12_50_27_954_G_rtz1_2040_1_CMYK.jpg +0 -0
  139. data/test/dummy/system/files/development/2011/09/20/12_50_27_954_G_rtz1_2040_1_CMYK.jpg.meta +1 -0
  140. data/test/dummy/system/files/development/2011/09/20/12_54_44_373_G_rtz1_1628_1_CMYK.jpg +0 -0
  141. data/test/dummy/system/files/development/2011/09/20/12_54_44_373_G_rtz1_1628_1_CMYK.jpg.meta +1 -0
  142. data/test/dummy/system/files/development/2011/09/20/12_54_46_193_G_rtz1_1663_CMYK.jpg +0 -0
  143. data/test/dummy/system/files/development/2011/09/20/12_54_46_193_G_rtz1_1663_CMYK.jpg.meta +1 -0
  144. data/test/dummy/system/files/development/2011/09/20/12_54_49_17_G_rtz1_2040_1_CMYK.jpg +0 -0
  145. data/test/dummy/system/files/development/2011/09/20/12_54_49_17_G_rtz1_2040_1_CMYK.jpg.meta +1 -0
  146. data/test/dummy/system/files/test/2011/09/09/09_58_11_308_eos_550d_wrong_orientation.jpg +0 -0
  147. data/test/dummy/system/files/test/2011/09/09/09_58_11_308_eos_550d_wrong_orientation.jpg.meta +1 -0
  148. data/test/dummy/system/files/test/2011/09/09/09_58_12_5_some_text.txt +99 -0
  149. data/test/dummy/system/files/test/2011/09/09/09_58_12_5_some_text.txt.meta +1 -0
  150. data/test/dummy/system/files/test/2011/09/09/10_00_33_577_eos_550d_wrong_orientation.jpg +0 -0
  151. data/test/dummy/system/files/test/2011/09/09/10_00_33_577_eos_550d_wrong_orientation.jpg.meta +1 -0
  152. data/test/dummy/system/files/test/2011/09/09/10_00_34_245_some_text.txt +99 -0
  153. data/test/dummy/system/files/test/2011/09/09/10_00_34_245_some_text.txt.meta +1 -0
  154. data/test/dummy/system/files/test/2011/09/09/10_01_37_537_eos_550d_wrong_orientation.jpg +0 -0
  155. data/test/dummy/system/files/test/2011/09/09/10_01_37_537_eos_550d_wrong_orientation.jpg.meta +1 -0
  156. data/test/dummy/system/files/test/2011/09/09/10_01_38_188_some_text.txt +99 -0
  157. data/test/dummy/system/files/test/2011/09/09/10_01_38_188_some_text.txt.meta +1 -0
  158. data/test/dummy/system/files/test/2011/09/09/10_02_53_234_eos_550d_wrong_orientation.jpg +0 -0
  159. data/test/dummy/system/files/test/2011/09/09/10_02_53_234_eos_550d_wrong_orientation.jpg.meta +1 -0
  160. data/test/dummy/system/files/test/2011/09/09/10_02_53_906_some_text.txt +99 -0
  161. data/test/dummy/system/files/test/2011/09/09/10_02_53_906_some_text.txt.meta +1 -0
  162. data/test/dummy/system/files/test/2011/09/09/10_02_56_34_eos_550d_wrong_orientation.jpg +0 -0
  163. data/test/dummy/system/files/test/2011/09/09/10_02_56_34_eos_550d_wrong_orientation.jpg.meta +1 -0
  164. data/test/dummy/system/files/test/2011/09/09/10_04_33_416_eos_550d_wrong_orientation.jpg +0 -0
  165. data/test/dummy/system/files/test/2011/09/09/10_04_33_416_eos_550d_wrong_orientation.jpg.meta +1 -0
  166. data/test/dummy/system/files/test/2011/09/09/10_04_34_69_some_text.txt +99 -0
  167. data/test/dummy/system/files/test/2011/09/09/10_04_34_69_some_text.txt.meta +1 -0
  168. data/test/dummy/system/files/test/2011/09/09/10_05_05_475_eos_550d_wrong_orientation.jpg +0 -0
  169. data/test/dummy/system/files/test/2011/09/09/10_05_05_475_eos_550d_wrong_orientation.jpg.meta +1 -0
  170. data/test/dummy/system/files/test/2011/09/09/10_05_06_447_some_text.txt +99 -0
  171. data/test/dummy/system/files/test/2011/09/09/10_05_06_447_some_text.txt.meta +1 -0
  172. data/test/dummy/system/files/test/2011/09/09/10_05_08_609_eos_550d_wrong_orientation.jpg +0 -0
  173. data/test/dummy/system/files/test/2011/09/09/10_05_08_609_eos_550d_wrong_orientation.jpg.meta +1 -0
  174. data/test/dummy/system/files/test/2011/09/09/10_06_34_64_eos_550d_wrong_orientation.jpg +0 -0
  175. data/test/dummy/system/files/test/2011/09/09/10_06_34_64_eos_550d_wrong_orientation.jpg.meta +1 -0
  176. data/test/dummy/system/files/test/2011/09/09/10_06_34_786_some_text.txt +99 -0
  177. data/test/dummy/system/files/test/2011/09/09/10_06_34_786_some_text.txt.meta +1 -0
  178. data/test/dummy/system/files/test/2011/09/09/10_06_49_889_eos_550d_wrong_orientation.jpg +0 -0
  179. data/test/dummy/system/files/test/2011/09/09/10_06_49_889_eos_550d_wrong_orientation.jpg.meta +1 -0
  180. data/test/dummy/system/files/test/2011/09/09/10_06_50_544_some_text.txt +99 -0
  181. data/test/dummy/system/files/test/2011/09/09/10_06_50_544_some_text.txt.meta +1 -0
  182. data/test/dummy/system/files/test/2011/09/09/10_08_33_687_eos_550d_wrong_orientation.jpg +0 -0
  183. data/test/dummy/system/files/test/2011/09/09/10_08_33_687_eos_550d_wrong_orientation.jpg.meta +1 -0
  184. data/test/dummy/system/files/test/2011/09/09/10_08_34_411_some_text.txt +99 -0
  185. data/test/dummy/system/files/test/2011/09/09/10_08_34_411_some_text.txt.meta +1 -0
  186. data/test/dummy/system/files/test/2011/09/09/10_09_07_292_eos_550d_wrong_orientation.jpg +0 -0
  187. data/test/dummy/system/files/test/2011/09/09/10_09_07_292_eos_550d_wrong_orientation.jpg.meta +1 -0
  188. data/test/dummy/system/files/test/2011/09/09/10_09_07_624_some_text.txt +99 -0
  189. data/test/dummy/system/files/test/2011/09/09/10_09_07_624_some_text.txt.meta +1 -0
  190. data/test/dummy/system/files/test/2011/09/09/10_09_23_158_eos_550d_wrong_orientation.jpg +0 -0
  191. data/test/dummy/system/files/test/2011/09/09/10_09_23_158_eos_550d_wrong_orientation.jpg.meta +1 -0
  192. data/test/dummy/system/files/test/2011/09/09/10_09_23_495_some_text.txt +99 -0
  193. data/test/dummy/system/files/test/2011/09/09/10_09_23_495_some_text.txt.meta +1 -0
  194. data/test/dummy/system/files/test/2011/09/09/10_10_43_742_eos_550d_wrong_orientation.jpg +0 -0
  195. data/test/dummy/system/files/test/2011/09/09/10_10_43_742_eos_550d_wrong_orientation.jpg.meta +1 -0
  196. data/test/dummy/system/files/test/2011/09/09/10_10_44_475_some_text.txt +99 -0
  197. data/test/dummy/system/files/test/2011/09/09/10_10_44_475_some_text.txt.meta +1 -0
  198. data/test/dummy/system/files/test/2011/09/09/10_10_59_650_eos_550d_wrong_orientation.jpg +0 -0
  199. data/test/dummy/system/files/test/2011/09/09/10_10_59_650_eos_550d_wrong_orientation.jpg.meta +1 -0
  200. data/test/dummy/system/files/test/2011/09/09/10_11_00_294_some_text.txt +99 -0
  201. data/test/dummy/system/files/test/2011/09/09/10_11_00_294_some_text.txt.meta +1 -0
  202. data/test/dummy/system/files/test/2011/09/09/10_21_22_164_eos_550d_wrong_orientation.jpg +0 -0
  203. data/test/dummy/system/files/test/2011/09/09/10_21_22_164_eos_550d_wrong_orientation.jpg.meta +1 -0
  204. data/test/dummy/system/files/test/2011/09/09/10_21_23_90_some_text.txt +99 -0
  205. data/test/dummy/system/files/test/2011/09/09/10_21_23_90_some_text.txt.meta +1 -0
  206. data/test/dummy/system/files/test/2011/09/09/10_21_38_479_eos_550d_wrong_orientation.jpg +0 -0
  207. data/test/dummy/system/files/test/2011/09/09/10_21_38_479_eos_550d_wrong_orientation.jpg.meta +1 -0
  208. data/test/dummy/system/files/test/2011/09/09/10_21_39_225_some_text.txt +99 -0
  209. data/test/dummy/system/files/test/2011/09/09/10_21_39_225_some_text.txt.meta +1 -0
  210. data/test/dummy/system/files/test/2011/09/09/10_21_55_560_eos_550d_wrong_orientation.jpg +0 -0
  211. data/test/dummy/system/files/test/2011/09/09/10_21_55_560_eos_550d_wrong_orientation.jpg.meta +1 -0
  212. data/test/dummy/system/files/test/2011/09/09/10_21_56_332_some_text.txt +99 -0
  213. data/test/dummy/system/files/test/2011/09/09/10_21_56_332_some_text.txt.meta +1 -0
  214. data/test/dummy/system/files/test/2011/09/09/10_25_03_122_eos_550d_wrong_orientation.jpg +0 -0
  215. data/test/dummy/system/files/test/2011/09/09/10_25_03_122_eos_550d_wrong_orientation.jpg.meta +1 -0
  216. data/test/dummy/system/files/test/2011/09/09/10_25_04_108_some_text.txt +99 -0
  217. data/test/dummy/system/files/test/2011/09/09/10_25_04_108_some_text.txt.meta +1 -0
  218. data/test/dummy/system/files/test/2011/09/09/10_25_42_747_eos_550d_wrong_orientation.jpg +0 -0
  219. data/test/dummy/system/files/test/2011/09/09/10_25_42_747_eos_550d_wrong_orientation.jpg.meta +1 -0
  220. data/test/dummy/system/files/test/2011/09/09/10_25_43_407_some_text.txt +99 -0
  221. data/test/dummy/system/files/test/2011/09/09/10_25_43_407_some_text.txt.meta +1 -0
  222. data/test/dummy/system/files/test/2011/09/09/10_25_58_973_eos_550d_wrong_orientation.jpg +0 -0
  223. data/test/dummy/system/files/test/2011/09/09/10_25_58_973_eos_550d_wrong_orientation.jpg.meta +1 -0
  224. data/test/dummy/system/files/test/2011/09/09/10_41_33_628_some_text.txt +99 -0
  225. data/test/dummy/system/files/test/2011/09/09/10_41_33_628_some_text.txt.meta +1 -0
  226. data/test/dummy/system/files/test/2011/09/09/10_42_34_411_eos_550d_wrong_orientation.jpg +0 -0
  227. data/test/dummy/system/files/test/2011/09/09/10_42_34_411_eos_550d_wrong_orientation.jpg.meta +1 -0
  228. data/test/dummy/system/files/test/2011/09/09/10_42_35_234_some_text.txt +99 -0
  229. data/test/dummy/system/files/test/2011/09/09/10_42_35_234_some_text.txt.meta +1 -0
  230. data/test/dummy/system/files/test/2011/09/09/10_42_59_862_eos_550d_wrong_orientation.jpg +0 -0
  231. data/test/dummy/system/files/test/2011/09/09/10_42_59_862_eos_550d_wrong_orientation.jpg.meta +1 -0
  232. data/test/dummy/system/files/test/2011/09/09/10_44_16_115_some_text.txt +99 -0
  233. data/test/dummy/system/files/test/2011/09/09/10_44_16_115_some_text.txt.meta +1 -0
  234. data/test/dummy/system/files/test/2011/09/09/10_44_32_193_eos_550d_wrong_orientation.jpg +0 -0
  235. data/test/dummy/system/files/test/2011/09/09/10_44_32_193_eos_550d_wrong_orientation.jpg.meta +1 -0
  236. data/test/dummy/system/files/test/2011/09/09/10_44_33_135_some_text.txt +99 -0
  237. data/test/dummy/system/files/test/2011/09/09/10_44_33_135_some_text.txt.meta +1 -0
  238. data/test/dummy/system/files/test/2011/09/09/10_45_51_831_eos_550d_wrong_orientation.jpg +0 -0
  239. data/test/dummy/system/files/test/2011/09/09/10_45_51_831_eos_550d_wrong_orientation.jpg.meta +1 -0
  240. data/test/dummy/system/files/test/2011/09/09/10_51_00_989_some_text.txt +99 -0
  241. data/test/dummy/system/files/test/2011/09/09/10_51_00_989_some_text.txt.meta +1 -0
  242. data/test/dummy/system/files/test/2011/09/09/10_51_16_925_eos_550d_wrong_orientation.jpg +0 -0
  243. data/test/dummy/system/files/test/2011/09/09/10_51_16_925_eos_550d_wrong_orientation.jpg.meta +1 -0
  244. data/test/dummy/system/files/test/2011/09/09/10_51_17_404_some_text.txt +99 -0
  245. data/test/dummy/system/files/test/2011/09/09/10_51_17_404_some_text.txt.meta +1 -0
  246. data/test/dummy/system/files/test/2011/09/09/10_51_33_795_eos_550d_wrong_orientation.jpg +0 -0
  247. data/test/dummy/system/files/test/2011/09/09/10_51_33_795_eos_550d_wrong_orientation.jpg.meta +1 -0
  248. data/test/dummy/system/files/test/2011/09/09/10_51_34_266_some_text.txt +99 -0
  249. data/test/dummy/system/files/test/2011/09/09/10_51_34_266_some_text.txt.meta +1 -0
  250. data/test/dummy/system/files/test/2011/09/09/11_55_24_773_eos_550d_wrong_orientation.jpg +0 -0
  251. data/test/dummy/system/files/test/2011/09/09/11_55_24_773_eos_550d_wrong_orientation.jpg.meta +1 -0
  252. data/test/dummy/system/files/test/2011/09/09/11_55_25_251_some_text.txt +99 -0
  253. data/test/dummy/system/files/test/2011/09/09/11_55_25_251_some_text.txt.meta +1 -0
  254. data/test/dummy/system/files/test/2011/09/09/12_29_13_951_eos_550d_wrong_orientation.jpg +0 -0
  255. data/test/dummy/system/files/test/2011/09/09/12_29_13_951_eos_550d_wrong_orientation.jpg.meta +1 -0
  256. data/test/dummy/system/files/test/2011/09/09/12_29_14_948_some_text.txt +99 -0
  257. data/test/dummy/system/files/test/2011/09/09/12_29_14_948_some_text.txt.meta +1 -0
  258. data/test/dummy/system/files/test/2011/09/09/12_29_31_320_eos_550d_wrong_orientation.jpg +0 -0
  259. data/test/dummy/system/files/test/2011/09/09/12_29_31_320_eos_550d_wrong_orientation.jpg.meta +1 -0
  260. data/test/dummy/system/files/test/2011/09/09/12_29_45_558_eos_550d_wrong_orientation.jpg +0 -0
  261. data/test/dummy/system/files/test/2011/09/09/12_29_45_558_eos_550d_wrong_orientation.jpg.meta +1 -0
  262. data/test/dummy/system/files/test/2011/09/09/12_29_46_46_some_text.txt +99 -0
  263. data/test/dummy/system/files/test/2011/09/09/12_29_46_46_some_text.txt.meta +1 -0
  264. data/test/dummy/system/files/test/2011/09/09/12_30_02_482_eos_550d_wrong_orientation.jpg +0 -0
  265. data/test/dummy/system/files/test/2011/09/09/12_30_02_482_eos_550d_wrong_orientation.jpg.meta +1 -0
  266. data/test/dummy/system/files/test/2011/09/09/12_30_02_976_some_text.txt +99 -0
  267. data/test/dummy/system/files/test/2011/09/09/12_30_02_976_some_text.txt.meta +1 -0
  268. data/test/dummy/system/files/test/2011/09/09/12_30_28_555_eos_550d_wrong_orientation.jpg +0 -0
  269. data/test/dummy/system/files/test/2011/09/09/12_30_28_555_eos_550d_wrong_orientation.jpg.meta +1 -0
  270. data/test/dummy/system/files/test/2011/09/09/12_30_29_27_some_text.txt +99 -0
  271. data/test/dummy/system/files/test/2011/09/09/12_30_29_27_some_text.txt.meta +1 -0
  272. data/test/dummy/system/files/test/2011/09/09/12_32_59_361_eos_550d_wrong_orientation.jpg +0 -0
  273. data/test/dummy/system/files/test/2011/09/09/12_32_59_361_eos_550d_wrong_orientation.jpg.meta +1 -0
  274. data/test/dummy/system/files/test/2011/09/09/12_32_59_829_some_text.txt +99 -0
  275. data/test/dummy/system/files/test/2011/09/09/12_32_59_829_some_text.txt.meta +1 -0
  276. data/test/dummy/system/files/test/2011/09/09/12_33_28_536_some_text.txt +99 -0
  277. data/test/dummy/system/files/test/2011/09/09/12_33_28_536_some_text.txt.meta +1 -0
  278. data/test/dummy/system/files/test/2011/09/09/12_33_28_53_eos_550d_wrong_orientation.jpg +0 -0
  279. data/test/dummy/system/files/test/2011/09/09/12_33_28_53_eos_550d_wrong_orientation.jpg.meta +1 -0
  280. data/test/dummy/system/files/test/2011/09/09/16_30_50_311_eos_550d_wrong_orientation.jpg +0 -0
  281. data/test/dummy/system/files/test/2011/09/09/16_30_50_311_eos_550d_wrong_orientation.jpg.meta +1 -0
  282. data/test/dummy/system/files/test/2011/09/09/16_42_46_830_eos_550d_wrong_orientation.jpg +0 -0
  283. data/test/dummy/system/files/test/2011/09/09/16_42_46_830_eos_550d_wrong_orientation.jpg.meta +1 -0
  284. data/test/dummy/system/files/test/2011/09/09/16_43_08_154_eos_550d_wrong_orientation.jpg +0 -0
  285. data/test/dummy/system/files/test/2011/09/09/16_43_08_154_eos_550d_wrong_orientation.jpg.meta +1 -0
  286. data/test/dummy/system/files/test/2011/09/09/16_43_08_639_some_text.txt +99 -0
  287. data/test/dummy/system/files/test/2011/09/09/16_43_08_639_some_text.txt.meta +1 -0
  288. data/test/dummy/system/files/test/2011/09/09/16_43_39_562_eos_550d_wrong_orientation.jpg +0 -0
  289. data/test/dummy/system/files/test/2011/09/09/16_43_39_562_eos_550d_wrong_orientation.jpg.meta +1 -0
  290. data/test/dummy/system/files/test/2011/09/09/16_44_16_988_eos_550d_wrong_orientation.jpg +0 -0
  291. data/test/dummy/system/files/test/2011/09/09/16_44_16_988_eos_550d_wrong_orientation.jpg.meta +1 -0
  292. data/test/dummy/system/files/test/2011/09/09/16_44_44_6_eos_550d_wrong_orientation.jpg +0 -0
  293. data/test/dummy/system/files/test/2011/09/09/16_44_44_6_eos_550d_wrong_orientation.jpg.meta +1 -0
  294. data/test/dummy/system/files/test/2011/09/09/16_45_22_203_eos_550d_wrong_orientation.jpg +0 -0
  295. data/test/dummy/system/files/test/2011/09/09/16_45_22_203_eos_550d_wrong_orientation.jpg.meta +1 -0
  296. data/test/dummy/system/files/test/2011/09/09/16_45_22_694_some_text.txt +99 -0
  297. data/test/dummy/system/files/test/2011/09/09/16_45_22_694_some_text.txt.meta +1 -0
  298. data/test/dummy/system/files/test/2011/09/09/16_46_44_693_eos_550d_wrong_orientation.jpg +0 -0
  299. data/test/dummy/system/files/test/2011/09/09/16_46_44_693_eos_550d_wrong_orientation.jpg.meta +1 -0
  300. data/test/dummy/system/files/test/2011/09/09/16_48_14_349_eos_550d_wrong_orientation.jpg +0 -0
  301. data/test/dummy/system/files/test/2011/09/09/16_48_14_349_eos_550d_wrong_orientation.jpg.meta +1 -0
  302. data/test/dummy/system/files/test/2011/09/09/16_55_36_775_eos_550d_wrong_orientation.jpg +0 -0
  303. data/test/dummy/system/files/test/2011/09/09/16_55_36_775_eos_550d_wrong_orientation.jpg.meta +1 -0
  304. data/test/dummy/system/files/test/2011/09/09/16_56_10_433_some_text.txt +99 -0
  305. data/test/dummy/system/files/test/2011/09/09/16_56_10_433_some_text.txt.meta +1 -0
  306. data/test/dummy/system/files/test/2011/09/09/16_56_13_781_eos_550d_wrong_orientation.jpg +0 -0
  307. data/test/dummy/system/files/test/2011/09/09/16_56_13_781_eos_550d_wrong_orientation.jpg.meta +1 -0
  308. data/test/dummy/system/files/test/2011/09/09/16_57_19_642_eos_550d_wrong_orientation.jpg +0 -0
  309. data/test/dummy/system/files/test/2011/09/09/16_57_19_642_eos_550d_wrong_orientation.jpg.meta +1 -0
  310. data/test/dummy/system/files/test/2011/09/09/16_57_20_221_some_text.txt +99 -0
  311. data/test/dummy/system/files/test/2011/09/09/16_57_20_221_some_text.txt.meta +1 -0
  312. data/test/dummy/system/files/test/2011/09/09/16_57_22_478_eos_550d_wrong_orientation.jpg +0 -0
  313. data/test/dummy/system/files/test/2011/09/09/16_57_22_478_eos_550d_wrong_orientation.jpg.meta +1 -0
  314. data/test/dummy/system/files/test/2011/09/09/17_01_16_272_eos_550d_wrong_orientation.jpg +0 -0
  315. data/test/dummy/system/files/test/2011/09/09/17_01_16_272_eos_550d_wrong_orientation.jpg.meta +1 -0
  316. data/test/dummy/system/files/test/2011/09/09/17_01_16_773_some_text.txt +99 -0
  317. data/test/dummy/system/files/test/2011/09/09/17_01_16_773_some_text.txt.meta +1 -0
  318. data/test/dummy/system/files/test/2011/09/09/17_01_19_26_eos_550d_wrong_orientation.jpg +0 -0
  319. data/test/dummy/system/files/test/2011/09/09/17_01_19_26_eos_550d_wrong_orientation.jpg.meta +1 -0
  320. data/test/dummy/system/files/test/2011/09/09/17_02_57_539_eos_550d_wrong_orientation.jpg +0 -0
  321. data/test/dummy/system/files/test/2011/09/09/17_02_57_539_eos_550d_wrong_orientation.jpg.meta +1 -0
  322. data/test/dummy/system/files/test/2011/09/09/17_02_58_21_some_text.txt +99 -0
  323. data/test/dummy/system/files/test/2011/09/09/17_02_58_21_some_text.txt.meta +1 -0
  324. data/test/dummy/system/files/test/2011/09/09/17_03_00_478_eos_550d_wrong_orientation.jpg +0 -0
  325. data/test/dummy/system/files/test/2011/09/09/17_03_00_478_eos_550d_wrong_orientation.jpg.meta +1 -0
  326. data/test/dummy/system/files/test/2011/09/09/23_10_31_776_eos_550d_wrong_orientation.jpg +0 -0
  327. data/test/dummy/system/files/test/2011/09/09/23_10_31_776_eos_550d_wrong_orientation.jpg.meta +1 -0
  328. data/test/dummy/system/files/test/2011/09/09/23_10_32_270_some_text.txt +99 -0
  329. data/test/dummy/system/files/test/2011/09/09/23_10_32_270_some_text.txt.meta +1 -0
  330. data/test/dummy/system/files/test/2011/09/09/23_10_34_701_eos_550d_wrong_orientation.jpg +0 -0
  331. data/test/dummy/system/files/test/2011/09/09/23_10_34_701_eos_550d_wrong_orientation.jpg.meta +1 -0
  332. data/test/dummy/system/files/test/2011/09/09/23_11_16_395_eos_550d_wrong_orientation.jpg +0 -0
  333. data/test/dummy/system/files/test/2011/09/09/23_11_16_395_eos_550d_wrong_orientation.jpg.meta +1 -0
  334. data/test/dummy/system/files/test/2011/09/09/23_11_16_888_some_text.txt +99 -0
  335. data/test/dummy/system/files/test/2011/09/09/23_11_16_888_some_text.txt.meta +1 -0
  336. data/test/dummy/system/files/test/2011/09/09/23_11_19_298_eos_550d_wrong_orientation.jpg +0 -0
  337. data/test/dummy/system/files/test/2011/09/09/23_11_19_298_eos_550d_wrong_orientation.jpg.meta +1 -0
  338. data/test/dummy/system/files/test/2011/09/09/23_15_26_261_eos_550d_wrong_orientation.jpg +0 -0
  339. data/test/dummy/system/files/test/2011/09/09/23_15_26_261_eos_550d_wrong_orientation.jpg.meta +1 -0
  340. data/test/dummy/system/files/test/2011/09/09/23_15_26_928_some_text.txt +99 -0
  341. data/test/dummy/system/files/test/2011/09/09/23_15_26_928_some_text.txt.meta +1 -0
  342. data/test/dummy/system/files/test/2011/09/09/23_15_29_344_eos_550d_wrong_orientation.jpg +0 -0
  343. data/test/dummy/system/files/test/2011/09/09/23_15_29_344_eos_550d_wrong_orientation.jpg.meta +1 -0
  344. data/test/dummy/system/files/test/2011/09/09/23_16_21_552_eos_550d_wrong_orientation.jpg +0 -0
  345. data/test/dummy/system/files/test/2011/09/09/23_16_21_552_eos_550d_wrong_orientation.jpg.meta +1 -0
  346. data/test/dummy/system/files/test/2011/09/09/23_16_22_835_eos_550d_wrong_orientation.jpg +0 -0
  347. data/test/dummy/system/files/test/2011/09/09/23_16_22_835_eos_550d_wrong_orientation.jpg.meta +1 -0
  348. data/test/dummy/system/files/test/2011/09/09/23_18_27_524_eos_550d_wrong_orientation.jpg +0 -0
  349. data/test/dummy/system/files/test/2011/09/09/23_18_27_524_eos_550d_wrong_orientation.jpg.meta +1 -0
  350. data/test/dummy/system/files/test/2011/09/09/23_18_28_908_eos_550d_wrong_orientation.jpg +0 -0
  351. data/test/dummy/system/files/test/2011/09/09/23_18_28_908_eos_550d_wrong_orientation.jpg.meta +1 -0
  352. data/test/dummy/system/files/test/2011/09/09/23_19_14_156_eos_550d_wrong_orientation.jpg +0 -0
  353. data/test/dummy/system/files/test/2011/09/09/23_19_14_156_eos_550d_wrong_orientation.jpg.meta +1 -0
  354. data/test/dummy/system/files/test/2011/09/09/23_19_14_668_some_text.txt +99 -0
  355. data/test/dummy/system/files/test/2011/09/09/23_19_14_668_some_text.txt.meta +1 -0
  356. data/test/dummy/system/files/test/2011/09/09/23_19_17_92_eos_550d_wrong_orientation.jpg +0 -0
  357. data/test/dummy/system/files/test/2011/09/09/23_19_17_92_eos_550d_wrong_orientation.jpg.meta +1 -0
  358. data/test/dummy/system/files/test/2011/09/09/23_19_57_135_eos_550d_wrong_orientation.jpg +0 -0
  359. data/test/dummy/system/files/test/2011/09/09/23_19_57_135_eos_550d_wrong_orientation.jpg.meta +1 -0
  360. data/test/dummy/system/files/test/2011/09/09/23_19_57_628_some_text.txt +99 -0
  361. data/test/dummy/system/files/test/2011/09/09/23_19_57_628_some_text.txt.meta +1 -0
  362. data/test/dummy/system/files/test/2011/09/09/23_20_00_99_eos_550d_wrong_orientation.jpg +0 -0
  363. data/test/dummy/system/files/test/2011/09/09/23_20_00_99_eos_550d_wrong_orientation.jpg.meta +1 -0
  364. data/test/dummy/system/files/test/2011/09/09/23_20_39_80_eos_550d_wrong_orientation.jpg +0 -0
  365. data/test/dummy/system/files/test/2011/09/09/23_20_39_80_eos_550d_wrong_orientation.jpg.meta +1 -0
  366. data/test/dummy/system/files/test/2011/09/09/23_20_40_205_eos_550d_wrong_orientation.jpg +0 -0
  367. data/test/dummy/system/files/test/2011/09/09/23_20_40_205_eos_550d_wrong_orientation.jpg.meta +1 -0
  368. data/test/dummy/system/files/test/2011/09/09/23_21_01_631_eos_550d_wrong_orientation.jpg +0 -0
  369. data/test/dummy/system/files/test/2011/09/09/23_21_01_631_eos_550d_wrong_orientation.jpg.meta +1 -0
  370. data/test/dummy/system/files/test/2011/09/09/23_21_02_216_some_text.txt +99 -0
  371. data/test/dummy/system/files/test/2011/09/09/23_21_02_216_some_text.txt.meta +1 -0
  372. data/test/dummy/system/files/test/2011/09/09/23_21_04_557_eos_550d_wrong_orientation.jpg +0 -0
  373. data/test/dummy/system/files/test/2011/09/09/23_21_04_557_eos_550d_wrong_orientation.jpg.meta +1 -0
  374. data/test/dummy/system/files/test/2011/09/09/23_23_00_280_eos_550d_wrong_orientation.jpg +0 -0
  375. data/test/dummy/system/files/test/2011/09/09/23_23_00_280_eos_550d_wrong_orientation.jpg.meta +1 -0
  376. data/test/dummy/system/files/test/2011/09/09/23_23_00_777_some_text.txt +99 -0
  377. data/test/dummy/system/files/test/2011/09/09/23_23_00_777_some_text.txt.meta +1 -0
  378. data/test/dummy/system/files/test/2011/09/09/23_23_03_310_eos_550d_wrong_orientation.jpg +0 -0
  379. data/test/dummy/system/files/test/2011/09/09/23_23_03_310_eos_550d_wrong_orientation.jpg.meta +1 -0
  380. data/test/dummy/system/files/test/2011/09/09/23_24_04_367_eos_550d_wrong_orientation.jpg +0 -0
  381. data/test/dummy/system/files/test/2011/09/09/23_24_04_367_eos_550d_wrong_orientation.jpg.meta +1 -0
  382. data/test/dummy/system/files/test/2011/09/09/23_24_04_871_some_text.txt +99 -0
  383. data/test/dummy/system/files/test/2011/09/09/23_24_04_871_some_text.txt.meta +1 -0
  384. data/test/dummy/system/files/test/2011/09/09/23_24_07_303_eos_550d_wrong_orientation.jpg +0 -0
  385. data/test/dummy/system/files/test/2011/09/09/23_24_07_303_eos_550d_wrong_orientation.jpg.meta +1 -0
  386. data/test/dummy/system/files/test/2011/09/09/23_25_04_212_eos_550d_wrong_orientation.jpg +0 -0
  387. data/test/dummy/system/files/test/2011/09/09/23_25_04_212_eos_550d_wrong_orientation.jpg.meta +1 -0
  388. data/test/dummy/system/files/test/2011/09/09/23_25_06_520_eos_550d_wrong_orientation.jpg +0 -0
  389. data/test/dummy/system/files/test/2011/09/09/23_25_06_520_eos_550d_wrong_orientation.jpg.meta +1 -0
  390. data/test/dummy/system/files/test/2011/09/09/23_28_42_805_eos_550d_wrong_orientation.jpg +0 -0
  391. data/test/dummy/system/files/test/2011/09/09/23_28_42_805_eos_550d_wrong_orientation.jpg.meta +1 -0
  392. data/test/dummy/system/files/test/2011/09/09/23_28_43_315_some_text.txt +99 -0
  393. data/test/dummy/system/files/test/2011/09/09/23_28_43_315_some_text.txt.meta +1 -0
  394. data/test/dummy/system/files/test/2011/09/09/23_28_45_754_eos_550d_wrong_orientation.jpg +0 -0
  395. data/test/dummy/system/files/test/2011/09/09/23_28_45_754_eos_550d_wrong_orientation.jpg.meta +1 -0
  396. data/test/dummy/system/files/test/2011/09/09/23_30_10_146_eos_550d_wrong_orientation.jpg +0 -0
  397. data/test/dummy/system/files/test/2011/09/09/23_30_10_146_eos_550d_wrong_orientation.jpg.meta +1 -0
  398. data/test/dummy/system/files/test/2011/09/09/23_30_10_658_some_text.txt +99 -0
  399. data/test/dummy/system/files/test/2011/09/09/23_30_10_658_some_text.txt.meta +1 -0
  400. data/test/dummy/system/files/test/2011/09/09/23_30_13_84_eos_550d_wrong_orientation.jpg +0 -0
  401. data/test/dummy/system/files/test/2011/09/09/23_30_13_84_eos_550d_wrong_orientation.jpg.meta +1 -0
  402. data/test/dummy/system/files/test/2011/09/09/23_31_36_338_eos_550d_wrong_orientation.jpg +0 -0
  403. data/test/dummy/system/files/test/2011/09/09/23_31_36_338_eos_550d_wrong_orientation.jpg.meta +1 -0
  404. data/test/dummy/system/files/test/2011/09/09/23_31_53_958_eos_550d_wrong_orientation.jpg +0 -0
  405. data/test/dummy/system/files/test/2011/09/09/23_31_53_958_eos_550d_wrong_orientation.jpg.meta +1 -0
  406. data/test/dummy/system/files/test/2011/09/09/23_32_14_603_eos_550d_wrong_orientation.jpg +0 -0
  407. data/test/dummy/system/files/test/2011/09/09/23_32_14_603_eos_550d_wrong_orientation.jpg.meta +1 -0
  408. data/test/dummy/system/files/test/2011/09/09/23_32_15_116_some_text.txt +99 -0
  409. data/test/dummy/system/files/test/2011/09/09/23_32_15_116_some_text.txt.meta +1 -0
  410. data/test/dummy/system/files/test/2011/09/09/23_32_17_756_eos_550d_wrong_orientation.jpg +0 -0
  411. data/test/dummy/system/files/test/2011/09/09/23_32_17_756_eos_550d_wrong_orientation.jpg.meta +1 -0
  412. data/test/dummy/system/files/test/2011/09/09/23_32_44_535_eos_550d_wrong_orientation.jpg +0 -0
  413. data/test/dummy/system/files/test/2011/09/09/23_32_44_535_eos_550d_wrong_orientation.jpg.meta +1 -0
  414. data/test/dummy/system/files/test/2011/09/09/23_32_45_43_some_text.txt +99 -0
  415. data/test/dummy/system/files/test/2011/09/09/23_32_45_43_some_text.txt.meta +1 -0
  416. data/test/dummy/system/files/test/2011/09/09/23_32_47_451_eos_550d_wrong_orientation.jpg +0 -0
  417. data/test/dummy/system/files/test/2011/09/09/23_32_47_451_eos_550d_wrong_orientation.jpg.meta +1 -0
  418. data/test/dummy/system/files/test/2011/09/09/23_34_18_577_eos_550d_wrong_orientation.jpg +0 -0
  419. data/test/dummy/system/files/test/2011/09/09/23_34_18_577_eos_550d_wrong_orientation.jpg.meta +1 -0
  420. data/test/dummy/system/files/test/2011/09/09/23_34_19_85_some_text.txt +99 -0
  421. data/test/dummy/system/files/test/2011/09/09/23_34_19_85_some_text.txt.meta +1 -0
  422. data/test/dummy/system/files/test/2011/09/09/23_34_21_427_eos_550d_wrong_orientation.jpg +0 -0
  423. data/test/dummy/system/files/test/2011/09/09/23_34_21_427_eos_550d_wrong_orientation.jpg.meta +1 -0
  424. data/test/dummy/tmp/cache/assets/C54/230/sprockets%2F63597bd80af49501176a9c782c200818 +0 -0
  425. data/test/dummy/tmp/cache/assets/C8D/360/sprockets%2Fdf973572c645d2fd119001cd69374479 +0 -0
  426. data/test/dummy/tmp/cache/assets/C8E/040/sprockets%2F15dc6807595ff22a754893ef2d042944 +0 -0
  427. data/test/dummy/tmp/cache/assets/C9D/CF0/sprockets%2F07211d85a30e8ca544d28a82e11722c5 +0 -0
  428. data/test/dummy/tmp/cache/assets/CAA/1E0/sprockets%2Ff830741354b667e407d800e3b444f4bb +0 -0
  429. data/test/dummy/tmp/cache/assets/CAF/EB0/sprockets%2F6611c947ce02d3a22d579ce305f65662 +0 -0
  430. data/test/dummy/tmp/cache/assets/CB0/050/sprockets%2F82ee10d29ecf30a522699c686301761d +0 -0
  431. data/test/dummy/tmp/cache/assets/CB9/690/sprockets%2F2a8597c2f8571ae6ea34692d2019a495 +0 -0
  432. data/test/dummy/tmp/cache/assets/CE4/CB0/sprockets%2F3d466de255c44c4d526a6526ee267f42 +0 -0
  433. data/test/dummy/tmp/cache/assets/CED/3A0/sprockets%2F5598ef34994d21041804d8edaae45e75 +0 -0
  434. data/test/dummy/tmp/cache/assets/CFA/BB0/sprockets%2F036d173be5c5a8d610b011b0b79a47e5 +0 -0
  435. data/test/dummy/tmp/cache/assets/D02/E40/sprockets%2F23c3c1b9508b3ee3e213e6b15442cd86 +0 -0
  436. data/test/dummy/tmp/cache/assets/D0A/2A0/sprockets%2F404be3db0a559b6e46a9750d2930ca78 +0 -0
  437. data/test/dummy/tmp/cache/assets/D0F/940/sprockets%2Fe5a0c84816880ab73280e1d7c6c6b53f +0 -0
  438. data/test/dummy/tmp/cache/assets/D17/AD0/sprockets%2F40edf5645d2ef4837a7eb197d4274f11 +0 -0
  439. data/test/dummy/tmp/cache/assets/D19/7A0/sprockets%2F16629122405a5bb931a1aac5fd0c0c1c +0 -0
  440. data/test/dummy/tmp/cache/assets/D1B/850/sprockets%2F8ee0f24d6d9178d919763c720a26ea4d +0 -0
  441. data/test/dummy/tmp/cache/assets/D21/FC0/sprockets%2F42e26797aacaf09d1d8f399737d4862a +0 -0
  442. data/test/dummy/tmp/cache/assets/D22/400/sprockets%2F9fe3b745fe9b3671c7b7776067411fbd +0 -0
  443. data/test/dummy/tmp/cache/assets/D28/B20/sprockets%2F882bf161cb1bae439b071e92c023ca24 +0 -0
  444. data/test/dummy/tmp/cache/assets/D2B/B20/sprockets%2F8a8e489c909c9b7e4883ad91ae05819b +0 -0
  445. data/test/dummy/tmp/cache/assets/D39/7D0/sprockets%2F2d36d5c71bbb85e617c7aa5526db7711 +0 -0
  446. data/test/dummy/tmp/cache/assets/D45/980/sprockets%2F7b83a99c7ef5081e54dd817ee22e21c0 +0 -0
  447. data/test/dummy/tmp/cache/assets/D83/790/sprockets%2Fa54dd2e601bc260dba6d124f0e41ea48 +0 -0
  448. data/test/dummy/tmp/cache/assets/D88/F10/sprockets%2F8e8aacf9bb943215da36e48de57898b8 +0 -0
  449. data/test/dummy/tmp/cache/assets/D96/130/sprockets%2Fca2892c5774fcef0d04e4a5ab238a81b +0 -0
  450. data/test/dummy/tmp/cache/assets/D96/3B0/sprockets%2F55021ed83e62225daa5e5f7d63cdd0fc +0 -0
  451. data/test/dummy/tmp/cache/assets/D97/140/sprockets%2F894bacf9ace6c46e1b70610f2e12ac56 +0 -0
  452. data/test/dummy/tmp/cache/assets/DA2/050/sprockets%2F571a6834d9cabb59da17f83431ca9feb +0 -0
  453. data/test/dummy/tmp/cache/assets/DA4/B00/sprockets%2Fc3e3f4d5bea91c516b9e779a37651bbd +0 -0
  454. data/test/dummy/tmp/cache/assets/DA9/040/sprockets%2F840de459a6d1c9d87c8dcaf24f128b6c +0 -0
  455. data/test/dummy/tmp/cache/assets/DAB/540/sprockets%2Fb0518afe456f5094d8d9ade32edb985c +0 -0
  456. data/test/dummy/tmp/cache/assets/DC6/6B0/sprockets%2Fd36a94dae97de924ca11bcbb4f8a5006 +0 -0
  457. data/test/dummy/tmp/cache/assets/DD0/B50/sprockets%2F965cf49b0f4bc5a87e7d090aaf331aef +0 -0
  458. data/test/dummy/tmp/cache/assets/DD7/4A0/sprockets%2Fe5ef864e860eb0a95b4ac71cf239ffb4 +0 -0
  459. data/test/dummy/tmp/cache/assets/DFC/F40/sprockets%2F3c2e88bc8ee7e3afa6d790aec3f5b002 +0 -0
  460. data/test/dummy/tmp/cache/assets/DFC/FF0/sprockets%2F85ad0478ccaf1ce1fef2eec948a7006a +0 -0
  461. data/test/dummy/tmp/cache/assets/E6A/4B0/sprockets%2Fdea814b3f9e9bd154ee99ba09cfbfa5f +0 -0
  462. data/test/dummy/tmp/cache/assets/E74/190/sprockets%2F526cff6ffea7b75df9e3a7af389dafd2 +0 -0
  463. data/test/dummy/tmp/capybara/capybara-201109092320006678745731.html +95 -0
  464. data/test/dummy/tmp/capybara/capybara-201109092325048314739499.html +99 -0
  465. data/test/dummy/tmp/capybara/capybara-20110909232507494703749.html +99 -0
  466. data/test/dummy/tmp/capybara/capybara-201109092328469796695478.html +99 -0
  467. data/test/dummy/tmp/capybara/capybara-201109092330138915517817.html +99 -0
  468. data/test/dummy/tmp/capybara/capybara-201109092331366763771582.html +99 -0
  469. data/test/dummy/tmp/capybara/capybara-201109092331548655392084.html +99 -0
  470. data/test/dummy/tmp/capybara/capybara-201109092332183152685029.html +99 -0
  471. data/test/dummy/tmp/dragonfly/cache/body/02/721c6446a47a896dcec5814dde7fd642009ae4 +0 -0
  472. data/test/dummy/tmp/dragonfly/cache/body/08/0c26e7aee40c06f9d2cf2bbe66bb1b31f77eb6 +0 -0
  473. data/test/dummy/tmp/dragonfly/cache/body/08/254fdaeeef68ac1bd4e068bae4d538183f2418 +0 -0
  474. data/test/dummy/tmp/dragonfly/cache/body/0b/5fe01203ea843d9ce57ec076deba6686b972fc +0 -0
  475. data/test/dummy/tmp/dragonfly/cache/body/0d/ac97f509a0f1cc5bd06b74aa5a48de830c0211 +0 -0
  476. data/test/dummy/tmp/dragonfly/cache/body/0e/812da5582b69e917955b2f7548581a84b6cd6a +0 -0
  477. data/test/dummy/tmp/dragonfly/cache/body/12/dd55c3e1f837ed47c0bff8904f3eb356b5b0f6 +0 -0
  478. data/test/dummy/tmp/dragonfly/cache/body/15/c89387f2201547a650980eb83f5b00c0d4897d +0 -0
  479. data/test/dummy/tmp/dragonfly/cache/body/17/c372678aafb3bc1a7b37320b5cc1d8af433527 +0 -0
  480. data/test/dummy/tmp/dragonfly/cache/body/20/5f96aaf607592c0264d2d558debe2441db491f +67 -0
  481. data/test/dummy/tmp/dragonfly/cache/body/21/385143a7b417457e3fd0238114f9e905ab6a1d +0 -0
  482. data/test/dummy/tmp/dragonfly/cache/body/21/7f07b85f1d6096748b9e5b22c02319a4b8f390 +0 -0
  483. data/test/dummy/tmp/dragonfly/cache/body/23/0920237f649e2d5ad0882e5764d8548e9b3487 +0 -0
  484. data/test/dummy/tmp/dragonfly/cache/body/2f/8a4437d9ee577f23ccfa627b9eb3d7ff124276 +0 -0
  485. data/test/dummy/tmp/dragonfly/cache/body/2f/a601f43d7a7e7d9cb27727aa09c7c2ebf9dc99 +0 -0
  486. data/test/dummy/tmp/dragonfly/cache/body/3b/e4db5a0b83943d135fc5db57eb36c18620cdf4 +0 -0
  487. data/test/dummy/tmp/dragonfly/cache/body/3c/68fcd55940690f91d27c2d58669f8f820b0c54 +0 -0
  488. data/test/dummy/tmp/dragonfly/cache/body/41/e0112505525d15bdf882ef9225211561708253 +0 -0
  489. data/test/dummy/tmp/dragonfly/cache/body/42/827ecc71792a78d6c397ae60ef8f97286fbc82 +0 -0
  490. data/test/dummy/tmp/dragonfly/cache/body/46/d0d3f03762081530c375e7ef050708cc68cb7a +678 -0
  491. data/test/dummy/tmp/dragonfly/cache/body/4d/2dae957d0bb81139b39d955786e323ee055329 +0 -0
  492. data/test/dummy/tmp/dragonfly/cache/body/51/8ea4e56f01048ac2f8215e2ecdacc87fbcba3c +0 -0
  493. data/test/dummy/tmp/dragonfly/cache/body/57/39c3e8b2f1ee70719aecb8ef70df4b9e7aa30f +0 -0
  494. data/test/dummy/tmp/dragonfly/cache/body/5b/46eb669828b8a68c8acd6fc2db2eef49977ae9 +0 -0
  495. data/test/dummy/tmp/dragonfly/cache/body/5c/4f1da1404a7bb1a92c09651a8cebb689dd2794 +0 -0
  496. data/test/dummy/tmp/dragonfly/cache/body/5d/6c12803af858f267909373dcbfd0044c29329f +0 -0
  497. data/test/dummy/tmp/dragonfly/cache/body/60/7b9096192366c7dfda7b5272da2b29e9055832 +0 -0
  498. data/test/dummy/tmp/dragonfly/cache/body/61/8583b3fa87320abc5f5301128bd8dc4887ae6d +0 -0
  499. data/test/dummy/tmp/dragonfly/cache/body/65/fed3e34b83d067d408908450b99f92886a1169 +0 -0
  500. data/test/dummy/tmp/dragonfly/cache/body/67/59cadb44cd9fcf1826f884746f799b6de1dc6f +1601 -0
  501. data/test/dummy/tmp/dragonfly/cache/body/69/2a04fcfdde8b993612ef0f3fc2702ede8d11cc +0 -0
  502. data/test/dummy/tmp/dragonfly/cache/body/6d/fb275b3e335748e2229ce486420446f5bd5850 +0 -0
  503. data/test/dummy/tmp/dragonfly/cache/body/71/d37560812963e391f4af2d4d8345af9ae92a75 +0 -0
  504. data/test/dummy/tmp/dragonfly/cache/body/72/5bc79d8cf7ee35f0d895d16be006b9cdccaa84 +0 -0
  505. data/test/dummy/tmp/dragonfly/cache/body/75/5fbdc9e158883976a91a81c5fb8e1a75a73db0 +124 -0
  506. data/test/dummy/tmp/dragonfly/cache/body/79/fa5c68d077a3878a1906b1ecb323d71b51c728 +0 -0
  507. data/test/dummy/tmp/dragonfly/cache/body/7b/df2ee1b3688998cc267d31b2d46db7d605dabb +36 -0
  508. data/test/dummy/tmp/dragonfly/cache/body/7c/72e4841fbc0214d562f5306ca03cf5360cbc41 +0 -0
  509. data/test/dummy/tmp/dragonfly/cache/body/7c/917486fde4f81cd3ef2e0214b127c99f0de028 +0 -0
  510. data/test/dummy/tmp/dragonfly/cache/body/81/15dce6dd36e132948846e70920cda88ab48193 +0 -0
  511. data/test/dummy/tmp/dragonfly/cache/body/85/a5c30dfd9be9f09412b7d4c24b050f8c6fa756 +0 -0
  512. data/test/dummy/tmp/dragonfly/cache/body/8a/b0f4219a7b2c19044a090115a45e76e43b268e +5 -0
  513. data/test/dummy/tmp/dragonfly/cache/body/8e/da1f981ced789b6a5cf38be3d0feb120371707 +5 -0
  514. data/test/dummy/tmp/dragonfly/cache/body/8f/5f17f48a805e82fd5b2121fc4778c07e942fa1 +0 -0
  515. data/test/dummy/tmp/dragonfly/cache/body/90/9eb8bdb06501dbdebdd18886291823626896db +0 -0
  516. data/test/dummy/tmp/dragonfly/cache/body/99/78272eaaac9cede9732d0259ba4346d15c8758 +0 -0
  517. data/test/dummy/tmp/dragonfly/cache/body/a1/9191b091ec5e351ab7d927af890252525e02af +0 -0
  518. data/test/dummy/tmp/dragonfly/cache/body/a2/5ea02e1fef7a8c1d868b5b6b90b220f77feec1 +0 -0
  519. data/test/dummy/tmp/dragonfly/cache/body/b2/44ae6f4a17abaf2edd0de1f9b6df0b726e519e +0 -0
  520. data/test/dummy/tmp/dragonfly/cache/body/c4/c117cf71769d9ff8ac43ada6987b1a5c28e7aa +0 -0
  521. data/test/dummy/tmp/dragonfly/cache/body/c7/19312be82da5b5863b7fa266ba7044c5e1a869 +0 -0
  522. data/test/dummy/tmp/dragonfly/cache/body/c7/9e06c42b18cb487bcbeb3dfa1cd6046bcec1ae +0 -0
  523. data/test/dummy/tmp/dragonfly/cache/body/d2/b8c4a040fdf477afee014b1025ddb4c9ac629b +0 -0
  524. data/test/dummy/tmp/dragonfly/cache/body/e0/70d032da00a71e9d13b4d176f44f0e8bb607fa +0 -0
  525. data/test/dummy/tmp/dragonfly/cache/body/e6/3fa52fe75043747175d92810dc6fc07055e599 +297 -0
  526. data/test/dummy/tmp/dragonfly/cache/body/e9/4a5c7b4e9b454754f59c1f99367b0ea2ee1065 +0 -0
  527. data/test/dummy/tmp/dragonfly/cache/body/f1/25e84ad3ce213a2c0818d443f37b9f0df2fec2 +0 -0
  528. data/test/dummy/tmp/dragonfly/cache/body/f5/bed1e84e45c5c74a29c42e9774b19d5980b694 +0 -0
  529. data/test/dummy/tmp/dragonfly/cache/body/f6/c8f7f60c3b65b6c78e36ddf236c9a90ef5f559 +0 -0
  530. data/test/dummy/tmp/dragonfly/cache/body/fa/3488e1c8533d4134d82b1c12370225c778e243 +0 -0
  531. data/test/dummy/tmp/dragonfly/cache/body/fb/629489200dc7864ba333386142de7aaeb42e14 +0 -0
  532. data/test/dummy/tmp/dragonfly/cache/body/fc/93e44494bc4b2a53ecf1d3e95aa2d8a01339ed +364 -0
  533. data/test/dummy/tmp/dragonfly/cache/body/ff/6a116d11d72ece8ee12df4222a8d050e621ced +0 -0
  534. data/test/dummy/tmp/dragonfly/cache/meta/01/3065619a0b9cae99580ddf0997720bffb1717a +0 -0
  535. data/test/dummy/tmp/dragonfly/cache/meta/04/af50d9817350da61d8ba5aea57ee5da612ab87 +0 -0
  536. data/test/dummy/tmp/dragonfly/cache/meta/0a/0cf0e35f173a394675f32be7c45ac2d055eb23 +0 -0
  537. data/test/dummy/tmp/dragonfly/cache/meta/0c/2966accbe048d462250fc2fb02dccf56c5753e +0 -0
  538. data/test/dummy/tmp/dragonfly/cache/meta/0d/1264278b6c78096e10e85c9ab6be94b2911da0 +0 -0
  539. data/test/dummy/tmp/dragonfly/cache/meta/0d/7c4648195ab8e0c30c41a49728ce2a96e15c6c +0 -0
  540. data/test/dummy/tmp/dragonfly/cache/meta/10/96b90ee1bcd363fd72c4d7f2fbd9e28042945e +0 -0
  541. data/test/dummy/tmp/dragonfly/cache/meta/12/3fc380689a07b29b77a4576c50f23a763c5e6b +0 -0
  542. data/test/dummy/tmp/dragonfly/cache/meta/18/070a70152465eee702884a4680efcb8ca2c4d8 +0 -0
  543. data/test/dummy/tmp/dragonfly/cache/meta/18/18005c396885d43a6d4bf39c5296e348b36a9f +0 -0
  544. data/test/dummy/tmp/dragonfly/cache/meta/19/f4bd3e5c66e2ff01ff1aacc51c82286850b9fd +0 -0
  545. data/test/dummy/tmp/dragonfly/cache/meta/1a/4f7e6c2c0139daf7220048e9acacca2260a9b5 +0 -0
  546. data/test/dummy/tmp/dragonfly/cache/meta/1a/efd420f6e3607d2d8d1ba81945bdd9d2a6059b +0 -0
  547. data/test/dummy/tmp/dragonfly/cache/meta/24/d0aebc1b6d4ac3b10caa6cfabf89b0ad8551c5 +0 -0
  548. data/test/dummy/tmp/dragonfly/cache/meta/25/13e224314708bfd6611c302dc5bdd254e1d143 +0 -0
  549. data/test/dummy/tmp/dragonfly/cache/meta/26/3291d6e1fff88a6fcea7c8abbe388feb247ba5 +0 -0
  550. data/test/dummy/tmp/dragonfly/cache/meta/29/2120cfb4b63f2b0d62e4d7da4c6c21ef25be6d +0 -0
  551. data/test/dummy/tmp/dragonfly/cache/meta/2b/0533453bd6f48c8273665ce90f2504c7953433 +0 -0
  552. data/test/dummy/tmp/dragonfly/cache/meta/2c/e93382e836abdfc7fa2cd878a853a2352c6863 +0 -0
  553. data/test/dummy/tmp/dragonfly/cache/meta/30/5fcc7f5f20cb4116ec776b1e0c84ad4124b7e3 +0 -0
  554. data/test/dummy/tmp/dragonfly/cache/meta/30/d631e3e7e76fb306572de037e3e22dac7c90b5 +0 -0
  555. data/test/dummy/tmp/dragonfly/cache/meta/32/bb0d86dce0954ce828e63fb229367150f8a348 +0 -0
  556. data/test/dummy/tmp/dragonfly/cache/meta/33/36e8fbaec28f1307731923edfeb217e779883d +0 -0
  557. data/test/dummy/tmp/dragonfly/cache/meta/34/4b8d55869a4bd3edab571ea25d5a60be74a4ad +0 -0
  558. data/test/dummy/tmp/dragonfly/cache/meta/36/059c3f0d7f64947c8e8655bc259d0d22c6f0ae +0 -0
  559. data/test/dummy/tmp/dragonfly/cache/meta/36/05f012ee4184f83178a9d9624f82da39535afa +0 -0
  560. data/test/dummy/tmp/dragonfly/cache/meta/37/fb962d39887389e020d58ef1f745ef1a6107cc +0 -0
  561. data/test/dummy/tmp/dragonfly/cache/meta/3b/856fc9f19a6d9e6a71bce9a841da7ee782fc4d +0 -0
  562. data/test/dummy/tmp/dragonfly/cache/meta/3c/0727fc9dc75105ed5db9c67c8dec217c00890e +0 -0
  563. data/test/dummy/tmp/dragonfly/cache/meta/40/c25475cb587c48d080dba999ad01f3680760a0 +0 -0
  564. data/test/dummy/tmp/dragonfly/cache/meta/42/248da9860a2fcefea309334de75486a4619e31 +0 -0
  565. data/test/dummy/tmp/dragonfly/cache/meta/4d/f57798fd4469ad3dc138784597a0786ae7485d +0 -0
  566. data/test/dummy/tmp/dragonfly/cache/meta/51/b3b7831b3925e105bbfa44907df3003b676d69 +0 -0
  567. data/test/dummy/tmp/dragonfly/cache/meta/52/bf5a4fdf49c8f85dfa21077c8aec7595166ff7 +0 -0
  568. data/test/dummy/tmp/dragonfly/cache/meta/53/f1cfc0b3a0db2005a893d1b4792cfebd02a496 +0 -0
  569. data/test/dummy/tmp/dragonfly/cache/meta/54/8f3e2400cdf954f37f3458f6848df0a2e757ad +0 -0
  570. data/test/dummy/tmp/dragonfly/cache/meta/55/30dc20e78a80eee7be7b3c2e7fb9a6240596db +0 -0
  571. data/test/dummy/tmp/dragonfly/cache/meta/55/38528ae65e63542e11cb67d3c08b540a9b2d94 +0 -0
  572. data/test/dummy/tmp/dragonfly/cache/meta/5a/004ae0e2810be18892a3b3ff3d73c5b25ad3f4 +0 -0
  573. data/test/dummy/tmp/dragonfly/cache/meta/5a/f69fd22127b74a43f6de78a7d76f53b9c04a02 +0 -0
  574. data/test/dummy/tmp/dragonfly/cache/meta/5b/9a5982c77d59446fa2c789a2e7b6cd3895d753 +0 -0
  575. data/test/dummy/tmp/dragonfly/cache/meta/60/af267c39b09e11ff7d7bfc727d48ca0e107afd +0 -0
  576. data/test/dummy/tmp/dragonfly/cache/meta/62/a94c517cd458c99ce0f00fbca345b386791cfc +0 -0
  577. data/test/dummy/tmp/dragonfly/cache/meta/63/4fbf95f978eb0e7ee339e28306bc9c6f106aa6 +0 -0
  578. data/test/dummy/tmp/dragonfly/cache/meta/63/e389869e5c2ae071a4ccd8474de105688917ef +0 -0
  579. data/test/dummy/tmp/dragonfly/cache/meta/65/c109299780f8c24cc265b8cf0c008b2695b2d0 +0 -0
  580. data/test/dummy/tmp/dragonfly/cache/meta/67/3a6ed8453f75e7560051d0764e25985fbc73f6 +0 -0
  581. data/test/dummy/tmp/dragonfly/cache/meta/69/e529e365a42911c19be24956d4d69ea6549a1e +0 -0
  582. data/test/dummy/tmp/dragonfly/cache/meta/6a/20921464b13433185c30ffadb364e222ae7ed6 +0 -0
  583. data/test/dummy/tmp/dragonfly/cache/meta/6a/6fef8f2fee7684b6aa79ffc874c801a6439cf7 +0 -0
  584. data/test/dummy/tmp/dragonfly/cache/meta/6b/4cb5999dbf269f63e8a0d90ac47e0fdcd7a7fc +0 -0
  585. data/test/dummy/tmp/dragonfly/cache/meta/6b/b67017491eefcfe9e77a3318c50537f58e08d0 +0 -0
  586. data/test/dummy/tmp/dragonfly/cache/meta/6d/09f8911bc33c26c3e29e5a65a201c963bdbc6d +0 -0
  587. data/test/dummy/tmp/dragonfly/cache/meta/6d/52b2b6a302149bbd91303f96d7b6ffdbca4e74 +0 -0
  588. data/test/dummy/tmp/dragonfly/cache/meta/6d/ee29e8ca14075ad948b8b4d6c72fa091c6da46 +0 -0
  589. data/test/dummy/tmp/dragonfly/cache/meta/6e/83d3a60fc229b04e7403d7131aa4814a4200ec +0 -0
  590. data/test/dummy/tmp/dragonfly/cache/meta/77/38b3417940cf16c3f3ad22f4700966ecd65d5f +0 -0
  591. data/test/dummy/tmp/dragonfly/cache/meta/78/91eda6ab044d75d3672900d2483a3faf1c514a +0 -0
  592. data/test/dummy/tmp/dragonfly/cache/meta/78/da9e9f151eb605b427b43e2098640de3fd4a6d +0 -0
  593. data/test/dummy/tmp/dragonfly/cache/meta/79/6c237ed7355682d77a2bdc75b729b63c3b35da +0 -0
  594. data/test/dummy/tmp/dragonfly/cache/meta/79/a367ab7493c1a7a7e877ff281fb6eed266293b +0 -0
  595. data/test/dummy/tmp/dragonfly/cache/meta/7a/e20b7ceaffa5ebb57b658f4d6a54434c0301f3 +0 -0
  596. data/test/dummy/tmp/dragonfly/cache/meta/81/f24ab09d96a0d40ab560a90e955c4a312aa16c +0 -0
  597. data/test/dummy/tmp/dragonfly/cache/meta/82/1a8db33dc013c9ed726ddf43544ff80cf5774f +0 -0
  598. data/test/dummy/tmp/dragonfly/cache/meta/83/c9e02a4d1e0fbec1698938386445e771abc2d5 +0 -0
  599. data/test/dummy/tmp/dragonfly/cache/meta/83/fa85e2058741d72b66a98cf71819794d7525d3 +0 -0
  600. data/test/dummy/tmp/dragonfly/cache/meta/8a/00f63a175cfe09352e9103621040457aafc9e8 +0 -0
  601. data/test/dummy/tmp/dragonfly/cache/meta/8a/be19ee1009445886ab915e98aaf4439dfea49e +0 -0
  602. data/test/dummy/tmp/dragonfly/cache/meta/8e/284814afc3b0022e3160614cbaa3d86f13b460 +0 -0
  603. data/test/dummy/tmp/dragonfly/cache/meta/90/8a5565b2a739ca74f478c627a420fed85e6c6c +0 -0
  604. data/test/dummy/tmp/dragonfly/cache/meta/91/5796a36ec9ee121e91397217a67a94ea6da1fa +0 -0
  605. data/test/dummy/tmp/dragonfly/cache/meta/98/ea755ff6eec2e9301261741fb2c6deacdbad55 +0 -0
  606. data/test/dummy/tmp/dragonfly/cache/meta/9c/1d73b13f2c881eb18ebbd543b4cf6cc68d6084 +0 -0
  607. data/test/dummy/tmp/dragonfly/cache/meta/9c/3654a4968510a1697953936517c0b51f2c88f7 +0 -0
  608. data/test/dummy/tmp/dragonfly/cache/meta/9c/ffa966404611fb6408a5b9c3d98b1d3ec2ade8 +0 -0
  609. data/test/dummy/tmp/dragonfly/cache/meta/9f/048ae8a78d8f4f5bbeffc9e4fe44547d30a3c3 +0 -0
  610. data/test/dummy/tmp/dragonfly/cache/meta/9f/0b98933058db40fd34385876c49d9815ccecef +0 -0
  611. data/test/dummy/tmp/dragonfly/cache/meta/9f/341ebba7f7eaeb03f608874c62f75b048c1450 +0 -0
  612. data/test/dummy/tmp/dragonfly/cache/meta/a0/95aca06b094735d07d35954bdee7ed7cfe0554 +0 -0
  613. data/test/dummy/tmp/dragonfly/cache/meta/a5/c23ac345316a47a28625f346ec288f4ffe833b +0 -0
  614. data/test/dummy/tmp/dragonfly/cache/meta/a6/4588ad53212e92bbaf0b54de604e7e7fa5b4db +0 -0
  615. data/test/dummy/tmp/dragonfly/cache/meta/a6/6070c84b51514a4b0df87efe9f45eeb73bb6ac +0 -0
  616. data/test/dummy/tmp/dragonfly/cache/meta/a8/0db0a6a24608ae624628d08f44d70c95649269 +0 -0
  617. data/test/dummy/tmp/dragonfly/cache/meta/aa/0edadeee0f51930b22f81d18d890eeb42d5401 +0 -0
  618. data/test/dummy/tmp/dragonfly/cache/meta/ab/26841be4fe66f5073bf80165818018b960a8ae +0 -0
  619. data/test/dummy/tmp/dragonfly/cache/meta/ab/ab380d458496ff33fa5595160d6af7f6937ab4 +0 -0
  620. data/test/dummy/tmp/dragonfly/cache/meta/ac/e54f85800ea849425abf55b913780cd24c17b5 +0 -0
  621. data/test/dummy/tmp/dragonfly/cache/meta/ac/efd266978924a9ae28e46abdc18da5cc570556 +0 -0
  622. data/test/dummy/tmp/dragonfly/cache/meta/ad/081a80bb92be111e886cead55d04302d7ecc5d +0 -0
  623. data/test/dummy/tmp/dragonfly/cache/meta/b0/1dfc84881b36982e7459fc7aceb0ed0436eb21 +0 -0
  624. data/test/dummy/tmp/dragonfly/cache/meta/b0/476d0611c67ca7e646fe9008027d2f7bb8fcc5 +0 -0
  625. data/test/dummy/tmp/dragonfly/cache/meta/b2/b5d99458d046e39c53e7989d1eca2213062c4a +0 -0
  626. data/test/dummy/tmp/dragonfly/cache/meta/b6/ebbc22d1d6daf6e8cc040dc390dbdac883b75e +0 -0
  627. data/test/dummy/tmp/dragonfly/cache/meta/b8/a226d376b7ee94ade1cc2b9a043b1dea49339e +0 -0
  628. data/test/dummy/tmp/dragonfly/cache/meta/ba/d54f2cb0ea7effe26fb522981c85f6fac64f32 +0 -0
  629. data/test/dummy/tmp/dragonfly/cache/meta/c5/5ead58e8a96964f7fb901faacb189e897cb007 +0 -0
  630. data/test/dummy/tmp/dragonfly/cache/meta/c6/fd4d90e43a76b3740851a8c80cf293307d2ea3 +0 -0
  631. data/test/dummy/tmp/dragonfly/cache/meta/c7/765e66244779358dccb3e201ee971393d84d78 +0 -0
  632. data/test/dummy/tmp/dragonfly/cache/meta/d1/a729f56a6d9af0910d9d1cf4acbbe2ef23cf56 +0 -0
  633. data/test/dummy/tmp/dragonfly/cache/meta/d3/4e9f7374955f09514d9a9fc8930a6cbce53b75 +0 -0
  634. data/test/dummy/tmp/dragonfly/cache/meta/d6/f1bee9080d9c2926b3ade281a8f1a0f9be79cd +0 -0
  635. data/test/dummy/tmp/dragonfly/cache/meta/d8/705b3496156d15650a193d89e485da0a2d15c6 +0 -0
  636. data/test/dummy/tmp/dragonfly/cache/meta/dc/d63af225e5131ef6464cbfc87e20dc63a44365 +0 -0
  637. data/test/dummy/tmp/dragonfly/cache/meta/dd/46c780a1284b0a84e1585fcaaec88729229a36 +0 -0
  638. data/test/dummy/tmp/dragonfly/cache/meta/e1/979d7cb9c431766cbafda1b1245cce7ea4f134 +0 -0
  639. data/test/dummy/tmp/dragonfly/cache/meta/e2/eab333969d7051831d38e5ba719e8887f4aca3 +0 -0
  640. data/test/dummy/tmp/dragonfly/cache/meta/e3/7b192c0fa3f14120b61ba43591b4e0148decc2 +0 -0
  641. data/test/dummy/tmp/dragonfly/cache/meta/e4/753c26eac3624a8f0906a4610eb9639e9f1238 +0 -0
  642. data/test/dummy/tmp/dragonfly/cache/meta/e4/8b49afae3e511dee8a480c0699f57af166c476 +0 -0
  643. data/test/dummy/tmp/dragonfly/cache/meta/e4/a4a5574b655ab7a23ac8ea6996ce6026cba172 +0 -0
  644. data/test/dummy/tmp/dragonfly/cache/meta/e6/5be6e8db6390a762521141e190fd51cb900510 +0 -0
  645. data/test/dummy/tmp/dragonfly/cache/meta/e8/018099d6dec59462ad5b4ff834a40769811c4b +0 -0
  646. data/test/dummy/tmp/dragonfly/cache/meta/ec/95bd937fde5971c9757707875459afd5ee969b +0 -0
  647. data/test/dummy/tmp/dragonfly/cache/meta/ed/164629434f41289c45072ffffd69ec4bcfbfdb +0 -0
  648. data/test/dummy/tmp/dragonfly/cache/meta/ed/452ae956d56d97238744889483dc28e05b4049 +0 -0
  649. data/test/dummy/tmp/dragonfly/cache/meta/ee/b10ca471bf747caae6ec43dd51134d4a4a1d35 +0 -0
  650. data/test/dummy/tmp/dragonfly/cache/meta/ee/bd50d392c542daa5b2e5a84bea9b061884dd50 +0 -0
  651. data/test/dummy/tmp/dragonfly/cache/meta/ee/fe74949a8c2a0bbc077385a12944d9f98a12e0 +0 -0
  652. data/test/dummy/tmp/dragonfly/cache/meta/ef/c1a278bfae61838492c518085077e090847928 +0 -0
  653. data/test/dummy/tmp/dragonfly/cache/meta/f1/44fd03870ca4a56ae2ed5eea541d2b16a331ed +0 -0
  654. data/test/dummy/tmp/dragonfly/cache/meta/f2/52c824b170bae8cac2db80a1bac032f2dcebcc +0 -0
  655. data/test/dummy/tmp/dragonfly/cache/meta/f6/3c95e93a23255c015b61e3ec1c8c0a943bb27f +0 -0
  656. data/test/dummy/tmp/dragonfly/cache/meta/f7/d62984c9d390ea3d5891ecbe2788626bc3c599 +0 -0
  657. data/test/dummy/tmp/dragonfly/cache/meta/f7/dc16bbb163aac4e7da0cbd6136bdf0401e732c +0 -0
  658. data/test/dummy/tmp/dragonfly/cache/meta/f9/67ac04386c59253bd80f4034d18af166cc5691 +0 -0
  659. data/test/fixtures/saphira/image_variants.yml +11 -0
  660. data/test/functional/saphira/image_variant_settings_controller_test.rb +21 -0
  661. data/test/functional/saphira/image_variants_controller_test.rb +51 -0
  662. data/test/unit/helpers/saphira/image_variant_settings_helper_test.rb +6 -0
  663. data/test/unit/helpers/saphira/image_variants_helper_test.rb +6 -0
  664. data/test/unit/saphira/image_variant_test.rb +9 -0
  665. metadata +1212 -25
@@ -0,0 +1,1601 @@
1
+ /**
2
+ * jquery.Jcrop.js v0.9.9
3
+ * jQuery Image Cropping Plugin
4
+ * @author Kelly Hallman <khallman@gmail.com>
5
+ * Copyright (c) 2008-2011 Kelly Hallman - released under MIT License {{{
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ *
28
+ * }}}
29
+ */
30
+
31
+
32
+ (function ($) {
33
+
34
+ $.Jcrop = function (obj, opt) {
35
+ var options = $.extend({}, $.Jcrop.defaults),
36
+ docOffset, lastcurs, ie6mode = false;
37
+
38
+ // Internal Methods {{{
39
+ function px(n) {
40
+ return parseInt(n, 10) + 'px';
41
+ }
42
+ function pct(n) {
43
+ return parseInt(n, 10) + '%';
44
+ }
45
+ function cssClass(cl) {
46
+ return options.baseClass + '-' + cl;
47
+ }
48
+ function supportsColorFade() {
49
+ return $.fx.step.hasOwnProperty('backgroundColor');
50
+ }
51
+ function getPos(obj) //{{{
52
+ {
53
+ // Updated in v0.9.4 to use built-in dimensions plugin
54
+ var pos = $(obj).offset();
55
+ return [pos.left, pos.top];
56
+ }
57
+ //}}}
58
+ function mouseAbs(e) //{{{
59
+ {
60
+ return [(e.pageX - docOffset[0]), (e.pageY - docOffset[1])];
61
+ }
62
+ //}}}
63
+ function setOptions(opt) //{{{
64
+ {
65
+ if (typeof(opt) !== 'object') {
66
+ opt = {};
67
+ }
68
+ options = $.extend(options, opt);
69
+
70
+ if (typeof(options.onChange) !== 'function') {
71
+ options.onChange = function () {};
72
+ }
73
+ if (typeof(options.onSelect) !== 'function') {
74
+ options.onSelect = function () {};
75
+ }
76
+ if (typeof(options.onRelease) !== 'function') {
77
+ options.onRelease = function () {};
78
+ }
79
+ }
80
+ //}}}
81
+ function myCursor(type) //{{{
82
+ {
83
+ if (type !== lastcurs) {
84
+ Tracker.setCursor(type);
85
+ lastcurs = type;
86
+ }
87
+ }
88
+ //}}}
89
+ function startDragMode(mode, pos) //{{{
90
+ {
91
+ docOffset = getPos($img);
92
+ Tracker.setCursor(mode === 'move' ? mode : mode + '-resize');
93
+
94
+ if (mode === 'move') {
95
+ return Tracker.activateHandlers(createMover(pos), doneSelect);
96
+ }
97
+
98
+ var fc = Coords.getFixed();
99
+ var opp = oppLockCorner(mode);
100
+ var opc = Coords.getCorner(oppLockCorner(opp));
101
+
102
+ Coords.setPressed(Coords.getCorner(opp));
103
+ Coords.setCurrent(opc);
104
+
105
+ Tracker.activateHandlers(dragmodeHandler(mode, fc), doneSelect);
106
+ }
107
+ //}}}
108
+ function dragmodeHandler(mode, f) //{{{
109
+ {
110
+ return function (pos) {
111
+ if (!options.aspectRatio) {
112
+ switch (mode) {
113
+ case 'e':
114
+ pos[1] = f.y2;
115
+ break;
116
+ case 'w':
117
+ pos[1] = f.y2;
118
+ break;
119
+ case 'n':
120
+ pos[0] = f.x2;
121
+ break;
122
+ case 's':
123
+ pos[0] = f.x2;
124
+ break;
125
+ }
126
+ } else {
127
+ switch (mode) {
128
+ case 'e':
129
+ pos[1] = f.y + 1;
130
+ break;
131
+ case 'w':
132
+ pos[1] = f.y + 1;
133
+ break;
134
+ case 'n':
135
+ pos[0] = f.x + 1;
136
+ break;
137
+ case 's':
138
+ pos[0] = f.x + 1;
139
+ break;
140
+ }
141
+ }
142
+ Coords.setCurrent(pos);
143
+ Selection.update();
144
+ };
145
+ }
146
+ //}}}
147
+ function createMover(pos) //{{{
148
+ {
149
+ var lloc = pos;
150
+ KeyManager.watchKeys();
151
+
152
+ return function (pos) {
153
+ Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
154
+ lloc = pos;
155
+
156
+ Selection.update();
157
+ };
158
+ }
159
+ //}}}
160
+ function oppLockCorner(ord) //{{{
161
+ {
162
+ switch (ord) {
163
+ case 'n':
164
+ return 'sw';
165
+ case 's':
166
+ return 'nw';
167
+ case 'e':
168
+ return 'nw';
169
+ case 'w':
170
+ return 'ne';
171
+ case 'ne':
172
+ return 'sw';
173
+ case 'nw':
174
+ return 'se';
175
+ case 'se':
176
+ return 'nw';
177
+ case 'sw':
178
+ return 'ne';
179
+ }
180
+ }
181
+ //}}}
182
+ function createDragger(ord) //{{{
183
+ {
184
+ return function (e) {
185
+ if (options.disabled) {
186
+ return false;
187
+ }
188
+ if ((ord === 'move') && !options.allowMove) {
189
+ return false;
190
+ }
191
+ btndown = true;
192
+ startDragMode(ord, mouseAbs(e));
193
+ e.stopPropagation();
194
+ e.preventDefault();
195
+ return false;
196
+ };
197
+ }
198
+ //}}}
199
+ function presize($obj, w, h) //{{{
200
+ {
201
+ var nw = $obj.width(),
202
+ nh = $obj.height();
203
+ if ((nw > w) && w > 0) {
204
+ nw = w;
205
+ nh = (w / $obj.width()) * $obj.height();
206
+ }
207
+ if ((nh > h) && h > 0) {
208
+ nh = h;
209
+ nw = (h / $obj.height()) * $obj.width();
210
+ }
211
+ xscale = $obj.width() / nw;
212
+ yscale = $obj.height() / nh;
213
+ $obj.width(nw).height(nh);
214
+ }
215
+ //}}}
216
+ function unscale(c) //{{{
217
+ {
218
+ return {
219
+ x: parseInt(c.x * xscale, 10),
220
+ y: parseInt(c.y * yscale, 10),
221
+ x2: parseInt(c.x2 * xscale, 10),
222
+ y2: parseInt(c.y2 * yscale, 10),
223
+ w: parseInt(c.w * xscale, 10),
224
+ h: parseInt(c.h * yscale, 10)
225
+ };
226
+ }
227
+ //}}}
228
+ function doneSelect(pos) //{{{
229
+ {
230
+ var c = Coords.getFixed();
231
+ if ((c.w > options.minSelect[0]) && (c.h > options.minSelect[1])) {
232
+ Selection.enableHandles();
233
+ Selection.done();
234
+ } else {
235
+ Selection.release();
236
+ }
237
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
238
+ }
239
+ //}}}
240
+ function newSelection(e) //{{{
241
+ {
242
+ if (options.disabled) {
243
+ return false;
244
+ }
245
+ if (!options.allowSelect) {
246
+ return false;
247
+ }
248
+ btndown = true;
249
+ docOffset = getPos($img);
250
+ Selection.disableHandles();
251
+ myCursor('crosshair');
252
+ var pos = mouseAbs(e);
253
+ Coords.setPressed(pos);
254
+ Selection.update();
255
+ Tracker.activateHandlers(selectDrag, doneSelect);
256
+ KeyManager.watchKeys();
257
+
258
+ e.stopPropagation();
259
+ e.preventDefault();
260
+ return false;
261
+ }
262
+ //}}}
263
+ function selectDrag(pos) //{{{
264
+ {
265
+ Coords.setCurrent(pos);
266
+ Selection.update();
267
+ }
268
+ //}}}
269
+ function newTracker() //{{{
270
+ {
271
+ var trk = $('<div></div>').addClass(cssClass('tracker'));
272
+ if ($.browser.msie) {
273
+ trk.css({
274
+ opacity: 0,
275
+ backgroundColor: 'white'
276
+ });
277
+ }
278
+ return trk;
279
+ }
280
+ //}}}
281
+
282
+ // }}}
283
+ // Initialization {{{
284
+ // Sanitize some options {{{
285
+ if ($.browser.msie && ($.browser.version.split('.')[0] === '6')) {
286
+ ie6mode = true;
287
+ }
288
+ if (typeof(obj) !== 'object') {
289
+ obj = $(obj)[0];
290
+ }
291
+ if (typeof(opt) !== 'object') {
292
+ opt = {};
293
+ }
294
+ // }}}
295
+ setOptions(opt);
296
+ // Initialize some jQuery objects {{{
297
+ // The values are SET on the image(s) for the interface
298
+ // If the original image has any of these set, they will be reset
299
+ // However, if you destroy() the Jcrop instance the original image's
300
+ // character in the DOM will be as you left it.
301
+ var img_css = {
302
+ border: 'none',
303
+ margin: 0,
304
+ padding: 0,
305
+ position: 'absolute'
306
+ };
307
+
308
+ var $origimg = $(obj);
309
+ var $img = $origimg.clone().removeAttr('id').css(img_css);
310
+
311
+ $img.width($origimg.width());
312
+ $img.height($origimg.height());
313
+ $origimg.after($img).hide();
314
+
315
+ presize($img, options.boxWidth, options.boxHeight);
316
+
317
+ var boundx = $img.width(),
318
+ boundy = $img.height(),
319
+
320
+
321
+ $div = $('<div />').width(boundx).height(boundy).addClass(cssClass('holder')).css({
322
+ position: 'relative',
323
+ backgroundColor: options.bgColor
324
+ }).insertAfter($origimg).append($img);
325
+
326
+ delete(options.bgColor);
327
+ if (options.addClass) {
328
+ $div.addClass(options.addClass);
329
+ }
330
+
331
+ var $img2 = $('<img />')
332
+ .attr('src', $img.attr('src')).css(img_css).width(boundx).height(boundy),
333
+
334
+ $img_holder = $('<div />')
335
+ .width(pct(100)).height(pct(100)).css({
336
+ zIndex: 310,
337
+ position: 'absolute',
338
+ overflow: 'hidden'
339
+ }).append($img2),
340
+
341
+ $hdl_holder = $('<div />')
342
+ .width(pct(100)).height(pct(100)).css('zIndex', 320),
343
+
344
+ $sel = $('<div />')
345
+ .css({
346
+ position: 'absolute',
347
+ zIndex: 300
348
+ }).insertBefore($img).append($img_holder, $hdl_holder);
349
+
350
+ if (ie6mode) {
351
+ $sel.css({
352
+ overflowY: 'hidden'
353
+ });
354
+ }
355
+
356
+ var bound = options.boundary;
357
+ var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({
358
+ position: 'absolute',
359
+ top: px(-bound),
360
+ left: px(-bound),
361
+ zIndex: 290
362
+ }).mousedown(newSelection);
363
+
364
+ /* }}} */
365
+ // Set more variables {{{
366
+ var bgopacity = options.bgOpacity,
367
+ xlimit, ylimit, xmin, ymin, xscale, yscale, enabled = true,
368
+ btndown, animating, shift_down;
369
+
370
+ docOffset = getPos($img);
371
+ // }}}
372
+ // }}}
373
+ // Internal Modules {{{
374
+ // Touch Module {{{
375
+ var Touch = (function () {
376
+ // Touch support detection function adapted (under MIT License)
377
+ // from code by Jeffrey Sambells - http://github.com/iamamused/
378
+ function hasTouchSupport() {
379
+ var support = {},
380
+ events = ['touchstart', 'touchmove', 'touchend'],
381
+ el = document.createElement('div'), i;
382
+
383
+ try {
384
+ for(i=0; i<events.length; i++) {
385
+ var eventName = events[i];
386
+ eventName = 'on' + eventName;
387
+ var isSupported = (eventName in el);
388
+ if (!isSupported) {
389
+ el.setAttribute(eventName, 'return;');
390
+ isSupported = typeof el[eventName] == 'function';
391
+ }
392
+ support[events[i]] = isSupported;
393
+ }
394
+ return support.touchstart && support.touchend && support.touchmove;
395
+ }
396
+ catch(err) {
397
+ return false;
398
+ }
399
+ }
400
+
401
+ function detectSupport() {
402
+ if ((options.touchSupport === true) || (options.touchSupport === false)) return options.touchSupport;
403
+ else return hasTouchSupport();
404
+ }
405
+ return {
406
+ createDragger: function (ord) {
407
+ return function (e) {
408
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
409
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
410
+ if (options.disabled) {
411
+ return false;
412
+ }
413
+ if ((ord === 'move') && !options.allowMove) {
414
+ return false;
415
+ }
416
+ btndown = true;
417
+ startDragMode(ord, mouseAbs(e));
418
+ e.stopPropagation();
419
+ e.preventDefault();
420
+ return false;
421
+ };
422
+ },
423
+ newSelection: function (e) {
424
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
425
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
426
+ return newSelection(e);
427
+ },
428
+ isSupported: hasTouchSupport,
429
+ support: detectSupport()
430
+ };
431
+ }());
432
+ // }}}
433
+ // Coords Module {{{
434
+ var Coords = (function () {
435
+ var x1 = 0,
436
+ y1 = 0,
437
+ x2 = 0,
438
+ y2 = 0,
439
+ ox, oy;
440
+
441
+ function setPressed(pos) //{{{
442
+ {
443
+ pos = rebound(pos);
444
+ x2 = x1 = pos[0];
445
+ y2 = y1 = pos[1];
446
+ }
447
+ //}}}
448
+ function setCurrent(pos) //{{{
449
+ {
450
+ pos = rebound(pos);
451
+ ox = pos[0] - x2;
452
+ oy = pos[1] - y2;
453
+ x2 = pos[0];
454
+ y2 = pos[1];
455
+ }
456
+ //}}}
457
+ function getOffset() //{{{
458
+ {
459
+ return [ox, oy];
460
+ }
461
+ //}}}
462
+ function moveOffset(offset) //{{{
463
+ {
464
+ var ox = offset[0],
465
+ oy = offset[1];
466
+
467
+ if (0 > x1 + ox) {
468
+ ox -= ox + x1;
469
+ }
470
+ if (0 > y1 + oy) {
471
+ oy -= oy + y1;
472
+ }
473
+
474
+ if (boundy < y2 + oy) {
475
+ oy += boundy - (y2 + oy);
476
+ }
477
+ if (boundx < x2 + ox) {
478
+ ox += boundx - (x2 + ox);
479
+ }
480
+
481
+ x1 += ox;
482
+ x2 += ox;
483
+ y1 += oy;
484
+ y2 += oy;
485
+ }
486
+ //}}}
487
+ function getCorner(ord) //{{{
488
+ {
489
+ var c = getFixed();
490
+ switch (ord) {
491
+ case 'ne':
492
+ return [c.x2, c.y];
493
+ case 'nw':
494
+ return [c.x, c.y];
495
+ case 'se':
496
+ return [c.x2, c.y2];
497
+ case 'sw':
498
+ return [c.x, c.y2];
499
+ }
500
+ }
501
+ //}}}
502
+ function getFixed() //{{{
503
+ {
504
+ if (!options.aspectRatio) {
505
+ return getRect();
506
+ }
507
+ // This function could use some optimization I think...
508
+ var aspect = options.aspectRatio,
509
+ min_x = options.minSize[0] / xscale,
510
+
511
+
512
+ //min_y = options.minSize[1]/yscale,
513
+ max_x = options.maxSize[0] / xscale,
514
+ max_y = options.maxSize[1] / yscale,
515
+ rw = x2 - x1,
516
+ rh = y2 - y1,
517
+ rwa = Math.abs(rw),
518
+ rha = Math.abs(rh),
519
+ real_ratio = rwa / rha,
520
+ xx, yy;
521
+
522
+ if (max_x === 0) {
523
+ max_x = boundx * 10;
524
+ }
525
+ if (max_y === 0) {
526
+ max_y = boundy * 10;
527
+ }
528
+ if (real_ratio < aspect) {
529
+ yy = y2;
530
+ w = rha * aspect;
531
+ xx = rw < 0 ? x1 - w : w + x1;
532
+
533
+ if (xx < 0) {
534
+ xx = 0;
535
+ h = Math.abs((xx - x1) / aspect);
536
+ yy = rh < 0 ? y1 - h : h + y1;
537
+ } else if (xx > boundx) {
538
+ xx = boundx;
539
+ h = Math.abs((xx - x1) / aspect);
540
+ yy = rh < 0 ? y1 - h : h + y1;
541
+ }
542
+ } else {
543
+ xx = x2;
544
+ h = rwa / aspect;
545
+ yy = rh < 0 ? y1 - h : y1 + h;
546
+ if (yy < 0) {
547
+ yy = 0;
548
+ w = Math.abs((yy - y1) * aspect);
549
+ xx = rw < 0 ? x1 - w : w + x1;
550
+ } else if (yy > boundy) {
551
+ yy = boundy;
552
+ w = Math.abs(yy - y1) * aspect;
553
+ xx = rw < 0 ? x1 - w : w + x1;
554
+ }
555
+ }
556
+
557
+ // Magic %-)
558
+ if (xx > x1) { // right side
559
+ if (xx - x1 < min_x) {
560
+ xx = x1 + min_x;
561
+ } else if (xx - x1 > max_x) {
562
+ xx = x1 + max_x;
563
+ }
564
+ if (yy > y1) {
565
+ yy = y1 + (xx - x1) / aspect;
566
+ } else {
567
+ yy = y1 - (xx - x1) / aspect;
568
+ }
569
+ } else if (xx < x1) { // left side
570
+ if (x1 - xx < min_x) {
571
+ xx = x1 - min_x;
572
+ } else if (x1 - xx > max_x) {
573
+ xx = x1 - max_x;
574
+ }
575
+ if (yy > y1) {
576
+ yy = y1 + (x1 - xx) / aspect;
577
+ } else {
578
+ yy = y1 - (x1 - xx) / aspect;
579
+ }
580
+ }
581
+
582
+ if (xx < 0) {
583
+ x1 -= xx;
584
+ xx = 0;
585
+ } else if (xx > boundx) {
586
+ x1 -= xx - boundx;
587
+ xx = boundx;
588
+ }
589
+
590
+ if (yy < 0) {
591
+ y1 -= yy;
592
+ yy = 0;
593
+ } else if (yy > boundy) {
594
+ y1 -= yy - boundy;
595
+ yy = boundy;
596
+ }
597
+
598
+ return makeObj(flipCoords(x1, y1, xx, yy));
599
+ }
600
+ //}}}
601
+ function rebound(p) //{{{
602
+ {
603
+ if (p[0] < 0) {
604
+ p[0] = 0;
605
+ }
606
+ if (p[1] < 0) {
607
+ p[1] = 0;
608
+ }
609
+
610
+ if (p[0] > boundx) {
611
+ p[0] = boundx;
612
+ }
613
+ if (p[1] > boundy) {
614
+ p[1] = boundy;
615
+ }
616
+
617
+ return [p[0], p[1]];
618
+ }
619
+ //}}}
620
+ function flipCoords(x1, y1, x2, y2) //{{{
621
+ {
622
+ var xa = x1,
623
+ xb = x2,
624
+ ya = y1,
625
+ yb = y2;
626
+ if (x2 < x1) {
627
+ xa = x2;
628
+ xb = x1;
629
+ }
630
+ if (y2 < y1) {
631
+ ya = y2;
632
+ yb = y1;
633
+ }
634
+ return [Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb)];
635
+ }
636
+ //}}}
637
+ function getRect() //{{{
638
+ {
639
+ var xsize = x2 - x1,
640
+ ysize = y2 - y1,
641
+ delta;
642
+
643
+ if (xlimit && (Math.abs(xsize) > xlimit)) {
644
+ x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit);
645
+ }
646
+ if (ylimit && (Math.abs(ysize) > ylimit)) {
647
+ y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit);
648
+ }
649
+
650
+ if (ymin / yscale && (Math.abs(ysize) < ymin / yscale)) {
651
+ y2 = (ysize > 0) ? (y1 + ymin / yscale) : (y1 - ymin / yscale);
652
+ }
653
+ if (xmin / xscale && (Math.abs(xsize) < xmin / xscale)) {
654
+ x2 = (xsize > 0) ? (x1 + xmin / xscale) : (x1 - xmin / xscale);
655
+ }
656
+
657
+ if (x1 < 0) {
658
+ x2 -= x1;
659
+ x1 -= x1;
660
+ }
661
+ if (y1 < 0) {
662
+ y2 -= y1;
663
+ y1 -= y1;
664
+ }
665
+ if (x2 < 0) {
666
+ x1 -= x2;
667
+ x2 -= x2;
668
+ }
669
+ if (y2 < 0) {
670
+ y1 -= y2;
671
+ y2 -= y2;
672
+ }
673
+ if (x2 > boundx) {
674
+ delta = x2 - boundx;
675
+ x1 -= delta;
676
+ x2 -= delta;
677
+ }
678
+ if (y2 > boundy) {
679
+ delta = y2 - boundy;
680
+ y1 -= delta;
681
+ y2 -= delta;
682
+ }
683
+ if (x1 > boundx) {
684
+ delta = x1 - boundy;
685
+ y2 -= delta;
686
+ y1 -= delta;
687
+ }
688
+ if (y1 > boundy) {
689
+ delta = y1 - boundy;
690
+ y2 -= delta;
691
+ y1 -= delta;
692
+ }
693
+
694
+ return makeObj(flipCoords(x1, y1, x2, y2));
695
+ }
696
+ //}}}
697
+ function makeObj(a) //{{{
698
+ {
699
+ return {
700
+ x: a[0],
701
+ y: a[1],
702
+ x2: a[2],
703
+ y2: a[3],
704
+ w: a[2] - a[0],
705
+ h: a[3] - a[1]
706
+ };
707
+ }
708
+ //}}}
709
+
710
+ return {
711
+ flipCoords: flipCoords,
712
+ setPressed: setPressed,
713
+ setCurrent: setCurrent,
714
+ getOffset: getOffset,
715
+ moveOffset: moveOffset,
716
+ getCorner: getCorner,
717
+ getFixed: getFixed
718
+ };
719
+ }());
720
+
721
+ //}}}
722
+ // Selection Module {{{
723
+ var Selection = (function () {
724
+ var awake, hdep = 370;
725
+ var borders = {};
726
+ var handle = {};
727
+ var seehandles = false;
728
+ var hhs = options.handleOffset;
729
+
730
+ // Private Methods
731
+ function insertBorder(type) //{{{
732
+ {
733
+ var jq = $('<div />').css({
734
+ position: 'absolute',
735
+ opacity: options.borderOpacity
736
+ }).addClass(cssClass(type));
737
+ $img_holder.append(jq);
738
+ return jq;
739
+ }
740
+ //}}}
741
+ function dragDiv(ord, zi) //{{{
742
+ {
743
+ var jq = $('<div />').mousedown(createDragger(ord)).css({
744
+ cursor: ord + '-resize',
745
+ position: 'absolute',
746
+ zIndex: zi
747
+ });
748
+
749
+ if (Touch.support) {
750
+ jq.bind('touchstart', Touch.createDragger(ord));
751
+ }
752
+
753
+ $hdl_holder.append(jq);
754
+ return jq;
755
+ }
756
+ //}}}
757
+ function insertHandle(ord) //{{{
758
+ {
759
+ return dragDiv(ord, hdep++).css({
760
+ top: px(-hhs + 1),
761
+ left: px(-hhs + 1),
762
+ opacity: options.handleOpacity
763
+ }).addClass(cssClass('handle'));
764
+ }
765
+ //}}}
766
+ function insertDragbar(ord) //{{{
767
+ {
768
+ var s = options.handleSize,
769
+ h = s,
770
+ w = s,
771
+ t = hhs,
772
+ l = hhs;
773
+
774
+ switch (ord) {
775
+ case 'n':
776
+ case 's':
777
+ w = pct(100);
778
+ break;
779
+ case 'e':
780
+ case 'w':
781
+ h = pct(100);
782
+ break;
783
+ }
784
+
785
+ return dragDiv(ord, hdep++).width(w).height(h).css({
786
+ top: px(-t + 1),
787
+ left: px(-l + 1)
788
+ });
789
+ }
790
+ //}}}
791
+ function createHandles(li) //{{{
792
+ {
793
+ var i;
794
+ for (i = 0; i < li.length; i++) {
795
+ handle[li[i]] = insertHandle(li[i]);
796
+ }
797
+ }
798
+ //}}}
799
+ function moveHandles(c) //{{{
800
+ {
801
+ var midvert = Math.round((c.h / 2) - hhs),
802
+ midhoriz = Math.round((c.w / 2) - hhs),
803
+ north = -hhs + 1,
804
+ west = -hhs + 1,
805
+ east = c.w - hhs,
806
+ south = c.h - hhs,
807
+ x, y;
808
+
809
+ if (handle.e) {
810
+ handle.e.css({
811
+ top: px(midvert),
812
+ left: px(east)
813
+ });
814
+ handle.w.css({
815
+ top: px(midvert)
816
+ });
817
+ handle.s.css({
818
+ top: px(south),
819
+ left: px(midhoriz)
820
+ });
821
+ handle.n.css({
822
+ left: px(midhoriz)
823
+ });
824
+ }
825
+ if (handle.ne) {
826
+ handle.ne.css({
827
+ left: px(east)
828
+ });
829
+ handle.se.css({
830
+ top: px(south),
831
+ left: px(east)
832
+ });
833
+ handle.sw.css({
834
+ top: px(south)
835
+ });
836
+ }
837
+ if (handle.b) {
838
+ handle.b.css({
839
+ top: px(south)
840
+ });
841
+ handle.r.css({
842
+ left: px(east)
843
+ });
844
+ }
845
+ }
846
+ //}}}
847
+ function moveto(x, y) //{{{
848
+ {
849
+ $img2.css({
850
+ top: px(-y),
851
+ left: px(-x)
852
+ });
853
+ $sel.css({
854
+ top: px(y),
855
+ left: px(x)
856
+ });
857
+ }
858
+ //}}}
859
+ function resize(w, h) //{{{
860
+ {
861
+ $sel.width(w).height(h);
862
+ }
863
+ //}}}
864
+ function refresh() //{{{
865
+ {
866
+ var c = Coords.getFixed();
867
+
868
+ Coords.setPressed([c.x, c.y]);
869
+ Coords.setCurrent([c.x2, c.y2]);
870
+
871
+ updateVisible();
872
+ }
873
+ //}}}
874
+
875
+ // Internal Methods
876
+ function updateVisible() //{{{
877
+ {
878
+ if (awake) {
879
+ return update();
880
+ }
881
+ }
882
+ //}}}
883
+ function update() //{{{
884
+ {
885
+ var c = Coords.getFixed();
886
+
887
+ resize(c.w, c.h);
888
+ moveto(c.x, c.y);
889
+
890
+ /*
891
+ options.drawBorders &&
892
+ borders.right.css({ left: px(c.w-1) }) &&
893
+ borders.bottom.css({ top: px(c.h-1) });
894
+ */
895
+
896
+ if (seehandles) {
897
+ moveHandles(c);
898
+ }
899
+ if (!awake) {
900
+ show();
901
+ }
902
+
903
+ options.onChange.call(api, unscale(c));
904
+ }
905
+ //}}}
906
+ function show() //{{{
907
+ {
908
+ $sel.show();
909
+
910
+ if (options.bgFade) {
911
+ $img.fadeTo(options.fadeTime, bgopacity);
912
+ } else {
913
+ $img.css('opacity', bgopacity);
914
+ }
915
+
916
+ awake = true;
917
+ }
918
+ //}}}
919
+ function release() //{{{
920
+ {
921
+ disableHandles();
922
+ $sel.hide();
923
+
924
+ if (options.bgFade) {
925
+ $img.fadeTo(options.fadeTime, 1);
926
+ } else {
927
+ $img.css('opacity', 1);
928
+ }
929
+
930
+ awake = false;
931
+ options.onRelease.call(api);
932
+ }
933
+ //}}}
934
+ function showHandles() //{{{
935
+ {
936
+ if (seehandles) {
937
+ moveHandles(Coords.getFixed());
938
+ $hdl_holder.show();
939
+ }
940
+ }
941
+ //}}}
942
+ function enableHandles() //{{{
943
+ {
944
+ seehandles = true;
945
+ if (options.allowResize) {
946
+ moveHandles(Coords.getFixed());
947
+ $hdl_holder.show();
948
+ return true;
949
+ }
950
+ }
951
+ //}}}
952
+ function disableHandles() //{{{
953
+ {
954
+ seehandles = false;
955
+ $hdl_holder.hide();
956
+ }
957
+ //}}}
958
+ function animMode(v) //{{{
959
+ {
960
+ if (animating === v) {
961
+ disableHandles();
962
+ } else {
963
+ enableHandles();
964
+ }
965
+ }
966
+ //}}}
967
+ function done() //{{{
968
+ {
969
+ animMode(false);
970
+ refresh();
971
+ }
972
+ //}}}
973
+ /* Insert draggable elements {{{*/
974
+
975
+ // Insert border divs for outline
976
+ if (options.drawBorders) {
977
+ borders = {
978
+ top: insertBorder('hline'),
979
+ bottom: insertBorder('hline bottom'),
980
+ left: insertBorder('vline'),
981
+ right: insertBorder('vline right')
982
+ };
983
+ }
984
+
985
+ // Insert handles on edges
986
+ if (options.dragEdges) {
987
+ handle.t = insertDragbar('n');
988
+ handle.b = insertDragbar('s');
989
+ handle.r = insertDragbar('e');
990
+ handle.l = insertDragbar('w');
991
+ }
992
+
993
+ // Insert side and corner handles
994
+ if (options.sideHandles) {
995
+ createHandles(['n', 's', 'e', 'w']);
996
+ }
997
+ if (options.cornerHandles) {
998
+ createHandles(['sw', 'nw', 'ne', 'se']);
999
+ }
1000
+
1001
+
1002
+ //}}}
1003
+
1004
+ var $track = newTracker().mousedown(createDragger('move')).css({
1005
+ cursor: 'move',
1006
+ position: 'absolute',
1007
+ zIndex: 360
1008
+ });
1009
+
1010
+ if (Touch.support) {
1011
+ $track.bind('touchstart.jcrop', Touch.createDragger('move'));
1012
+ }
1013
+
1014
+ $img_holder.append($track);
1015
+ disableHandles();
1016
+
1017
+ return {
1018
+ updateVisible: updateVisible,
1019
+ update: update,
1020
+ release: release,
1021
+ refresh: refresh,
1022
+ isAwake: function () {
1023
+ return awake;
1024
+ },
1025
+ setCursor: function (cursor) {
1026
+ $track.css('cursor', cursor);
1027
+ },
1028
+ enableHandles: enableHandles,
1029
+ enableOnly: function () {
1030
+ seehandles = true;
1031
+ },
1032
+ showHandles: showHandles,
1033
+ disableHandles: disableHandles,
1034
+ animMode: animMode,
1035
+ done: done
1036
+ };
1037
+ }());
1038
+
1039
+ //}}}
1040
+ // Tracker Module {{{
1041
+ var Tracker = (function () {
1042
+ var onMove = function () {},
1043
+ onDone = function () {},
1044
+ trackDoc = options.trackDocument;
1045
+
1046
+ function toFront() //{{{
1047
+ {
1048
+ $trk.css({
1049
+ zIndex: 450
1050
+ });
1051
+ if (trackDoc) {
1052
+ $(document)
1053
+ .bind('mousemove',trackMove)
1054
+ .bind('mouseup',trackUp);
1055
+ }
1056
+ }
1057
+ //}}}
1058
+ function toBack() //{{{
1059
+ {
1060
+ $trk.css({
1061
+ zIndex: 290
1062
+ });
1063
+ if (trackDoc) {
1064
+ $(document)
1065
+ .unbind('mousemove', trackMove)
1066
+ .unbind('mouseup', trackUp);
1067
+ }
1068
+ }
1069
+ //}}}
1070
+ function trackMove(e) //{{{
1071
+ {
1072
+ onMove(mouseAbs(e));
1073
+ return false;
1074
+ }
1075
+ //}}}
1076
+ function trackUp(e) //{{{
1077
+ {
1078
+ e.preventDefault();
1079
+ e.stopPropagation();
1080
+
1081
+ if (btndown) {
1082
+ btndown = false;
1083
+
1084
+ onDone(mouseAbs(e));
1085
+
1086
+ if (Selection.isAwake()) {
1087
+ options.onSelect.call(api, unscale(Coords.getFixed()));
1088
+ }
1089
+
1090
+ toBack();
1091
+ onMove = function () {};
1092
+ onDone = function () {};
1093
+ }
1094
+
1095
+ return false;
1096
+ }
1097
+ //}}}
1098
+ function activateHandlers(move, done) //{{{
1099
+ {
1100
+ btndown = true;
1101
+ onMove = move;
1102
+ onDone = done;
1103
+ toFront();
1104
+ return false;
1105
+ }
1106
+ //}}}
1107
+ function trackTouchMove(e) //{{{
1108
+ {
1109
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
1110
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
1111
+ return trackMove(e);
1112
+ }
1113
+ //}}}
1114
+ function trackTouchEnd(e) //{{{
1115
+ {
1116
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
1117
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
1118
+ return trackUp(e);
1119
+ }
1120
+ //}}}
1121
+ function setCursor(t) //{{{
1122
+ {
1123
+ $trk.css('cursor', t);
1124
+ }
1125
+ //}}}
1126
+
1127
+ if (Touch.support) {
1128
+ $(document)
1129
+ .bind('touchmove', trackTouchMove)
1130
+ .bind('touchend', trackTouchEnd);
1131
+ }
1132
+
1133
+ if (!trackDoc) {
1134
+ $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
1135
+ }
1136
+
1137
+ $img.before($trk);
1138
+ return {
1139
+ activateHandlers: activateHandlers,
1140
+ setCursor: setCursor
1141
+ };
1142
+ }());
1143
+ //}}}
1144
+ // KeyManager Module {{{
1145
+ var KeyManager = (function () {
1146
+ var $keymgr = $('<input type="radio" />').css({
1147
+ position: 'fixed',
1148
+ left: '-120px',
1149
+ width: '12px'
1150
+ }),
1151
+ $keywrap = $('<div />').css({
1152
+ position: 'absolute',
1153
+ overflow: 'hidden'
1154
+ }).append($keymgr);
1155
+
1156
+ function watchKeys() //{{{
1157
+ {
1158
+ if (options.keySupport) {
1159
+ $keymgr.show();
1160
+ $keymgr.focus();
1161
+ }
1162
+ }
1163
+ //}}}
1164
+ function onBlur(e) //{{{
1165
+ {
1166
+ $keymgr.hide();
1167
+ }
1168
+ //}}}
1169
+ function doNudge(e, x, y) //{{{
1170
+ {
1171
+ if (options.allowMove) {
1172
+ Coords.moveOffset([x, y]);
1173
+ Selection.updateVisible();
1174
+ }
1175
+ e.preventDefault();
1176
+ e.stopPropagation();
1177
+ }
1178
+ //}}}
1179
+ function parseKey(e) //{{{
1180
+ {
1181
+ if (e.ctrlKey) {
1182
+ return true;
1183
+ }
1184
+ shift_down = e.shiftKey ? true : false;
1185
+ var nudge = shift_down ? 10 : 1;
1186
+
1187
+ switch (e.keyCode) {
1188
+ case 37:
1189
+ doNudge(e, -nudge, 0);
1190
+ break;
1191
+ case 39:
1192
+ doNudge(e, nudge, 0);
1193
+ break;
1194
+ case 38:
1195
+ doNudge(e, 0, -nudge);
1196
+ break;
1197
+ case 40:
1198
+ doNudge(e, 0, nudge);
1199
+ break;
1200
+ case 27:
1201
+ Selection.release();
1202
+ break;
1203
+ case 9:
1204
+ return true;
1205
+ }
1206
+
1207
+ return false;
1208
+ }
1209
+ //}}}
1210
+
1211
+ if (options.keySupport) {
1212
+ $keymgr.keydown(parseKey).blur(onBlur);
1213
+ if (ie6mode || !options.fixedSupport) {
1214
+ $keymgr.css({
1215
+ position: 'absolute',
1216
+ left: '-20px'
1217
+ });
1218
+ $keywrap.append($keymgr).insertBefore($img);
1219
+ } else {
1220
+ $keymgr.insertBefore($img);
1221
+ }
1222
+ }
1223
+
1224
+
1225
+ return {
1226
+ watchKeys: watchKeys
1227
+ };
1228
+ }());
1229
+ //}}}
1230
+ // }}}
1231
+ // API methods {{{
1232
+ function setClass(cname) //{{{
1233
+ {
1234
+ $div.removeClass().addClass(cssClass('holder')).addClass(cname);
1235
+ }
1236
+ //}}}
1237
+ function animateTo(a, callback) //{{{
1238
+ {
1239
+ var x1 = parseInt(a[0], 10) / xscale,
1240
+ y1 = parseInt(a[1], 10) / yscale,
1241
+ x2 = parseInt(a[2], 10) / xscale,
1242
+ y2 = parseInt(a[3], 10) / yscale;
1243
+
1244
+ if (animating) {
1245
+ return;
1246
+ }
1247
+
1248
+ var animto = Coords.flipCoords(x1, y1, x2, y2),
1249
+ c = Coords.getFixed(),
1250
+ initcr = [c.x, c.y, c.x2, c.y2],
1251
+ animat = initcr,
1252
+ interv = options.animationDelay,
1253
+ ix1 = animto[0] - initcr[0],
1254
+ iy1 = animto[1] - initcr[1],
1255
+ ix2 = animto[2] - initcr[2],
1256
+ iy2 = animto[3] - initcr[3],
1257
+ pcent = 0,
1258
+ velocity = options.swingSpeed;
1259
+
1260
+ x = animat[0];
1261
+ y = animat[1];
1262
+ x2 = animat[2];
1263
+ y2 = animat[3];
1264
+
1265
+ Selection.animMode(true);
1266
+ var anim_timer;
1267
+
1268
+ function queueAnimator() {
1269
+ window.setTimeout(animator, interv);
1270
+ }
1271
+ var animator = (function () {
1272
+ return function () {
1273
+ pcent += (100 - pcent) / velocity;
1274
+
1275
+ animat[0] = x + ((pcent / 100) * ix1);
1276
+ animat[1] = y + ((pcent / 100) * iy1);
1277
+ animat[2] = x2 + ((pcent / 100) * ix2);
1278
+ animat[3] = y2 + ((pcent / 100) * iy2);
1279
+
1280
+ if (pcent >= 99.8) {
1281
+ pcent = 100;
1282
+ }
1283
+ if (pcent < 100) {
1284
+ setSelectRaw(animat);
1285
+ queueAnimator();
1286
+ } else {
1287
+ Selection.done();
1288
+ if (typeof(callback) === 'function') {
1289
+ callback.call(api);
1290
+ }
1291
+ }
1292
+ };
1293
+ }());
1294
+ queueAnimator();
1295
+ }
1296
+ //}}}
1297
+ function setSelect(rect) //{{{
1298
+ {
1299
+ setSelectRaw([
1300
+ parseInt(rect[0], 10) / xscale, parseInt(rect[1], 10) / yscale, parseInt(rect[2], 10) / xscale, parseInt(rect[3], 10) / yscale]);
1301
+ }
1302
+ //}}}
1303
+ function setSelectRaw(l) //{{{
1304
+ {
1305
+ Coords.setPressed([l[0], l[1]]);
1306
+ Coords.setCurrent([l[2], l[3]]);
1307
+ Selection.update();
1308
+ }
1309
+ //}}}
1310
+ function tellSelect() //{{{
1311
+ {
1312
+ return unscale(Coords.getFixed());
1313
+ }
1314
+ //}}}
1315
+ function tellScaled() //{{{
1316
+ {
1317
+ return Coords.getFixed();
1318
+ }
1319
+ //}}}
1320
+ function setOptionsNew(opt) //{{{
1321
+ {
1322
+ setOptions(opt);
1323
+ interfaceUpdate();
1324
+ }
1325
+ //}}}
1326
+ function disableCrop() //{{{
1327
+ {
1328
+ options.disabled = true;
1329
+ Selection.disableHandles();
1330
+ Selection.setCursor('default');
1331
+ Tracker.setCursor('default');
1332
+ }
1333
+ //}}}
1334
+ function enableCrop() //{{{
1335
+ {
1336
+ options.disabled = false;
1337
+ interfaceUpdate();
1338
+ }
1339
+ //}}}
1340
+ function cancelCrop() //{{{
1341
+ {
1342
+ Selection.done();
1343
+ Tracker.activateHandlers(null, null);
1344
+ }
1345
+ //}}}
1346
+ function destroy() //{{{
1347
+ {
1348
+ $div.remove();
1349
+ $origimg.show();
1350
+ $(obj).removeData('Jcrop');
1351
+ }
1352
+ //}}}
1353
+ function setImage(src, callback) //{{{
1354
+ {
1355
+ Selection.release();
1356
+ disableCrop();
1357
+ var img = new Image();
1358
+ img.onload = function () {
1359
+ var iw = img.width;
1360
+ var ih = img.height;
1361
+ var bw = options.boxWidth;
1362
+ var bh = options.boxHeight;
1363
+ $img.width(iw).height(ih);
1364
+ $img.attr('src', src);
1365
+ $img2.attr('src', src);
1366
+ presize($img, bw, bh);
1367
+ boundx = $img.width();
1368
+ boundy = $img.height();
1369
+ $img2.width(boundx).height(boundy);
1370
+ $trk.width(boundx + (bound * 2)).height(boundy + (bound * 2));
1371
+ $div.width(boundx).height(boundy);
1372
+ enableCrop();
1373
+
1374
+ if (typeof(callback) === 'function') {
1375
+ callback.call(api);
1376
+ }
1377
+ };
1378
+ img.src = src;
1379
+ }
1380
+ //}}}
1381
+ function interfaceUpdate(alt) //{{{
1382
+ // This method tweaks the interface based on options object.
1383
+ // Called when options are changed and at end of initialization.
1384
+ {
1385
+ if (options.allowResize) {
1386
+ if (alt) {
1387
+ Selection.enableOnly();
1388
+ } else {
1389
+ Selection.enableHandles();
1390
+ }
1391
+ } else {
1392
+ Selection.disableHandles();
1393
+ }
1394
+
1395
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
1396
+ Selection.setCursor(options.allowMove ? 'move' : 'default');
1397
+
1398
+
1399
+ if (options.hasOwnProperty('setSelect')) {
1400
+ setSelect(options.setSelect);
1401
+ Selection.done();
1402
+ delete(options.setSelect);
1403
+ }
1404
+
1405
+ if (options.hasOwnProperty('trueSize')) {
1406
+ xscale = options.trueSize[0] / boundx;
1407
+ yscale = options.trueSize[1] / boundy;
1408
+ }
1409
+ if (options.hasOwnProperty('bgColor')) {
1410
+
1411
+ if (supportsColorFade() && options.fadeTime) {
1412
+ $div.animate({
1413
+ backgroundColor: options.bgColor
1414
+ }, {
1415
+ queue: false,
1416
+ duration: options.fadeTime
1417
+ });
1418
+ } else {
1419
+ $div.css('backgroundColor', options.bgColor);
1420
+ }
1421
+
1422
+ delete(options.bgColor);
1423
+ }
1424
+ if (options.hasOwnProperty('bgOpacity')) {
1425
+ bgopacity = options.bgOpacity;
1426
+
1427
+ if (Selection.isAwake()) {
1428
+ if (options.fadeTime) {
1429
+ $img.fadeTo(options.fadeTime, bgopacity);
1430
+ } else {
1431
+ $div.css('opacity', options.opacity);
1432
+ }
1433
+ }
1434
+ delete(options.bgOpacity);
1435
+ }
1436
+
1437
+ xlimit = options.maxSize[0] || 0;
1438
+ ylimit = options.maxSize[1] || 0;
1439
+ xmin = options.minSize[0] || 0;
1440
+ ymin = options.minSize[1] || 0;
1441
+
1442
+ if (options.hasOwnProperty('outerImage')) {
1443
+ $img.attr('src', options.outerImage);
1444
+ delete(options.outerImage);
1445
+ }
1446
+
1447
+ Selection.refresh();
1448
+ }
1449
+ //}}}
1450
+ //}}}
1451
+
1452
+ if (Touch.support) {
1453
+ $trk.bind('touchstart', Touch.newSelection);
1454
+ }
1455
+
1456
+ $hdl_holder.hide();
1457
+ interfaceUpdate(true);
1458
+
1459
+ var api = {
1460
+ setImage: setImage,
1461
+ animateTo: animateTo,
1462
+ setSelect: setSelect,
1463
+ setOptions: setOptionsNew,
1464
+ tellSelect: tellSelect,
1465
+ tellScaled: tellScaled,
1466
+ setClass: setClass,
1467
+
1468
+ disable: disableCrop,
1469
+ enable: enableCrop,
1470
+ cancel: cancelCrop,
1471
+ release: Selection.release,
1472
+ destroy: destroy,
1473
+
1474
+ focus: KeyManager.watchKeys,
1475
+
1476
+ getBounds: function () {
1477
+ return [boundx * xscale, boundy * yscale];
1478
+ },
1479
+ getWidgetSize: function () {
1480
+ return [boundx, boundy];
1481
+ },
1482
+ getScaleFactor: function () {
1483
+ return [xscale, yscale];
1484
+ },
1485
+
1486
+ ui: {
1487
+ holder: $div,
1488
+ selection: $sel
1489
+ }
1490
+ };
1491
+
1492
+ if ($.browser.msie) {
1493
+ $div.bind('selectstart', function () {
1494
+ return false;
1495
+ });
1496
+ }
1497
+
1498
+ $origimg.data('Jcrop', api);
1499
+ return api;
1500
+ };
1501
+ $.fn.Jcrop = function (options, callback) //{{{
1502
+ {
1503
+
1504
+ function attachWhenDone(from) //{{{
1505
+ {
1506
+ var opt = (typeof(options) === 'object') ? options : {};
1507
+ var loadsrc = opt.useImg || from.src;
1508
+ var img = new Image();
1509
+ img.onload = function () {
1510
+ function attachJcrop() {
1511
+ var api = $.Jcrop(from, opt);
1512
+ if (typeof(callback) === 'function') {
1513
+ callback.call(api);
1514
+ }
1515
+ }
1516
+
1517
+ function attachAttempt() {
1518
+ if (!img.width || !img.height) {
1519
+ window.setTimeout(attachAttempt, 50);
1520
+ } else {
1521
+ attachJcrop();
1522
+ }
1523
+ }
1524
+ window.setTimeout(attachAttempt, 50);
1525
+ };
1526
+ img.src = loadsrc;
1527
+ }
1528
+ //}}}
1529
+
1530
+ // Iterate over each object, attach Jcrop
1531
+ this.each(function () {
1532
+ // If we've already attached to this object
1533
+ if ($(this).data('Jcrop')) {
1534
+ // The API can be requested this way (undocumented)
1535
+ if (options === 'api') {
1536
+ return $(this).data('Jcrop');
1537
+ }
1538
+ // Otherwise, we just reset the options...
1539
+ else {
1540
+ $(this).data('Jcrop').setOptions(options);
1541
+ }
1542
+ }
1543
+ // If we haven't been attached, preload and attach
1544
+ else {
1545
+ attachWhenDone(this);
1546
+ }
1547
+ });
1548
+
1549
+ // Return "this" so the object is chainable (jQuery-style)
1550
+ return this;
1551
+ };
1552
+ //}}}
1553
+ // Global Defaults {{{
1554
+ $.Jcrop.defaults = {
1555
+
1556
+ // Basic Settings
1557
+ allowSelect: true,
1558
+ allowMove: true,
1559
+ allowResize: true,
1560
+
1561
+ trackDocument: true,
1562
+
1563
+ // Styling Options
1564
+ baseClass: 'jcrop',
1565
+ addClass: null,
1566
+ bgColor: 'black',
1567
+ bgOpacity: 0.6,
1568
+ bgFade: false,
1569
+ borderOpacity: 0.4,
1570
+ handleOpacity: 0.5,
1571
+ handleSize: 9,
1572
+ handleOffset: 5,
1573
+
1574
+ aspectRatio: 0,
1575
+ keySupport: true,
1576
+ cornerHandles: true,
1577
+ sideHandles: true,
1578
+ drawBorders: true,
1579
+ dragEdges: true,
1580
+ fixedSupport: true,
1581
+ touchSupport: null,
1582
+
1583
+ boxWidth: 0,
1584
+ boxHeight: 0,
1585
+ boundary: 2,
1586
+ fadeTime: 400,
1587
+ animationDelay: 20,
1588
+ swingSpeed: 3,
1589
+
1590
+ minSelect: [0, 0],
1591
+ maxSize: [0, 0],
1592
+ minSize: [0, 0],
1593
+
1594
+ // Callbacks / Event Handlers
1595
+ onChange: function () {},
1596
+ onSelect: function () {},
1597
+ onRelease: function () {}
1598
+ };
1599
+
1600
+ // }}}
1601
+ }(jQuery));