lentil 0.0.1.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +199 -0
  4. data/Rakefile +43 -0
  5. data/app/assets/images/lentil/icons/MHL-touch-icon-114.png +0 -0
  6. data/app/assets/images/lentil/icons/MHL-touch-icon-144.png +0 -0
  7. data/app/assets/images/lentil/icons/MHL-touch-icon-57.png +0 -0
  8. data/app/assets/images/lentil/icons/MHL-touch-icon-72.png +0 -0
  9. data/app/assets/images/lentil/icons/f_logo.png +0 -0
  10. data/app/assets/images/lentil/icons/twitter-bird-light-bgs.png +0 -0
  11. data/app/assets/images/lentil/loadingsquares.gif +0 -0
  12. data/app/assets/javascripts/active_admin.js +7 -0
  13. data/app/assets/javascripts/lentil.js +3 -0
  14. data/app/assets/javascripts/lentil/addanimatedimages.js +44 -0
  15. data/app/assets/javascripts/lentil/addfancybox.js +152 -0
  16. data/app/assets/javascripts/lentil/addinfinitescroll.js.erb +50 -0
  17. data/app/assets/javascripts/lentil/buttonhandler.js +25 -0
  18. data/app/assets/javascripts/lentil/event_tracking.js.erb +80 -0
  19. data/app/assets/javascripts/lentil/imageerrors.js +8 -0
  20. data/app/assets/javascripts/lentil/images.js +55 -0
  21. data/app/assets/javascripts/lentil/thisorthat.js.erb +129 -0
  22. data/app/assets/stylesheets/active_admin.css.scss +31 -0
  23. data/app/assets/stylesheets/admin/moderation.css.scss +65 -0
  24. data/app/assets/stylesheets/lentil.css.scss +8 -0
  25. data/app/assets/stylesheets/lentil/breakpoint/sass/_components.scss +315 -0
  26. data/app/assets/stylesheets/lentil/breakpoint/sass/_config.scss +37 -0
  27. data/app/assets/stylesheets/lentil/breakpoint/sass/_framework.scss +6 -0
  28. data/app/assets/stylesheets/lentil/breakpoint/sass/_structure.scss +222 -0
  29. data/app/assets/stylesheets/lentil/breakpoint/sass/config.rb +17 -0
  30. data/app/assets/stylesheets/lentil/breakpoint/sass/framework/_grid-core.scss +83 -0
  31. data/app/assets/stylesheets/lentil/breakpoint/sass/framework/_grid-helpers.scss +136 -0
  32. data/app/assets/stylesheets/lentil/breakpoint/sass/framework/_mixins.scss +19 -0
  33. data/app/assets/stylesheets/lentil/breakpoint/sass/framework/_normalize.scss +524 -0
  34. data/app/assets/stylesheets/lentil/breakpoint/sass/framework/_print.scss +19 -0
  35. data/app/assets/stylesheets/lentil/breakpoint/sass/style.scss +12 -0
  36. data/app/assets/stylesheets/lentil/image_animation.css.scss +23 -0
  37. data/app/assets/stylesheets/lentil/images.css.scss +6 -0
  38. data/app/assets/stylesheets/lentil/thisorthat.css.scss +91 -0
  39. data/app/controllers/lentil/application_controller.rb +6 -0
  40. data/app/controllers/lentil/flags_controller.rb +13 -0
  41. data/app/controllers/lentil/images_controller.rb +61 -0
  42. data/app/controllers/lentil/like_votes_controller.rb +13 -0
  43. data/app/controllers/lentil/pages_controller.rb +7 -0
  44. data/app/controllers/lentil/photographers_controller.rb +20 -0
  45. data/app/controllers/lentil/thisorthat_controller.rb +117 -0
  46. data/app/helpers/lentil/application_helper.rb +58 -0
  47. data/app/helpers/lentil/images_helper.rb +23 -0
  48. data/app/helpers/lentil/thisorthat_helper.rb +19 -0
  49. data/app/models/lentil/admin_user.rb +32 -0
  50. data/app/models/lentil/battle.rb +33 -0
  51. data/app/models/lentil/flag.rb +14 -0
  52. data/app/models/lentil/image.rb +174 -0
  53. data/app/models/lentil/license.rb +21 -0
  54. data/app/models/lentil/licensing.rb +16 -0
  55. data/app/models/lentil/like_vote.rb +14 -0
  56. data/app/models/lentil/service.rb +17 -0
  57. data/app/models/lentil/tag.rb +23 -0
  58. data/app/models/lentil/tagging.rb +20 -0
  59. data/app/models/lentil/tagset.rb +24 -0
  60. data/app/models/lentil/tagset_assignment.rb +17 -0
  61. data/app/models/lentil/user.rb +27 -0
  62. data/app/views/admin/lentil_images/_moderation_form_body.html.erb +47 -0
  63. data/app/views/admin/lentil_images/flagging_history.html.erb +33 -0
  64. data/app/views/admin/lentil_images/manual_input.html.erb +6 -0
  65. data/app/views/admin/lentil_images/moderate.html.erb +9 -0
  66. data/app/views/layouts/lentil/_apple_touch_icons.html.erb +1 -0
  67. data/app/views/layouts/lentil/_error.html.erb +9 -0
  68. data/app/views/layouts/lentil/_flag_button.html.erb +10 -0
  69. data/app/views/layouts/lentil/_image_popup.html.erb +34 -0
  70. data/app/views/layouts/lentil/_like_button.html.erb +18 -0
  71. data/app/views/layouts/lentil/_secondary_navigation.html.erb +5 -0
  72. data/app/views/layouts/lentil/_top_navigation.html.erb +26 -0
  73. data/app/views/layouts/lentil/application.html.erb +28 -0
  74. data/app/views/lentil/images/_flagging_modal.html.erb +18 -0
  75. data/app/views/lentil/images/_image_tiles.erb +14 -0
  76. data/app/views/lentil/images/animate.html.erb +19 -0
  77. data/app/views/lentil/images/index.atom.builder +16 -0
  78. data/app/views/lentil/images/index.html.erb +30 -0
  79. data/app/views/lentil/images/index.rss.builder +19 -0
  80. data/app/views/lentil/images/show.html.erb +24 -0
  81. data/app/views/lentil/pages/about.html.erb +9 -0
  82. data/app/views/lentil/photographers/index.html.erb +13 -0
  83. data/app/views/lentil/photographers/show.html.erb +15 -0
  84. data/app/views/lentil/thisorthat/_battle_form.html.erb +44 -0
  85. data/app/views/lentil/thisorthat/battle.html.erb +13 -0
  86. data/app/views/lentil/thisorthat/battle_error.html.erb +3 -0
  87. data/config/locales/en.yml +39 -0
  88. data/config/routes.rb +17 -0
  89. data/db/migrate/20121028023144_create_images.rb +10 -0
  90. data/db/migrate/20121028042738_create_like_votes.rb +10 -0
  91. data/db/migrate/20121028052935_add_like_votes_counter_to_images.rb +5 -0
  92. data/db/migrate/20121028164239_add_sessions_table.rb +12 -0
  93. data/db/migrate/20121030170509_add_url_column_to_images.rb +5 -0
  94. data/db/migrate/20121030170542_add_username_column_to_images.rb +5 -0
  95. data/db/migrate/20121112162243_create_users.rb +11 -0
  96. data/db/migrate/20121112163008_create_services.rb +10 -0
  97. data/db/migrate/20121112163635_remove_username_from_images.rb +9 -0
  98. data/db/migrate/20121112163857_remove_title_from_images.rb +9 -0
  99. data/db/migrate/20121112165849_add_user_id_to_images.rb +5 -0
  100. data/db/migrate/20121112200340_add_service_id_to_users.rb +5 -0
  101. data/db/migrate/20121119210407_create_tags.rb +9 -0
  102. data/db/migrate/20121119210450_create_tagsets.rb +10 -0
  103. data/db/migrate/20121119210538_create_tagset_assignments.rb +12 -0
  104. data/db/migrate/20121119211236_create_taggings.rb +12 -0
  105. data/db/migrate/20121120172450_create_licenses.rb +11 -0
  106. data/db/migrate/20121120172712_create_licensings.rb +12 -0
  107. data/db/migrate/20121120191524_devise_create_admin_users.rb +52 -0
  108. data/db/migrate/20121120191530_create_admin_notes.rb +17 -0
  109. data/db/migrate/20121120191531_move_admin_notes_to_comments.rb +25 -0
  110. data/db/migrate/20121121204450_add_state_to_images.rb +5 -0
  111. data/db/migrate/20121126170008_add_external_identifier_to_images.rb +6 -0
  112. data/db/migrate/20121126192652_add_short_name_to_licenses.rb +6 -0
  113. data/db/migrate/20121126205839_add_long_url_to_images.rb +5 -0
  114. data/db/migrate/20121127154531_create_flags.rb +10 -0
  115. data/db/migrate/20121127160158_add_original_metadata_to_images.rb +5 -0
  116. data/db/migrate/20121127193932_add_index_to_users.rb +5 -0
  117. data/db/migrate/20121127194027_add_index_to_services.rb +5 -0
  118. data/db/migrate/20121127194428_add_index_to_tags.rb +5 -0
  119. data/db/migrate/20121127195059_add_original_datetime_to_images.rb +5 -0
  120. data/db/migrate/20121127210507_add_bio_to_users.rb +5 -0
  121. data/db/migrate/20121127211257_add_staff_like_to_images.rb +5 -0
  122. data/db/migrate/20121128190207_add_moderator_to_images.rb +7 -0
  123. data/db/migrate/20121128213305_add_second_moderation_boolean_to_images.rb +5 -0
  124. data/db/migrate/20121130202753_add_default_for_staff_like.rb +5 -0
  125. data/db/migrate/20121130212917_add_default_for_image_state.rb +5 -0
  126. data/db/migrate/20121206145832_add_staff_tag_to_taggings.rb +5 -0
  127. data/db/migrate/20121213142215_add_images_count_to_users.rb +14 -0
  128. data/db/migrate/20121220151517_create_battles.rb +10 -0
  129. data/db/migrate/20121220155108_add_wins_counter_to_images.rb +5 -0
  130. data/db/migrate/20121220182845_add_losses_counter_to_images.rb +5 -0
  131. data/db/migrate/20130107192518_add_win_pct_to_images.rb +5 -0
  132. data/db/migrate/20130108195949_add_popular_score_to_images.rb +5 -0
  133. data/db/migrate/20130116145103_add_harvest_to_tagsets.rb +5 -0
  134. data/db/migrate/20130130194955_add_file_harvested_date_field_to_images.rb +6 -0
  135. data/db/migrate/20130306144752_add_donor_agreement_submitted_to_images.rb +5 -0
  136. data/db/migrate/20130306145013_add_donor_agreement_failed_to_images.rb +5 -0
  137. data/db/migrate/20130403135640_add_failed_file_checks_to_images.rb +6 -0
  138. data/db/migrate/20130412195348_namespace_tables.rb +16 -0
  139. data/db/migrate/20130413005943_namespace_licensings.rb +5 -0
  140. data/db/migrate/20130506204728_add_donor_agreement_rejected_to_images.rb +5 -0
  141. data/db/migrate/20130506205348_add_do_not_request_donation_to_lentil_images.rb +5 -0
  142. data/db/seeds.rb +5 -0
  143. data/lib/generators/lentil/USAGE +8 -0
  144. data/lib/generators/lentil/install_generator.rb +85 -0
  145. data/lib/generators/lentil/templates/README.md +19 -0
  146. data/lib/generators/lentil/templates/active_admin.rb +150 -0
  147. data/lib/generators/lentil/templates/devise.rb +232 -0
  148. data/lib/generators/lentil/templates/kaminari.rb +3 -0
  149. data/lib/generators/lentil/templates/lentil_config.yml +33 -0
  150. data/lib/lentil.rb +24 -0
  151. data/lib/lentil/admin/admin_user.rb +24 -0
  152. data/lib/lentil/admin/dashboard.rb +116 -0
  153. data/lib/lentil/admin/flags.rb +17 -0
  154. data/lib/lentil/admin/images.rb +209 -0
  155. data/lib/lentil/admin/tags.rb +18 -0
  156. data/lib/lentil/admin/tagsets.rb +51 -0
  157. data/lib/lentil/admin/user.rb +20 -0
  158. data/lib/lentil/admin/view_helpers.rb +11 -0
  159. data/lib/lentil/engine.rb +22 -0
  160. data/lib/lentil/instagram_harvester.rb +249 -0
  161. data/lib/lentil/popularity_calculator.rb +63 -0
  162. data/lib/lentil/version.rb +3 -0
  163. data/lib/tasks/auto_annotate_models.rake +20 -0
  164. data/lib/tasks/image_services.rake +129 -0
  165. data/lib/tasks/lentil_tasks.rake +10 -0
  166. data/lib/tasks/popularity.rake +16 -0
  167. data/test/dummy/README.rdoc +261 -0
  168. data/test/dummy/Rakefile +7 -0
  169. data/test/dummy/app/assets/javascripts/application.js +15 -0
  170. data/test/dummy/app/assets/stylesheets/application.css.scss +1 -0
  171. data/test/dummy/app/controllers/application_controller.rb +3 -0
  172. data/test/dummy/app/helpers/application_helper.rb +2 -0
  173. data/test/dummy/config.ru +4 -0
  174. data/test/dummy/config/application.rb +59 -0
  175. data/test/dummy/config/boot.rb +10 -0
  176. data/test/dummy/config/database.yml +25 -0
  177. data/test/dummy/config/environment.rb +5 -0
  178. data/test/dummy/config/environments/development.rb +37 -0
  179. data/test/dummy/config/environments/production.rb +67 -0
  180. data/test/dummy/config/environments/test.rb +37 -0
  181. data/test/dummy/config/initializers/active_admin.rb +150 -0
  182. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  183. data/test/dummy/config/initializers/devise.rb +232 -0
  184. data/test/dummy/config/initializers/inflections.rb +15 -0
  185. data/test/dummy/config/initializers/kaminari.rb +3 -0
  186. data/test/dummy/config/initializers/mime_types.rb +5 -0
  187. data/test/dummy/config/initializers/secret_token.rb +7 -0
  188. data/test/dummy/config/initializers/session_store.rb +8 -0
  189. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  190. data/test/dummy/config/lentil_config.yml +30 -0
  191. data/test/dummy/config/locales/en.yml +5 -0
  192. data/test/dummy/config/routes.rb +9 -0
  193. data/test/dummy/db/schema.rb +195 -0
  194. data/test/dummy/db/seeds.rb +1 -0
  195. data/test/dummy/db/test.sqlite3 +0 -0
  196. data/test/dummy/log/test.log +10235 -0
  197. data/test/dummy/public/404.html +26 -0
  198. data/test/dummy/public/422.html +26 -0
  199. data/test/dummy/public/500.html +25 -0
  200. data/test/dummy/public/favicon.ico +0 -0
  201. data/test/dummy/script/rails +6 -0
  202. data/test/dummy/tmp/cache/assets/C42/6B0/sprockets%2Ff9428783b785862eb53346b864f94428 +0 -0
  203. data/test/dummy/tmp/cache/assets/C48/E70/sprockets%2Fa7be1700e70899163027f63a25844c02 +0 -0
  204. data/test/dummy/tmp/cache/assets/C57/560/sprockets%2F1f547a440537aec8d738c93894407105 +0 -0
  205. data/test/dummy/tmp/cache/assets/C64/FE0/sprockets%2F64416e104b07dc260675009a5aa802c1 +0 -0
  206. data/test/dummy/tmp/cache/assets/C6C/080/sprockets%2F2116707a968e8208e090b121181afc0a +0 -0
  207. data/test/dummy/tmp/cache/assets/C6F/5C0/sprockets%2Fddc2132bb0b628079c5065081c817551 +0 -0
  208. data/test/dummy/tmp/cache/assets/C7B/090/sprockets%2F96c14f0b10f122605c2c48b5277865e6 +0 -0
  209. data/test/dummy/tmp/cache/assets/C83/600/sprockets%2F68b2320f62db97898602c88ab351b154 +0 -0
  210. data/test/dummy/tmp/cache/assets/C8D/0B0/sprockets%2F4086552147c1d9af9c66e72943d63b82 +0 -0
  211. data/test/dummy/tmp/cache/assets/C92/100/sprockets%2F36490a1ee805e37f098a7817e6c95526 +0 -0
  212. data/test/dummy/tmp/cache/assets/C96/970/sprockets%2F0829123a4f1a0c4102c81c9a35c02c98 +0 -0
  213. data/test/dummy/tmp/cache/assets/C99/8E0/sprockets%2Fe953726264248e339078be7cc7926e4f +0 -0
  214. data/test/dummy/tmp/cache/assets/CA6/380/sprockets%2F0db015389c4847b44149da5432ee600e +0 -0
  215. data/test/dummy/tmp/cache/assets/CAC/100/sprockets%2F9399d899650c546f87d34e233caf9977 +0 -0
  216. data/test/dummy/tmp/cache/assets/CB2/410/sprockets%2F95d0566e48bb62f4bf44364504421e9a +0 -0
  217. data/test/dummy/tmp/cache/assets/CB5/320/sprockets%2Fcc2889b817f6b8603540cd71e6616b50 +0 -0
  218. data/test/dummy/tmp/cache/assets/CB9/990/sprockets%2Faf8ad756710f9583563033dd94c728c0 +0 -0
  219. data/test/dummy/tmp/cache/assets/CC6/F80/sprockets%2Fd5e909a571443a22cf0dc0c113a94114 +0 -0
  220. data/test/dummy/tmp/cache/assets/CC8/C20/sprockets%2F6354de7687421eeda9c430397894f8f0 +0 -0
  221. data/test/dummy/tmp/cache/assets/CC9/7B0/sprockets%2Ffaa30a33ae1698f27018d11e3f072233 +0 -0
  222. data/test/dummy/tmp/cache/assets/CCF/5F0/sprockets%2F5d62451bc086a25070b4ea73c387d1a5 +0 -0
  223. data/test/dummy/tmp/cache/assets/CD5/A00/sprockets%2F9c4914e228af6400d302b6cd283f900e +0 -0
  224. data/test/dummy/tmp/cache/assets/CD6/170/sprockets%2F3554b0cf72c07f591dcb54630607d0a9 +0 -0
  225. data/test/dummy/tmp/cache/assets/CD6/F30/sprockets%2F23191ae5e95d7e0e0771b7033a1097af +0 -0
  226. data/test/dummy/tmp/cache/assets/CE5/210/sprockets%2Fdb0122cf42e7810fe0799874be09644e +0 -0
  227. data/test/dummy/tmp/cache/assets/CE5/650/sprockets%2F8ab512c9b33ac90e699b73469d71f061 +0 -0
  228. data/test/dummy/tmp/cache/assets/CE6/FE0/sprockets%2F73ec02022749e817b83909f60cce7a5f +0 -0
  229. data/test/dummy/tmp/cache/assets/CE7/610/sprockets%2F08cbe5246a49c4599797a0224fd246ea +0 -0
  230. data/test/dummy/tmp/cache/assets/CE7/F00/sprockets%2Fa74a53552b73e97b67ad19ce7660055f +0 -0
  231. data/test/dummy/tmp/cache/assets/CEA/A40/sprockets%2Fdfdd64331199cfc265779fd03241377c +0 -0
  232. data/test/dummy/tmp/cache/assets/CEA/D30/sprockets%2F45a3a8537165a7657e4ed46f8bdb0593 +0 -0
  233. data/test/dummy/tmp/cache/assets/CEC/830/sprockets%2F77ad86593cd9332af1407493e5c39c5b +0 -0
  234. data/test/dummy/tmp/cache/assets/CEC/C10/sprockets%2Fc193f41bd81159ae9ef7b0385250e789 +0 -0
  235. data/test/dummy/tmp/cache/assets/CED/250/sprockets%2F28b6d357c282e6867362ed05881dfe2b +0 -0
  236. data/test/dummy/tmp/cache/assets/CED/460/sprockets%2Fd37d356a7d06d0609ea3f7628496d29d +0 -0
  237. data/test/dummy/tmp/cache/assets/CF9/DA0/sprockets%2Fedb69283f09967db46c74b72ae179494 +0 -0
  238. data/test/dummy/tmp/cache/assets/CFB/160/sprockets%2F98a9093839b570dcc8997d274dbbc465 +0 -0
  239. data/test/dummy/tmp/cache/assets/D03/CD0/sprockets%2F2cd0353d32bc3c4284ef8537a3b47f22 +0 -0
  240. data/test/dummy/tmp/cache/assets/D04/360/sprockets%2Fddeca47fb0c8741454b26453d41c8015 +0 -0
  241. data/test/dummy/tmp/cache/assets/D04/C00/sprockets%2Fca82ed20399235d2c48dbb6d1620732d +0 -0
  242. data/test/dummy/tmp/cache/assets/D04/F50/sprockets%2F1dada65d112db8475da0768b01971a94 +0 -0
  243. data/test/dummy/tmp/cache/assets/D0D/B10/sprockets%2F3de9d42f71f1bc23221b69171e90ed67 +0 -0
  244. data/test/dummy/tmp/cache/assets/D1B/590/sprockets%2Fbe6ac6f9a700610d5ba87966e577077d +0 -0
  245. data/test/dummy/tmp/cache/assets/D1E/680/sprockets%2F509a2e8767cd429ea59a1b689d4ab484 +0 -0
  246. data/test/dummy/tmp/cache/assets/D27/B70/sprockets%2F5780a94fb908448ed3e800e63fd877de +0 -0
  247. data/test/dummy/tmp/cache/assets/D2E/B70/sprockets%2Fb05c50d8309cf7e7c006b344fbed0107 +0 -0
  248. data/test/dummy/tmp/cache/assets/D32/340/sprockets%2Fbfd4a939f123425ff33a40a76032ded2 +0 -0
  249. data/test/dummy/tmp/cache/assets/D34/C30/sprockets%2F715a4379b39f2577210c15affca3bdc1 +0 -0
  250. data/test/dummy/tmp/cache/assets/D38/440/sprockets%2Fc906c171e7aa8ba93ec3219ce4f04705 +0 -0
  251. data/test/dummy/tmp/cache/assets/D38/B20/sprockets%2F2b1c2ef9ddf068ab0174d4568091ea62 +0 -0
  252. data/test/dummy/tmp/cache/assets/D3B/EC0/sprockets%2Fc3ef1b053f9f177d9141cc375bf61c50 +0 -0
  253. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  254. data/test/dummy/tmp/cache/assets/D56/BE0/sprockets%2F7777b5cfe624ec519525fe82da08f7e6 +0 -0
  255. data/test/dummy/tmp/cache/assets/D61/290/sprockets%2Fdf8e43ab35b1467495b10ad40c97bb1b +0 -0
  256. data/test/dummy/tmp/cache/assets/D66/AD0/sprockets%2F630aed9dbe5fb89243b0c040af3670e7 +0 -0
  257. data/test/dummy/tmp/cache/assets/D69/E10/sprockets%2F48900c1edbfe227d110f8050fbdd97f4 +0 -0
  258. data/test/dummy/tmp/cache/assets/D6D/AB0/sprockets%2F7138214dfee4490b54377eecc4cbfe11 +0 -0
  259. data/test/dummy/tmp/cache/assets/D6F/EF0/sprockets%2F0466d0a8ac4be2e9114ff4e82af38d84 +0 -0
  260. data/test/dummy/tmp/cache/assets/D73/040/sprockets%2Fcab4ce19553a2852a2ecec47f1e87568 +0 -0
  261. data/test/dummy/tmp/cache/assets/D74/490/sprockets%2Fa17a51fbc23c1a3648e9f6fec8f62943 +0 -0
  262. data/test/dummy/tmp/cache/assets/D74/680/sprockets%2F3dd8cd62caf32217aa89f897b0eb2818 +0 -0
  263. data/test/dummy/tmp/cache/assets/D7A/930/sprockets%2F6be8ba37ee48b21a9ab604565dfd9775 +0 -0
  264. data/test/dummy/tmp/cache/assets/D7A/A90/sprockets%2Ffec462cdc03e47621953fc8eb9e6547a +0 -0
  265. data/test/dummy/tmp/cache/assets/D8B/ED0/sprockets%2Fcc585faf0bcbb142f7125444e4fa6a02 +0 -0
  266. data/test/dummy/tmp/cache/assets/D90/440/sprockets%2Fb2aa1e118ce5bd06dee76be633562d42 +0 -0
  267. data/test/dummy/tmp/cache/assets/D91/080/sprockets%2Fbcca522c6302f184f12fe0e8a7d7e71a +0 -0
  268. data/test/dummy/tmp/cache/assets/D94/FD0/sprockets%2F2b120edc1ebea9c0f72d9be11d778390 +0 -0
  269. data/test/dummy/tmp/cache/assets/D95/2B0/sprockets%2F89dbd7378a1d1062e45dcc3df7a3a11c +0 -0
  270. data/test/dummy/tmp/cache/assets/D9C/1C0/sprockets%2F6d2b0db50dd2acf27667a48159c9f6ab +0 -0
  271. data/test/dummy/tmp/cache/assets/D9C/8A0/sprockets%2Fc76d2440ebeb87ab52dfe9d80bf10086 +0 -0
  272. data/test/dummy/tmp/cache/assets/D9D/380/sprockets%2Fb04c1714897d76abeca81fa0a37f8e6b +0 -0
  273. data/test/dummy/tmp/cache/assets/D9D/5B0/sprockets%2Fddcba2ec2b3037ef281e781a486de980 +0 -0
  274. data/test/dummy/tmp/cache/assets/D9F/300/sprockets%2Fc13fc73ceafa45876a901b3e775b83ae +0 -0
  275. data/test/dummy/tmp/cache/assets/DB0/FD0/sprockets%2F996ad98b7351ad4d9bd4b485a7ae9fa3 +0 -0
  276. data/test/dummy/tmp/cache/assets/DB1/8D0/sprockets%2F6cf903e8ff571c4d957e479cac1bc19d +0 -0
  277. data/test/dummy/tmp/cache/assets/DB3/1D0/sprockets%2F22cba3622ce0621f3eba0dd7e1aa089f +0 -0
  278. data/test/dummy/tmp/cache/assets/DB4/0B0/sprockets%2Fe8f58b1269ee313ff8b892bca727ede6 +0 -0
  279. data/test/dummy/tmp/cache/assets/DB6/F30/sprockets%2Fb6999585996e0f4bff328ba3addd17fb +0 -0
  280. data/test/dummy/tmp/cache/assets/DC1/020/sprockets%2Fbf6419ab7cf802a47da9ec4d1040cd4b +0 -0
  281. data/test/dummy/tmp/cache/assets/DC4/040/sprockets%2F0c65ff4bf893dd905d30aa129f4abca2 +0 -0
  282. data/test/dummy/tmp/cache/assets/DCA/030/sprockets%2F0bc7d1ffb47f42b36bc9abec83b58442 +0 -0
  283. data/test/dummy/tmp/cache/assets/DCB/D90/sprockets%2Fcfca0c746a29e28e6507eb312e7ec5bd +0 -0
  284. data/test/dummy/tmp/cache/assets/DCC/EA0/sprockets%2F3c7d9707a1daca88216a8ffc0fa8e4a3 +0 -0
  285. data/test/dummy/tmp/cache/assets/DCE/E00/sprockets%2F5f20b88da0ea9a18a05ee2f4d03f97ff +0 -0
  286. data/test/dummy/tmp/cache/assets/DCE/EC0/sprockets%2Ff2ec34a23c62dd857e1cf1df5966bc3b +0 -0
  287. data/test/dummy/tmp/cache/assets/DD3/E70/sprockets%2F6570fc1bef16b28caa54448c9deffa29 +0 -0
  288. data/test/dummy/tmp/cache/assets/DD7/F60/sprockets%2Fba89e9841faeba02ba74a8ed492f287e +0 -0
  289. data/test/dummy/tmp/cache/assets/DDA/900/sprockets%2F24705bef559fbf6f8738b7ab9b3f0faa +0 -0
  290. data/test/dummy/tmp/cache/assets/DDA/DD0/sprockets%2F74f3d35d3bacb479b95d56d17bafe75f +0 -0
  291. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  292. data/test/dummy/tmp/cache/assets/DDC/9A0/sprockets%2F6b6d65eb6c891e5d6b5c1af73ae98ca6 +0 -0
  293. data/test/dummy/tmp/cache/assets/DDE/9B0/sprockets%2F890f41b9acdd3f93bd6ef7ae908ce472 +0 -0
  294. data/test/dummy/tmp/cache/assets/DE6/210/sprockets%2Fa2d10a00bca3a1e477d6dc95effc35c1 +0 -0
  295. data/test/dummy/tmp/cache/assets/DEE/C90/sprockets%2Ffca14d24400af9ec6deca6ec402953cb +0 -0
  296. data/test/dummy/tmp/cache/assets/DFB/980/sprockets%2F73cd2a8ad913ea8aece63bb39e3b72c6 +0 -0
  297. data/test/dummy/tmp/cache/assets/E03/CF0/sprockets%2Ffd9ccc8eca5b28ea8c175587a1c37cb3 +0 -0
  298. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  299. data/test/dummy/tmp/cache/assets/E07/0F0/sprockets%2F96ac3cc2bdaae9cde264974ef77d2c81 +0 -0
  300. data/test/dummy/tmp/cache/assets/E0F/E90/sprockets%2F8e7db2bac32a0e9cac06b43ab5d242ab +0 -0
  301. data/test/dummy/tmp/cache/assets/E25/820/sprockets%2Fd3b6a937cfa7e45cffc316bae06db5b0 +0 -0
  302. data/test/dummy/tmp/cache/assets/E2D/020/sprockets%2Fcbafddc9ed34b5bb8d1e300c55b488e9 +0 -0
  303. data/test/dummy/tmp/cache/assets/E33/300/sprockets%2Fb751f7e95e5efaedb23aef5b5069bd2c +0 -0
  304. data/test/dummy/tmp/cache/assets/E39/490/sprockets%2Ff0d1f807d9aeda4a98600cb9fe9df7cc +0 -0
  305. data/test/dummy/tmp/cache/assets/E68/D50/sprockets%2Fbb4b566ad8ba5fa7cf5e547cedfe0f95 +0 -0
  306. data/test/dummy/tmp/cache/sass/09ef2509826c8e6328e00a46ab2d431530905427/_base.scssc +0 -0
  307. data/test/dummy/tmp/cache/sass/09ef2509826c8e6328e00a46ab2d431530905427/_sprite-img.scssc +0 -0
  308. data/test/dummy/tmp/cache/sass/18aae862c6b8d844ecb0d28099e3c6dc22a78390/_components.scssc +0 -0
  309. data/test/dummy/tmp/cache/sass/18aae862c6b8d844ecb0d28099e3c6dc22a78390/_config.scssc +0 -0
  310. data/test/dummy/tmp/cache/sass/18aae862c6b8d844ecb0d28099e3c6dc22a78390/_framework.scssc +0 -0
  311. data/test/dummy/tmp/cache/sass/18aae862c6b8d844ecb0d28099e3c6dc22a78390/_structure.scssc +0 -0
  312. data/test/dummy/tmp/cache/sass/18aae862c6b8d844ecb0d28099e3c6dc22a78390/style.scssc +0 -0
  313. data/test/dummy/tmp/cache/sass/230bfc8f182635ad4b3a335d489af9a06274afb8/application.css.scssc +0 -0
  314. data/test/dummy/tmp/cache/sass/2a4cafc997677a5e0158c4d4a79d2ab3f4ff6997/_grid-core.scssc +0 -0
  315. data/test/dummy/tmp/cache/sass/2a4cafc997677a5e0158c4d4a79d2ab3f4ff6997/_grid-helpers.scssc +0 -0
  316. data/test/dummy/tmp/cache/sass/2a4cafc997677a5e0158c4d4a79d2ab3f4ff6997/_mixins.scssc +0 -0
  317. data/test/dummy/tmp/cache/sass/2a4cafc997677a5e0158c4d4a79d2ab3f4ff6997/_normalize.scssc +0 -0
  318. data/test/dummy/tmp/cache/sass/2a4cafc997677a5e0158c4d4a79d2ab3f4ff6997/_print.scssc +0 -0
  319. data/test/dummy/tmp/cache/sass/2fc48581832b599e78863798b316800e2f081db8/_css3.scssc +0 -0
  320. data/test/dummy/tmp/cache/sass/2fc48581832b599e78863798b316800e2f081db8/_support.scssc +0 -0
  321. data/test/dummy/tmp/cache/sass/2fc48581832b599e78863798b316800e2f081db8/_typography.scssc +0 -0
  322. data/test/dummy/tmp/cache/sass/2fc48581832b599e78863798b316800e2f081db8/_utilities.scssc +0 -0
  323. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_appearance.scssc +0 -0
  324. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_background-clip.scssc +0 -0
  325. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_background-origin.scssc +0 -0
  326. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_background-size.scssc +0 -0
  327. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_border-radius.scssc +0 -0
  328. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_box-shadow.scssc +0 -0
  329. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_box-sizing.scssc +0 -0
  330. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_box.scssc +0 -0
  331. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_columns.scssc +0 -0
  332. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_filter.scssc +0 -0
  333. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_font-face.scssc +0 -0
  334. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_hyphenation.scssc +0 -0
  335. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_images.scssc +0 -0
  336. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_inline-block.scssc +0 -0
  337. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_opacity.scssc +0 -0
  338. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_regions.scssc +0 -0
  339. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_shared.scssc +0 -0
  340. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_text-shadow.scssc +0 -0
  341. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_transform.scssc +0 -0
  342. data/test/dummy/tmp/cache/sass/3a054fa2dd9c968492f5a0cb990ea7fe73be8836/_transition.scssc +0 -0
  343. data/test/dummy/tmp/cache/sass/3b11a8de81207d23d358103aa6b295021cc4f559/_contrast.scssc +0 -0
  344. data/test/dummy/tmp/cache/sass/4fafd6ccd5f325d6297db249d1acfce25c894abe/_compass.scssc +0 -0
  345. data/test/dummy/tmp/cache/sass/619a076775683b6e082ab3e83ee70dd4025b71ce/fancybox.cssc +0 -0
  346. data/test/dummy/tmp/cache/sass/6a181fabeabb4ad8135cf2bd3fa15f5039ab85a9/_utilities.scssc +0 -0
  347. data/test/dummy/tmp/cache/sass/6f4451653f8c03db4c183f13952595ad7fc9a7a5/_alternating-rows-and-columns.scssc +0 -0
  348. data/test/dummy/tmp/cache/sass/6f4451653f8c03db4c183f13952595ad7fc9a7a5/_borders.scssc +0 -0
  349. data/test/dummy/tmp/cache/sass/6f4451653f8c03db4c183f13952595ad7fc9a7a5/_scaffolding.scssc +0 -0
  350. data/test/dummy/tmp/cache/sass/6f8312e52a18e9753d5d08c869f5c3bec77f12b3/chosen.css.sassc +0 -0
  351. data/test/dummy/tmp/cache/sass/703c74442f96736be7a09968192044436254f4e2/bootstrap-responsive.scssc +0 -0
  352. data/test/dummy/tmp/cache/sass/703c74442f96736be7a09968192044436254f4e2/bootstrap.scssc +0 -0
  353. data/test/dummy/tmp/cache/sass/731447a6308f18f1769d254075093bb72c24f347/image_animation.css.scssc +0 -0
  354. data/test/dummy/tmp/cache/sass/731447a6308f18f1769d254075093bb72c24f347/images.css.scssc +0 -0
  355. data/test/dummy/tmp/cache/sass/731447a6308f18f1769d254075093bb72c24f347/thisorthat.css.scssc +0 -0
  356. data/test/dummy/tmp/cache/sass/81b75274929b072edf6f16f0144d09b81c0ec6cb/_color.scssc +0 -0
  357. data/test/dummy/tmp/cache/sass/81b75274929b072edf6f16f0144d09b81c0ec6cb/_general.scssc +0 -0
  358. data/test/dummy/tmp/cache/sass/81b75274929b072edf6f16f0144d09b81c0ec6cb/_sprites.scssc +0 -0
  359. data/test/dummy/tmp/cache/sass/81b75274929b072edf6f16f0144d09b81c0ec6cb/_tables.scssc +0 -0
  360. data/test/dummy/tmp/cache/sass/a9ceb8ca2f3605f188194e487b24c01a1853c7e8/_grid-background.scssc +0 -0
  361. data/test/dummy/tmp/cache/sass/d53eea4db5c445904dd2d1926d6eea4bbca119f9/_bullets.scssc +0 -0
  362. data/test/dummy/tmp/cache/sass/d53eea4db5c445904dd2d1926d6eea4bbca119f9/_horizontal-list.scssc +0 -0
  363. data/test/dummy/tmp/cache/sass/d53eea4db5c445904dd2d1926d6eea4bbca119f9/_inline-block-list.scssc +0 -0
  364. data/test/dummy/tmp/cache/sass/d53eea4db5c445904dd2d1926d6eea4bbca119f9/_inline-list.scssc +0 -0
  365. data/test/dummy/tmp/cache/sass/d8b9a6cd27d9e74c47290b0b43e75f4003d5e84b/lentil.css.scssc +0 -0
  366. data/test/dummy/tmp/cache/sass/e8cb3fe0dc661de96e682e25b9bbeaf97d6a8698/_links.scssc +0 -0
  367. data/test/dummy/tmp/cache/sass/e8cb3fe0dc661de96e682e25b9bbeaf97d6a8698/_lists.scssc +0 -0
  368. data/test/dummy/tmp/cache/sass/e8cb3fe0dc661de96e682e25b9bbeaf97d6a8698/_text.scssc +0 -0
  369. data/test/dummy/tmp/cache/sass/e8cb3fe0dc661de96e682e25b9bbeaf97d6a8698/_vertical_rhythm.scssc +0 -0
  370. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_accordion.scssc +0 -0
  371. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_alerts.scssc +0 -0
  372. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_breadcrumbs.scssc +0 -0
  373. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_button-groups.scssc +0 -0
  374. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_buttons.scssc +0 -0
  375. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_carousel.scssc +0 -0
  376. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_close.scssc +0 -0
  377. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_code.scssc +0 -0
  378. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_component-animations.scssc +0 -0
  379. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_dropdowns.scssc +0 -0
  380. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_forms.scssc +0 -0
  381. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_grid.scssc +0 -0
  382. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_hero-unit.scssc +0 -0
  383. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_labels-badges.scssc +0 -0
  384. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_layouts.scssc +0 -0
  385. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_media.scssc +0 -0
  386. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_mixins.scssc +0 -0
  387. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_modals.scssc +0 -0
  388. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_navbar.scssc +0 -0
  389. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_navs.scssc +0 -0
  390. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_pager.scssc +0 -0
  391. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_pagination.scssc +0 -0
  392. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_popovers.scssc +0 -0
  393. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_progress-bars.scssc +0 -0
  394. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_reset.scssc +0 -0
  395. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_responsive-1200px-min.scssc +0 -0
  396. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_responsive-767px-max.scssc +0 -0
  397. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_responsive-768px-979px.scssc +0 -0
  398. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_responsive-navbar.scssc +0 -0
  399. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_responsive-utilities.scssc +0 -0
  400. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_scaffolding.scssc +0 -0
  401. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_sprites.scssc +0 -0
  402. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_tables.scssc +0 -0
  403. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_thumbnails.scssc +0 -0
  404. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_tooltip.scssc +0 -0
  405. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_type.scssc +0 -0
  406. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_utilities.scssc +0 -0
  407. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_variables.scssc +0 -0
  408. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/_wells.scssc +0 -0
  409. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/bootstrap.scssc +0 -0
  410. data/test/dummy/tmp/cache/sass/effeda9621a1f8587c33f3f59e511b0a59ff7bb4/responsive.scssc +0 -0
  411. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_clearfix.scssc +0 -0
  412. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_float.scssc +0 -0
  413. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_hacks.scssc +0 -0
  414. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_min.scssc +0 -0
  415. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_reset.scssc +0 -0
  416. data/test/dummy/tmp/cache/sass/f785cff4f2efc02e3a7a52ccf822a563c511b793/_tag-cloud.scssc +0 -0
  417. data/test/dummy/tmp/cache/sass/fbf85d5608ca3ac95eb64dfaa76546b623980b5f/_hover-link.scssc +0 -0
  418. data/test/dummy/tmp/cache/sass/fbf85d5608ca3ac95eb64dfaa76546b623980b5f/_link-colors.scssc +0 -0
  419. data/test/dummy/tmp/cache/sass/fbf85d5608ca3ac95eb64dfaa76546b623980b5f/_unstyled-link.scssc +0 -0
  420. data/test/dummy/tmp/cache/sass/fcfbf62c4a5c26b3ae30accefa73ef6191bb4aab/_ellipsis.scssc +0 -0
  421. data/test/dummy/tmp/cache/sass/fcfbf62c4a5c26b3ae30accefa73ef6191bb4aab/_force-wrap.scssc +0 -0
  422. data/test/dummy/tmp/cache/sass/fcfbf62c4a5c26b3ae30accefa73ef6191bb4aab/_nowrap.scssc +0 -0
  423. data/test/dummy/tmp/cache/sass/fcfbf62c4a5c26b3ae30accefa73ef6191bb4aab/_replacement.scssc +0 -0
  424. data/test/fixtures/lentil/admin_users.yml +35 -0
  425. data/test/fixtures/lentil/battles.yml +20 -0
  426. data/test/fixtures/lentil/flags.yml +17 -0
  427. data/test/fixtures/lentil/images.yml +284 -0
  428. data/test/fixtures/lentil/licenses.yml +25 -0
  429. data/test/fixtures/lentil/licensings.yml +20 -0
  430. data/test/fixtures/lentil/like_votes.yml +19 -0
  431. data/test/fixtures/lentil/services.yml +20 -0
  432. data/test/fixtures/lentil/taggings.yml +29 -0
  433. data/test/fixtures/lentil/tags.yml +29 -0
  434. data/test/fixtures/lentil/tagset_assignments.yml +28 -0
  435. data/test/fixtures/lentil/tagsets.yml +27 -0
  436. data/test/fixtures/lentil/users.yml +40 -0
  437. data/test/functional/admin/flags_controller_test.rb +16 -0
  438. data/test/functional/admin/images_controller_test.rb +46 -0
  439. data/test/functional/admin/tags_controller_test.rb +16 -0
  440. data/test/functional/admin/tagsets_controller_test.rb +21 -0
  441. data/test/functional/admin/users_controller_test.rb +16 -0
  442. data/test/functional/lentil/flags_controller_test.rb +19 -0
  443. data/test/functional/lentil/images_controller_test.rb +51 -0
  444. data/test/functional/lentil/like_votes_controller_test.rb +19 -0
  445. data/test/functional/lentil/photographers_controller_test.rb +14 -0
  446. data/test/functional/lentil/thisorthat_controller_test.rb +9 -0
  447. data/test/integration/lentil/admin_dashboard_test.rb +31 -0
  448. data/test/integration/lentil/admin_moderation_test.rb +9 -0
  449. data/test/integration/lentil/admin_tagset_test.rb +14 -0
  450. data/test/integration/lentil/images_feed_test.rb +14 -0
  451. data/test/integration/lentil/images_index_test.rb +46 -0
  452. data/test/integration/lentil/images_show_test.rb +14 -0
  453. data/test/integration/lentil/javascript/event_tracking_battle_test.rb +18 -0
  454. data/test/integration/lentil/javascript/event_tracking_test.rb +67 -0
  455. data/test/integration/lentil/javascript/image_modal_test.rb +20 -0
  456. data/test/integration/lentil/navigation_test.rb +10 -0
  457. data/test/integration/lentil/pages_test.rb +11 -0
  458. data/test/integration/lentil/thisorthat_test.rb +33 -0
  459. data/test/lentil_test.rb +7 -0
  460. data/test/test_helper.rb +79 -0
  461. data/test/unit/lentil/admin_user_test.rb +26 -0
  462. data/test/unit/lentil/battle_test.rb +18 -0
  463. data/test/unit/lentil/flag_test.rb +17 -0
  464. data/test/unit/lentil/helpers/images_helper_test.rb +4 -0
  465. data/test/unit/lentil/helpers/photographers_helper_test.rb +4 -0
  466. data/test/unit/lentil/helpers/thisorthat_helper_test.rb +4 -0
  467. data/test/unit/lentil/image_test.rb +52 -0
  468. data/test/unit/lentil/instagram_test.rb +57 -0
  469. data/test/unit/lentil/license_test.rb +20 -0
  470. data/test/unit/lentil/licensing_test.rb +18 -0
  471. data/test/unit/lentil/like_vote_test.rb +17 -0
  472. data/test/unit/lentil/popularity_test.rb +19 -0
  473. data/test/unit/lentil/service_test.rb +18 -0
  474. data/test/unit/lentil/tag_test.rb +21 -0
  475. data/test/unit/lentil/tagging_test.rb +19 -0
  476. data/test/unit/lentil/tagset_assignment_test.rb +18 -0
  477. data/test/unit/lentil/tagset_test.rb +22 -0
  478. data/test/unit/lentil/user_test.rb +37 -0
  479. data/test/vcr_cassettes/battle_images.yml +245 -0
  480. data/test/vcr_cassettes/battle_images_events.yml +206 -0
  481. data/test/vcr_cassettes/instagram_bad_image_check.yml +40 -0
  482. data/test/vcr_cassettes/instagram_by_tag.yml +318 -0
  483. data/test/vcr_cassettes/instagram_good_image_check.yml +42 -0
  484. data/test/vcr_cassettes/instagram_image_harvest.yml +1992 -0
  485. data/test/vcr_cassettes/instagram_image_id.yml +97 -0
  486. data/test/vcr_cassettes/instagram_oembed.yml +43 -0
  487. data/vendor/assets/javascripts/animatedimages/css/demo.css +178 -0
  488. data/vendor/assets/javascripts/animatedimages/css/fallback.css +12 -0
  489. data/vendor/assets/javascripts/animatedimages/css/style.css +132 -0
  490. data/vendor/assets/javascripts/animatedimages/images/Thumbs.db +0 -0
  491. data/vendor/assets/javascripts/animatedimages/images/bg.jpg +0 -0
  492. data/vendor/assets/javascripts/animatedimages/images/light.png +0 -0
  493. data/vendor/assets/javascripts/animatedimages/images/loading.gif +0 -0
  494. data/vendor/assets/javascripts/animatedimages/js/jquery.gridrotator.js +760 -0
  495. data/vendor/assets/javascripts/animatedimages/js/modernizr.custom.26633.js +4 -0
  496. data/vendor/assets/javascripts/expanding/expanding.js +118 -0
  497. data/vendor/assets/javascripts/html5historyapi/README.md +338 -0
  498. data/vendor/assets/javascripts/html5historyapi/component.json +8 -0
  499. data/vendor/assets/javascripts/html5historyapi/history.iegte8.js +721 -0
  500. data/vendor/assets/javascripts/html5historyapi/history.iegte8.min.js +30 -0
  501. data/vendor/assets/javascripts/html5historyapi/history.js +890 -0
  502. data/vendor/assets/javascripts/html5historyapi/history.min.js +33 -0
  503. data/vendor/assets/javascripts/html5historyapi/readme.en.txt +161 -0
  504. data/vendor/assets/javascripts/html5historyapi/readme.ru.txt +161 -0
  505. data/vendor/assets/javascripts/imagesloaded/jquery.imagesloaded.min.js +3 -0
  506. data/vendor/assets/javascripts/infinitescroll/Readme.md +59 -0
  507. data/vendor/assets/javascripts/infinitescroll/ajax-loader.gif +0 -0
  508. data/vendor/assets/javascripts/infinitescroll/behaviors/cufon.js +21 -0
  509. data/vendor/assets/javascripts/infinitescroll/behaviors/local.js +26 -0
  510. data/vendor/assets/javascripts/infinitescroll/behaviors/manual-trigger.js +59 -0
  511. data/vendor/assets/javascripts/infinitescroll/behaviors/masonry-isotope.js +21 -0
  512. data/vendor/assets/javascripts/infinitescroll/behaviors/sausage.js +19 -0
  513. data/vendor/assets/javascripts/infinitescroll/jquery.infinitescroll.js +802 -0
  514. data/vendor/assets/javascripts/infinitescroll/package.json +7 -0
  515. data/vendor/assets/javascripts/infinitescroll/site/assets/anivers_regular.otf +0 -0
  516. data/vendor/assets/javascripts/infinitescroll/site/assets/buttons.psd +0 -0
  517. data/vendor/assets/javascripts/infinitescroll/site/assets/logo.psd +0 -0
  518. data/vendor/assets/javascripts/infinitescroll/site/assets/mobius-strip2.ai +2266 -15
  519. data/vendor/assets/javascripts/infinitescroll/site/assets/pattern.psd +0 -0
  520. data/vendor/assets/javascripts/infinitescroll/site/assets/selector spots.psd +0 -0
  521. data/vendor/assets/javascripts/infinitescroll/site/assets/sites.psd +0 -0
  522. data/vendor/assets/javascripts/infinitescroll/site/buttons.png +0 -0
  523. data/vendor/assets/javascripts/infinitescroll/site/infinite-scroll-pattern.gif +0 -0
  524. data/vendor/assets/javascripts/infinitescroll/site/logo.jpg +0 -0
  525. data/vendor/assets/javascripts/infinitescroll/site/screens.jpg +0 -0
  526. data/vendor/assets/javascripts/infinitescroll/site/selectors.jpg +0 -0
  527. data/vendor/assets/javascripts/infinitescroll/test/debug.js +24 -0
  528. data/vendor/assets/javascripts/infinitescroll/test/index.html +105 -0
  529. data/vendor/assets/javascripts/infinitescroll/test/index2.html +41 -0
  530. data/vendor/assets/javascripts/infinitescroll/test/index3.html +48 -0
  531. data/vendor/assets/javascripts/infinitescroll/test/jquery-1.6.1.js +8936 -0
  532. data/vendor/assets/javascripts/infinitescroll/test/mobile.html +108 -0
  533. data/vendor/assets/javascripts/infinitescroll/test/mobile2.json +1 -0
  534. data/vendor/assets/javascripts/infinitescroll/test/mobile3.json +1 -0
  535. data/vendor/assets/javascripts/infinitescroll/test/mobile4.json +1 -0
  536. data/vendor/assets/javascripts/infinitescroll/test/style.css +319 -0
  537. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/img/ajax-loader.gif +0 -0
  538. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/includes/admin.php +126 -0
  539. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/includes/options.php +188 -0
  540. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/includes/presets.php +737 -0
  541. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/includes/submit.php +67 -0
  542. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/infinite-scroll.php +261 -0
  543. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/js/admin/infinite-scoll.js +5 -0
  544. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/js/admin/infinite-scroll.dev.js +128 -0
  545. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/js/front-end/jquery.infinitescroll.dev.js +747 -0
  546. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/js/front-end/jquery.infinitescroll.js +31 -0
  547. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/languages/infinite-scroll.pot +157 -0
  548. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/license.html +694 -0
  549. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/readme.md +246 -0
  550. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/readme.txt +241 -0
  551. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/screenshot-1.png +0 -0
  552. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/screenshot-2.png +0 -0
  553. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/screenshot-3.png +0 -0
  554. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/footer.php +7 -0
  555. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/manage-presets.php +21 -0
  556. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/options.php +97 -0
  557. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/preset-prompt.php +7 -0
  558. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/submit-prompt.php +23 -0
  559. data/vendor/assets/javascripts/infinitescroll/wordpress-plugin/templates/submit.php +31 -0
  560. data/vendor/assets/javascripts/spin/spin.js +2 -0
  561. data/vendor/assets/javascripts/touchswipe/README.md +84 -0
  562. data/vendor/assets/javascripts/touchswipe/jquery.touchSwipe.js +1555 -0
  563. metadata +1397 -0
