lockbox_middleware 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (740) hide show
  1. data/lib/lockbox_middleware.rb +1 -1
  2. data/spec/lib/lockbox_middleware_spec.rb +2 -2
  3. data/spec/spec_helper.rb +0 -2
  4. metadata +36 -756
  5. data/.gitignore +0 -15
  6. data/Capfile +0 -4
  7. data/Gemfile +0 -11
  8. data/Rakefile +0 -12
  9. data/VERSION +0 -1
  10. data/app/controllers/admin/partners_controller.rb +0 -14
  11. data/app/controllers/admin_controller.rb +0 -8
  12. data/app/controllers/application_controller.rb +0 -32
  13. data/app/controllers/authentication_controller.rb +0 -58
  14. data/app/controllers/confirmation_controller.rb +0 -14
  15. data/app/controllers/fetch_password_controller.rb +0 -44
  16. data/app/controllers/home_controller.rb +0 -11
  17. data/app/controllers/partner_sessions_controller.rb +0 -30
  18. data/app/controllers/partners_controller.rb +0 -58
  19. data/app/helpers/admin/partners_helper.rb +0 -3
  20. data/app/helpers/admin_helper.rb +0 -2
  21. data/app/helpers/application_helper.rb +0 -20
  22. data/app/helpers/authentication_helper.rb +0 -2
  23. data/app/helpers/fetch_password_helper.rb +0 -2
  24. data/app/helpers/home_helper.rb +0 -2
  25. data/app/helpers/labeled_builder.rb +0 -76
  26. data/app/helpers/partners_helper.rb +0 -2
  27. data/app/models/partner.rb +0 -129
  28. data/app/models/partner_mailer.rb +0 -25
  29. data/app/models/partner_session.rb +0 -2
  30. data/app/views/admin/show.html.erb +0 -6
  31. data/app/views/authentication/four_two_oh.html.erb +0 -4
  32. data/app/views/fetch_password/index.html.erb +0 -4
  33. data/app/views/fetch_password/show.html.erb +0 -6
  34. data/app/views/home/show.html.erb +0 -20
  35. data/app/views/layouts/admin.html.erb +0 -42
  36. data/app/views/layouts/application.html.erb +0 -48
  37. data/app/views/partner_mailer/confirmation.text.html.erb +0 -30
  38. data/app/views/partner_mailer/confirmation.text.plain.erb +0 -5
  39. data/app/views/partner_mailer/fetch_password.text.html.erb +0 -32
  40. data/app/views/partner_mailer/fetch_password.text.plain.erb +0 -5
  41. data/app/views/partner_sessions/new.html.erb +0 -9
  42. data/app/views/partners/_form.html.erb +0 -7
  43. data/app/views/partners/edit.html.erb +0 -5
  44. data/app/views/partners/index.html.erb +0 -0
  45. data/app/views/partners/new.html.erb +0 -6
  46. data/app/views/partners/show.html.erb +0 -48
  47. data/app/views/shared/_footer.html.erb +0 -0
  48. data/app/views/shared/_header.html.erb +0 -3
  49. data/app/views/shared/_logged_in_menu.html.erb +0 -1
  50. data/app/views/shared/_logged_out_menu.html.erb +0 -2
  51. data/config/asset_packages.yml +0 -19
  52. data/config/boot.rb +0 -110
  53. data/config/database.yml.example +0 -25
  54. data/config/environment.rb +0 -56
  55. data/config/environments/development.rb +0 -22
  56. data/config/environments/production.rb +0 -30
  57. data/config/environments/test.rb +0 -35
  58. data/config/initializers/backtrace_silencers.rb +0 -7
  59. data/config/initializers/inflections.rb +0 -10
  60. data/config/initializers/mime_types.rb +0 -7
  61. data/config/initializers/new_rails_defaults.rb +0 -21
  62. data/config/initializers/session_store.rb +0 -15
  63. data/config/initializers/settings.rb +0 -1
  64. data/config/initializers/string.rb +0 -25
  65. data/config/locales/en.yml +0 -5
  66. data/config/lockbox.yml.example +0 -12
  67. data/config/routes.rb +0 -23
  68. data/db/migrate/20091104170848_create_partners.rb +0 -34
  69. data/db/migrate/20091106213802_add_index_on_api_key.rb +0 -9
  70. data/db/migrate/20100507193948_add_partner_slug.rb +0 -11
  71. data/db/seeds.rb +0 -7
  72. data/lib/admin_authentication.rb +0 -9
  73. data/lib/authentication.rb +0 -48
  74. data/lib/rfc822.rb +0 -18
  75. data/lib/tasks/jeweler.rake +0 -14
  76. data/lib/tasks/rspec.rake +0 -144
  77. data/public/404.html +0 -30
  78. data/public/422.html +0 -30
  79. data/public/500.html +0 -30
  80. data/public/blank.html +0 -33
  81. data/public/favicon.ico +0 -0
  82. data/public/images/active_scaffold/DO_NOT_EDIT +0 -2
  83. data/public/images/active_scaffold/default/add.gif +0 -0
  84. data/public/images/active_scaffold/default/arrow_down.gif +0 -0
  85. data/public/images/active_scaffold/default/arrow_up.gif +0 -0
  86. data/public/images/active_scaffold/default/close.gif +0 -0
  87. data/public/images/active_scaffold/default/cross.png +0 -0
  88. data/public/images/active_scaffold/default/indicator-small.gif +0 -0
  89. data/public/images/active_scaffold/default/indicator.gif +0 -0
  90. data/public/images/active_scaffold/default/magnifier.png +0 -0
  91. data/public/images/rails.png +0 -0
  92. data/public/javascripts/active_scaffold/DO_NOT_EDIT +0 -2
  93. data/public/javascripts/active_scaffold/default/active_scaffold.js +0 -434
  94. data/public/javascripts/active_scaffold/default/dhtml_history.js +0 -867
  95. data/public/javascripts/active_scaffold/default/form_enhancements.js +0 -117
  96. data/public/javascripts/active_scaffold/default/rico_corner.js +0 -370
  97. data/public/javascripts/application.js +0 -2
  98. data/public/javascripts/controls.js +0 -963
  99. data/public/javascripts/csshover.htc +0 -120
  100. data/public/javascripts/dragdrop.js +0 -973
  101. data/public/javascripts/effects.js +0 -1128
  102. data/public/javascripts/prototype.js +0 -4320
  103. data/public/robots.txt +0 -5
  104. data/public/stylesheets/active_scaffold/DO_NOT_EDIT +0 -2
  105. data/public/stylesheets/active_scaffold/default/stylesheet-ie.css +0 -35
  106. data/public/stylesheets/active_scaffold/default/stylesheet.css +0 -822
  107. data/public/stylesheets/application.css +0 -189
  108. data/public/stylesheets/ie.css +0 -11
  109. data/public/stylesheets/reset.css +0 -42
  110. data/public/stylesheets/screen.css +0 -257
  111. data/script/about +0 -4
  112. data/script/autospec +0 -6
  113. data/script/console +0 -3
  114. data/script/cucumber +0 -17
  115. data/script/dbconsole +0 -3
  116. data/script/destroy +0 -3
  117. data/script/generate +0 -3
  118. data/script/performance/benchmarker +0 -3
  119. data/script/performance/profiler +0 -3
  120. data/script/plugin +0 -3
  121. data/script/runner +0 -3
  122. data/script/server +0 -3
  123. data/script/spec +0 -10
  124. data/spec/controllers/admin/partners_controller_spec.rb +0 -55
  125. data/spec/controllers/admin_controller_spec.rb +0 -29
  126. data/spec/controllers/application_controller_spec.rb +0 -36
  127. data/spec/controllers/authentication_controller_spec.rb +0 -120
  128. data/spec/controllers/confirmation_controller_spec.rb +0 -36
  129. data/spec/controllers/fetch_password_controller_spec.rb +0 -155
  130. data/spec/controllers/home_controller_spec.rb +0 -15
  131. data/spec/controllers/partner_sessions_controller_spec.rb +0 -84
  132. data/spec/controllers/partners_controller_spec.rb +0 -132
  133. data/spec/factories/partners.rb +0 -14
  134. data/spec/models/partner_mailer_spec.rb +0 -47
  135. data/spec/models/partner_spec.rb +0 -155
  136. data/spec/rcov.opts +0 -1
  137. data/vendor/gems/authlogic-2.1.3/.gitignore +0 -9
  138. data/vendor/gems/authlogic-2.1.3/CHANGELOG.rdoc +0 -345
  139. data/vendor/gems/authlogic-2.1.3/LICENSE +0 -20
  140. data/vendor/gems/authlogic-2.1.3/README.rdoc +0 -246
  141. data/vendor/gems/authlogic-2.1.3/Rakefile +0 -42
  142. data/vendor/gems/authlogic-2.1.3/VERSION.yml +0 -5
  143. data/vendor/gems/authlogic-2.1.3/authlogic.gemspec +0 -217
  144. data/vendor/gems/authlogic-2.1.3/generators/session/session_generator.rb +0 -9
  145. data/vendor/gems/authlogic-2.1.3/generators/session/templates/session.rb +0 -2
  146. data/vendor/gems/authlogic-2.1.3/init.rb +0 -1
  147. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/base.rb +0 -107
  148. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/email.rb +0 -110
  149. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/logged_in_status.rb +0 -60
  150. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/login.rb +0 -141
  151. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/magic_columns.rb +0 -24
  152. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/password.rb +0 -344
  153. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/perishable_token.rb +0 -105
  154. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/persistence_token.rb +0 -68
  155. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/restful_authentication.rb +0 -61
  156. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/session_maintenance.rb +0 -139
  157. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/single_access_token.rb +0 -65
  158. data/vendor/gems/authlogic-2.1.3/lib/authlogic/acts_as_authentic/validations_scope.rb +0 -32
  159. data/vendor/gems/authlogic-2.1.3/lib/authlogic/authenticates_many/association.rb +0 -42
  160. data/vendor/gems/authlogic-2.1.3/lib/authlogic/authenticates_many/base.rb +0 -55
  161. data/vendor/gems/authlogic-2.1.3/lib/authlogic/controller_adapters/abstract_adapter.rb +0 -67
  162. data/vendor/gems/authlogic-2.1.3/lib/authlogic/controller_adapters/merb_adapter.rb +0 -30
  163. data/vendor/gems/authlogic-2.1.3/lib/authlogic/controller_adapters/rails_adapter.rb +0 -48
  164. data/vendor/gems/authlogic-2.1.3/lib/authlogic/controller_adapters/sinatra_adapter.rb +0 -61
  165. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/aes256.rb +0 -43
  166. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/bcrypt.rb +0 -90
  167. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/md5.rb +0 -34
  168. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/sha1.rb +0 -35
  169. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/sha256.rb +0 -50
  170. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/sha512.rb +0 -50
  171. data/vendor/gems/authlogic-2.1.3/lib/authlogic/crypto_providers/wordpress.rb +0 -43
  172. data/vendor/gems/authlogic-2.1.3/lib/authlogic/i18n/translator.rb +0 -15
  173. data/vendor/gems/authlogic-2.1.3/lib/authlogic/i18n.rb +0 -83
  174. data/vendor/gems/authlogic-2.1.3/lib/authlogic/random.rb +0 -33
  175. data/vendor/gems/authlogic-2.1.3/lib/authlogic/regex.rb +0 -25
  176. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/activation.rb +0 -58
  177. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/active_record_trickery.rb +0 -61
  178. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/base.rb +0 -37
  179. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/brute_force_protection.rb +0 -96
  180. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/callbacks.rb +0 -88
  181. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/cookies.rb +0 -130
  182. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/existence.rb +0 -93
  183. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/foundation.rb +0 -63
  184. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/http_auth.rb +0 -58
  185. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/id.rb +0 -41
  186. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/klass.rb +0 -78
  187. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/magic_columns.rb +0 -95
  188. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/magic_states.rb +0 -59
  189. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/params.rb +0 -101
  190. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/password.rb +0 -240
  191. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/perishable_token.rb +0 -18
  192. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/persistence.rb +0 -70
  193. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/priority_record.rb +0 -34
  194. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/scopes.rb +0 -101
  195. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/session.rb +0 -62
  196. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/timeout.rb +0 -82
  197. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/unauthorized_record.rb +0 -50
  198. data/vendor/gems/authlogic-2.1.3/lib/authlogic/session/validation.rb +0 -82
  199. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case/mock_controller.rb +0 -45
  200. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case/mock_cookie_jar.rb +0 -14
  201. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case/mock_logger.rb +0 -10
  202. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case/mock_request.rb +0 -19
  203. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case/rails_request_adapter.rb +0 -30
  204. data/vendor/gems/authlogic-2.1.3/lib/authlogic/test_case.rb +0 -120
  205. data/vendor/gems/authlogic-2.1.3/lib/authlogic.rb +0 -57
  206. data/vendor/gems/authlogic-2.1.3/rails/init.rb +0 -1
  207. data/vendor/gems/authlogic-2.1.3/shoulda_macros/authlogic.rb +0 -69
  208. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/base_test.rb +0 -18
  209. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/email_test.rb +0 -97
  210. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/logged_in_status_test.rb +0 -36
  211. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/login_test.rb +0 -109
  212. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/magic_columns_test.rb +0 -27
  213. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/password_test.rb +0 -236
  214. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/perishable_token_test.rb +0 -90
  215. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/persistence_token_test.rb +0 -55
  216. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/restful_authentication_test.rb +0 -40
  217. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/session_maintenance_test.rb +0 -84
  218. data/vendor/gems/authlogic-2.1.3/test/acts_as_authentic_test/single_access_test.rb +0 -44
  219. data/vendor/gems/authlogic-2.1.3/test/authenticates_many_test.rb +0 -16
  220. data/vendor/gems/authlogic-2.1.3/test/crypto_provider_test/aes256_test.rb +0 -14
  221. data/vendor/gems/authlogic-2.1.3/test/crypto_provider_test/bcrypt_test.rb +0 -14
  222. data/vendor/gems/authlogic-2.1.3/test/crypto_provider_test/sha1_test.rb +0 -23
  223. data/vendor/gems/authlogic-2.1.3/test/crypto_provider_test/sha256_test.rb +0 -14
  224. data/vendor/gems/authlogic-2.1.3/test/crypto_provider_test/sha512_test.rb +0 -14
  225. data/vendor/gems/authlogic-2.1.3/test/fixtures/companies.yml +0 -5
  226. data/vendor/gems/authlogic-2.1.3/test/fixtures/employees.yml +0 -17
  227. data/vendor/gems/authlogic-2.1.3/test/fixtures/projects.yml +0 -3
  228. data/vendor/gems/authlogic-2.1.3/test/fixtures/users.yml +0 -24
  229. data/vendor/gems/authlogic-2.1.3/test/i18n_test.rb +0 -33
  230. data/vendor/gems/authlogic-2.1.3/test/libs/affiliate.rb +0 -7
  231. data/vendor/gems/authlogic-2.1.3/test/libs/company.rb +0 -6
  232. data/vendor/gems/authlogic-2.1.3/test/libs/employee.rb +0 -7
  233. data/vendor/gems/authlogic-2.1.3/test/libs/employee_session.rb +0 -2
  234. data/vendor/gems/authlogic-2.1.3/test/libs/ldaper.rb +0 -3
  235. data/vendor/gems/authlogic-2.1.3/test/libs/ordered_hash.rb +0 -9
  236. data/vendor/gems/authlogic-2.1.3/test/libs/project.rb +0 -3
  237. data/vendor/gems/authlogic-2.1.3/test/libs/user.rb +0 -5
  238. data/vendor/gems/authlogic-2.1.3/test/libs/user_session.rb +0 -6
  239. data/vendor/gems/authlogic-2.1.3/test/random_test.rb +0 -49
  240. data/vendor/gems/authlogic-2.1.3/test/session_test/activation_test.rb +0 -43
  241. data/vendor/gems/authlogic-2.1.3/test/session_test/active_record_trickery_test.rb +0 -36
  242. data/vendor/gems/authlogic-2.1.3/test/session_test/brute_force_protection_test.rb +0 -101
  243. data/vendor/gems/authlogic-2.1.3/test/session_test/callbacks_test.rb +0 -6
  244. data/vendor/gems/authlogic-2.1.3/test/session_test/cookies_test.rb +0 -112
  245. data/vendor/gems/authlogic-2.1.3/test/session_test/credentials_test.rb +0 -0
  246. data/vendor/gems/authlogic-2.1.3/test/session_test/existence_test.rb +0 -64
  247. data/vendor/gems/authlogic-2.1.3/test/session_test/http_auth_test.rb +0 -28
  248. data/vendor/gems/authlogic-2.1.3/test/session_test/id_test.rb +0 -17
  249. data/vendor/gems/authlogic-2.1.3/test/session_test/klass_test.rb +0 -40
  250. data/vendor/gems/authlogic-2.1.3/test/session_test/magic_columns_test.rb +0 -62
  251. data/vendor/gems/authlogic-2.1.3/test/session_test/magic_states_test.rb +0 -60
  252. data/vendor/gems/authlogic-2.1.3/test/session_test/params_test.rb +0 -53
  253. data/vendor/gems/authlogic-2.1.3/test/session_test/password_test.rb +0 -106
  254. data/vendor/gems/authlogic-2.1.3/test/session_test/perishability_test.rb +0 -15
  255. data/vendor/gems/authlogic-2.1.3/test/session_test/persistence_test.rb +0 -21
  256. data/vendor/gems/authlogic-2.1.3/test/session_test/scopes_test.rb +0 -60
  257. data/vendor/gems/authlogic-2.1.3/test/session_test/session_test.rb +0 -59
  258. data/vendor/gems/authlogic-2.1.3/test/session_test/timeout_test.rb +0 -52
  259. data/vendor/gems/authlogic-2.1.3/test/session_test/unauthorized_record_test.rb +0 -13
  260. data/vendor/gems/authlogic-2.1.3/test/session_test/validation_test.rb +0 -23
  261. data/vendor/gems/authlogic-2.1.3/test/test_helper.rb +0 -182
  262. data/vendor/gems/factory_girl-1.2.3/.specification +0 -121
  263. data/vendor/gems/factory_girl-1.2.3/CONTRIBUTION_GUIDELINES.rdoc +0 -9
  264. data/vendor/gems/factory_girl-1.2.3/Changelog +0 -29
  265. data/vendor/gems/factory_girl-1.2.3/LICENSE +0 -19
  266. data/vendor/gems/factory_girl-1.2.3/README.rdoc +0 -228
  267. data/vendor/gems/factory_girl-1.2.3/Rakefile +0 -81
  268. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/aliases.rb +0 -50
  269. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/attribute/association.rb +0 -20
  270. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/attribute/callback.rb +0 -16
  271. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/attribute/dynamic.rb +0 -20
  272. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/attribute/static.rb +0 -17
  273. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/attribute.rb +0 -29
  274. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/factory.rb +0 -395
  275. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/proxy/attributes_for.rb +0 -21
  276. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/proxy/build.rb +0 -30
  277. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/proxy/create.rb +0 -12
  278. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/proxy/stub.rb +0 -50
  279. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/proxy.rb +0 -79
  280. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/sequence.rb +0 -63
  281. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/step_definitions.rb +0 -54
  282. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax/blueprint.rb +0 -42
  283. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax/generate.rb +0 -68
  284. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax/make.rb +0 -39
  285. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax/sham.rb +0 -42
  286. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl/syntax.rb +0 -12
  287. data/vendor/gems/factory_girl-1.2.3/lib/factory_girl.rb +0 -35
  288. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/aliases_spec.rb +0 -29
  289. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/attribute/association_spec.rb +0 -29
  290. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/attribute/callback_spec.rb +0 -23
  291. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/attribute/dynamic_spec.rb +0 -49
  292. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/attribute/static_spec.rb +0 -29
  293. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/attribute_spec.rb +0 -30
  294. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/factory_spec.rb +0 -571
  295. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/proxy/attributes_for_spec.rb +0 -52
  296. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/proxy/build_spec.rb +0 -81
  297. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/proxy/create_spec.rb +0 -94
  298. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/proxy/stub_spec.rb +0 -79
  299. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/proxy_spec.rb +0 -84
  300. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/sequence_spec.rb +0 -66
  301. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/syntax/blueprint_spec.rb +0 -34
  302. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/syntax/generate_spec.rb +0 -57
  303. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/syntax/make_spec.rb +0 -35
  304. data/vendor/gems/factory_girl-1.2.3/spec/factory_girl/syntax/sham_spec.rb +0 -35
  305. data/vendor/gems/factory_girl-1.2.3/spec/integration_spec.rb +0 -304
  306. data/vendor/gems/factory_girl-1.2.3/spec/models.rb +0 -43
  307. data/vendor/gems/factory_girl-1.2.3/spec/spec_helper.rb +0 -18
  308. data/vendor/gems/paperclip-2.3.1.1/.specification +0 -161
  309. data/vendor/gems/paperclip-2.3.1.1/LICENSE +0 -26
  310. data/vendor/gems/paperclip-2.3.1.1/README.rdoc +0 -174
  311. data/vendor/gems/paperclip-2.3.1.1/Rakefile +0 -103
  312. data/vendor/gems/paperclip-2.3.1.1/generators/paperclip/USAGE +0 -5
  313. data/vendor/gems/paperclip-2.3.1.1/generators/paperclip/paperclip_generator.rb +0 -27
  314. data/vendor/gems/paperclip-2.3.1.1/generators/paperclip/templates/paperclip_migration.rb.erb +0 -19
  315. data/vendor/gems/paperclip-2.3.1.1/init.rb +0 -1
  316. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/attachment.rb +0 -414
  317. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/callback_compatability.rb +0 -33
  318. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/geometry.rb +0 -115
  319. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/interpolations.rb +0 -108
  320. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/iostream.rb +0 -58
  321. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/matchers/have_attached_file_matcher.rb +0 -49
  322. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb +0 -66
  323. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/matchers/validate_attachment_presence_matcher.rb +0 -48
  324. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/matchers/validate_attachment_size_matcher.rb +0 -83
  325. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/matchers.rb +0 -4
  326. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/processor.rb +0 -49
  327. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/storage.rb +0 -243
  328. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/thumbnail.rb +0 -73
  329. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip/upfile.rb +0 -49
  330. data/vendor/gems/paperclip-2.3.1.1/lib/paperclip.rb +0 -353
  331. data/vendor/gems/paperclip-2.3.1.1/shoulda_macros/paperclip.rb +0 -117
  332. data/vendor/gems/paperclip-2.3.1.1/tasks/paperclip_tasks.rake +0 -79
  333. data/vendor/gems/paperclip-2.3.1.1/test/attachment_test.rb +0 -780
  334. data/vendor/gems/paperclip-2.3.1.1/test/database.yml +0 -4
  335. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/12k.png +0 -0
  336. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/50x50.png +0 -0
  337. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/5k.png +0 -0
  338. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/bad.png +0 -1
  339. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/s3.yml +0 -8
  340. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/text.txt +0 -0
  341. data/vendor/gems/paperclip-2.3.1.1/test/fixtures/twopage.pdf +0 -0
  342. data/vendor/gems/paperclip-2.3.1.1/test/geometry_test.rb +0 -177
  343. data/vendor/gems/paperclip-2.3.1.1/test/helper.rb +0 -108
  344. data/vendor/gems/paperclip-2.3.1.1/test/integration_test.rb +0 -483
  345. data/vendor/gems/paperclip-2.3.1.1/test/interpolations_test.rb +0 -124
  346. data/vendor/gems/paperclip-2.3.1.1/test/iostream_test.rb +0 -71
  347. data/vendor/gems/paperclip-2.3.1.1/test/matchers/have_attached_file_matcher_test.rb +0 -21
  348. data/vendor/gems/paperclip-2.3.1.1/test/matchers/validate_attachment_content_type_matcher_test.rb +0 -30
  349. data/vendor/gems/paperclip-2.3.1.1/test/matchers/validate_attachment_presence_matcher_test.rb +0 -21
  350. data/vendor/gems/paperclip-2.3.1.1/test/matchers/validate_attachment_size_matcher_test.rb +0 -50
  351. data/vendor/gems/paperclip-2.3.1.1/test/paperclip_test.rb +0 -327
  352. data/vendor/gems/paperclip-2.3.1.1/test/processor_test.rb +0 -10
  353. data/vendor/gems/paperclip-2.3.1.1/test/storage_test.rb +0 -303
  354. data/vendor/gems/paperclip-2.3.1.1/test/thumbnail_test.rb +0 -227
  355. data/vendor/gems/paperclip-2.3.1.1/test/upfile_test.rb +0 -28
  356. data/vendor/gems/shoulda-2.10.2/.specification +0 -224
  357. data/vendor/gems/shoulda-2.10.2/CONTRIBUTION_GUIDELINES.rdoc +0 -10
  358. data/vendor/gems/shoulda-2.10.2/MIT-LICENSE +0 -22
  359. data/vendor/gems/shoulda-2.10.2/README.rdoc +0 -171
  360. data/vendor/gems/shoulda-2.10.2/Rakefile +0 -72
  361. data/vendor/gems/shoulda-2.10.2/bin/convert_to_should_syntax +0 -42
  362. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/macros.rb +0 -240
  363. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/assign_to_matcher.rb +0 -109
  364. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/filter_param_matcher.rb +0 -57
  365. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/render_with_layout_matcher.rb +0 -81
  366. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/respond_with_content_type_matcher.rb +0 -74
  367. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/respond_with_matcher.rb +0 -81
  368. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/route_matcher.rb +0 -93
  369. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/set_session_matcher.rb +0 -87
  370. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers/set_the_flash_matcher.rb +0 -85
  371. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller/matchers.rb +0 -37
  372. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_controller.rb +0 -26
  373. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_mailer/assertions.rb +0 -38
  374. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_mailer.rb +0 -10
  375. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_view/macros.rb +0 -61
  376. data/vendor/gems/shoulda-2.10.2/lib/shoulda/action_view.rb +0 -10
  377. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/assertions.rb +0 -69
  378. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/helpers.rb +0 -27
  379. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/macros.rb +0 -512
  380. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/allow_mass_assignment_of_matcher.rb +0 -83
  381. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/allow_value_matcher.rb +0 -102
  382. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/association_matcher.rb +0 -226
  383. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/ensure_inclusion_of_matcher.rb +0 -87
  384. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/ensure_length_of_matcher.rb +0 -141
  385. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/have_db_column_matcher.rb +0 -169
  386. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/have_db_index_matcher.rb +0 -112
  387. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/have_named_scope_matcher.rb +0 -128
  388. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/have_readonly_attribute_matcher.rb +0 -59
  389. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validate_acceptance_of_matcher.rb +0 -41
  390. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validate_format_of_matcher.rb +0 -67
  391. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validate_numericality_of_matcher.rb +0 -39
  392. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validate_presence_of_matcher.rb +0 -60
  393. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validate_uniqueness_of_matcher.rb +0 -148
  394. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers/validation_matcher.rb +0 -57
  395. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record/matchers.rb +0 -43
  396. data/vendor/gems/shoulda-2.10.2/lib/shoulda/active_record.rb +0 -16
  397. data/vendor/gems/shoulda-2.10.2/lib/shoulda/assertions.rb +0 -71
  398. data/vendor/gems/shoulda-2.10.2/lib/shoulda/autoload_macros.rb +0 -46
  399. data/vendor/gems/shoulda-2.10.2/lib/shoulda/context.rb +0 -402
  400. data/vendor/gems/shoulda-2.10.2/lib/shoulda/helpers.rb +0 -8
  401. data/vendor/gems/shoulda-2.10.2/lib/shoulda/macros.rb +0 -133
  402. data/vendor/gems/shoulda-2.10.2/lib/shoulda/private_helpers.rb +0 -13
  403. data/vendor/gems/shoulda-2.10.2/lib/shoulda/proc_extensions.rb +0 -14
  404. data/vendor/gems/shoulda-2.10.2/lib/shoulda/rails.rb +0 -13
  405. data/vendor/gems/shoulda-2.10.2/lib/shoulda/rspec.rb +0 -11
  406. data/vendor/gems/shoulda-2.10.2/lib/shoulda/tasks/list_tests.rake +0 -29
  407. data/vendor/gems/shoulda-2.10.2/lib/shoulda/tasks/yaml_to_shoulda.rake +0 -28
  408. data/vendor/gems/shoulda-2.10.2/lib/shoulda/tasks.rb +0 -3
  409. data/vendor/gems/shoulda-2.10.2/lib/shoulda/test_unit.rb +0 -22
  410. data/vendor/gems/shoulda-2.10.2/lib/shoulda.rb +0 -9
  411. data/vendor/gems/shoulda-2.10.2/rails/init.rb +0 -7
  412. data/vendor/gems/shoulda-2.10.2/test/README +0 -36
  413. data/vendor/gems/shoulda-2.10.2/test/fail_macros.rb +0 -39
  414. data/vendor/gems/shoulda-2.10.2/test/fixtures/addresses.yml +0 -3
  415. data/vendor/gems/shoulda-2.10.2/test/fixtures/friendships.yml +0 -0
  416. data/vendor/gems/shoulda-2.10.2/test/fixtures/posts.yml +0 -5
  417. data/vendor/gems/shoulda-2.10.2/test/fixtures/products.yml +0 -0
  418. data/vendor/gems/shoulda-2.10.2/test/fixtures/taggings.yml +0 -0
  419. data/vendor/gems/shoulda-2.10.2/test/fixtures/tags.yml +0 -9
  420. data/vendor/gems/shoulda-2.10.2/test/fixtures/users.yml +0 -6
  421. data/vendor/gems/shoulda-2.10.2/test/functional/posts_controller_test.rb +0 -121
  422. data/vendor/gems/shoulda-2.10.2/test/functional/users_controller_test.rb +0 -19
  423. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/allow_mass_assignment_of_matcher_test.rb +0 -68
  424. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/allow_value_matcher_test.rb +0 -64
  425. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/association_matcher_test.rb +0 -263
  426. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/ensure_inclusion_of_matcher_test.rb +0 -80
  427. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/ensure_length_of_matcher_test.rb +0 -158
  428. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/have_db_column_matcher_test.rb +0 -169
  429. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/have_db_index_matcher_test.rb +0 -91
  430. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/have_named_scope_matcher_test.rb +0 -65
  431. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/have_readonly_attributes_matcher_test.rb +0 -29
  432. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/validate_acceptance_of_matcher_test.rb +0 -44
  433. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/validate_format_of_matcher_test.rb +0 -39
  434. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/validate_numericality_of_matcher_test.rb +0 -52
  435. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/validate_presence_of_matcher_test.rb +0 -86
  436. data/vendor/gems/shoulda-2.10.2/test/matchers/active_record/validate_uniqueness_of_matcher_test.rb +0 -147
  437. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/assign_to_matcher_test.rb +0 -35
  438. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/filter_param_matcher_test.rb +0 -32
  439. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/render_with_layout_matcher_test.rb +0 -33
  440. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/respond_with_content_type_matcher_test.rb +0 -32
  441. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/respond_with_matcher_test.rb +0 -106
  442. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/route_matcher_test.rb +0 -58
  443. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/set_session_matcher_test.rb +0 -38
  444. data/vendor/gems/shoulda-2.10.2/test/matchers/controller/set_the_flash_matcher.rb +0 -41
  445. data/vendor/gems/shoulda-2.10.2/test/model_builder.rb +0 -106
  446. data/vendor/gems/shoulda-2.10.2/test/other/autoload_macro_test.rb +0 -18
  447. data/vendor/gems/shoulda-2.10.2/test/other/context_test.rb +0 -189
  448. data/vendor/gems/shoulda-2.10.2/test/other/convert_to_should_syntax_test.rb +0 -63
  449. data/vendor/gems/shoulda-2.10.2/test/other/helpers_test.rb +0 -340
  450. data/vendor/gems/shoulda-2.10.2/test/other/private_helpers_test.rb +0 -32
  451. data/vendor/gems/shoulda-2.10.2/test/other/should_test.rb +0 -271
  452. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/controllers/application_controller.rb +0 -25
  453. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/controllers/posts_controller.rb +0 -87
  454. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/controllers/users_controller.rb +0 -84
  455. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/helpers/application_helper.rb +0 -3
  456. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/helpers/posts_helper.rb +0 -2
  457. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/helpers/users_helper.rb +0 -2
  458. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/address.rb +0 -7
  459. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/flea.rb +0 -3
  460. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/friendship.rb +0 -4
  461. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/pets/cat.rb +0 -7
  462. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/pets/dog.rb +0 -10
  463. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/post.rb +0 -12
  464. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/product.rb +0 -12
  465. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/profile.rb +0 -2
  466. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/registration.rb +0 -2
  467. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/tag.rb +0 -8
  468. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/tagging.rb +0 -4
  469. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/treat.rb +0 -3
  470. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/models/user.rb +0 -32
  471. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/layouts/posts.rhtml +0 -19
  472. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/layouts/users.rhtml +0 -17
  473. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/layouts/wide.html.erb +0 -1
  474. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/posts/edit.rhtml +0 -27
  475. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/posts/index.rhtml +0 -25
  476. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/posts/new.rhtml +0 -26
  477. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/posts/show.rhtml +0 -18
  478. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/users/edit.rhtml +0 -22
  479. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/users/index.rhtml +0 -22
  480. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/users/new.rhtml +0 -21
  481. data/vendor/gems/shoulda-2.10.2/test/rails_root/app/views/users/show.rhtml +0 -13
  482. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/boot.rb +0 -110
  483. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/database.yml +0 -4
  484. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/environment.rb +0 -18
  485. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/environments/test.rb +0 -0
  486. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/initializers/new_rails_defaults.rb +0 -15
  487. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/initializers/shoulda.rb +0 -8
  488. data/vendor/gems/shoulda-2.10.2/test/rails_root/config/routes.rb +0 -6
  489. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/001_create_users.rb +0 -19
  490. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/002_create_posts.rb +0 -13
  491. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/003_create_taggings.rb +0 -12
  492. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/004_create_tags.rb +0 -11
  493. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/005_create_dogs.rb +0 -12
  494. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/006_create_addresses.rb +0 -14
  495. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/007_create_fleas.rb +0 -11
  496. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/008_create_dogs_fleas.rb +0 -12
  497. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/009_create_products.rb +0 -17
  498. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/010_create_friendships.rb +0 -14
  499. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/011_create_treats.rb +0 -12
  500. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/20090506203502_create_profiles.rb +0 -12
  501. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/20090506203536_create_registrations.rb +0 -14
  502. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/migrate/20090513104502_create_cats.rb +0 -12
  503. data/vendor/gems/shoulda-2.10.2/test/rails_root/db/schema.rb +0 -0
  504. data/vendor/gems/shoulda-2.10.2/test/rails_root/public/404.html +0 -30
  505. data/vendor/gems/shoulda-2.10.2/test/rails_root/public/422.html +0 -30
  506. data/vendor/gems/shoulda-2.10.2/test/rails_root/public/500.html +0 -30
  507. data/vendor/gems/shoulda-2.10.2/test/rails_root/script/console +0 -3
  508. data/vendor/gems/shoulda-2.10.2/test/rails_root/script/generate +0 -3
  509. data/vendor/gems/shoulda-2.10.2/test/rails_root/test/shoulda_macros/custom_macro.rb +0 -6
  510. data/vendor/gems/shoulda-2.10.2/test/rails_root/vendor/gems/gem_with_macro-0.0.1/shoulda_macros/gem_macro.rb +0 -6
  511. data/vendor/gems/shoulda-2.10.2/test/rails_root/vendor/plugins/plugin_with_macro/shoulda_macros/plugin_macro.rb +0 -6
  512. data/vendor/gems/shoulda-2.10.2/test/rspec_test.rb +0 -207
  513. data/vendor/gems/shoulda-2.10.2/test/test_helper.rb +0 -28
  514. data/vendor/gems/shoulda-2.10.2/test/unit/address_test.rb +0 -10
  515. data/vendor/gems/shoulda-2.10.2/test/unit/cat_test.rb +0 -7
  516. data/vendor/gems/shoulda-2.10.2/test/unit/dog_test.rb +0 -9
  517. data/vendor/gems/shoulda-2.10.2/test/unit/flea_test.rb +0 -6
  518. data/vendor/gems/shoulda-2.10.2/test/unit/friendship_test.rb +0 -6
  519. data/vendor/gems/shoulda-2.10.2/test/unit/post_test.rb +0 -19
  520. data/vendor/gems/shoulda-2.10.2/test/unit/product_test.rb +0 -23
  521. data/vendor/gems/shoulda-2.10.2/test/unit/tag_test.rb +0 -15
  522. data/vendor/gems/shoulda-2.10.2/test/unit/tagging_test.rb +0 -6
  523. data/vendor/gems/shoulda-2.10.2/test/unit/user_test.rb +0 -80
  524. data/vendor/plugins/active_scaffold/.autotest +0 -27
  525. data/vendor/plugins/active_scaffold/CHANGELOG +0 -152
  526. data/vendor/plugins/active_scaffold/MIT-LICENSE +0 -20
  527. data/vendor/plugins/active_scaffold/README +0 -31
  528. data/vendor/plugins/active_scaffold/Rakefile +0 -24
  529. data/vendor/plugins/active_scaffold/environment.rb +0 -17
  530. data/vendor/plugins/active_scaffold/frontends/default/images/add.gif +0 -0
  531. data/vendor/plugins/active_scaffold/frontends/default/images/arrow_down.gif +0 -0
  532. data/vendor/plugins/active_scaffold/frontends/default/images/arrow_up.gif +0 -0
  533. data/vendor/plugins/active_scaffold/frontends/default/images/close.gif +0 -0
  534. data/vendor/plugins/active_scaffold/frontends/default/images/cross.png +0 -0
  535. data/vendor/plugins/active_scaffold/frontends/default/images/indicator-small.gif +0 -0
  536. data/vendor/plugins/active_scaffold/frontends/default/images/indicator.gif +0 -0
  537. data/vendor/plugins/active_scaffold/frontends/default/images/magnifier.png +0 -0
  538. data/vendor/plugins/active_scaffold/frontends/default/javascripts/active_scaffold.js +0 -434
  539. data/vendor/plugins/active_scaffold/frontends/default/javascripts/dhtml_history.js +0 -867
  540. data/vendor/plugins/active_scaffold/frontends/default/javascripts/form_enhancements.js +0 -117
  541. data/vendor/plugins/active_scaffold/frontends/default/javascripts/rico_corner.js +0 -370
  542. data/vendor/plugins/active_scaffold/frontends/default/stylesheets/stylesheet-ie.css +0 -35
  543. data/vendor/plugins/active_scaffold/frontends/default/stylesheets/stylesheet.css +0 -822
  544. data/vendor/plugins/active_scaffold/frontends/default/views/_add_existing_form.html.erb +0 -40
  545. data/vendor/plugins/active_scaffold/frontends/default/views/_create_form.html.erb +0 -51
  546. data/vendor/plugins/active_scaffold/frontends/default/views/_create_form_on_list.html.erb +0 -38
  547. data/vendor/plugins/active_scaffold/frontends/default/views/_field_search.html.erb +0 -45
  548. data/vendor/plugins/active_scaffold/frontends/default/views/_form.html.erb +0 -18
  549. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association.html.erb +0 -20
  550. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association_footer.html.erb +0 -42
  551. data/vendor/plugins/active_scaffold/frontends/default/views/_form_attribute.html.erb +0 -12
  552. data/vendor/plugins/active_scaffold/frontends/default/views/_form_hidden_attribute.html.erb +0 -1
  553. data/vendor/plugins/active_scaffold/frontends/default/views/_form_messages.html.erb +0 -5
  554. data/vendor/plugins/active_scaffold/frontends/default/views/_horizontal_subform.html.erb +0 -19
  555. data/vendor/plugins/active_scaffold/frontends/default/views/_horizontal_subform_header.html.erb +0 -10
  556. data/vendor/plugins/active_scaffold/frontends/default/views/_horizontal_subform_record.html.erb +0 -29
  557. data/vendor/plugins/active_scaffold/frontends/default/views/_list.html.erb +0 -37
  558. data/vendor/plugins/active_scaffold/frontends/default/views/_list_actions.html.erb +0 -13
  559. data/vendor/plugins/active_scaffold/frontends/default/views/_list_calculations.html.erb +0 -22
  560. data/vendor/plugins/active_scaffold/frontends/default/views/_list_column_headings.html.erb +0 -32
  561. data/vendor/plugins/active_scaffold/frontends/default/views/_list_header.html.erb +0 -14
  562. data/vendor/plugins/active_scaffold/frontends/default/views/_list_inline_adapter.html.erb +0 -9
  563. data/vendor/plugins/active_scaffold/frontends/default/views/_list_pagination_links.html.erb +0 -30
  564. data/vendor/plugins/active_scaffold/frontends/default/views/_list_record.html.erb +0 -36
  565. data/vendor/plugins/active_scaffold/frontends/default/views/_live_search.html.erb +0 -23
  566. data/vendor/plugins/active_scaffold/frontends/default/views/_messages.html.erb +0 -10
  567. data/vendor/plugins/active_scaffold/frontends/default/views/_nested.html.erb +0 -44
  568. data/vendor/plugins/active_scaffold/frontends/default/views/_search.html.erb +0 -20
  569. data/vendor/plugins/active_scaffold/frontends/default/views/_show.html.erb +0 -8
  570. data/vendor/plugins/active_scaffold/frontends/default/views/_show_columns.html.erb +0 -12
  571. data/vendor/plugins/active_scaffold/frontends/default/views/_update_actions.html.erb +0 -9
  572. data/vendor/plugins/active_scaffold/frontends/default/views/_update_form.html.erb +0 -55
  573. data/vendor/plugins/active_scaffold/frontends/default/views/_vertical_subform.html.erb +0 -12
  574. data/vendor/plugins/active_scaffold/frontends/default/views/_vertical_subform_record.html.erb +0 -31
  575. data/vendor/plugins/active_scaffold/frontends/default/views/add_existing.js.rjs +0 -16
  576. data/vendor/plugins/active_scaffold/frontends/default/views/add_existing_form.html.erb +0 -5
  577. data/vendor/plugins/active_scaffold/frontends/default/views/create.html.erb +0 -5
  578. data/vendor/plugins/active_scaffold/frontends/default/views/delete.html.erb +0 -13
  579. data/vendor/plugins/active_scaffold/frontends/default/views/destroy.js.rjs +0 -10
  580. data/vendor/plugins/active_scaffold/frontends/default/views/edit_associated.js.rjs +0 -14
  581. data/vendor/plugins/active_scaffold/frontends/default/views/field_search.html.erb +0 -5
  582. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages.js.rjs +0 -1
  583. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages_on_create.js.rjs +0 -2
  584. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages_on_update.js.rjs +0 -2
  585. data/vendor/plugins/active_scaffold/frontends/default/views/list.html.erb +0 -48
  586. data/vendor/plugins/active_scaffold/frontends/default/views/on_create.js.rjs +0 -25
  587. data/vendor/plugins/active_scaffold/frontends/default/views/on_update.js.rjs +0 -11
  588. data/vendor/plugins/active_scaffold/frontends/default/views/render_field.js.rjs +0 -9
  589. data/vendor/plugins/active_scaffold/frontends/default/views/search.html.erb +0 -5
  590. data/vendor/plugins/active_scaffold/frontends/default/views/show.html.erb +0 -5
  591. data/vendor/plugins/active_scaffold/frontends/default/views/update.html.erb +0 -8
  592. data/vendor/plugins/active_scaffold/frontends/default/views/update_column.js.rjs +0 -12
  593. data/vendor/plugins/active_scaffold/init.rb +0 -18
  594. data/vendor/plugins/active_scaffold/install.rb +0 -39
  595. data/vendor/plugins/active_scaffold/install_assets.rb +0 -36
  596. data/vendor/plugins/active_scaffold/lib/active_record_permissions.rb +0 -128
  597. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/core.rb +0 -136
  598. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/create.rb +0 -158
  599. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/delete.rb +0 -72
  600. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/field_search.rb +0 -58
  601. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/list.rb +0 -95
  602. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/live_search.rb +0 -57
  603. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/nested.rb +0 -217
  604. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/search.rb +0 -50
  605. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/show.rb +0 -54
  606. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/subform.rb +0 -17
  607. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/update.rb +0 -126
  608. data/vendor/plugins/active_scaffold/lib/active_scaffold/attribute_params.rb +0 -192
  609. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/base.rb +0 -45
  610. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/core.rb +0 -230
  611. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/create.rb +0 -43
  612. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/delete.rb +0 -25
  613. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/field_search.rb +0 -53
  614. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/form.rb +0 -49
  615. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/list.rb +0 -134
  616. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/live_search.rb +0 -52
  617. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/nested.rb +0 -34
  618. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/search.rb +0 -52
  619. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/show.rb +0 -36
  620. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/subform.rb +0 -36
  621. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/update.rb +0 -32
  622. data/vendor/plugins/active_scaffold/lib/active_scaffold/configurable.rb +0 -29
  623. data/vendor/plugins/active_scaffold/lib/active_scaffold/constraints.rb +0 -181
  624. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_columns.rb +0 -97
  625. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_link.rb +0 -140
  626. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_links.rb +0 -47
  627. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/actions.rb +0 -45
  628. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/column.rb +0 -311
  629. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/columns.rb +0 -75
  630. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/error_message.rb +0 -24
  631. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/set.rb +0 -62
  632. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/sorting.rb +0 -159
  633. data/vendor/plugins/active_scaffold/lib/active_scaffold/finder.rb +0 -216
  634. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/association_helpers.rb +0 -40
  635. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/controller_helpers.rb +0 -41
  636. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/country_helpers.rb +0 -347
  637. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/form_column_helpers.rb +0 -301
  638. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/id_helpers.rb +0 -129
  639. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/list_column_helpers.rb +0 -234
  640. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/pagination_helpers.rb +0 -39
  641. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/search_column_helpers.rb +0 -172
  642. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/show_column_helpers.rb +0 -46
  643. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/view_helpers.rb +0 -202
  644. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/de.rb +0 -67
  645. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/en.rb +0 -67
  646. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/es.yml +0 -65
  647. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/fr.rb +0 -65
  648. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/hu.yml +0 -62
  649. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/ja.yml +0 -63
  650. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/ru.yml +0 -61
  651. data/vendor/plugins/active_scaffold/lib/active_scaffold.rb +0 -213
  652. data/vendor/plugins/active_scaffold/lib/bridges/bridge.rb +0 -52
  653. data/vendor/plugins/active_scaffold/lib/bridges/calendar_date_select/bridge.rb +0 -11
  654. data/vendor/plugins/active_scaffold/lib/bridges/calendar_date_select/lib/as_cds_bridge.rb +0 -86
  655. data/vendor/plugins/active_scaffold/lib/bridges/file_column/bridge.rb +0 -12
  656. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/as_file_column_bridge.rb +0 -49
  657. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/file_column_helpers.rb +0 -51
  658. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/form_ui.rb +0 -32
  659. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/list_ui.rb +0 -26
  660. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/functional/file_column_keep_test.rb +0 -43
  661. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/mock_model.rb +0 -9
  662. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/test_helper.rb +0 -15
  663. data/vendor/plugins/active_scaffold/lib/bridges/tiny_mce/bridge.rb +0 -5
  664. data/vendor/plugins/active_scaffold/lib/bridges/tiny_mce/lib/tiny_mce_bridge.rb +0 -45
  665. data/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb +0 -54
  666. data/vendor/plugins/active_scaffold/lib/extensions/action_controller_rendering.rb +0 -20
  667. data/vendor/plugins/active_scaffold/lib/extensions/action_view_rendering.rb +0 -88
  668. data/vendor/plugins/active_scaffold/lib/extensions/array.rb +0 -7
  669. data/vendor/plugins/active_scaffold/lib/extensions/component_response_with_namespacing.rb +0 -17
  670. data/vendor/plugins/active_scaffold/lib/extensions/generic_view_paths.rb +0 -33
  671. data/vendor/plugins/active_scaffold/lib/extensions/localize.rb +0 -10
  672. data/vendor/plugins/active_scaffold/lib/extensions/name_option_for_datetime.rb +0 -12
  673. data/vendor/plugins/active_scaffold/lib/extensions/nil_id_in_url_params.rb +0 -7
  674. data/vendor/plugins/active_scaffold/lib/extensions/resources.rb +0 -27
  675. data/vendor/plugins/active_scaffold/lib/extensions/reverse_associations.rb +0 -56
  676. data/vendor/plugins/active_scaffold/lib/extensions/to_label.rb +0 -8
  677. data/vendor/plugins/active_scaffold/lib/extensions/unsaved_associated.rb +0 -61
  678. data/vendor/plugins/active_scaffold/lib/extensions/unsaved_record.rb +0 -20
  679. data/vendor/plugins/active_scaffold/lib/extensions/usa_state.rb +0 -46
  680. data/vendor/plugins/active_scaffold/lib/paginator.rb +0 -136
  681. data/vendor/plugins/active_scaffold/lib/responds_to_parent.rb +0 -68
  682. data/vendor/plugins/active_scaffold/public/blank.html +0 -33
  683. data/vendor/plugins/active_scaffold/uninstall.rb +0 -13
  684. data/vendor/plugins/asset_packager/CHANGELOG +0 -122
  685. data/vendor/plugins/asset_packager/README +0 -178
  686. data/vendor/plugins/asset_packager/Rakefile +0 -22
  687. data/vendor/plugins/asset_packager/about.yml +0 -8
  688. data/vendor/plugins/asset_packager/init.rb +0 -3
  689. data/vendor/plugins/asset_packager/install.rb +0 -1
  690. data/vendor/plugins/asset_packager/lib/jsmin.rb +0 -211
  691. data/vendor/plugins/asset_packager/lib/synthesis/asset_package.rb +0 -210
  692. data/vendor/plugins/asset_packager/lib/synthesis/asset_package_helper.rb +0 -39
  693. data/vendor/plugins/asset_packager/lib/tasks/asset_packager_tasks.rake +0 -23
  694. data/vendor/plugins/asset_packager/test/asset_package_helper_development_test.rb +0 -102
  695. data/vendor/plugins/asset_packager/test/asset_package_helper_production_test.rb +0 -142
  696. data/vendor/plugins/asset_packager/test/asset_packager_test.rb +0 -91
  697. data/vendor/plugins/asset_packager/test/asset_packages.yml +0 -20
  698. data/vendor/plugins/asset_packager/test/assets/javascripts/application.js +0 -2
  699. data/vendor/plugins/asset_packager/test/assets/javascripts/bar.js +0 -4
  700. data/vendor/plugins/asset_packager/test/assets/javascripts/controls.js +0 -815
  701. data/vendor/plugins/asset_packager/test/assets/javascripts/dragdrop.js +0 -913
  702. data/vendor/plugins/asset_packager/test/assets/javascripts/effects.js +0 -958
  703. data/vendor/plugins/asset_packager/test/assets/javascripts/foo.js +0 -4
  704. data/vendor/plugins/asset_packager/test/assets/javascripts/prototype.js +0 -2006
  705. data/vendor/plugins/asset_packager/test/assets/stylesheets/bar.css +0 -16
  706. data/vendor/plugins/asset_packager/test/assets/stylesheets/foo.css +0 -16
  707. data/vendor/plugins/asset_packager/test/assets/stylesheets/header.css +0 -16
  708. data/vendor/plugins/asset_packager/test/assets/stylesheets/screen.css +0 -16
  709. data/vendor/plugins/asset_packager/test/assets/stylesheets/subdir/bar.css +0 -16
  710. data/vendor/plugins/asset_packager/test/assets/stylesheets/subdir/foo.css +0 -16
  711. data/vendor/plugins/exception_notification/README +0 -111
  712. data/vendor/plugins/exception_notification/init.rb +0 -1
  713. data/vendor/plugins/exception_notification/lib/exception_notifiable.rb +0 -99
  714. data/vendor/plugins/exception_notification/lib/exception_notifier.rb +0 -66
  715. data/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb +0 -78
  716. data/vendor/plugins/exception_notification/test/exception_notifier_helper_test.rb +0 -61
  717. data/vendor/plugins/exception_notification/test/test_helper.rb +0 -7
  718. data/vendor/plugins/exception_notification/views/exception_notifier/_backtrace.rhtml +0 -1
  719. data/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml +0 -7
  720. data/vendor/plugins/exception_notification/views/exception_notifier/_inspect_model.rhtml +0 -16
  721. data/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml +0 -4
  722. data/vendor/plugins/exception_notification/views/exception_notifier/_session.rhtml +0 -2
  723. data/vendor/plugins/exception_notification/views/exception_notifier/_title.rhtml +0 -3
  724. data/vendor/plugins/exception_notification/views/exception_notifier/exception_notification.rhtml +0 -6
  725. data/vendor/plugins/required_attributes/MIT-LICENSE +0 -20
  726. data/vendor/plugins/required_attributes/README +0 -13
  727. data/vendor/plugins/required_attributes/Rakefile +0 -22
  728. data/vendor/plugins/required_attributes/init.rb +0 -1
  729. data/vendor/plugins/required_attributes/install.rb +0 -1
  730. data/vendor/plugins/required_attributes/lib/required_attributes.rb +0 -68
  731. data/vendor/plugins/required_attributes/required_attributes/MIT-LICENSE +0 -20
  732. data/vendor/plugins/required_attributes/required_attributes/README +0 -13
  733. data/vendor/plugins/required_attributes/required_attributes/Rakefile +0 -22
  734. data/vendor/plugins/required_attributes/required_attributes/init.rb +0 -1
  735. data/vendor/plugins/required_attributes/required_attributes/install.rb +0 -1
  736. data/vendor/plugins/required_attributes/required_attributes/lib/required_attributes.rb +0 -68
  737. data/vendor/plugins/required_attributes/required_attributes/tasks/required_attributes_tasks.rake +0 -4
  738. data/vendor/plugins/required_attributes/required_attributes/uninstall.rb +0 -1
  739. data/vendor/plugins/required_attributes/tasks/required_attributes_tasks.rake +0 -4
  740. data/vendor/plugins/required_attributes/uninstall.rb +0 -1
