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,1600 @@
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
+ (function ($) {
32
+
33
+ $.Jcrop = function (obj, opt) {
34
+ var options = $.extend({}, $.Jcrop.defaults),
35
+ docOffset, lastcurs, ie6mode = false;
36
+
37
+ // Internal Methods {{{
38
+ function px(n) {
39
+ return parseInt(n, 10) + 'px';
40
+ }
41
+ function pct(n) {
42
+ return parseInt(n, 10) + '%';
43
+ }
44
+ function cssClass(cl) {
45
+ return options.baseClass + '-' + cl;
46
+ }
47
+ function supportsColorFade() {
48
+ return $.fx.step.hasOwnProperty('backgroundColor');
49
+ }
50
+ function getPos(obj) //{{{
51
+ {
52
+ // Updated in v0.9.4 to use built-in dimensions plugin
53
+ var pos = $(obj).offset();
54
+ return [pos.left, pos.top];
55
+ }
56
+ //}}}
57
+ function mouseAbs(e) //{{{
58
+ {
59
+ return [(e.pageX - docOffset[0]), (e.pageY - docOffset[1])];
60
+ }
61
+ //}}}
62
+ function setOptions(opt) //{{{
63
+ {
64
+ if (typeof(opt) !== 'object') {
65
+ opt = {};
66
+ }
67
+ options = $.extend(options, opt);
68
+
69
+ if (typeof(options.onChange) !== 'function') {
70
+ options.onChange = function () {};
71
+ }
72
+ if (typeof(options.onSelect) !== 'function') {
73
+ options.onSelect = function () {};
74
+ }
75
+ if (typeof(options.onRelease) !== 'function') {
76
+ options.onRelease = function () {};
77
+ }
78
+ }
79
+ //}}}
80
+ function myCursor(type) //{{{
81
+ {
82
+ if (type !== lastcurs) {
83
+ Tracker.setCursor(type);
84
+ lastcurs = type;
85
+ }
86
+ }
87
+ //}}}
88
+ function startDragMode(mode, pos) //{{{
89
+ {
90
+ docOffset = getPos($img);
91
+ Tracker.setCursor(mode === 'move' ? mode : mode + '-resize');
92
+
93
+ if (mode === 'move') {
94
+ return Tracker.activateHandlers(createMover(pos), doneSelect);
95
+ }
96
+
97
+ var fc = Coords.getFixed();
98
+ var opp = oppLockCorner(mode);
99
+ var opc = Coords.getCorner(oppLockCorner(opp));
100
+
101
+ Coords.setPressed(Coords.getCorner(opp));
102
+ Coords.setCurrent(opc);
103
+
104
+ Tracker.activateHandlers(dragmodeHandler(mode, fc), doneSelect);
105
+ }
106
+ //}}}
107
+ function dragmodeHandler(mode, f) //{{{
108
+ {
109
+ return function (pos) {
110
+ if (!options.aspectRatio) {
111
+ switch (mode) {
112
+ case 'e':
113
+ pos[1] = f.y2;
114
+ break;
115
+ case 'w':
116
+ pos[1] = f.y2;
117
+ break;
118
+ case 'n':
119
+ pos[0] = f.x2;
120
+ break;
121
+ case 's':
122
+ pos[0] = f.x2;
123
+ break;
124
+ }
125
+ } else {
126
+ switch (mode) {
127
+ case 'e':
128
+ pos[1] = f.y + 1;
129
+ break;
130
+ case 'w':
131
+ pos[1] = f.y + 1;
132
+ break;
133
+ case 'n':
134
+ pos[0] = f.x + 1;
135
+ break;
136
+ case 's':
137
+ pos[0] = f.x + 1;
138
+ break;
139
+ }
140
+ }
141
+ Coords.setCurrent(pos);
142
+ Selection.update();
143
+ };
144
+ }
145
+ //}}}
146
+ function createMover(pos) //{{{
147
+ {
148
+ var lloc = pos;
149
+ KeyManager.watchKeys();
150
+
151
+ return function (pos) {
152
+ Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
153
+ lloc = pos;
154
+
155
+ Selection.update();
156
+ };
157
+ }
158
+ //}}}
159
+ function oppLockCorner(ord) //{{{
160
+ {
161
+ switch (ord) {
162
+ case 'n':
163
+ return 'sw';
164
+ case 's':
165
+ return 'nw';
166
+ case 'e':
167
+ return 'nw';
168
+ case 'w':
169
+ return 'ne';
170
+ case 'ne':
171
+ return 'sw';
172
+ case 'nw':
173
+ return 'se';
174
+ case 'se':
175
+ return 'nw';
176
+ case 'sw':
177
+ return 'ne';
178
+ }
179
+ }
180
+ //}}}
181
+ function createDragger(ord) //{{{
182
+ {
183
+ return function (e) {
184
+ if (options.disabled) {
185
+ return false;
186
+ }
187
+ if ((ord === 'move') && !options.allowMove) {
188
+ return false;
189
+ }
190
+ btndown = true;
191
+ startDragMode(ord, mouseAbs(e));
192
+ e.stopPropagation();
193
+ e.preventDefault();
194
+ return false;
195
+ };
196
+ }
197
+ //}}}
198
+ function presize($obj, w, h) //{{{
199
+ {
200
+ var nw = $obj.width(),
201
+ nh = $obj.height();
202
+ if ((nw > w) && w > 0) {
203
+ nw = w;
204
+ nh = (w / $obj.width()) * $obj.height();
205
+ }
206
+ if ((nh > h) && h > 0) {
207
+ nh = h;
208
+ nw = (h / $obj.height()) * $obj.width();
209
+ }
210
+ xscale = $obj.width() / nw;
211
+ yscale = $obj.height() / nh;
212
+ $obj.width(nw).height(nh);
213
+ }
214
+ //}}}
215
+ function unscale(c) //{{{
216
+ {
217
+ return {
218
+ x: parseInt(c.x * xscale, 10),
219
+ y: parseInt(c.y * yscale, 10),
220
+ x2: parseInt(c.x2 * xscale, 10),
221
+ y2: parseInt(c.y2 * yscale, 10),
222
+ w: parseInt(c.w * xscale, 10),
223
+ h: parseInt(c.h * yscale, 10)
224
+ };
225
+ }
226
+ //}}}
227
+ function doneSelect(pos) //{{{
228
+ {
229
+ var c = Coords.getFixed();
230
+ if ((c.w > options.minSelect[0]) && (c.h > options.minSelect[1])) {
231
+ Selection.enableHandles();
232
+ Selection.done();
233
+ } else {
234
+ Selection.release();
235
+ }
236
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
237
+ }
238
+ //}}}
239
+ function newSelection(e) //{{{
240
+ {
241
+ if (options.disabled) {
242
+ return false;
243
+ }
244
+ if (!options.allowSelect) {
245
+ return false;
246
+ }
247
+ btndown = true;
248
+ docOffset = getPos($img);
249
+ Selection.disableHandles();
250
+ myCursor('crosshair');
251
+ var pos = mouseAbs(e);
252
+ Coords.setPressed(pos);
253
+ Selection.update();
254
+ Tracker.activateHandlers(selectDrag, doneSelect);
255
+ KeyManager.watchKeys();
256
+
257
+ e.stopPropagation();
258
+ e.preventDefault();
259
+ return false;
260
+ }
261
+ //}}}
262
+ function selectDrag(pos) //{{{
263
+ {
264
+ Coords.setCurrent(pos);
265
+ Selection.update();
266
+ }
267
+ //}}}
268
+ function newTracker() //{{{
269
+ {
270
+ var trk = $('<div></div>').addClass(cssClass('tracker'));
271
+ if ($.browser.msie) {
272
+ trk.css({
273
+ opacity: 0,
274
+ backgroundColor: 'white'
275
+ });
276
+ }
277
+ return trk;
278
+ }
279
+ //}}}
280
+
281
+ // }}}
282
+ // Initialization {{{
283
+ // Sanitize some options {{{
284
+ if ($.browser.msie && ($.browser.version.split('.')[0] === '6')) {
285
+ ie6mode = true;
286
+ }
287
+ if (typeof(obj) !== 'object') {
288
+ obj = $(obj)[0];
289
+ }
290
+ if (typeof(opt) !== 'object') {
291
+ opt = {};
292
+ }
293
+ // }}}
294
+ setOptions(opt);
295
+ // Initialize some jQuery objects {{{
296
+ // The values are SET on the image(s) for the interface
297
+ // If the original image has any of these set, they will be reset
298
+ // However, if you destroy() the Jcrop instance the original image's
299
+ // character in the DOM will be as you left it.
300
+ var img_css = {
301
+ border: 'none',
302
+ margin: 0,
303
+ padding: 0,
304
+ position: 'absolute'
305
+ };
306
+
307
+ var $origimg = $(obj);
308
+ var $img = $origimg.clone().removeAttr('id').css(img_css);
309
+
310
+ $img.width($origimg.width());
311
+ $img.height($origimg.height());
312
+ $origimg.after($img).hide();
313
+
314
+ presize($img, options.boxWidth, options.boxHeight);
315
+
316
+ var boundx = $img.width(),
317
+ boundy = $img.height(),
318
+
319
+
320
+ $div = $('<div />').width(boundx).height(boundy).addClass(cssClass('holder')).css({
321
+ position: 'relative',
322
+ backgroundColor: options.bgColor
323
+ }).insertAfter($origimg).append($img);
324
+
325
+ delete(options.bgColor);
326
+ if (options.addClass) {
327
+ $div.addClass(options.addClass);
328
+ }
329
+
330
+ var $img2 = $('<img />')
331
+ .attr('src', $img.attr('src')).css(img_css).width(boundx).height(boundy),
332
+
333
+ $img_holder = $('<div />')
334
+ .width(pct(100)).height(pct(100)).css({
335
+ zIndex: 310,
336
+ position: 'absolute',
337
+ overflow: 'hidden'
338
+ }).append($img2),
339
+
340
+ $hdl_holder = $('<div />')
341
+ .width(pct(100)).height(pct(100)).css('zIndex', 320),
342
+
343
+ $sel = $('<div />')
344
+ .css({
345
+ position: 'absolute',
346
+ zIndex: 300
347
+ }).insertBefore($img).append($img_holder, $hdl_holder);
348
+
349
+ if (ie6mode) {
350
+ $sel.css({
351
+ overflowY: 'hidden'
352
+ });
353
+ }
354
+
355
+ var bound = options.boundary;
356
+ var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({
357
+ position: 'absolute',
358
+ top: px(-bound),
359
+ left: px(-bound),
360
+ zIndex: 290
361
+ }).mousedown(newSelection);
362
+
363
+ /* }}} */
364
+ // Set more variables {{{
365
+ var bgopacity = options.bgOpacity,
366
+ xlimit, ylimit, xmin, ymin, xscale, yscale, enabled = true,
367
+ btndown, animating, shift_down;
368
+
369
+ docOffset = getPos($img);
370
+ // }}}
371
+ // }}}
372
+ // Internal Modules {{{
373
+ // Touch Module {{{
374
+ var Touch = (function () {
375
+ // Touch support detection function adapted (under MIT License)
376
+ // from code by Jeffrey Sambells - http://github.com/iamamused/
377
+ function hasTouchSupport() {
378
+ var support = {},
379
+ events = ['touchstart', 'touchmove', 'touchend'],
380
+ el = document.createElement('div'), i;
381
+
382
+ try {
383
+ for(i=0; i<events.length; i++) {
384
+ var eventName = events[i];
385
+ eventName = 'on' + eventName;
386
+ var isSupported = (eventName in el);
387
+ if (!isSupported) {
388
+ el.setAttribute(eventName, 'return;');
389
+ isSupported = typeof el[eventName] == 'function';
390
+ }
391
+ support[events[i]] = isSupported;
392
+ }
393
+ return support.touchstart && support.touchend && support.touchmove;
394
+ }
395
+ catch(err) {
396
+ return false;
397
+ }
398
+ }
399
+
400
+ function detectSupport() {
401
+ if ((options.touchSupport === true) || (options.touchSupport === false)) return options.touchSupport;
402
+ else return hasTouchSupport();
403
+ }
404
+ return {
405
+ createDragger: function (ord) {
406
+ return function (e) {
407
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
408
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
409
+ if (options.disabled) {
410
+ return false;
411
+ }
412
+ if ((ord === 'move') && !options.allowMove) {
413
+ return false;
414
+ }
415
+ btndown = true;
416
+ startDragMode(ord, mouseAbs(e));
417
+ e.stopPropagation();
418
+ e.preventDefault();
419
+ return false;
420
+ };
421
+ },
422
+ newSelection: function (e) {
423
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
424
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
425
+ return newSelection(e);
426
+ },
427
+ isSupported: hasTouchSupport,
428
+ support: detectSupport()
429
+ };
430
+ }());
431
+ // }}}
432
+ // Coords Module {{{
433
+ var Coords = (function () {
434
+ var x1 = 0,
435
+ y1 = 0,
436
+ x2 = 0,
437
+ y2 = 0,
438
+ ox, oy;
439
+
440
+ function setPressed(pos) //{{{
441
+ {
442
+ pos = rebound(pos);
443
+ x2 = x1 = pos[0];
444
+ y2 = y1 = pos[1];
445
+ }
446
+ //}}}
447
+ function setCurrent(pos) //{{{
448
+ {
449
+ pos = rebound(pos);
450
+ ox = pos[0] - x2;
451
+ oy = pos[1] - y2;
452
+ x2 = pos[0];
453
+ y2 = pos[1];
454
+ }
455
+ //}}}
456
+ function getOffset() //{{{
457
+ {
458
+ return [ox, oy];
459
+ }
460
+ //}}}
461
+ function moveOffset(offset) //{{{
462
+ {
463
+ var ox = offset[0],
464
+ oy = offset[1];
465
+
466
+ if (0 > x1 + ox) {
467
+ ox -= ox + x1;
468
+ }
469
+ if (0 > y1 + oy) {
470
+ oy -= oy + y1;
471
+ }
472
+
473
+ if (boundy < y2 + oy) {
474
+ oy += boundy - (y2 + oy);
475
+ }
476
+ if (boundx < x2 + ox) {
477
+ ox += boundx - (x2 + ox);
478
+ }
479
+
480
+ x1 += ox;
481
+ x2 += ox;
482
+ y1 += oy;
483
+ y2 += oy;
484
+ }
485
+ //}}}
486
+ function getCorner(ord) //{{{
487
+ {
488
+ var c = getFixed();
489
+ switch (ord) {
490
+ case 'ne':
491
+ return [c.x2, c.y];
492
+ case 'nw':
493
+ return [c.x, c.y];
494
+ case 'se':
495
+ return [c.x2, c.y2];
496
+ case 'sw':
497
+ return [c.x, c.y2];
498
+ }
499
+ }
500
+ //}}}
501
+ function getFixed() //{{{
502
+ {
503
+ if (!options.aspectRatio) {
504
+ return getRect();
505
+ }
506
+ // This function could use some optimization I think...
507
+ var aspect = options.aspectRatio,
508
+ min_x = options.minSize[0] / xscale,
509
+
510
+
511
+ //min_y = options.minSize[1]/yscale,
512
+ max_x = options.maxSize[0] / xscale,
513
+ max_y = options.maxSize[1] / yscale,
514
+ rw = x2 - x1,
515
+ rh = y2 - y1,
516
+ rwa = Math.abs(rw),
517
+ rha = Math.abs(rh),
518
+ real_ratio = rwa / rha,
519
+ xx, yy;
520
+
521
+ if (max_x === 0) {
522
+ max_x = boundx * 10;
523
+ }
524
+ if (max_y === 0) {
525
+ max_y = boundy * 10;
526
+ }
527
+ if (real_ratio < aspect) {
528
+ yy = y2;
529
+ w = rha * aspect;
530
+ xx = rw < 0 ? x1 - w : w + x1;
531
+
532
+ if (xx < 0) {
533
+ xx = 0;
534
+ h = Math.abs((xx - x1) / aspect);
535
+ yy = rh < 0 ? y1 - h : h + y1;
536
+ } else if (xx > boundx) {
537
+ xx = boundx;
538
+ h = Math.abs((xx - x1) / aspect);
539
+ yy = rh < 0 ? y1 - h : h + y1;
540
+ }
541
+ } else {
542
+ xx = x2;
543
+ h = rwa / aspect;
544
+ yy = rh < 0 ? y1 - h : y1 + h;
545
+ if (yy < 0) {
546
+ yy = 0;
547
+ w = Math.abs((yy - y1) * aspect);
548
+ xx = rw < 0 ? x1 - w : w + x1;
549
+ } else if (yy > boundy) {
550
+ yy = boundy;
551
+ w = Math.abs(yy - y1) * aspect;
552
+ xx = rw < 0 ? x1 - w : w + x1;
553
+ }
554
+ }
555
+
556
+ // Magic %-)
557
+ if (xx > x1) { // right side
558
+ if (xx - x1 < min_x) {
559
+ xx = x1 + min_x;
560
+ } else if (xx - x1 > max_x) {
561
+ xx = x1 + max_x;
562
+ }
563
+ if (yy > y1) {
564
+ yy = y1 + (xx - x1) / aspect;
565
+ } else {
566
+ yy = y1 - (xx - x1) / aspect;
567
+ }
568
+ } else if (xx < x1) { // left side
569
+ if (x1 - xx < min_x) {
570
+ xx = x1 - min_x;
571
+ } else if (x1 - xx > max_x) {
572
+ xx = x1 - max_x;
573
+ }
574
+ if (yy > y1) {
575
+ yy = y1 + (x1 - xx) / aspect;
576
+ } else {
577
+ yy = y1 - (x1 - xx) / aspect;
578
+ }
579
+ }
580
+
581
+ if (xx < 0) {
582
+ x1 -= xx;
583
+ xx = 0;
584
+ } else if (xx > boundx) {
585
+ x1 -= xx - boundx;
586
+ xx = boundx;
587
+ }
588
+
589
+ if (yy < 0) {
590
+ y1 -= yy;
591
+ yy = 0;
592
+ } else if (yy > boundy) {
593
+ y1 -= yy - boundy;
594
+ yy = boundy;
595
+ }
596
+
597
+ return makeObj(flipCoords(x1, y1, xx, yy));
598
+ }
599
+ //}}}
600
+ function rebound(p) //{{{
601
+ {
602
+ if (p[0] < 0) {
603
+ p[0] = 0;
604
+ }
605
+ if (p[1] < 0) {
606
+ p[1] = 0;
607
+ }
608
+
609
+ if (p[0] > boundx) {
610
+ p[0] = boundx;
611
+ }
612
+ if (p[1] > boundy) {
613
+ p[1] = boundy;
614
+ }
615
+
616
+ return [p[0], p[1]];
617
+ }
618
+ //}}}
619
+ function flipCoords(x1, y1, x2, y2) //{{{
620
+ {
621
+ var xa = x1,
622
+ xb = x2,
623
+ ya = y1,
624
+ yb = y2;
625
+ if (x2 < x1) {
626
+ xa = x2;
627
+ xb = x1;
628
+ }
629
+ if (y2 < y1) {
630
+ ya = y2;
631
+ yb = y1;
632
+ }
633
+ return [Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb)];
634
+ }
635
+ //}}}
636
+ function getRect() //{{{
637
+ {
638
+ var xsize = x2 - x1,
639
+ ysize = y2 - y1,
640
+ delta;
641
+
642
+ if (xlimit && (Math.abs(xsize) > xlimit)) {
643
+ x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit);
644
+ }
645
+ if (ylimit && (Math.abs(ysize) > ylimit)) {
646
+ y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit);
647
+ }
648
+
649
+ if (ymin / yscale && (Math.abs(ysize) < ymin / yscale)) {
650
+ y2 = (ysize > 0) ? (y1 + ymin / yscale) : (y1 - ymin / yscale);
651
+ }
652
+ if (xmin / xscale && (Math.abs(xsize) < xmin / xscale)) {
653
+ x2 = (xsize > 0) ? (x1 + xmin / xscale) : (x1 - xmin / xscale);
654
+ }
655
+
656
+ if (x1 < 0) {
657
+ x2 -= x1;
658
+ x1 -= x1;
659
+ }
660
+ if (y1 < 0) {
661
+ y2 -= y1;
662
+ y1 -= y1;
663
+ }
664
+ if (x2 < 0) {
665
+ x1 -= x2;
666
+ x2 -= x2;
667
+ }
668
+ if (y2 < 0) {
669
+ y1 -= y2;
670
+ y2 -= y2;
671
+ }
672
+ if (x2 > boundx) {
673
+ delta = x2 - boundx;
674
+ x1 -= delta;
675
+ x2 -= delta;
676
+ }
677
+ if (y2 > boundy) {
678
+ delta = y2 - boundy;
679
+ y1 -= delta;
680
+ y2 -= delta;
681
+ }
682
+ if (x1 > boundx) {
683
+ delta = x1 - boundy;
684
+ y2 -= delta;
685
+ y1 -= delta;
686
+ }
687
+ if (y1 > boundy) {
688
+ delta = y1 - boundy;
689
+ y2 -= delta;
690
+ y1 -= delta;
691
+ }
692
+
693
+ return makeObj(flipCoords(x1, y1, x2, y2));
694
+ }
695
+ //}}}
696
+ function makeObj(a) //{{{
697
+ {
698
+ return {
699
+ x: a[0],
700
+ y: a[1],
701
+ x2: a[2],
702
+ y2: a[3],
703
+ w: a[2] - a[0],
704
+ h: a[3] - a[1]
705
+ };
706
+ }
707
+ //}}}
708
+
709
+ return {
710
+ flipCoords: flipCoords,
711
+ setPressed: setPressed,
712
+ setCurrent: setCurrent,
713
+ getOffset: getOffset,
714
+ moveOffset: moveOffset,
715
+ getCorner: getCorner,
716
+ getFixed: getFixed
717
+ };
718
+ }());
719
+
720
+ //}}}
721
+ // Selection Module {{{
722
+ var Selection = (function () {
723
+ var awake, hdep = 370;
724
+ var borders = {};
725
+ var handle = {};
726
+ var seehandles = false;
727
+ var hhs = options.handleOffset;
728
+
729
+ // Private Methods
730
+ function insertBorder(type) //{{{
731
+ {
732
+ var jq = $('<div />').css({
733
+ position: 'absolute',
734
+ opacity: options.borderOpacity
735
+ }).addClass(cssClass(type));
736
+ $img_holder.append(jq);
737
+ return jq;
738
+ }
739
+ //}}}
740
+ function dragDiv(ord, zi) //{{{
741
+ {
742
+ var jq = $('<div />').mousedown(createDragger(ord)).css({
743
+ cursor: ord + '-resize',
744
+ position: 'absolute',
745
+ zIndex: zi
746
+ });
747
+
748
+ if (Touch.support) {
749
+ jq.bind('touchstart', Touch.createDragger(ord));
750
+ }
751
+
752
+ $hdl_holder.append(jq);
753
+ return jq;
754
+ }
755
+ //}}}
756
+ function insertHandle(ord) //{{{
757
+ {
758
+ return dragDiv(ord, hdep++).css({
759
+ top: px(-hhs + 1),
760
+ left: px(-hhs + 1),
761
+ opacity: options.handleOpacity
762
+ }).addClass(cssClass('handle'));
763
+ }
764
+ //}}}
765
+ function insertDragbar(ord) //{{{
766
+ {
767
+ var s = options.handleSize,
768
+ h = s,
769
+ w = s,
770
+ t = hhs,
771
+ l = hhs;
772
+
773
+ switch (ord) {
774
+ case 'n':
775
+ case 's':
776
+ w = pct(100);
777
+ break;
778
+ case 'e':
779
+ case 'w':
780
+ h = pct(100);
781
+ break;
782
+ }
783
+
784
+ return dragDiv(ord, hdep++).width(w).height(h).css({
785
+ top: px(-t + 1),
786
+ left: px(-l + 1)
787
+ });
788
+ }
789
+ //}}}
790
+ function createHandles(li) //{{{
791
+ {
792
+ var i;
793
+ for (i = 0; i < li.length; i++) {
794
+ handle[li[i]] = insertHandle(li[i]);
795
+ }
796
+ }
797
+ //}}}
798
+ function moveHandles(c) //{{{
799
+ {
800
+ var midvert = Math.round((c.h / 2) - hhs),
801
+ midhoriz = Math.round((c.w / 2) - hhs),
802
+ north = -hhs + 1,
803
+ west = -hhs + 1,
804
+ east = c.w - hhs,
805
+ south = c.h - hhs,
806
+ x, y;
807
+
808
+ if (handle.e) {
809
+ handle.e.css({
810
+ top: px(midvert),
811
+ left: px(east)
812
+ });
813
+ handle.w.css({
814
+ top: px(midvert)
815
+ });
816
+ handle.s.css({
817
+ top: px(south),
818
+ left: px(midhoriz)
819
+ });
820
+ handle.n.css({
821
+ left: px(midhoriz)
822
+ });
823
+ }
824
+ if (handle.ne) {
825
+ handle.ne.css({
826
+ left: px(east)
827
+ });
828
+ handle.se.css({
829
+ top: px(south),
830
+ left: px(east)
831
+ });
832
+ handle.sw.css({
833
+ top: px(south)
834
+ });
835
+ }
836
+ if (handle.b) {
837
+ handle.b.css({
838
+ top: px(south)
839
+ });
840
+ handle.r.css({
841
+ left: px(east)
842
+ });
843
+ }
844
+ }
845
+ //}}}
846
+ function moveto(x, y) //{{{
847
+ {
848
+ $img2.css({
849
+ top: px(-y),
850
+ left: px(-x)
851
+ });
852
+ $sel.css({
853
+ top: px(y),
854
+ left: px(x)
855
+ });
856
+ }
857
+ //}}}
858
+ function resize(w, h) //{{{
859
+ {
860
+ $sel.width(w).height(h);
861
+ }
862
+ //}}}
863
+ function refresh() //{{{
864
+ {
865
+ var c = Coords.getFixed();
866
+
867
+ Coords.setPressed([c.x, c.y]);
868
+ Coords.setCurrent([c.x2, c.y2]);
869
+
870
+ updateVisible();
871
+ }
872
+ //}}}
873
+
874
+ // Internal Methods
875
+ function updateVisible() //{{{
876
+ {
877
+ if (awake) {
878
+ return update();
879
+ }
880
+ }
881
+ //}}}
882
+ function update() //{{{
883
+ {
884
+ var c = Coords.getFixed();
885
+
886
+ resize(c.w, c.h);
887
+ moveto(c.x, c.y);
888
+
889
+ /*
890
+ options.drawBorders &&
891
+ borders.right.css({ left: px(c.w-1) }) &&
892
+ borders.bottom.css({ top: px(c.h-1) });
893
+ */
894
+
895
+ if (seehandles) {
896
+ moveHandles(c);
897
+ }
898
+ if (!awake) {
899
+ show();
900
+ }
901
+
902
+ options.onChange.call(api, unscale(c));
903
+ }
904
+ //}}}
905
+ function show() //{{{
906
+ {
907
+ $sel.show();
908
+
909
+ if (options.bgFade) {
910
+ $img.fadeTo(options.fadeTime, bgopacity);
911
+ } else {
912
+ $img.css('opacity', bgopacity);
913
+ }
914
+
915
+ awake = true;
916
+ }
917
+ //}}}
918
+ function release() //{{{
919
+ {
920
+ disableHandles();
921
+ $sel.hide();
922
+
923
+ if (options.bgFade) {
924
+ $img.fadeTo(options.fadeTime, 1);
925
+ } else {
926
+ $img.css('opacity', 1);
927
+ }
928
+
929
+ awake = false;
930
+ options.onRelease.call(api);
931
+ }
932
+ //}}}
933
+ function showHandles() //{{{
934
+ {
935
+ if (seehandles) {
936
+ moveHandles(Coords.getFixed());
937
+ $hdl_holder.show();
938
+ }
939
+ }
940
+ //}}}
941
+ function enableHandles() //{{{
942
+ {
943
+ seehandles = true;
944
+ if (options.allowResize) {
945
+ moveHandles(Coords.getFixed());
946
+ $hdl_holder.show();
947
+ return true;
948
+ }
949
+ }
950
+ //}}}
951
+ function disableHandles() //{{{
952
+ {
953
+ seehandles = false;
954
+ $hdl_holder.hide();
955
+ }
956
+ //}}}
957
+ function animMode(v) //{{{
958
+ {
959
+ if (animating === v) {
960
+ disableHandles();
961
+ } else {
962
+ enableHandles();
963
+ }
964
+ }
965
+ //}}}
966
+ function done() //{{{
967
+ {
968
+ animMode(false);
969
+ refresh();
970
+ }
971
+ //}}}
972
+ /* Insert draggable elements {{{*/
973
+
974
+ // Insert border divs for outline
975
+ if (options.drawBorders) {
976
+ borders = {
977
+ top: insertBorder('hline'),
978
+ bottom: insertBorder('hline bottom'),
979
+ left: insertBorder('vline'),
980
+ right: insertBorder('vline right')
981
+ };
982
+ }
983
+
984
+ // Insert handles on edges
985
+ if (options.dragEdges) {
986
+ handle.t = insertDragbar('n');
987
+ handle.b = insertDragbar('s');
988
+ handle.r = insertDragbar('e');
989
+ handle.l = insertDragbar('w');
990
+ }
991
+
992
+ // Insert side and corner handles
993
+ if (options.sideHandles) {
994
+ createHandles(['n', 's', 'e', 'w']);
995
+ }
996
+ if (options.cornerHandles) {
997
+ createHandles(['sw', 'nw', 'ne', 'se']);
998
+ }
999
+
1000
+
1001
+ //}}}
1002
+
1003
+ var $track = newTracker().mousedown(createDragger('move')).css({
1004
+ cursor: 'move',
1005
+ position: 'absolute',
1006
+ zIndex: 360
1007
+ });
1008
+
1009
+ if (Touch.support) {
1010
+ $track.bind('touchstart.jcrop', Touch.createDragger('move'));
1011
+ }
1012
+
1013
+ $img_holder.append($track);
1014
+ disableHandles();
1015
+
1016
+ return {
1017
+ updateVisible: updateVisible,
1018
+ update: update,
1019
+ release: release,
1020
+ refresh: refresh,
1021
+ isAwake: function () {
1022
+ return awake;
1023
+ },
1024
+ setCursor: function (cursor) {
1025
+ $track.css('cursor', cursor);
1026
+ },
1027
+ enableHandles: enableHandles,
1028
+ enableOnly: function () {
1029
+ seehandles = true;
1030
+ },
1031
+ showHandles: showHandles,
1032
+ disableHandles: disableHandles,
1033
+ animMode: animMode,
1034
+ done: done
1035
+ };
1036
+ }());
1037
+
1038
+ //}}}
1039
+ // Tracker Module {{{
1040
+ var Tracker = (function () {
1041
+ var onMove = function () {},
1042
+ onDone = function () {},
1043
+ trackDoc = options.trackDocument;
1044
+
1045
+ function toFront() //{{{
1046
+ {
1047
+ $trk.css({
1048
+ zIndex: 450
1049
+ });
1050
+ if (trackDoc) {
1051
+ $(document)
1052
+ .bind('mousemove',trackMove)
1053
+ .bind('mouseup',trackUp);
1054
+ }
1055
+ }
1056
+ //}}}
1057
+ function toBack() //{{{
1058
+ {
1059
+ $trk.css({
1060
+ zIndex: 290
1061
+ });
1062
+ if (trackDoc) {
1063
+ $(document)
1064
+ .unbind('mousemove', trackMove)
1065
+ .unbind('mouseup', trackUp);
1066
+ }
1067
+ }
1068
+ //}}}
1069
+ function trackMove(e) //{{{
1070
+ {
1071
+ onMove(mouseAbs(e));
1072
+ return false;
1073
+ }
1074
+ //}}}
1075
+ function trackUp(e) //{{{
1076
+ {
1077
+ e.preventDefault();
1078
+ e.stopPropagation();
1079
+
1080
+ if (btndown) {
1081
+ btndown = false;
1082
+
1083
+ onDone(mouseAbs(e));
1084
+
1085
+ if (Selection.isAwake()) {
1086
+ options.onSelect.call(api, unscale(Coords.getFixed()));
1087
+ }
1088
+
1089
+ toBack();
1090
+ onMove = function () {};
1091
+ onDone = function () {};
1092
+ }
1093
+
1094
+ return false;
1095
+ }
1096
+ //}}}
1097
+ function activateHandlers(move, done) //{{{
1098
+ {
1099
+ btndown = true;
1100
+ onMove = move;
1101
+ onDone = done;
1102
+ toFront();
1103
+ return false;
1104
+ }
1105
+ //}}}
1106
+ function trackTouchMove(e) //{{{
1107
+ {
1108
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
1109
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
1110
+ return trackMove(e);
1111
+ }
1112
+ //}}}
1113
+ function trackTouchEnd(e) //{{{
1114
+ {
1115
+ e.pageX = e.originalEvent.changedTouches[0].pageX;
1116
+ e.pageY = e.originalEvent.changedTouches[0].pageY;
1117
+ return trackUp(e);
1118
+ }
1119
+ //}}}
1120
+ function setCursor(t) //{{{
1121
+ {
1122
+ $trk.css('cursor', t);
1123
+ }
1124
+ //}}}
1125
+
1126
+ if (Touch.support) {
1127
+ $(document)
1128
+ .bind('touchmove', trackTouchMove)
1129
+ .bind('touchend', trackTouchEnd);
1130
+ }
1131
+
1132
+ if (!trackDoc) {
1133
+ $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp);
1134
+ }
1135
+
1136
+ $img.before($trk);
1137
+ return {
1138
+ activateHandlers: activateHandlers,
1139
+ setCursor: setCursor
1140
+ };
1141
+ }());
1142
+ //}}}
1143
+ // KeyManager Module {{{
1144
+ var KeyManager = (function () {
1145
+ var $keymgr = $('<input type="radio" />').css({
1146
+ position: 'fixed',
1147
+ left: '-120px',
1148
+ width: '12px'
1149
+ }),
1150
+ $keywrap = $('<div />').css({
1151
+ position: 'absolute',
1152
+ overflow: 'hidden'
1153
+ }).append($keymgr);
1154
+
1155
+ function watchKeys() //{{{
1156
+ {
1157
+ if (options.keySupport) {
1158
+ $keymgr.show();
1159
+ $keymgr.focus();
1160
+ }
1161
+ }
1162
+ //}}}
1163
+ function onBlur(e) //{{{
1164
+ {
1165
+ $keymgr.hide();
1166
+ }
1167
+ //}}}
1168
+ function doNudge(e, x, y) //{{{
1169
+ {
1170
+ if (options.allowMove) {
1171
+ Coords.moveOffset([x, y]);
1172
+ Selection.updateVisible();
1173
+ }
1174
+ e.preventDefault();
1175
+ e.stopPropagation();
1176
+ }
1177
+ //}}}
1178
+ function parseKey(e) //{{{
1179
+ {
1180
+ if (e.ctrlKey) {
1181
+ return true;
1182
+ }
1183
+ shift_down = e.shiftKey ? true : false;
1184
+ var nudge = shift_down ? 10 : 1;
1185
+
1186
+ switch (e.keyCode) {
1187
+ case 37:
1188
+ doNudge(e, -nudge, 0);
1189
+ break;
1190
+ case 39:
1191
+ doNudge(e, nudge, 0);
1192
+ break;
1193
+ case 38:
1194
+ doNudge(e, 0, -nudge);
1195
+ break;
1196
+ case 40:
1197
+ doNudge(e, 0, nudge);
1198
+ break;
1199
+ case 27:
1200
+ Selection.release();
1201
+ break;
1202
+ case 9:
1203
+ return true;
1204
+ }
1205
+
1206
+ return false;
1207
+ }
1208
+ //}}}
1209
+
1210
+ if (options.keySupport) {
1211
+ $keymgr.keydown(parseKey).blur(onBlur);
1212
+ if (ie6mode || !options.fixedSupport) {
1213
+ $keymgr.css({
1214
+ position: 'absolute',
1215
+ left: '-20px'
1216
+ });
1217
+ $keywrap.append($keymgr).insertBefore($img);
1218
+ } else {
1219
+ $keymgr.insertBefore($img);
1220
+ }
1221
+ }
1222
+
1223
+
1224
+ return {
1225
+ watchKeys: watchKeys
1226
+ };
1227
+ }());
1228
+ //}}}
1229
+ // }}}
1230
+ // API methods {{{
1231
+ function setClass(cname) //{{{
1232
+ {
1233
+ $div.removeClass().addClass(cssClass('holder')).addClass(cname);
1234
+ }
1235
+ //}}}
1236
+ function animateTo(a, callback) //{{{
1237
+ {
1238
+ var x1 = parseInt(a[0], 10) / xscale,
1239
+ y1 = parseInt(a[1], 10) / yscale,
1240
+ x2 = parseInt(a[2], 10) / xscale,
1241
+ y2 = parseInt(a[3], 10) / yscale;
1242
+
1243
+ if (animating) {
1244
+ return;
1245
+ }
1246
+
1247
+ var animto = Coords.flipCoords(x1, y1, x2, y2),
1248
+ c = Coords.getFixed(),
1249
+ initcr = [c.x, c.y, c.x2, c.y2],
1250
+ animat = initcr,
1251
+ interv = options.animationDelay,
1252
+ ix1 = animto[0] - initcr[0],
1253
+ iy1 = animto[1] - initcr[1],
1254
+ ix2 = animto[2] - initcr[2],
1255
+ iy2 = animto[3] - initcr[3],
1256
+ pcent = 0,
1257
+ velocity = options.swingSpeed;
1258
+
1259
+ x = animat[0];
1260
+ y = animat[1];
1261
+ x2 = animat[2];
1262
+ y2 = animat[3];
1263
+
1264
+ Selection.animMode(true);
1265
+ var anim_timer;
1266
+
1267
+ function queueAnimator() {
1268
+ window.setTimeout(animator, interv);
1269
+ }
1270
+ var animator = (function () {
1271
+ return function () {
1272
+ pcent += (100 - pcent) / velocity;
1273
+
1274
+ animat[0] = x + ((pcent / 100) * ix1);
1275
+ animat[1] = y + ((pcent / 100) * iy1);
1276
+ animat[2] = x2 + ((pcent / 100) * ix2);
1277
+ animat[3] = y2 + ((pcent / 100) * iy2);
1278
+
1279
+ if (pcent >= 99.8) {
1280
+ pcent = 100;
1281
+ }
1282
+ if (pcent < 100) {
1283
+ setSelectRaw(animat);
1284
+ queueAnimator();
1285
+ } else {
1286
+ Selection.done();
1287
+ if (typeof(callback) === 'function') {
1288
+ callback.call(api);
1289
+ }
1290
+ }
1291
+ };
1292
+ }());
1293
+ queueAnimator();
1294
+ }
1295
+ //}}}
1296
+ function setSelect(rect) //{{{
1297
+ {
1298
+ setSelectRaw([
1299
+ parseInt(rect[0], 10) / xscale, parseInt(rect[1], 10) / yscale, parseInt(rect[2], 10) / xscale, parseInt(rect[3], 10) / yscale]);
1300
+ }
1301
+ //}}}
1302
+ function setSelectRaw(l) //{{{
1303
+ {
1304
+ Coords.setPressed([l[0], l[1]]);
1305
+ Coords.setCurrent([l[2], l[3]]);
1306
+ Selection.update();
1307
+ }
1308
+ //}}}
1309
+ function tellSelect() //{{{
1310
+ {
1311
+ return unscale(Coords.getFixed());
1312
+ }
1313
+ //}}}
1314
+ function tellScaled() //{{{
1315
+ {
1316
+ return Coords.getFixed();
1317
+ }
1318
+ //}}}
1319
+ function setOptionsNew(opt) //{{{
1320
+ {
1321
+ setOptions(opt);
1322
+ interfaceUpdate();
1323
+ }
1324
+ //}}}
1325
+ function disableCrop() //{{{
1326
+ {
1327
+ options.disabled = true;
1328
+ Selection.disableHandles();
1329
+ Selection.setCursor('default');
1330
+ Tracker.setCursor('default');
1331
+ }
1332
+ //}}}
1333
+ function enableCrop() //{{{
1334
+ {
1335
+ options.disabled = false;
1336
+ interfaceUpdate();
1337
+ }
1338
+ //}}}
1339
+ function cancelCrop() //{{{
1340
+ {
1341
+ Selection.done();
1342
+ Tracker.activateHandlers(null, null);
1343
+ }
1344
+ //}}}
1345
+ function destroy() //{{{
1346
+ {
1347
+ $div.remove();
1348
+ $origimg.show();
1349
+ $(obj).removeData('Jcrop');
1350
+ }
1351
+ //}}}
1352
+ function setImage(src, callback) //{{{
1353
+ {
1354
+ Selection.release();
1355
+ disableCrop();
1356
+ var img = new Image();
1357
+ img.onload = function () {
1358
+ var iw = img.width;
1359
+ var ih = img.height;
1360
+ var bw = options.boxWidth;
1361
+ var bh = options.boxHeight;
1362
+ $img.width(iw).height(ih);
1363
+ $img.attr('src', src);
1364
+ $img2.attr('src', src);
1365
+ presize($img, bw, bh);
1366
+ boundx = $img.width();
1367
+ boundy = $img.height();
1368
+ $img2.width(boundx).height(boundy);
1369
+ $trk.width(boundx + (bound * 2)).height(boundy + (bound * 2));
1370
+ $div.width(boundx).height(boundy);
1371
+ enableCrop();
1372
+
1373
+ if (typeof(callback) === 'function') {
1374
+ callback.call(api);
1375
+ }
1376
+ };
1377
+ img.src = src;
1378
+ }
1379
+ //}}}
1380
+ function interfaceUpdate(alt) //{{{
1381
+ // This method tweaks the interface based on options object.
1382
+ // Called when options are changed and at end of initialization.
1383
+ {
1384
+ if (options.allowResize) {
1385
+ if (alt) {
1386
+ Selection.enableOnly();
1387
+ } else {
1388
+ Selection.enableHandles();
1389
+ }
1390
+ } else {
1391
+ Selection.disableHandles();
1392
+ }
1393
+
1394
+ Tracker.setCursor(options.allowSelect ? 'crosshair' : 'default');
1395
+ Selection.setCursor(options.allowMove ? 'move' : 'default');
1396
+
1397
+
1398
+ if (options.hasOwnProperty('setSelect')) {
1399
+ setSelect(options.setSelect);
1400
+ Selection.done();
1401
+ delete(options.setSelect);
1402
+ }
1403
+
1404
+ if (options.hasOwnProperty('trueSize')) {
1405
+ xscale = options.trueSize[0] / boundx;
1406
+ yscale = options.trueSize[1] / boundy;
1407
+ }
1408
+ if (options.hasOwnProperty('bgColor')) {
1409
+
1410
+ if (supportsColorFade() && options.fadeTime) {
1411
+ $div.animate({
1412
+ backgroundColor: options.bgColor
1413
+ }, {
1414
+ queue: false,
1415
+ duration: options.fadeTime
1416
+ });
1417
+ } else {
1418
+ $div.css('backgroundColor', options.bgColor);
1419
+ }
1420
+
1421
+ delete(options.bgColor);
1422
+ }
1423
+ if (options.hasOwnProperty('bgOpacity')) {
1424
+ bgopacity = options.bgOpacity;
1425
+
1426
+ if (Selection.isAwake()) {
1427
+ if (options.fadeTime) {
1428
+ $img.fadeTo(options.fadeTime, bgopacity);
1429
+ } else {
1430
+ $div.css('opacity', options.opacity);
1431
+ }
1432
+ }
1433
+ delete(options.bgOpacity);
1434
+ }
1435
+
1436
+ xlimit = options.maxSize[0] || 0;
1437
+ ylimit = options.maxSize[1] || 0;
1438
+ xmin = options.minSize[0] || 0;
1439
+ ymin = options.minSize[1] || 0;
1440
+
1441
+ if (options.hasOwnProperty('outerImage')) {
1442
+ $img.attr('src', options.outerImage);
1443
+ delete(options.outerImage);
1444
+ }
1445
+
1446
+ Selection.refresh();
1447
+ }
1448
+ //}}}
1449
+ //}}}
1450
+
1451
+ if (Touch.support) {
1452
+ $trk.bind('touchstart', Touch.newSelection);
1453
+ }
1454
+
1455
+ $hdl_holder.hide();
1456
+ interfaceUpdate(true);
1457
+
1458
+ var api = {
1459
+ setImage: setImage,
1460
+ animateTo: animateTo,
1461
+ setSelect: setSelect,
1462
+ setOptions: setOptionsNew,
1463
+ tellSelect: tellSelect,
1464
+ tellScaled: tellScaled,
1465
+ setClass: setClass,
1466
+
1467
+ disable: disableCrop,
1468
+ enable: enableCrop,
1469
+ cancel: cancelCrop,
1470
+ release: Selection.release,
1471
+ destroy: destroy,
1472
+
1473
+ focus: KeyManager.watchKeys,
1474
+
1475
+ getBounds: function () {
1476
+ return [boundx * xscale, boundy * yscale];
1477
+ },
1478
+ getWidgetSize: function () {
1479
+ return [boundx, boundy];
1480
+ },
1481
+ getScaleFactor: function () {
1482
+ return [xscale, yscale];
1483
+ },
1484
+
1485
+ ui: {
1486
+ holder: $div,
1487
+ selection: $sel
1488
+ }
1489
+ };
1490
+
1491
+ if ($.browser.msie) {
1492
+ $div.bind('selectstart', function () {
1493
+ return false;
1494
+ });
1495
+ }
1496
+
1497
+ $origimg.data('Jcrop', api);
1498
+ return api;
1499
+ };
1500
+ $.fn.Jcrop = function (options, callback) //{{{
1501
+ {
1502
+
1503
+ function attachWhenDone(from) //{{{
1504
+ {
1505
+ var opt = (typeof(options) === 'object') ? options : {};
1506
+ var loadsrc = opt.useImg || from.src;
1507
+ var img = new Image();
1508
+ img.onload = function () {
1509
+ function attachJcrop() {
1510
+ var api = $.Jcrop(from, opt);
1511
+ if (typeof(callback) === 'function') {
1512
+ callback.call(api);
1513
+ }
1514
+ }
1515
+
1516
+ function attachAttempt() {
1517
+ if (!img.width || !img.height) {
1518
+ window.setTimeout(attachAttempt, 50);
1519
+ } else {
1520
+ attachJcrop();
1521
+ }
1522
+ }
1523
+ window.setTimeout(attachAttempt, 50);
1524
+ };
1525
+ img.src = loadsrc;
1526
+ }
1527
+ //}}}
1528
+
1529
+ // Iterate over each object, attach Jcrop
1530
+ this.each(function () {
1531
+ // If we've already attached to this object
1532
+ if ($(this).data('Jcrop')) {
1533
+ // The API can be requested this way (undocumented)
1534
+ if (options === 'api') {
1535
+ return $(this).data('Jcrop');
1536
+ }
1537
+ // Otherwise, we just reset the options...
1538
+ else {
1539
+ $(this).data('Jcrop').setOptions(options);
1540
+ }
1541
+ }
1542
+ // If we haven't been attached, preload and attach
1543
+ else {
1544
+ attachWhenDone(this);
1545
+ }
1546
+ });
1547
+
1548
+ // Return "this" so the object is chainable (jQuery-style)
1549
+ return this;
1550
+ };
1551
+ //}}}
1552
+ // Global Defaults {{{
1553
+ $.Jcrop.defaults = {
1554
+
1555
+ // Basic Settings
1556
+ allowSelect: true,
1557
+ allowMove: true,
1558
+ allowResize: true,
1559
+
1560
+ trackDocument: true,
1561
+
1562
+ // Styling Options
1563
+ baseClass: 'jcrop',
1564
+ addClass: null,
1565
+ bgColor: 'black',
1566
+ bgOpacity: 0.6,
1567
+ bgFade: false,
1568
+ borderOpacity: 0.4,
1569
+ handleOpacity: 0.5,
1570
+ handleSize: 9,
1571
+ handleOffset: 5,
1572
+
1573
+ aspectRatio: 0,
1574
+ keySupport: true,
1575
+ cornerHandles: true,
1576
+ sideHandles: true,
1577
+ drawBorders: true,
1578
+ dragEdges: true,
1579
+ fixedSupport: true,
1580
+ touchSupport: null,
1581
+
1582
+ boxWidth: 0,
1583
+ boxHeight: 0,
1584
+ boundary: 2,
1585
+ fadeTime: 400,
1586
+ animationDelay: 20,
1587
+ swingSpeed: 3,
1588
+
1589
+ minSelect: [0, 0],
1590
+ maxSize: [0, 0],
1591
+ minSize: [0, 0],
1592
+
1593
+ // Callbacks / Event Handlers
1594
+ onChange: function () {},
1595
+ onSelect: function () {},
1596
+ onRelease: function () {}
1597
+ };
1598
+
1599
+ // }}}
1600
+ }(jQuery));