@@ -0,0 +1,246 @@
1
+ # Infinite-Scroll #
2
+ **Contributors:** beaver6813, dirkhaim, paul.irish, benbalter
3
+ **Donate link:** http://www.infinite-scroll.com
4
+ **Tags:** ajax, pagination, scrolling, scroll, endless, reading
5
+ **Requires at least:** 3.2
6
+ **Tested up to:** 3.4
7
+ **Stable tag:** 2.0b
8
+
9
+ Automatically append the next page of posts (via AJAX) to your page when a user scrolls to the bottom.
10
+
11
+ ## Description ##
12
+
13
+ Infinite scroll has been called autopagerize, unpaginate, endless pages. But essentially it is pre-fetching content from a subsequent page and adding it directly to the user’s current page.
14
+
15
+ When a user scrolls towards the bottom of the page, the next page of posts is automatically retrieved and appended. This means they never need to click "Next Page", which *dramatically increases stickiness*.
16
+
17
+ Features:
18
+
19
+ * Works out-of-the-box for many popular WordPress themes -- just activate the plugin and scroll
20
+ * Fully customizable to adapt to your site and theme
21
+ * Requires no (hopefully) template hacking, only a knowledge of CSS selectors.
22
+ * Relies on shared database of common themes to simplify installation process
23
+ * Maintain local database of theme presets for all installed themes (shared across network on multisite installs)
24
+ * Countless API endpoints to modify the behavior.
25
+ * Backwards compatible: Will not break RSS readers, mobile devices, or browsers with javascript
26
+
27
+ Full information on [infinite-scroll.com](http://www.infinite-scroll.com)
28
+
29
+ ## Screenshots ##
30
+
31
+ ### 1. CSS Selector (theme) configuration options ###
32
+ ![CSS Selector (theme) configuration options](https://github.com/benbalter/Infinite-Scroll/raw/develop/screenshot-1.png)
33
+
34
+ ### 2. Text and image options (to display as additional posts load) ###
35
+ ![Text and image options (to display as additional posts load)](https://github.com/benbalter/Infinite-Scroll/raw/develop/screenshot-2.png)
36
+
37
+ ### 3. Edit theme presets screen ###
38
+ ![Edit theme presets screen](https://github.com/benbalter/Infinite-Scroll/raw/develop/screenshot-3.png)
39
+
40
+ ## Changelog ##
41
+
42
+ ### 2.5 ###
43
+ * Plugin completely rewritten from the bottom up
44
+ * **Note: you will need to manually reactivate this plugin after upgrading**
45
+ * Minimum WordPress version required now to **3.2**
46
+ * Added support for internationalization (see FAQ for information on translating)
47
+ * Added support for custom post types (now works on all pages but `is_singular()`)
48
+ * Options screens significantly simplified with additional help text
49
+ * Presets screen now uses standard WordPress administrative interface
50
+ * Ability to submit your theme's CSS Selectors to the community CSS selector database to aid others with installation
51
+ * Changes to presets are now made inline; saved via AJAX without page reload
52
+ * Added additional API endpoints for developers to modify and customize plugin behavior
53
+ * Loading image now uses native WordPress uploader and can accept arbitrary URL or image from media gallery
54
+ * Loading and finished text now uses native WordPress TinyMCE editor
55
+ * If site administrator has not entered CSS selectors and preset is known, plugin will default to preset
56
+ * Any preset entered by site (or network) administrator will now override community contributed presets by default
57
+ * Community contributed CSS selector presets are now stored in the database allowing for plugin directory to be unwritable (security enhancement)
58
+ * Prompts users to default to CSS selector preset when available
59
+ * Presets now support child themes
60
+ * Community contributed CSS selected asynchronously update daily (performance enhancement)
61
+ * Site (or network) specific CSS selector presets are now stored in the database (security enhancement)
62
+ * CSS Preset updater now uses WP_HTTP class (compatibility enhancement)
63
+ * Javascript file now served directly to user (rather than proxied via PHP) to allow for browser caching, minification, serving via CDN, and better integration with caching plugins (performance enhancement)
64
+ * Javascript options stored natively in database and passed directly to script via WordPress's `wp_localize_script` function (performance and customizability enhancement)
65
+ * No longer relies on deprecated user levels to determine permissions
66
+ * Default loading and fished messages changed
67
+ * Fixes for error and warnings when run with `WP_DEBUG` enabled
68
+ * Removed prompt for option to activate infinite scrolling for only certain users (defaults to all)
69
+ * Removed prompt for option to toggle debug mode (defaults to `WP_DEBUG` or `SCRIPT_DEBUG`)
70
+ * Removed prompt for option to toggle scrolling behavior (defaults to automatic)
71
+ * Removed prompt for additional callbacks
72
+ * Removed prompt to select image alignment (defaults to left, can override via CSS)
73
+ * Significant code clean up, file reorganization, and in-line documentation to conform to WordPress coding and style standards (whitespace, double v. single quotes, tab drift, trailing commas, closing PHP tags, etc.)
74
+ * Classes loaded as sub-classes (rather than extending parent class) to prevent classes from becoming out of sync
75
+ * Added phpdoc style documentation
76
+ * Plugin file name changed to conform to standard WordPress naming conventions
77
+ * License (GPL) included with distribution
78
+ * Version numbering simplified
79
+
80
+ ### 2.0b2.120111 ###
81
+ * Added infinite_scroll_load_override filter to manually force infinite-scroll to load on a page.
82
+ * Thanks to https://github.com/samargulies for the above patch.
83
+
84
+ ### 2.0b2.111218 ###
85
+ * Updated preset DB with basic themes
86
+ * Made a few fixes in options/presets to prep for main release.
87
+ * Changed hook used by 404 detection to template_redirect from wp.
88
+
89
+ ### 2.0b2.110822 ###
90
+ * Removed registration/enqueuing script in favor of just enqueueing
91
+ * Fixed bug/typo in compressed init script
92
+
93
+ ### 2.0b2.110821 ###
94
+ * Converted options pages to use Settings API
95
+ * Added behavior selection (Manual triggering)
96
+
97
+ ### 2.0b2.110818 ###
98
+ * Completely revamped admin panel adding more modular management
99
+ * Added ability to center loading image
100
+ * Added WYSIWYG editor to HTML allowed fields in admin panel
101
+ * Updated Javascript callback to pass DOM for new elements added
102
+ * Added Preset manager
103
+ * Added ability to auto-fill selector fields from theme preset
104
+ * Overhaul of underlying code, separating out into classes to cut down
105
+ on code processed (and hence load time) for the end-user.
106
+
107
+ ### 2.0b2.110723 ###
108
+ * Improved escaping on settings to allow greater flexibility.
109
+ * Fixed issue with jQuery not loading if WP version is up to date.
110
+ * Fixed issue with plugin showing twice on plugin list.
111
+
112
+ ### 2.0b2.110716 ###
113
+ * Moved init script from direct page insertion to separate script.
114
+ * Cleaned up unneeded declared constants.
115
+ * Combined init script and library into one minified script.
116
+ * This fixes an incompatibility with HeadJS plugin.
117
+
118
+ ### 2.0b2.110713 ###
119
+ * Fixed multiple jQuery loaded conflicts.
120
+ * Now uses standard WordPress javascript insertion.
121
+ * Loads locally stored jQuery 1.6.2 if current version is < 1.6
122
+ this can only be detected through WordPress now, hence the fix
123
+ for multiple versions conflicting (some naughty themes don't
124
+ use WordPress's javascript loading).
125
+
126
+ ### 2.0b2.110709 ###
127
+ * FIX: Default options not being recursively copied.
128
+ * Updated to new options layout.
129
+ * Callback fix.
130
+
131
+ ### 2.0b2.110706 ###
132
+ * HTTPS loading image fix.
133
+ * Better debug support (switches between minified and non).
134
+
135
+ ### 2.0b2.110629 ###
136
+ * Callback (custom javascript) fix.
137
+ * IE9 binding bug fix.
138
+
139
+ ### 2.0b2.110628 ###
140
+ * Modified the method used to determine the link paths (bug fix)
141
+
142
+ ### 2.0b2.110617 ###
143
+ * Updated core javascript to version 2.0b2.110617 (full revamp).
144
+ * General cleanup/tidy of plugin itself.
145
+ * Fixed bugs with numerical sub-domains (now uses site_url to determine path).
146
+ * Supports archives, tags, searches.
147
+ * Wider theme support.
148
+ * Simplified plugin options page, added loading image upload ability, added option for debug mode.
149
+ * Removed annoying reminder that showed on all admin pages.
150
+ * Forces 404 header when no more posts are available.
151
+
152
+ ### 1.5.100504 ###
153
+ * New appending technique using document fragments.
154
+ * Callback receives the contentSelector elem as its first argument,
155
+ and an array of the new elements as the second argument
156
+
157
+ ### 1.4.100210 ###
158
+ Fixed small bug that jQuery 1.4 introduced.
159
+
160
+ ### 1.4 ###
161
+ Proper WordPress method (enqueue_script) removed because it just breaks too often
162
+ JS updated with some custom method action.
163
+
164
+ ### 1.3 ###
165
+ Use proper WordPress function to register the javascript
166
+ Use plugins_url to determine plugin url
167
+
168
+ ### 1.2 ###
169
+ * 2009 August 4th
170
+ * `get_option('siteurl')` fix made.
171
+ * jQuery plugin version updated. many more options available.
172
+ * Release backwards compatible
173
+
174
+ ### 1.1 ###
175
+ * 2008 September 25
176
+ * JavaScript rewritten as a proper jQuery plugin.
177
+ * Added animation
178
+
179
+ ### 1.0 ###
180
+ * June 29 - 1.0 release.
181
+
182
+ ## Frequently Asked Questions ##
183
+
184
+ ### What exactly is infinite scrolling? ###
185
+
186
+ Essentially it is pre-fetching content from a subsequent page and adding it directly to the user’s current page. [More Information](http://www.infinite-scroll.com/the-interaction-design-pattern/)
187
+
188
+ ### Can I change the number of posts loaded? ###
189
+
190
+ Yes. Go to Settings -> Reading in your WordPress administrative dashboard.
191
+
192
+ ### How do I change the alignment of the loading image? ###
193
+
194
+ Add the following to your theme's css: `#infscr-loading img { text-align: ALIGNMENT; }` where "ALIGNMENT" is either `left`, `right`, or `center`.
195
+
196
+ ### How can I pass additional arguments such as behavior or callbacks to the script? ###
197
+
198
+ Add a filter to `infinite_scroll_options` and adds additional options to the options array.
199
+
200
+ ### Is the plugin available in my language? ###
201
+
202
+ If you enjoy the plugin and are interested in contributing a translation (it's super easy), please take a look at the [Translating WordPress](http://codex.wordpress.org/Translating_WordPress) page.
203
+
204
+ ### Is it SEO-Friendly? ###
205
+ Yes all enhancements are made via javascript only, so search spiders see no difference.
206
+
207
+ ### Is it accessible? ###
208
+
209
+ Things won’t change for screen-readers. This technique degrades gracefully.
210
+
211
+ ### Does it still keep going, even at the end of the blog? ###
212
+
213
+ Infinite scroll is configured to die when it hits a 404 Not Found status code, so when it goes through all your archives it should hit a /page/43/ (or something) that doesn’t exist, then show a message "Congrats, you’ve reached the end of the internet." Some WordPress themes don’t report not found pages with a 404. Try a different theme or contacting the theme author.
214
+
215
+ ### Do I need to edit my theme to make this work? ###
216
+
217
+ Probably not, nope.
218
+
219
+ ### How do I pass additional arguments such as callbacks to the Infinite Scroll script? ###
220
+
221
+ To pass additional arguments to the Infinite Scroll script, add the following code to either your theme's `functions.php` or to a stand-alone plugin file.
222
+
223
+ ```
224
+ function my_infinite_scroll_options_filter( $options ) {
225
+ $options['callback'] = 'my_callback';
226
+ $options['another_parameter'] = 'another_value';
227
+ return $options;
228
+ }
229
+
230
+ add_filter( 'infinite_scroll_js_options', 'my_infinite_scroll_options_filter' );
231
+ ```
232
+
233
+ ## Installation ##
234
+
235
+ ### Automatic Install ###
236
+ 1. Login to your WordPress site as an Administrator
237
+ 2. Navigate to Plugins->Add New from the menu on the left
238
+ 3. Search for "Infinite Scroll"
239
+ 4. Click "Install"
240
+ 5. Click "Activate Now"
241
+
242
+ ### Manual Install ###
243
+ 1. Download the plugin from the link in the top left corner
244
+ 2. Unzip the file, and upload the resulting "infinite-scroll" folder to your "/wp-content/plugins directory" as "/wp-content/plugins/infinite-scroll"
245
+ 3. Log into your WordPress install as an administrator, and navigate to the plugins screen from the left-hand menu
246
+ 4. Activate Infinite Scroll
@@ -0,0 +1,241 @@
1
+ === Infinite-Scroll ===
2
+ Contributors: beaver6813, dirkhaim, paul.irish, benbalter
3
+ Donate link: http://www.infinite-scroll.com
4
+ Tags: ajax, pagination, scrolling, scroll, endless, reading
5
+ Requires at least: 3.2
6
+ Tested up to: 3.4
7
+ Stable tag: 2.0b
8
+
9
+ Automatically append the next page of posts (via AJAX) to your page when a user scrolls to the bottom.
10
+
11
+ == Description ==
12
+
13
+ Infinite scroll has been called autopagerize, unpaginate, endless pages. But essentially it is pre-fetching content from a subsequent page and adding it directly to the user’s current page.
14
+
15
+ When a user scrolls towards the bottom of the page, the next page of posts is automatically retrieved and appended. This means they never need to click "Next Page", which *dramatically increases stickiness*.
16
+
17
+ Features:
18
+
19
+ * Works out-of-the-box for many popular WordPress themes -- just activate the plugin and scroll
20
+ * Fully customizable to adapt to your site and theme
21
+ * Requires no (hopefully) template hacking, only a knowledge of CSS selectors.
22
+ * Relies on shared database of common themes to simplify installation process
23
+ * Maintain local database of theme presets for all installed themes (shared across network on multisite installs)
24
+ * Countless API endpoints to modify the behavior.
25
+ * Backwards compatible: Will not break RSS readers, mobile devices, or browsers with javascript
26
+
27
+ Full information on [infinite-scroll.com](http://www.infinite-scroll.com)
28
+
29
+ == Changelog ==
30
+
31
+ = 2.5 =
32
+ * Plugin completely rewritten from the bottom up
33
+ * **Note: you will need to manually reactivate this plugin after upgrading**
34
+ * Minimum WordPress version required now to **3.2**
35
+ * Added support for internationalization (see FAQ for information on translating)
36
+ * Added support for custom post types (now works on all pages but `is_singular()`)
37
+ * Options screens significantly simplified with additional help text
38
+ * Presets screen now uses standard WordPress administrative interface
39
+ * Ability to submit your theme's CSS Selectors to the community CSS selector database to aid others with installation
40
+ * Changes to presets are now made inline; saved via AJAX without page reload
41
+ * Added additional API endpoints for developers to modify and customize plugin behavior
42
+ * Loading image now uses native WordPress uploader and can accept arbitrary URL or image from media gallery
43
+ * Loading and finished text now uses native WordPress TinyMCE editor
44
+ * If site administrator has not entered CSS selectors and preset is known, plugin will default to preset
45
+ * Any preset entered by site (or network) administrator will now override community contributed presets by default
46
+ * Community contributed CSS selector presets are now stored in the database allowing for plugin directory to be unwritable (security enhancement)
47
+ * Prompts users to default to CSS selector preset when available
48
+ * Presets now support child themes
49
+ * Community contributed CSS selectors now stored as standard CSV and asynchronously update daily (performance and compatibility enhancement)
50
+ * Site (or network) specific CSS selector presets are now stored in the database (security enhancement)
51
+ * CSS Preset updater now uses WP_HTTP class (compatibility enhancement)
52
+ * Javascript file now served directly to user (rather than proxied via PHP) to allow for browser caching, minification, serving via CDN, and better integration with caching plugins (performance enhancement)
53
+ * Javascript options stored natively in database and passed directly to script via WordPress's `wp_localize_script` function (performance and customizability enhancement)
54
+ * No longer relies on deprecated user levels to determine permissions
55
+ * Default loading and fished messages changed
56
+ * Fixes for error and warnings when run with `WP_DEBUG` enabled
57
+ * Removed prompt for option to activate infinite scrolling for only certain users (defaults to all)
58
+ * Removed prompt for option to toggle debug mode (defaults to `WP_DEBUG` or `SCRIPT_DEBUG`)
59
+ * Removed prompt for option to toggle scrolling behavior (defaults to automatic)
60
+ * Removed prompt for additional callbacks
61
+ * Removed prompt to select image alignment (defaults to left, can override via CSS)
62
+ * Significant code clean up, file reorganization, and in-line documentation to conform to WordPress coding and style standards (whitespace, double v. single quotes, tab drift, trailing commas, closing PHP tags, etc.)
63
+ * Classes loaded as sub-classes (rather than extending parent class) to prevent classes from becoming out of sync
64
+ * Added phpdoc style documentation
65
+ * Plugin file name changed to conform to standard WordPress naming conventions
66
+ * License (GPL) included with distribution
67
+ * Version numbering simplified
68
+
69
+ = 2.0b2.120111 =
70
+ * Added infinite_scroll_load_override filter to manually force infinite-scroll to load on a page.
71
+ * Thanks to https://github.com/samargulies for the above patch.
72
+
73
+ = 2.0b2.111218 =
74
+ * Updated preset DB with basic themes
75
+ * Made a few fixes in options/presets to prep for main release.
76
+ * Changed hook used by 404 detection to template_redirect from wp.
77
+
78
+ = 2.0b2.110822 =
79
+ * Removed registration/enqueuing script in favor of just enqueueing
80
+ * Fixed bug/typo in compressed init script
81
+
82
+ = 2.0b2.110821 =
83
+ * Converted options pages to use Settings API
84
+ * Added behavior selection (Manual triggering)
85
+
86
+ = 2.0b2.110818 =
87
+ * Completely revamped admin panel adding more modular management
88
+ * Added ability to center loading image
89
+ * Added WYSIWYG editor to HTML allowed fields in admin panel
90
+ * Updated Javascript callback to pass DOM for new elements added
91
+ * Added Preset manager
92
+ * Added ability to auto-fill selector fields from theme preset
93
+ * Overhaul of underlying code, separating out into classes to cut down
94
+ on code processed (and hence load time) for the end-user.
95
+
96
+ = 2.0b2.110723 =
97
+ * Improved escaping on settings to allow greater flexibility.
98
+ * Fixed issue with jQuery not loading if WP version is up to date.
99
+ * Fixed issue with plugin showing twice on plugin list.
100
+
101
+ = 2.0b2.110716 =
102
+ * Moved init script from direct page insertion to separate script.
103
+ * Cleaned up unneeded declared constants.
104
+ * Combined init script and library into one minified script.
105
+ * This fixes an incompatibility with HeadJS plugin.
106
+
107
+ = 2.0b2.110713 =
108
+ * Fixed multiple jQuery loaded conflicts.
109
+ * Now uses standard WordPress javascript insertion.
110
+ * Loads locally stored jQuery 1.6.2 if current version is < 1.6
111
+ this can only be detected through WordPress now, hence the fix
112
+ for multiple versions conflicting (some naughty themes don't
113
+ use WordPress's javascript loading).
114
+
115
+ = 2.0b2.110709 =
116
+ * FIX: Default options not being recursively copied.
117
+ * Updated to new options layout.
118
+ * Callback fix.
119
+
120
+ = 2.0b2.110706 =
121
+ * HTTPS loading image fix.
122
+ * Better debug support (switches between minified and non).
123
+
124
+ = 2.0b2.110629 =
125
+ * Callback (custom javascript) fix.
126
+ * IE9 binding bug fix.
127
+
128
+ = 2.0b2.110628 =
129
+ * Modified the method used to determine the link paths (bug fix)
130
+
131
+ = 2.0b2.110617 =
132
+ * Updated core javascript to version 2.0b2.110617 (full revamp).
133
+ * General cleanup/tidy of plugin itself.
134
+ * Fixed bugs with numerical sub-domains (now uses site_url to determine path).
135
+ * Supports archives, tags, searches.
136
+ * Wider theme support.
137
+ * Simplified plugin options page, added loading image upload ability, added option for debug mode.
138
+ * Removed annoying reminder that showed on all admin pages.
139
+ * Forces 404 header when no more posts are available.
140
+
141
+ = 1.5.100504 =
142
+ * New appending technique using document fragments.
143
+ * Callback receives the contentSelector elem as its first argument,
144
+ and an array of the new elements as the second argument
145
+
146
+ = 1.4.100210 =
147
+ Fixed small bug that jQuery 1.4 introduced.
148
+
149
+ = 1.4 =
150
+ Proper WordPress method (enqueue_script) removed because it just breaks too often
151
+ JS updated with some custom method action.
152
+
153
+ = 1.3 =
154
+ Use proper WordPress function to register the javascript
155
+ Use plugins_url to determine plugin url
156
+
157
+ = 1.2 =
158
+ * 2009 August 4th
159
+ * `get_option('siteurl')` fix made.
160
+ * jQuery plugin version updated. many more options available.
161
+ * Release backwards compatible
162
+
163
+ = 1.1 =
164
+ * 2008 September 25
165
+ * JavaScript rewritten as a proper jQuery plugin.
166
+ * Added animation
167
+
168
+ = 1.0 =
169
+ * June 29 - 1.0 release.
170
+
171
+ == Screenshots ==
172
+
173
+ 1. CSS Selector (theme) configuration options
174
+ 2. Text and image options (to display as additional posts load)
175
+ 3. Edit theme presets screen
176
+
177
+ == Frequently Asked Questions ==
178
+
179
+ = What exactly is infinite scrolling? =
180
+
181
+ Essentially it is pre-fetching content from a subsequent page and adding it directly to the user’s current page. [More Information](http://www.infinite-scroll.com/the-interaction-design-pattern/)
182
+
183
+ = Can I change the number of posts loaded? =
184
+
185
+ Yes. Go to Settings -> Reading in your WordPress administrative dashboard.
186
+
187
+ = How do I change the alignment of the loading image? =
188
+
189
+ Add the following to your theme's css: `#infscr-loading img { text-align: ALIGNMENT; }` where "ALIGNMENT" is either `left`, `right`, or `center`.
190
+
191
+ = How can I pass additional arguments such as behavior or callbacks to the script? =
192
+
193
+ Add a filter to `infinite_scroll_options` and adds additional options to the options array.
194
+
195
+ = Is the plugin available in my language? =
196
+
197
+ If you enjoy the plugin and are interested in contributing a translation (it's super easy), please take a look at the [Translating WordPress](http://codex.wordpress.org/Translating_WordPress) page.
198
+
199
+ = Is it SEO-Friendly? =
200
+ Yes all enhancements are made via javascript only, so search spiders see no difference.
201
+
202
+ = Is it accessible? =
203
+
204
+ Things won’t change for screen-readers. This technique degrades gracefully.
205
+
206
+ = Does it still keep going, even at the end of the blog? =
207
+
208
+ Infinite scroll is configured to die when it hits a 404 Not Found status code, so when it goes through all your archives it should hit a /page/43/ (or something) that doesn’t exist, then show a message "Congrats, you’ve reached the end of the internet." Some WordPress themes don’t report not found pages with a 404. Try a different theme or contacting the theme author.
209
+
210
+ = Do I need to edit my theme to make this work? =
211
+
212
+ Probably not, nope.
213
+
214
+ = How do I pass additional arguments such as callbacks to the Infinite Scroll script? =
215
+
216
+ To pass additional arguments to the Infinite Scroll script, add the following code to either your theme's `functions.php` or to a stand-alone plugin file.
217
+
218
+ ```
219
+ function my_infinite_scroll_options_filter( $options ) {
220
+ $options['callback'] = 'my_callback';
221
+ $options['another_parameter'] = 'another_value';
222
+ return $options;
223
+ }
224
+
225
+ add_filter( 'infinite_scroll_js_options', 'my_infinite_scroll_options_filter' );
226
+ ```
227
+
228
+ == Installation ==
229
+
230
+ = Automatic Install =
231
+ 1. Login to your WordPress site as an Administrator
232
+ 2. Navigate to Plugins->Add New from the menu on the left
233
+ 3. Search for "Infinite Scroll"
234
+ 4. Click "Install"
235
+ 5. Click "Activate Now"
236
+
237
+ = Manual Install =
238
+ 1. Download the plugin from the link in the top left corner
239
+ 2. Unzip the file, and upload the resulting "infinite-scroll" folder to your "/wp-content/plugins directory" as "/wp-content/plugins/infinite-scroll"
240
+ 3. Log into your WordPress install as an administrator, and navigate to the plugins screen from the left-hand menu
241
+ 4. Activate Infinite Scroll