@@ -1,867 +0,0 @@
1
- /*
2
- Copyright (c) 2007 Brian Dillard and Brad Neuberg:
3
- Brian Dillard | Project Lead | bdillard@pathf.com | http://blogs.pathf.com/agileajax/
4
- Brad Neuberg | Original Project Creator | http://codinginparadise.org
5
-
6
- SVN r113 from http://code.google.com/p/reallysimplehistory
7
- + Changes by Ed Wildgoose - MailASail
8
- + Changed EncodeURIComponent -> EncodeURI
9
- + Changed DecodeURIComponent -> DecodeURI
10
- + Changed 'blank.html?' -> '/blank.html?'
11
-
12
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
13
- (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge,
14
- publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
15
- so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
18
-
19
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
21
- FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
- */
24
-
25
- /*
26
- dhtmlHistory: An object that provides history, history data, and bookmarking for DHTML and Ajax applications.
27
-
28
- dependencies:
29
- * the historyStorage object included in this file.
30
-
31
- */
32
- window.dhtmlHistory = {
33
-
34
- /*Public: User-agent booleans*/
35
- isIE: false,
36
- isOpera: false,
37
- isSafari: false,
38
- isKonquerer: false,
39
- isGecko: false,
40
- isSupported: false,
41
-
42
- /*Public: Create the DHTML history infrastructure*/
43
- create: function(options) {
44
-
45
- /*
46
- options - object to store initialization parameters
47
- options.blankURL - string to override the default location of blank.html. Must end in "?"
48
- options.debugMode - boolean that causes hidden form fields to be shown for development purposes.
49
- options.toJSON - function to override default JSON stringifier
50
- options.fromJSON - function to override default JSON parser
51
- options.baseTitle - pattern for title changes; example: "Armchair DJ [@@@]" - @@@ will be replaced
52
- */
53
-
54
- var that = this;
55
-
56
- /*Set up the historyStorage object; pass in options bundle*/
57
- window.historyStorage.setup(options);
58
-
59
- /*Set up our base title if one is passed in*/
60
- if (options && options.baseTitle) {
61
- if (options.baseTitle.indexOf("@@@") < 0 && historyStorage.debugMode) {
62
- throw new Error("Programmer error: options.baseTitle must contain the replacement parameter"
63
- + " '@@@' to be useful.");
64
- }
65
- this.baseTitle = options.baseTitle;
66
- }
67
-
68
- /*set user-agent flags*/
69
- var UA = navigator.userAgent.toLowerCase();
70
- var platform = navigator.platform.toLowerCase();
71
- var vendor = navigator.vendor || "";
72
- if (vendor === "KDE") {
73
- this.isKonqueror = true;
74
- this.isSupported = false;
75
- } else if (typeof window.opera !== "undefined") {
76
- this.isOpera = true;
77
- this.isSupported = true;
78
- } else if (typeof document.all !== "undefined") {
79
- this.isIE = true;
80
- this.isSupported = true;
81
- } else if (vendor.indexOf("Apple Computer, Inc.") > -1) {
82
- this.isSafari = true;
83
- this.isSupported = (platform.indexOf("mac") > -1);
84
- } else if (UA.indexOf("gecko") != -1) {
85
- this.isGecko = true;
86
- this.isSupported = true;
87
- }
88
-
89
- /*Create Safari/Opera-specific code*/
90
- if (this.isSafari) {
91
- this.createSafari();
92
- } else if (this.isOpera) {
93
- this.createOpera();
94
- }
95
-
96
- /*Get our initial location*/
97
- var initialHash = this.getCurrentLocation();
98
-
99
- /*Save it as our current location*/
100
- this.currentLocation = initialHash;
101
-
102
- /*Now that we have a hash, create IE-specific code*/
103
- if (this.isIE) {
104
- /*Optionally override the URL of IE's blank HTML file*/
105
- if (options && options.blankURL) {
106
- var u = options.blankURL;
107
- /*assign the value, adding the trailing ? if it's not passed in*/
108
- this.blankURL = (u.indexOf("?") != u.length - 1
109
- ? u + "?"
110
- : u
111
- );
112
- }
113
- this.createIE(initialHash);
114
- }
115
-
116
- /*Add an unload listener for the page; this is needed for FF 1.5+ because this browser caches all dynamic updates to the
117
- page, which can break some of our logic related to testing whether this is the first instance a page has loaded or whether
118
- it is being pulled from the cache*/
119
-
120
- var unloadHandler = function() {
121
- that.firstLoad = null;
122
- };
123
-
124
- this.addEventListener(window,'unload',unloadHandler);
125
-
126
- /*Determine if this is our first page load; for IE, we do this in this.iframeLoaded(), which is fired on pageload. We do it
127
- there because we have no historyStorage at this point, which only exists after the page is finished loading in IE*/
128
- if (this.isIE) {
129
- /*The iframe will get loaded on page load, and we want to ignore this fact*/
130
- this.ignoreLocationChange = true;
131
- } else {
132
- if (!historyStorage.hasKey(this.PAGELOADEDSTRING)) {
133
- /*This is our first page load, so ignore the location change and add our special history entry*/
134
- this.ignoreLocationChange = true;
135
- this.firstLoad = true;
136
- historyStorage.put(this.PAGELOADEDSTRING, true);
137
- } else {
138
- /*This isn't our first page load, so indicate that we want to pay attention to this location change*/
139
- this.ignoreLocationChange = false;
140
- this.firstLoad = false;
141
- /*For browsers other than IE, fire a history change event; on IE, the event will be thrown automatically when its
142
- hidden iframe reloads on page load. Unfortunately, we don't have any listeners yet; indicate that we want to fire
143
- an event when a listener is added.*/
144
- this.fireOnNewListener = true;
145
- }
146
- }
147
-
148
- /*Other browsers can use a location handler that checks at regular intervals as their primary mechanism; we use it for IE as
149
- well to handle an important edge case; see checkLocation() for details*/
150
- var locationHandler = function() {
151
- that.checkLocation();
152
- };
153
- setInterval(locationHandler, 100);
154
- },
155
-
156
- /*Public: Initialize our DHTML history. You must call this after the page is finished loading. Optionally, you can pass your listener in
157
- here so you don't need to make a separate call to addListener*/
158
- initialize: function(listener) {
159
-
160
- /*save original document title to plug in when we hit a null-key history point*/
161
- this.originalTitle = document.title;
162
-
163
- /*IE needs to be explicitly initialized. IE doesn't autofill form data until the page is finished loading, so we have to wait*/
164
- if (this.isIE) {
165
- /*If this is the first time this page has loaded*/
166
- if (!historyStorage.hasKey(this.PAGELOADEDSTRING)) {
167
- /*For IE, we do this in initialize(); for other browsers, we do it in create()*/
168
- this.fireOnNewListener = false;
169
- this.firstLoad = true;
170
- historyStorage.put(this.PAGELOADEDSTRING, true);
171
- }
172
- /*Else if this is a fake onload event*/
173
- else {
174
- this.fireOnNewListener = true;
175
- this.firstLoad = false;
176
- }
177
- }
178
- /*optional convenience to save a separate call to addListener*/
179
- if (listener) {
180
- this.addListener(listener);
181
- }
182
- },
183
-
184
- /*Public: Adds a history change listener. Only one listener is supported at this time.*/
185
- addListener: function(listener) {
186
- this.listener = listener;
187
- /*If the page was just loaded and we should not ignore it, fire an event to our new listener now*/
188
- if (this.fireOnNewListener) {
189
- this.fireHistoryEvent(this.currentLocation);
190
- this.fireOnNewListener = false;
191
- }
192
- },
193
-
194
- /*Public: Change the current HTML title*/
195
- changeTitle: function(historyData) {
196
- var winTitle = (historyData && historyData.newTitle
197
- /*Plug the new title into the pattern*/
198
- ? this.baseTitle.replace('@@@', historyData.newTitle)
199
- /*Otherwise, if there is no new title, use the original document title. This is useful when some
200
- history changes have title changes and some don't; we can automatically return to the original
201
- title rather than leaving a misleading title in the title bar. The same goes for our "virgin"
202
- (hashless) page state.*/
203
- : this.originalTitle
204
- );
205
- /*No need to do anything if the title isn't changing*/
206
- if (document.title == winTitle) {
207
- return;
208
- }
209
-
210
-
211
- /*Now change the DOM*/
212
- document.title = winTitle;
213
- /*Change it in the iframe, too, for IE*/
214
- if (this.isIE) {
215
- this.iframe.contentWindow.document.title = winTitle;
216
- }
217
-
218
- /*If non-IE, reload the hash so the new title "sticks" in the browser history object*/
219
- if (!this.isIE && !this.isOpera) {
220
- var hash = decodeURI(document.location.hash);
221
- if (hash != "") {
222
- var encodedHash = encodeURI(this.removeHash(hash));
223
- document.location.hash = encodedHash;
224
- } else {
225
- //document.location.hash = "#";
226
- }
227
- }
228
- },
229
-
230
- /*Public: Add a history point. Parameters available:
231
- * newLocation (required):
232
- This will be the #hash value in the URL. Users can bookmark it. It will persist across sessions, so
233
- your application should be able to restore itself to a specific state based on just this value. It
234
- should be either a simple keyword for a viewstate or else a pseudo-querystring.
235
- * historyData (optional):
236
- This is for complex data that is relevant only to the current browsing session. It will be available
237
- to your application until the browser is closed. If the user comes back to a bookmarked history point
238
- during a later session, this data will no longer be available. Don't rely on it for application
239
- re-initialization from a bookmark.
240
- * historyData.newTitle (optional):
241
- This will swap out the html <title> attribute with a new value. If you have set a baseTitle using the
242
- options bundle, the value will be plugged into the baseTitle by swapping out the @@@ replacement param.
243
- */
244
- add: function(newLocation, historyData) {
245
-
246
- var that = this;
247
-
248
- /*Escape the location and remove any leading hash symbols*/
249
- var encodedLocation = encodeURI(this.removeHash(newLocation));
250
-
251
- if (this.isSafari) {
252
-
253
- /*Store the history data into history storage - pass in unencoded newLocation since
254
- historyStorage does its own encoding*/
255
- historyStorage.put(newLocation, historyData);
256
-
257
- /*Save this as our current location*/
258
- this.currentLocation = encodedLocation;
259
-
260
- /*Change the browser location*/
261
- window.location.hash = encodedLocation;
262
-
263
- /*Save this to the Safari form field*/
264
- this.putSafariState(encodedLocation);
265
-
266
- this.changeTitle(historyData);
267
-
268
- } else {
269
-
270
- /*Most browsers require that we wait a certain amount of time before changing the location, such
271
- as 200 MS; rather than forcing external callers to use window.setTimeout to account for this,
272
- we internally handle it by putting requests in a queue.*/
273
- var addImpl = function() {
274
-
275
- /*Indicate that the current wait time is now less*/
276
- if (that.currentWaitTime > 0) {
277
- that.currentWaitTime = that.currentWaitTime - that.waitTime;
278
- }
279
-
280
- /*IE has a strange bug; if the encodedLocation is the same as _any_ preexisting id in the
281
- document, then the history action gets recorded twice; throw a programmer exception if
282
- there is an element with this ID*/
283
- if (document.getElementById(encodedLocation) && that.debugMode) {
284
- var e = "Exception: History locations can not have the same value as _any_ IDs that might be in the document,"
285
- + " due to a bug in IE; please ask the developer to choose a history location that does not match any HTML"
286
- + " IDs in this document. The following ID is already taken and cannot be a location: " + newLocation;
287
- throw new Error(e);
288
- }
289
-
290
- /*Store the history data into history storage - pass in unencoded newLocation since
291
- historyStorage does its own encoding*/
292
- historyStorage.put(newLocation, historyData);
293
-
294
- /*Indicate to the browser to ignore this upcomming location change since we're making it programmatically*/
295
- that.ignoreLocationChange = true;
296
-
297
- /*Indicate to IE that this is an atomic location change block*/
298
- that.ieAtomicLocationChange = true;
299
-
300
- /*Save this as our current location*/
301
- that.currentLocation = encodedLocation;
302
-
303
- /*Change the browser location*/
304
- window.location.hash = encodedLocation;
305
-
306
- /*Change the hidden iframe's location if on IE*/
307
- if (that.isIE) {
308
- that.iframe.src = that.blankURL + encodedLocation;
309
- }
310
-
311
- /*End of atomic location change block for IE*/
312
- that.ieAtomicLocationChange = false;
313
-
314
- that.changeTitle(historyData);
315
-
316
- };
317
-
318
- /*Now queue up this add request*/
319
- window.setTimeout(addImpl, this.currentWaitTime);
320
-
321
- /*Indicate that the next request will have to wait for awhile*/
322
- this.currentWaitTime = this.currentWaitTime + this.waitTime;
323
- }
324
- },
325
-
326
- /*Public*/
327
- isFirstLoad: function() {
328
- return this.firstLoad;
329
- },
330
-
331
- /*Public*/
332
- getVersion: function() {
333
- return this.VERSIONNUMBER;
334
- },
335
-
336
- /*- - - - - - - - - - - -*/
337
-
338
- /*Private: Constant for our own internal history event called when the page is loaded*/
339
- PAGELOADEDSTRING: "DhtmlHistory_pageLoaded",
340
-
341
- VERSIONNUMBER: "0.8",
342
-
343
- /*
344
- Private: Pattern for title changes. Example: "Armchair DJ [@@@]" where @@@ will be relaced by values passed to add();
345
- Default is just the title itself, hence "@@@"
346
- */
347
- baseTitle: "@@@",
348
-
349
- /*Private: Placeholder variable for the original document title; will be set in ititialize()*/
350
- originalTitle: null,
351
-
352
- /*Private: URL for the blank html file we use for IE; can be overridden via the options bundle. Otherwise it must be served
353
- in same directory as this library*/
354
- blankURL: "/blank.html?",
355
-
356
- /*Private: Our history change listener.*/
357
- listener: null,
358
-
359
- /*Private: MS to wait between add requests - will be reset for certain browsers*/
360
- waitTime: 200,
361
-
362
- /*Private: MS before an add request can execute*/
363
- currentWaitTime: 0,
364
-
365
- /*Private: Our current hash location, without the "#" symbol.*/
366
- currentLocation: null,
367
-
368
- /*Private: Hidden iframe used to IE to detect history changes*/
369
- iframe: null,
370
-
371
- /*Private: Flags and DOM references used only by Safari*/
372
- safariHistoryStartPoint: null,
373
- safariStack: null,
374
- safariLength: null,
375
-
376
- /*Private: Flag used to keep checkLocation() from doing anything when it discovers location changes we've made ourselves
377
- programmatically with the add() method. Basically, add() sets this to true. When checkLocation() discovers it's true,
378
- it refrains from firing our listener, then resets the flag to false for next cycle. That way, our listener only gets fired on
379
- history change events triggered by the user via back/forward buttons and manual hash changes. This flag also helps us set up
380
- IE's special iframe-based method of handling history changes.*/
381
- ignoreLocationChange: null,
382
-
383
- /*Private: A flag that indicates that we should fire a history change event when we are ready, i.e. after we are initialized and
384
- we have a history change listener. This is needed due to an edge case in browsers other than IE; if you leave a page entirely
385
- then return, we must fire this as a history change event. Unfortunately, we have lost all references to listeners from earlier,
386
- because JavaScript clears out.*/
387
- fireOnNewListener: null,
388
-
389
- /*Private: A variable that indicates whether this is the first time this page has been loaded. If you go to a web page, leave it
390
- for another one, and then return, the page's onload listener fires again. We need a way to differentiate between the first page
391
- load and subsequent ones. This variable works hand in hand with the pageLoaded variable we store into historyStorage.*/
392
- firstLoad: null,
393
-
394
- /*Private: A variable to handle an important edge case in IE. In IE, if a user manually types an address into their browser's
395
- location bar, we must intercept this by calling checkLocation() at regular intervals. However, if we are programmatically
396
- changing the location bar ourselves using the add() method, we need to ignore these changes in checkLocation(). Unfortunately,
397
- these changes take several lines of code to complete, so for the duration of those lines of code, we set this variable to true.
398
- That signals to checkLocation() to ignore the change-in-progress. Once we're done with our chunk of location-change code in
399
- add(), we set this back to false. We'll do the same thing when capturing user-entered address changes in checkLocation itself.*/
400
- ieAtomicLocationChange: null,
401
-
402
- /*Private: Generic utility function for attaching events*/
403
- addEventListener: function(o,e,l) {
404
- if (o.addEventListener) {
405
- o.addEventListener(e,l,false);
406
- } else if (o.attachEvent) {
407
- o.attachEvent('on'+e,function() {
408
- l(window.event);
409
- });
410
- }
411
- },
412
-
413
-
414
- /*Private: Create IE-specific DOM nodes and overrides*/
415
- createIE: function(initialHash) {
416
- /*write out a hidden iframe for IE and set the amount of time to wait between add() requests*/
417
- this.waitTime = 400;/*IE needs longer between history updates*/
418
- var styles = (historyStorage.debugMode
419
- ? 'width: 800px;height:80px;border:1px solid black;'
420
- : historyStorage.hideStyles
421
- );
422
- var iframeID = "rshHistoryFrame";
423
- var iframeHTML = '<iframe frameborder="0" id="' + iframeID + '" style="' + styles + '" src="' + this.blankURL + initialHash + '"></iframe>';
424
- document.write(iframeHTML);
425
- this.iframe = document.getElementById(iframeID);
426
- },
427
-
428
- /*Private: Create Opera-specific DOM nodes and overrides*/
429
- createOpera: function() {
430
- this.waitTime = 400;/*Opera needs longer between history updates*/
431
- var imgHTML = '<img src="javascript:location.href=\'javascript:dhtmlHistory.checkLocation();\';" style="' + historyStorage.hideStyles + '" />';
432
- document.write(imgHTML);
433
- },
434
-
435
- /*Private: Create Safari-specific DOM nodes and overrides*/
436
- createSafari: function() {
437
- var formID = "rshSafariForm";
438
- var stackID = "rshSafariStack";
439
- var lengthID = "rshSafariLength";
440
- var formStyles = historyStorage.debugMode ? historyStorage.showStyles : historyStorage.hideStyles;
441
- var stackStyles = (historyStorage.debugMode
442
- ? 'width: 800px;height:80px;border:1px solid black;'
443
- : historyStorage.hideStyles
444
- );
445
- var lengthStyles = (historyStorage.debugMode
446
- ? 'width:800px;height:20px;border:1px solid black;margin:0;padding:0;'
447
- : historyStorage.hideStyles
448
- );
449
- var safariHTML = '<form id="' + formID + '" style="' + formStyles + '">'
450
- + '<textarea style="' + stackStyles + '" id="' + stackID + '">[]</textarea>'
451
- + '<input type="text" style="' + lengthStyles + '" id="' + lengthID + '" value=""/>'
452
- + '</form>';
453
- document.write(safariHTML);
454
- this.safariStack = document.getElementById(stackID);
455
- this.safariLength = document.getElementById(lengthID);
456
- if (!historyStorage.hasKey(this.PAGELOADEDSTRING)) {
457
- this.safariHistoryStartPoint = history.length;
458
- this.safariLength.value = this.safariHistoryStartPoint;
459
- } else {
460
- this.safariHistoryStartPoint = this.safariLength.value;
461
- }
462
- },
463
-
464
- /*TODO: make this public again?*/
465
- /*Private: Get browser's current hash location; for Safari, read value from a hidden form field*/
466
- getCurrentLocation: function() {
467
- var r = (this.isSafari
468
- ? this.getSafariState()
469
- : this.getCurrentHash()
470
- );
471
- return r;
472
- },
473
-
474
- /*TODO: make this public again?*/
475
- /*Private: Manually parse the current url for a hash; tip of the hat to YUI*/
476
- getCurrentHash: function() {
477
- var r = window.location.href;
478
- var i = r.indexOf("#");
479
- return (i >= 0
480
- ? r.substr(i+1)
481
- : ""
482
- );
483
- },
484
-
485
- /*Private: Safari method to read the history stack from a hidden form field*/
486
- getSafariStack: function() {
487
- var r = this.safariStack.value;
488
- return historyStorage.fromJSON(r);
489
- },
490
- /*Private: Safari method to read from the history stack*/
491
- getSafariState: function() {
492
- var stack = this.getSafariStack();
493
- var state = stack[history.length - this.safariHistoryStartPoint - 1];
494
- return state;
495
- },
496
- /*Private: Safari method to write the history stack to a hidden form field*/
497
- putSafariState: function(newLocation) {
498
- var stack = this.getSafariStack();
499
- stack[history.length - this.safariHistoryStartPoint] = newLocation;
500
- this.safariStack.value = historyStorage.toJSON(stack);
501
- },
502
-
503
- /*Private: Notify the listener of new history changes.*/
504
- fireHistoryEvent: function(newHash) {
505
- var decodedHash = decodeURI(newHash)
506
- /*extract the value from our history storage for this hash*/
507
- var historyData = historyStorage.get(decodedHash);
508
- this.changeTitle(historyData);
509
- /*call our listener*/
510
- this.listener.call(null, decodedHash, historyData);
511
- },
512
-
513
- /*Private: See if the browser has changed location. This is the primary history mechanism for Firefox. For IE, we use this to
514
- handle an important edge case: if a user manually types in a new hash value into their IE location bar and press enter, we want to
515
- to intercept this and notify any history listener.*/
516
- checkLocation: function() {
517
-
518
- /*Ignore any location changes that we made ourselves for browsers other than IE*/
519
- if (!this.isIE && this.ignoreLocationChange) {
520
- this.ignoreLocationChange = false;
521
- return;
522
- }
523
-
524
- /*If we are dealing with IE and we are in the middle of making a location change from an iframe, ignore it*/
525
- if (!this.isIE && this.ieAtomicLocationChange) {
526
- return;
527
- }
528
-
529
- /*Get hash location*/
530
- var hash = this.getCurrentLocation();
531
-
532
- /*Do nothing if there's been no change*/
533
- if (hash == this.currentLocation) {
534
- return;
535
- }
536
-
537
- /*In IE, users manually entering locations into the browser; we do this by comparing the browser's location against the
538
- iframe's location; if they differ, we are dealing with a manual event and need to place it inside our history, otherwise
539
- we can return*/
540
- this.ieAtomicLocationChange = true;
541
-
542
- if (this.isIE && this.getIframeHash() != hash) {
543
- this.iframe.src = this.blankURL + hash;
544
- }
545
- else if (this.isIE) {
546
- /*the iframe is unchanged*/
547
- return;
548
- }
549
-
550
- /*Save this new location*/
551
- this.currentLocation = hash;
552
-
553
- this.ieAtomicLocationChange = false;
554
-
555
- /*Notify listeners of the change*/
556
- this.fireHistoryEvent(hash);
557
- },
558
-
559
- /*Private: Get the current location of IE's hidden iframe.*/
560
- getIframeHash: function() {
561
- var doc = this.iframe.contentWindow.document;
562
- var hash = String(doc.location.search);
563
- if (hash.length == 1 && hash.charAt(0) == "?") {
564
- hash = "";
565
- }
566
- else if (hash.length >= 2 && hash.charAt(0) == "?") {
567
- hash = hash.substring(1);
568
- }
569
- return hash;
570
- },
571
-
572
- /*Private: Remove any leading hash that might be on a location.*/
573
- removeHash: function(hashValue) {
574
- var r;
575
- if (hashValue === null || hashValue === undefined) {
576
- r = null;
577
- }
578
- else if (hashValue === "") {
579
- r = "";
580
- }
581
- else if (hashValue.length == 1 && hashValue.charAt(0) == "#") {
582
- r = "";
583
- }
584
- else if (hashValue.length > 1 && hashValue.charAt(0) == "#") {
585
- r = hashValue.substring(1);
586
- }
587
- else {
588
- r = hashValue;
589
- }
590
- return r;
591
- },
592
-
593
- /*Private: For IE, tell when the hidden iframe has finished loading.*/
594
- iframeLoaded: function(newLocation) {
595
- /*ignore any location changes that we made ourselves*/
596
- if (this.ignoreLocationChange) {
597
- this.ignoreLocationChange = false;
598
- return;
599
- }
600
-
601
- /*Get the new location*/
602
- var hash = String(newLocation.search);
603
- if (hash.length == 1 && hash.charAt(0) == "?") {
604
- hash = "";
605
- }
606
- else if (hash.length >= 2 && hash.charAt(0) == "?") {
607
- hash = hash.substring(1);
608
- }
609
- /*Keep the browser location bar in sync with the iframe hash*/
610
- window.location.hash = hash;
611
-
612
- /*Notify listeners of the change*/
613
- this.fireHistoryEvent(hash);
614
- }
615
-
616
-
617
- };
618
-
619
- /*
620
- historyStorage: An object that uses a hidden form to store history state across page loads. The mechanism for doing so relies on
621
- the fact that browsers save the text in form data for the life of the browser session, which means the text is still there when
622
- the user navigates back to the page. This object can be used independently of the dhtmlHistory object for caching of Ajax
623
- session information.
624
-
625
- dependencies:
626
- * json2007.js (included in a separate file) or alternate JSON methods passed in through an options bundle.
627
- */
628
- window.historyStorage = {
629
-
630
- /*Public: Set up our historyStorage object for use by dhtmlHistory or other objects*/
631
- setup: function(options) {
632
-
633
- /*
634
- options - object to store initialization parameters - passed in from dhtmlHistory or directly into historyStorage
635
- options.debugMode - boolean that causes hidden form fields to be shown for development purposes.
636
- options.toJSON - function to override default JSON stringifier
637
- options.fromJSON - function to override default JSON parser
638
- */
639
-
640
- /*process init parameters*/
641
- if (typeof options !== "undefined") {
642
- if (options.debugMode) {
643
- this.debugMode = options.debugMode;
644
- }
645
- if (options.toJSON) {
646
- this.toJSON = options.toJSON;
647
- }
648
- if (options.fromJSON) {
649
- this.fromJSON = options.fromJSON;
650
- }
651
- }
652
-
653
- /*write a hidden form and textarea into the page; we'll stow our history stack here*/
654
- var formID = "rshStorageForm";
655
- var textareaID = "rshStorageField";
656
- var formStyles = this.debugMode ? historyStorage.showStyles : historyStorage.hideStyles;
657
- var textareaStyles = (historyStorage.debugMode
658
- ? 'width: 800px;height:80px;border:1px solid black;'
659
- : historyStorage.hideStyles
660
- );
661
- var textareaHTML = '<form id="' + formID + '" style="' + formStyles + '">'
662
- + '<textarea id="' + textareaID + '" style="' + textareaStyles + '"></textarea>'
663
- + '</form>';
664
- document.write(textareaHTML);
665
- this.storageField = document.getElementById(textareaID);
666
- if (typeof window.opera !== "undefined") {
667
- this.storageField.focus();/*Opera needs to focus this element before persisting values in it*/
668
- }
669
- },
670
-
671
- /*Public*/
672
- put: function(key, value) {
673
-
674
- var encodedKey = encodeURI(key);
675
-
676
- this.assertValidKey(encodedKey);
677
- /*if we already have a value for this, remove the value before adding the new one*/
678
- if (this.hasKey(key)) {
679
- this.remove(key);
680
- }
681
- /*store this new key*/
682
- this.storageHash[encodedKey] = value;
683
- /*save and serialize the hashtable into the form*/
684
- this.saveHashTable();
685
- },
686
-
687
- /*Public*/
688
- get: function(key) {
689
-
690
- var encodedKey = encodeURI(key);
691
-
692
- this.assertValidKey(encodedKey);
693
- /*make sure the hash table has been loaded from the form*/
694
- this.loadHashTable();
695
- var value = this.storageHash[encodedKey];
696
- if (value === undefined) {
697
- value = null;
698
- }
699
- return value;
700
- },
701
-
702
- /*Public*/
703
- remove: function(key) {
704
-
705
- var encodedKey = encodeURI(key);
706
-
707
- this.assertValidKey(encodedKey);
708
- /*make sure the hash table has been loaded from the form*/
709
- this.loadHashTable();
710
- /*delete the value*/
711
- delete this.storageHash[encodedKey];
712
- /*serialize and save the hash table into the form*/
713
- this.saveHashTable();
714
- },
715
-
716
- /*Public: Clears out all saved data.*/
717
- reset: function() {
718
- this.storageField.value = "";
719
- this.storageHash = {};
720
- },
721
-
722
- /*Public*/
723
- hasKey: function(key) {
724
-
725
- var encodedKey = encodeURI(key);
726
-
727
- this.assertValidKey(encodedKey);
728
- /*make sure the hash table has been loaded from the form*/
729
- this.loadHashTable();
730
- return (typeof this.storageHash[encodedKey] !== "undefined");
731
- },
732
-
733
- /*Public*/
734
- isValidKey: function(key) {
735
- return (typeof key === "string");
736
- //TODO - should we ban hash signs and other special characters?
737
- },
738
-
739
- /*- - - - - - - - - - - -*/
740
-
741
- /*Private - CSS strings utilized by both objects to hide or show behind-the-scenes DOM elements*/
742
- showStyles: 'border:0;margin:0;padding:0;',
743
- hideStyles: 'left:-1000px;top:-1000px;width:1px;height:1px;border:0;position:absolute;',
744
-
745
- /*Private - debug mode flag*/
746
- debugMode: false,
747
-
748
- /*Private: Our hash of key name/values.*/
749
- storageHash: {},
750
-
751
- /*Private: If true, we have loaded our hash table out of the storage form.*/
752
- hashLoaded: false,
753
-
754
- /*Private: DOM reference to our history field*/
755
- storageField: null,
756
-
757
- /*Private: Assert that a key is valid; throw an exception if it not.*/
758
- assertValidKey: function(key) {
759
- var isValid = this.isValidKey(key);
760
- if (!isValid && this.debugMode) {
761
- throw new Error("Please provide a valid key for window.historyStorage. Invalid key = " + key + ".");
762
- }
763
- },
764
-
765
- /*Private: Load the hash table up from the form.*/
766
- loadHashTable: function() {
767
- if (!this.hashLoaded) {
768
- var serializedHashTable = this.storageField.value;
769
- if (serializedHashTable !== "" && serializedHashTable !== null) {
770
- this.storageHash = this.fromJSON(serializedHashTable);
771
- this.hashLoaded = true;
772
- }
773
- }
774
- },
775
- /*Private: Save the hash table into the form.*/
776
- saveHashTable: function() {
777
- this.loadHashTable();
778
- var serializedHashTable = this.toJSON(this.storageHash);
779
- this.storageField.value = serializedHashTable;
780
- },
781
- /*Private: Bridges for our JSON implementations - both rely on 2007 JSON.org library - can be overridden by options bundle*/
782
- toJSON: function(o) {
783
- return o.toJSONString();
784
- },
785
- fromJSON: function(s) {
786
- return s.parseJSON();
787
- }
788
- };
789
-
790
-
791
- /*******************************************************************/
792
- /** QueryString Object from http://adamv.com/dev/javascript/querystring */
793
- /* Client-side access to querystring name=value pairs
794
- Version 1.3
795
- 28 May 2008
796
-
797
- License (Simplified BSD):
798
- http://adamv.com/dev/javascript/qslicense.txt
799
- */
800
- function Querystring(qs) { // optionally pass a querystring to parse
801
- this.params = {};
802
-
803
- if (qs == null) qs = location.search.substring(1, location.search.length);
804
- if (qs.length == 0) return;
805
-
806
- // Turn <plus> back to <space>
807
- // See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
808
- qs = qs.replace(/\+/g, ' ');
809
- var args = qs.split('&'); // parse out name/value pairs separated via &
810
-
811
- // split out each name=value pair
812
- for (var i = 0; i < args.length; i++) {
813
- var pair = args[i].split('=');
814
- var name = decodeURI(pair[0]);
815
-
816
- var value = (pair.length==2)
817
- ? decodeURI(pair[1])
818
- : name;
819
-
820
- this.params[name] = value;
821
- }
822
- }
823
-
824
- Querystring.prototype.get = function(key, default_) {
825
- var value = this.params[key];
826
- return (value != null) ? value : default_;
827
- }
828
-
829
- Querystring.prototype.contains = function(key) {
830
- var value = this.params[key];
831
- return (value != null);
832
- }
833
-
834
- /*******************************************************************/
835
- /* Added by Ed Wildgoose - MailASail */
836
- /* Initialise the library and add our history callback */
837
- /*******************************************************************/
838
- window.dhtmlHistory.create({
839
- toJSON: function(o) {
840
- return Object.toJSON(o);
841
- }
842
- , fromJSON: function(s) {
843
- return s.evalJSON();
844
- }
845
-
846
- // Enable this to assist with debugging
847
- // , debugMode: true
848
-
849
- // dhtmlHistory has been modified not to need the next line
850
- // But left in for robustness when updating dhtmlHistory
851
- , blankURL: '/blank.html?'
852
- });
853
-
854
- /** Our callback to receive history
855
- change events. */
856
- var handleHistoryChange = function(pageId, pageData) {
857
- if (!pageData) return;
858
- var info = pageId.split(':');
859
- var id = info[0];
860
- pageData += '&_method=get';
861
- new Ajax.Updater(id+'-content', pageData, {asynchronous:true, evalScripts:true, method: 'get', onLoading:function(request){Element.show(id+'-pagination-loading-indicator');}});
862
- }
863
-
864
- window.onload = function() {
865
- dhtmlHistory.initialize(handleHistoryChange);
866
- };
867
-