admin_assistant 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. data/Rakefile +5 -14
  2. data/VERSION +1 -1
  3. data/admin_assistant.gemspec +174 -388
  4. data/lib/admin_assistant/column.rb +2 -2
  5. data/lib/admin_assistant/has_many_column.rb +6 -1
  6. data/lib/admin_assistant/polymorphic_belongs_to_column.rb +5 -1
  7. data/lib/admin_assistant.rb +4 -5
  8. data/{rails_3_test → rails_3_0}/.gitignore +0 -0
  9. data/{rails_3_test → rails_3_0}/Gemfile +0 -0
  10. data/{rails_3_test → rails_3_0}/Gemfile.lock +1 -1
  11. data/{rails_3_test → rails_3_0}/README +0 -0
  12. data/{rails_3_test → rails_3_0}/Rakefile +0 -0
  13. data/{rails_2_test → rails_3_0}/app/controllers/admin/appointments2_controller.rb +0 -0
  14. data/{rails_2_test → rails_3_0}/app/controllers/admin/appointments_controller.rb +0 -0
  15. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts2_controller.rb +0 -0
  16. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts3_controller.rb +0 -0
  17. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts4_controller.rb +0 -0
  18. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts5_controller.rb +0 -0
  19. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts6_controller.rb +0 -0
  20. data/{rails_3_test → rails_3_0}/app/controllers/admin/blog_posts_controller.rb +0 -0
  21. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -0
  22. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts_read_only_controller.rb +0 -0
  23. data/{rails_2_test → rails_3_0}/app/controllers/admin/bookmarks_controller.rb +0 -0
  24. data/{rails_2_test → rails_3_0}/app/controllers/admin/comments2_controller.rb +0 -0
  25. data/{rails_2_test → rails_3_0}/app/controllers/admin/comments_controller.rb +0 -0
  26. data/{rails_2_test → rails_3_0}/app/controllers/admin/images2_controller.rb +0 -0
  27. data/{rails_2_test → rails_3_0}/app/controllers/admin/images_controller.rb +0 -0
  28. data/{rails_2_test → rails_3_0}/app/controllers/admin/misconfigured1_controller.rb +0 -0
  29. data/{rails_2_test → rails_3_0}/app/controllers/admin/not_migrated_yets_controller.rb +0 -0
  30. data/{rails_2_test → rails_3_0}/app/controllers/admin/product_categories2_controller.rb +0 -0
  31. data/{rails_2_test → rails_3_0}/app/controllers/admin/product_categories_controller.rb +0 -0
  32. data/{rails_2_test → rails_3_0}/app/controllers/admin/television_airings_controller.rb +0 -0
  33. data/{rails_2_test → rails_3_0}/app/controllers/admin/television_time_slots_controller.rb +0 -0
  34. data/{rails_2_test → rails_3_0}/app/controllers/admin/users2_controller.rb +0 -0
  35. data/{rails_3_test → rails_3_0}/app/controllers/admin/users_controller.rb +0 -0
  36. data/{rails_3_test → rails_3_0}/app/controllers/application_controller.rb +0 -0
  37. data/{rails_2_test → rails_3_0}/app/controllers/blog_posts_controller.rb +0 -0
  38. data/{rails_2_test → rails_3_0}/app/helpers/admin/appointments_helper.rb +0 -0
  39. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts2_helper.rb +0 -0
  40. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts3_helper.rb +0 -0
  41. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts4_helper.rb +0 -0
  42. data/{rails_3_test → rails_3_0}/app/helpers/admin/blog_posts6_helper.rb +0 -0
  43. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -0
  44. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_helper.rb +0 -0
  45. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_read_only_helper.rb +0 -0
  46. data/{rails_2_test → rails_3_0}/app/helpers/admin/bookmarks_helper.rb +0 -0
  47. data/{rails_2_test → rails_3_0}/app/helpers/admin/comments2_helper.rb +0 -0
  48. data/{rails_2_test → rails_3_0}/app/helpers/admin/comments_helper.rb +0 -0
  49. data/{rails_2_test → rails_3_0}/app/helpers/admin/images2_helper.rb +0 -0
  50. data/{rails_2_test → rails_3_0}/app/helpers/admin/images_helper.rb +0 -0
  51. data/{rails_2_test → rails_3_0}/app/helpers/admin/misconfigured1_helper.rb +0 -0
  52. data/{rails_2_test → rails_3_0}/app/helpers/admin/not_migrated_yets_helper.rb +0 -0
  53. data/{rails_2_test → rails_3_0}/app/helpers/admin/product_categories2_helper.rb +0 -0
  54. data/{rails_2_test → rails_3_0}/app/helpers/admin/product_categories_helper.rb +0 -0
  55. data/{rails_2_test → rails_3_0}/app/helpers/admin/television_airings_helper.rb +0 -0
  56. data/{rails_2_test → rails_3_0}/app/helpers/admin/television_time_slots_helper.rb +0 -0
  57. data/{rails_2_test → rails_3_0}/app/helpers/admin/users2_helper.rb +0 -0
  58. data/{rails_3_test → rails_3_0}/app/helpers/admin/users_helper.rb +0 -0
  59. data/{rails_3_test → rails_3_0}/app/helpers/application_helper.rb +0 -0
  60. data/{rails_2_test → rails_3_0}/app/models/appointment.rb +0 -0
  61. data/{rails_2_test → rails_3_0}/app/models/blog_post.rb +0 -0
  62. data/{rails_2_test → rails_3_0}/app/models/blog_post_tag.rb +0 -0
  63. data/{rails_2_test → rails_3_0}/app/models/bookmark.rb +0 -0
  64. data/{rails_2_test → rails_3_0}/app/models/comment.rb +0 -0
  65. data/{rails_2_test → rails_3_0}/app/models/image.rb +0 -0
  66. data/{rails_2_test → rails_3_0}/app/models/not_migrated_yet.rb +0 -0
  67. data/{rails_3_test → rails_3_0}/app/models/product.rb +0 -0
  68. data/{rails_2_test → rails_3_0}/app/models/product_category.rb +0 -0
  69. data/{rails_2_test → rails_3_0}/app/models/tag.rb +0 -0
  70. data/{rails_2_test → rails_3_0}/app/models/television_airing.rb +0 -0
  71. data/{rails_2_test → rails_3_0}/app/models/television_time_slot.rb +0 -0
  72. data/{rails_3_test → rails_3_0}/app/models/user.rb +0 -0
  73. data/{rails_2_test → rails_3_0}/app/views/admin/appointments/_subject_input.html.erb +0 -0
  74. data/{rails_2_test → rails_3_0}/app/views/admin/appointments2/_time_input.html.erb +0 -0
  75. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_form.html.erb +0 -0
  76. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_index.html.erb +0 -0
  77. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -0
  78. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_before_index.html.erb +0 -0
  79. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -0
  80. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -0
  81. data/{rails_3_test → rails_3_0}/app/views/layouts/admin.html.erb +0 -0
  82. data/{rails_3_test → rails_3_0}/app/views/layouts/application.html.erb +0 -0
  83. data/{rails_3_test → rails_3_0}/config/application.rb +0 -0
  84. data/{rails_3_test → rails_3_0}/config/boot.rb +0 -0
  85. data/{rails_3_test → rails_3_0}/config/database.yml +0 -0
  86. data/{rails_3_test → rails_3_0}/config/environment.rb +0 -0
  87. data/{rails_3_test → rails_3_0}/config/environments/development.rb +0 -1
  88. data/{rails_3_test → rails_3_0}/config/environments/production.rb +0 -0
  89. data/{rails_3_test → rails_3_0}/config/environments/test.rb +0 -0
  90. data/{rails_3_test → rails_3_0}/config/initializers/backtrace_silencers.rb +0 -0
  91. data/{rails_3_test → rails_3_0}/config/initializers/inflections.rb +0 -0
  92. data/{rails_2_test → rails_3_0}/config/initializers/mime_types.rb +0 -0
  93. data/{rails_3_test → rails_3_0}/config/initializers/secret_token.rb +0 -0
  94. data/{rails_3_test → rails_3_0}/config/initializers/session_store.rb +0 -0
  95. data/{rails_3_test → rails_3_0}/config/locales/en.yml +0 -0
  96. data/rails_3_0/config/routes.rb +8 -0
  97. data/{rails_3_test → rails_3_0}/config.ru +0 -0
  98. data/{rails_2_test → rails_3_0}/db/migrate/20090213215514_create_blog_posts.rb +0 -0
  99. data/{rails_2_test → rails_3_0}/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -0
  100. data/{rails_2_test → rails_3_0}/db/migrate/20090221220917_create_tags.rb +0 -0
  101. data/{rails_2_test → rails_3_0}/db/migrate/20090221220947_create_blog_post_tags.rb +0 -0
  102. data/{rails_2_test → rails_3_0}/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -0
  103. data/{rails_2_test → rails_3_0}/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -0
  104. data/{rails_2_test → rails_3_0}/db/migrate/20090301191722_create_images.rb +0 -0
  105. data/{rails_2_test → rails_3_0}/db/migrate/20090305165345_create_accounts.rb +0 -0
  106. data/{rails_2_test → rails_3_0}/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -0
  107. data/{rails_2_test → rails_3_0}/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -0
  108. data/{rails_2_test → rails_3_0}/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -0
  109. data/{rails_2_test → rails_3_0}/db/migrate/20090309193635_create_products.rb +0 -0
  110. data/{rails_2_test → rails_3_0}/db/migrate/20090309203056_create_comments.rb +0 -0
  111. data/{rails_2_test → rails_3_0}/db/migrate/20090323005947_create_file_column_images.rb +0 -0
  112. data/{rails_2_test → rails_3_0}/db/migrate/20090326160049_add_birthday_to_users.rb +0 -0
  113. data/{rails_2_test → rails_3_0}/db/migrate/20090326223606_add_state_to_users.rb +0 -0
  114. data/{rails_2_test → rails_3_0}/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -0
  115. data/{rails_2_test → rails_3_0}/db/migrate/20090617173651_create_bookmarks.rb +0 -0
  116. data/{rails_2_test → rails_3_0}/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -0
  117. data/{rails_2_test → rails_3_0}/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -0
  118. data/{rails_2_test → rails_3_0}/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -0
  119. data/{rails_2_test → rails_3_0}/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -0
  120. data/{rails_2_test → rails_3_0}/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -0
  121. data/{rails_2_test → rails_3_0}/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -0
  122. data/{rails_2_test → rails_3_0}/db/migrate/20090714024501_create_product_categories.rb +0 -0
  123. data/{rails_2_test → rails_3_0}/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -0
  124. data/{rails_2_test → rails_3_0}/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -0
  125. data/{rails_2_test → rails_3_0}/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -0
  126. data/{rails_2_test → rails_3_0}/db/migrate/20091222160814_create_appointments.rb +0 -0
  127. data/{rails_2_test → rails_3_0}/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -0
  128. data/{rails_2_test → rails_3_0}/db/migrate/20100214213359_create_television_time_slots.rb +0 -0
  129. data/{rails_2_test → rails_3_0}/db/migrate/20100214213451_create_television_airings.rb +0 -0
  130. data/{rails_3_test → rails_3_0}/db/migrate/20110426215702_remove_avatar_fields_from_users.rb +0 -0
  131. data/{rails_3_test → rails_3_0}/db/seeds.rb +0 -0
  132. data/{rails_3_test → rails_3_0}/doc/README_FOR_APP +0 -0
  133. data/{rails_3_test → rails_3_0}/lib/tasks/.gitkeep +0 -0
  134. data/{rails_3_test → rails_3_0}/public/404.html +0 -0
  135. data/{rails_3_test → rails_3_0}/public/422.html +0 -0
  136. data/{rails_3_test → rails_3_0}/public/500.html +0 -0
  137. data/{rails_2_test → rails_3_0}/public/favicon.ico +0 -0
  138. data/{rails_2_test → rails_3_0}/public/images/rails.png +0 -0
  139. data/{rails_3_test → rails_3_0}/public/index.html +0 -0
  140. data/{rails_2_test → rails_3_0}/public/javascripts/application.js +0 -0
  141. data/{rails_2_test → rails_3_0}/public/javascripts/jquery-1.4.4.min.js +0 -0
  142. data/{rails_3_test → rails_3_0}/public/javascripts/rails.js +0 -0
  143. data/{rails_2_test → rails_3_0}/public/robots.txt +0 -0
  144. data/{rails_3_test → rails_3_0}/public/stylesheets/.gitkeep +0 -0
  145. data/{rails_2_test → rails_3_0}/public/stylesheets/admin.css +0 -0
  146. data/{rails_2_test → rails_3_0}/public/stylesheets/scaffold.css +0 -0
  147. data/{rails_3_test → rails_3_0}/script/rails +0 -0
  148. data/{rails_2_test → rails_3_0}/test/data/ruby_throated.jpg +0 -0
  149. data/{rails_2_test → rails_3_0}/test/data/tweenbot.jpg +0 -0
  150. data/{rails_3_test → rails_3_0}/test/fixtures/placeholder.txt +0 -0
  151. data/{rails_3_test → rails_3_0}/test/integration/admin/appointments2_integration_test.rb +0 -0
  152. data/{rails_3_test → rails_3_0}/test/integration/admin/appointments_integration_test.rb +0 -0
  153. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts2_integration_test.rb +2 -2
  154. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts3_integration_test.rb +0 -0
  155. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts4_integration_test.rb +0 -0
  156. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts5_integration_test.rb +0 -0
  157. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts6_integration_test.rb +0 -0
  158. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_custom_new_and_edit_integration_test.rb +0 -0
  159. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_integration_test.rb +8 -16
  160. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_read_only_integration_test.rb +0 -0
  161. data/{rails_3_test → rails_3_0}/test/integration/admin/bookmarks_integration_test.rb +0 -0
  162. data/{rails_3_test → rails_3_0}/test/integration/admin/comments2_integration_test.rb +0 -0
  163. data/{rails_3_test → rails_3_0}/test/integration/admin/comments_integration_test.rb +0 -0
  164. data/{rails_2_test → rails_3_0}/test/integration/admin/images2_integration_test.rb +0 -0
  165. data/{rails_3_test → rails_3_0}/test/integration/admin/images_integration_test.rb +0 -0
  166. data/{rails_3_test → rails_3_0}/test/integration/admin/misconfigured1_integration_test.rb +0 -0
  167. data/{rails_3_test → rails_3_0}/test/integration/admin/product_categories2_integration_test.rb +0 -0
  168. data/{rails_2_test → rails_3_0}/test/integration/admin/product_categories_integration_test.rb +0 -0
  169. data/{rails_2_test → rails_3_0}/test/integration/admin/television_airings_integration_test.rb +0 -0
  170. data/{rails_2_test → rails_3_0}/test/integration/admin/users2_integration_test.rb +0 -0
  171. data/{rails_3_test → rails_3_0}/test/integration/admin/users_integration_test.rb +0 -0
  172. data/{rails_3_test → rails_3_0}/test/integration/blog_posts_integration_test.rb +0 -0
  173. data/{rails_3_test → rails_3_0}/test/performance/browsing_test.rb +0 -0
  174. data/{rails_3_test → rails_3_0}/test/test_helper.rb +40 -0
  175. data/{rails_3_test → rails_3_0}/vendor/plugins/.gitkeep +0 -0
  176. data/rails_3_1/Gemfile +12 -0
  177. data/rails_3_1/Gemfile.lock +116 -0
  178. data/rails_3_1/README +256 -0
  179. data/{rails_2_test → rails_3_1}/Rakefile +2 -8
  180. data/rails_3_1/config.ru +4 -0
  181. metadata +176 -390
  182. data/lib/admin_assistant/date_time_range_end_point_selector.rb +0 -341
  183. data/rails_2_test/README +0 -256
  184. data/rails_2_test/app/controllers/admin/blog_posts_controller.rb +0 -8
  185. data/rails_2_test/app/controllers/admin/file_column_images2_controller.rb +0 -10
  186. data/rails_2_test/app/controllers/admin/file_column_images_controller.rb +0 -6
  187. data/rails_2_test/app/controllers/admin/products2_controller.rb +0 -15
  188. data/rails_2_test/app/controllers/admin/products_controller.rb +0 -31
  189. data/rails_2_test/app/controllers/admin/users_controller.rb +0 -63
  190. data/rails_2_test/app/controllers/application.rb +0 -16
  191. data/rails_2_test/app/controllers/application_controller.rb +0 -16
  192. data/rails_2_test/app/helpers/admin/appointments2_helper.rb +0 -2
  193. data/rails_2_test/app/helpers/admin/blog_posts6_helper.rb +0 -16
  194. data/rails_2_test/app/helpers/admin/file_column_images2_helper.rb +0 -2
  195. data/rails_2_test/app/helpers/admin/file_column_images_helper.rb +0 -2
  196. data/rails_2_test/app/helpers/admin/products2_helper.rb +0 -3
  197. data/rails_2_test/app/helpers/admin/products_helper.rb +0 -6
  198. data/rails_2_test/app/helpers/admin/users_helper.rb +0 -25
  199. data/rails_2_test/app/helpers/application_helper.rb +0 -3
  200. data/rails_2_test/app/helpers/blog_posts_helper.rb +0 -2
  201. data/rails_2_test/app/models/file_column_image.rb +0 -3
  202. data/rails_2_test/app/models/product.rb +0 -7
  203. data/rails_2_test/app/models/user.rb +0 -14
  204. data/rails_2_test/app/views/admin/products/_name_input.html.erb +0 -2
  205. data/rails_2_test/app/views/admin/products/_percent_off_input.html.erb +0 -2
  206. data/rails_2_test/app/views/admin/products/_price_input.html.erb +0 -10
  207. data/rails_2_test/app/views/blog_posts/show.html.erb +0 -13
  208. data/rails_2_test/app/views/layouts/admin.html.erb +0 -31
  209. data/rails_2_test/config/boot.rb +0 -109
  210. data/rails_2_test/config/database.yml +0 -28
  211. data/rails_2_test/config/environment.rb +0 -78
  212. data/rails_2_test/config/environments/development.rb +0 -17
  213. data/rails_2_test/config/environments/production.rb +0 -24
  214. data/rails_2_test/config/environments/test.rb +0 -24
  215. data/rails_2_test/config/initializers/inflections.rb +0 -10
  216. data/rails_2_test/config/initializers/new_rails_defaults.rb +0 -17
  217. data/rails_2_test/config/locales/en.yml +0 -5
  218. data/rails_2_test/config/routes.rb +0 -43
  219. data/rails_2_test/doc/README_FOR_APP +0 -5
  220. data/rails_2_test/lib/tasks/rspec.rake +0 -163
  221. data/rails_2_test/public/404.html +0 -30
  222. data/rails_2_test/public/422.html +0 -30
  223. data/rails_2_test/public/500.html +0 -33
  224. data/rails_2_test/public/dispatch.cgi +0 -10
  225. data/rails_2_test/public/dispatch.fcgi +0 -24
  226. data/rails_2_test/public/dispatch.rb +0 -10
  227. data/rails_2_test/public/index.html +0 -274
  228. data/rails_2_test/script/about +0 -4
  229. data/rails_2_test/script/autospec +0 -5
  230. data/rails_2_test/script/console +0 -3
  231. data/rails_2_test/script/dbconsole +0 -3
  232. data/rails_2_test/script/destroy +0 -3
  233. data/rails_2_test/script/generate +0 -3
  234. data/rails_2_test/script/performance/benchmarker +0 -3
  235. data/rails_2_test/script/performance/profiler +0 -3
  236. data/rails_2_test/script/performance/request +0 -3
  237. data/rails_2_test/script/plugin +0 -3
  238. data/rails_2_test/script/populate_tables.rb +0 -49
  239. data/rails_2_test/script/process/inspector +0 -3
  240. data/rails_2_test/script/process/reaper +0 -3
  241. data/rails_2_test/script/process/spawner +0 -3
  242. data/rails_2_test/script/runner +0 -3
  243. data/rails_2_test/script/server +0 -3
  244. data/rails_2_test/script/spec +0 -5
  245. data/rails_2_test/script/spec_server +0 -125
  246. data/rails_2_test/test/fixtures/file_column_images.yml +0 -7
  247. data/rails_2_test/test/integration/admin/appointments2_integration_test.rb +0 -79
  248. data/rails_2_test/test/integration/admin/appointments_integration_test.rb +0 -367
  249. data/rails_2_test/test/integration/admin/blog_posts2_integration_test.rb +0 -806
  250. data/rails_2_test/test/integration/admin/blog_posts3_integration_test.rb +0 -418
  251. data/rails_2_test/test/integration/admin/blog_posts4_integration_test.rb +0 -189
  252. data/rails_2_test/test/integration/admin/blog_posts5_integration_test.rb +0 -75
  253. data/rails_2_test/test/integration/admin/blog_posts6_integration_test.rb +0 -39
  254. data/rails_2_test/test/integration/admin/blog_posts_custom_new_and_edit_integration_test.rb +0 -89
  255. data/rails_2_test/test/integration/admin/blog_posts_integration_test.rb +0 -788
  256. data/rails_2_test/test/integration/admin/blog_posts_read_only_integration_test.rb +0 -69
  257. data/rails_2_test/test/integration/admin/bookmarks_integration_test.rb +0 -445
  258. data/rails_2_test/test/integration/admin/comments2_integration_test.rb +0 -52
  259. data/rails_2_test/test/integration/admin/comments_integration_test.rb +0 -50
  260. data/rails_2_test/test/integration/admin/file_column_images2_integration_test.rb +0 -19
  261. data/rails_2_test/test/integration/admin/file_column_images_integration_test.rb +0 -69
  262. data/rails_2_test/test/integration/admin/images_integration_test.rb +0 -79
  263. data/rails_2_test/test/integration/admin/misconfigured1_integration_test.rb +0 -17
  264. data/rails_2_test/test/integration/admin/product_categories2_integration_test.rb +0 -179
  265. data/rails_2_test/test/integration/admin/products2_integration_test.rb +0 -155
  266. data/rails_2_test/test/integration/admin/products_integration_test.rb +0 -210
  267. data/rails_2_test/test/integration/admin/users_integration_test.rb +0 -266
  268. data/rails_2_test/test/integration/blog_posts_integration_test.rb +0 -9
  269. data/rails_2_test/test/test_helper.rb +0 -114
  270. data/rails_2_test/vendor/plugins/file_column/CHANGELOG +0 -69
  271. data/rails_2_test/vendor/plugins/file_column/README +0 -54
  272. data/rails_2_test/vendor/plugins/file_column/Rakefile +0 -36
  273. data/rails_2_test/vendor/plugins/file_column/TODO +0 -6
  274. data/rails_2_test/vendor/plugins/file_column/init.rb +0 -13
  275. data/rails_2_test/vendor/plugins/file_column/lib/file_column.rb +0 -723
  276. data/rails_2_test/vendor/plugins/file_column/lib/file_column_helper.rb +0 -150
  277. data/rails_2_test/vendor/plugins/file_column/lib/file_compat.rb +0 -28
  278. data/rails_2_test/vendor/plugins/file_column/lib/magick_file_column.rb +0 -260
  279. data/rails_2_test/vendor/plugins/file_column/lib/rails_file_column.rb +0 -19
  280. data/rails_2_test/vendor/plugins/file_column/lib/test_case.rb +0 -124
  281. data/rails_2_test/vendor/plugins/file_column/lib/validations.rb +0 -112
  282. data/rails_2_test/vendor/plugins/file_column/test/abstract_unit.rb +0 -63
  283. data/rails_2_test/vendor/plugins/file_column/test/connection.rb +0 -17
  284. data/rails_2_test/vendor/plugins/file_column/test/file_column_helper_test.rb +0 -97
  285. data/rails_2_test/vendor/plugins/file_column/test/file_column_test.rb +0 -650
  286. data/rails_2_test/vendor/plugins/file_column/test/fixtures/entry.rb +0 -32
  287. data/rails_2_test/vendor/plugins/file_column/test/fixtures/invalid-image.jpg +0 -1
  288. data/rails_2_test/vendor/plugins/file_column/test/fixtures/kerb.jpg +0 -0
  289. data/rails_2_test/vendor/plugins/file_column/test/fixtures/mysql.sql +0 -25
  290. data/rails_2_test/vendor/plugins/file_column/test/fixtures/schema.rb +0 -10
  291. data/rails_2_test/vendor/plugins/file_column/test/fixtures/skanthak.png +0 -0
  292. data/rails_2_test/vendor/plugins/file_column/test/magick_test.rb +0 -380
  293. data/rails_2_test/vendor/plugins/file_column/test/magick_view_only_test.rb +0 -21
  294. data/rails_3_test/app/controllers/admin/appointments2_controller.rb +0 -15
  295. data/rails_3_test/app/controllers/admin/appointments_controller.rb +0 -11
  296. data/rails_3_test/app/controllers/admin/blog_posts2_controller.rb +0 -138
  297. data/rails_3_test/app/controllers/admin/blog_posts3_controller.rb +0 -76
  298. data/rails_3_test/app/controllers/admin/blog_posts4_controller.rb +0 -21
  299. data/rails_3_test/app/controllers/admin/blog_posts5_controller.rb +0 -27
  300. data/rails_3_test/app/controllers/admin/blog_posts6_controller.rb +0 -10
  301. data/rails_3_test/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -15
  302. data/rails_3_test/app/controllers/admin/blog_posts_read_only_controller.rb +0 -19
  303. data/rails_3_test/app/controllers/admin/bookmarks_controller.rb +0 -11
  304. data/rails_3_test/app/controllers/admin/comments2_controller.rb +0 -14
  305. data/rails_3_test/app/controllers/admin/comments_controller.rb +0 -12
  306. data/rails_3_test/app/controllers/admin/images2_controller.rb +0 -11
  307. data/rails_3_test/app/controllers/admin/images_controller.rb +0 -6
  308. data/rails_3_test/app/controllers/admin/misconfigured1_controller.rb +0 -7
  309. data/rails_3_test/app/controllers/admin/not_migrated_yets_controller.rb +0 -9
  310. data/rails_3_test/app/controllers/admin/product_categories2_controller.rb +0 -7
  311. data/rails_3_test/app/controllers/admin/product_categories_controller.rb +0 -5
  312. data/rails_3_test/app/controllers/admin/television_airings_controller.rb +0 -5
  313. data/rails_3_test/app/controllers/admin/television_time_slots_controller.rb +0 -5
  314. data/rails_3_test/app/controllers/admin/users2_controller.rb +0 -10
  315. data/rails_3_test/app/controllers/blog_posts_controller.rb +0 -5
  316. data/rails_3_test/app/helpers/admin/appointments_helper.rb +0 -2
  317. data/rails_3_test/app/helpers/admin/blog_posts2_helper.rb +0 -27
  318. data/rails_3_test/app/helpers/admin/blog_posts3_helper.rb +0 -2
  319. data/rails_3_test/app/helpers/admin/blog_posts4_helper.rb +0 -2
  320. data/rails_3_test/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -29
  321. data/rails_3_test/app/helpers/admin/blog_posts_helper.rb +0 -2
  322. data/rails_3_test/app/helpers/admin/blog_posts_read_only_helper.rb +0 -2
  323. data/rails_3_test/app/helpers/admin/bookmarks_helper.rb +0 -2
  324. data/rails_3_test/app/helpers/admin/comments2_helper.rb +0 -2
  325. data/rails_3_test/app/helpers/admin/comments_helper.rb +0 -2
  326. data/rails_3_test/app/helpers/admin/images2_helper.rb +0 -8
  327. data/rails_3_test/app/helpers/admin/images_helper.rb +0 -2
  328. data/rails_3_test/app/helpers/admin/misconfigured1_helper.rb +0 -2
  329. data/rails_3_test/app/helpers/admin/not_migrated_yets_helper.rb +0 -2
  330. data/rails_3_test/app/helpers/admin/product_categories2_helper.rb +0 -2
  331. data/rails_3_test/app/helpers/admin/product_categories_helper.rb +0 -2
  332. data/rails_3_test/app/helpers/admin/television_airings_helper.rb +0 -2
  333. data/rails_3_test/app/helpers/admin/television_time_slots_helper.rb +0 -2
  334. data/rails_3_test/app/helpers/admin/users2_helper.rb +0 -2
  335. data/rails_3_test/app/models/appointment.rb +0 -5
  336. data/rails_3_test/app/models/blog_post.rb +0 -14
  337. data/rails_3_test/app/models/blog_post_tag.rb +0 -6
  338. data/rails_3_test/app/models/bookmark.rb +0 -6
  339. data/rails_3_test/app/models/comment.rb +0 -4
  340. data/rails_3_test/app/models/image.rb +0 -3
  341. data/rails_3_test/app/models/not_migrated_yet.rb +0 -2
  342. data/rails_3_test/app/models/product_category.rb +0 -9
  343. data/rails_3_test/app/models/tag.rb +0 -4
  344. data/rails_3_test/app/models/television_airing.rb +0 -3
  345. data/rails_3_test/app/models/television_time_slot.rb +0 -11
  346. data/rails_3_test/app/views/admin/appointments/_subject_input.html.erb +0 -2
  347. data/rails_3_test/app/views/admin/appointments2/_time_input.html.erb +0 -31
  348. data/rails_3_test/app/views/admin/blog_posts2/_after_form.html.erb +0 -5
  349. data/rails_3_test/app/views/admin/blog_posts2/_after_index.html.erb +0 -1
  350. data/rails_3_test/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -16
  351. data/rails_3_test/app/views/admin/blog_posts2/_before_index.html.erb +0 -2
  352. data/rails_3_test/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -8
  353. data/rails_3_test/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -1
  354. data/rails_3_test/config/initializers/mime_types.rb +0 -5
  355. data/rails_3_test/config/routes.rb +0 -63
  356. data/rails_3_test/db/migrate/20090213215514_create_blog_posts.rb +0 -12
  357. data/rails_3_test/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -9
  358. data/rails_3_test/db/migrate/20090221220917_create_tags.rb +0 -13
  359. data/rails_3_test/db/migrate/20090221220947_create_blog_post_tags.rb +0 -14
  360. data/rails_3_test/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -9
  361. data/rails_3_test/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -9
  362. data/rails_3_test/db/migrate/20090301191722_create_images.rb +0 -16
  363. data/rails_3_test/db/migrate/20090305165345_create_accounts.rb +0 -14
  364. data/rails_3_test/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -9
  365. data/rails_3_test/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -9
  366. data/rails_3_test/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -9
  367. data/rails_3_test/db/migrate/20090309193635_create_products.rb +0 -14
  368. data/rails_3_test/db/migrate/20090309203056_create_comments.rb +0 -15
  369. data/rails_3_test/db/migrate/20090323005947_create_file_column_images.rb +0 -12
  370. data/rails_3_test/db/migrate/20090326160049_add_birthday_to_users.rb +0 -9
  371. data/rails_3_test/db/migrate/20090326223606_add_state_to_users.rb +0 -9
  372. data/rails_3_test/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -9
  373. data/rails_3_test/db/migrate/20090617173651_create_bookmarks.rb +0 -15
  374. data/rails_3_test/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -9
  375. data/rails_3_test/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -11
  376. data/rails_3_test/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -9
  377. data/rails_3_test/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -9
  378. data/rails_3_test/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -9
  379. data/rails_3_test/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -13
  380. data/rails_3_test/db/migrate/20090714024501_create_product_categories.rb +0 -15
  381. data/rails_3_test/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -9
  382. data/rails_3_test/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -11
  383. data/rails_3_test/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -9
  384. data/rails_3_test/db/migrate/20091222160814_create_appointments.rb +0 -14
  385. data/rails_3_test/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -9
  386. data/rails_3_test/db/migrate/20100214213359_create_television_time_slots.rb +0 -13
  387. data/rails_3_test/db/migrate/20100214213451_create_television_airings.rb +0 -15
  388. data/rails_3_test/public/favicon.ico +0 -0
  389. data/rails_3_test/public/images/rails.png +0 -0
  390. data/rails_3_test/public/javascripts/application.js +0 -2
  391. data/rails_3_test/public/javascripts/jquery-1.4.4.min.js +0 -167
  392. data/rails_3_test/public/robots.txt +0 -5
  393. data/rails_3_test/public/stylesheets/admin.css +0 -3
  394. data/rails_3_test/public/stylesheets/scaffold.css +0 -54
  395. data/rails_3_test/test/data/ruby_throated.jpg +0 -0
  396. data/rails_3_test/test/data/tweenbot.jpg +0 -0
  397. data/rails_3_test/test/integration/admin/images2_integration_test.rb +0 -33
  398. data/rails_3_test/test/integration/admin/product_categories_integration_test.rb +0 -12
  399. data/rails_3_test/test/integration/admin/television_airings_integration_test.rb +0 -25
  400. data/rails_3_test/test/integration/admin/users2_integration_test.rb +0 -48
@@ -1,25 +0,0 @@
1
- -- MySQL dump 9.11
2
- --
3
- -- Host: localhost Database: file_column_test
4
- -- ------------------------------------------------------
5
- -- Server version 4.0.24
6
-
7
- --
8
- -- Table structure for table `entries`
9
- --
10
-
11
- DROP TABLE IF EXISTS entries;
12
- CREATE TABLE entries (
13
- id int(11) NOT NULL auto_increment,
14
- image varchar(200) default NULL,
15
- file varchar(200) NOT NULL,
16
- PRIMARY KEY (id)
17
- ) TYPE=MyISAM;
18
-
19
- DROP TABLE IF EXISTS movies;
20
- CREATE TABLE movies (
21
- id int(11) NOT NULL auto_increment,
22
- movie varchar(200) default NULL,
23
- PRIMARY KEY (id)
24
- ) TYPE=MyISAM;
25
-
@@ -1,10 +0,0 @@
1
- ActiveRecord::Schema.define do
2
- create_table :entries, :force => true do |t|
3
- t.column :image, :string, :null => true
4
- t.column :file, :string, :null => false
5
- end
6
-
7
- create_table :movies, :force => true do |t|
8
- t.column :movie, :string
9
- end
10
- end
@@ -1,380 +0,0 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
- require 'RMagick'
3
- require File.dirname(__FILE__) + '/fixtures/entry'
4
-
5
-
6
- class AbstractRMagickTest < Test::Unit::TestCase
7
- def teardown
8
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
9
- end
10
-
11
- def test_truth
12
- assert true
13
- end
14
-
15
- private
16
-
17
- def read_image(path)
18
- Magick::Image::read(path).first
19
- end
20
-
21
- def assert_max_image_size(img, s)
22
- assert img.columns <= s, "img has #{img.columns} columns, expected: #{s}"
23
- assert img.rows <= s, "img has #{img.rows} rows, expected: #{s}"
24
- assert_equal s, [img.columns, img.rows].max
25
- end
26
- end
27
-
28
- class RMagickSimpleTest < AbstractRMagickTest
29
- def setup
30
- Entry.file_column :image, :magick => { :geometry => "100x100" }
31
- end
32
-
33
- def test_simple_resize_without_save
34
- e = Entry.new
35
- e.image = upload(f("kerb.jpg"))
36
-
37
- img = read_image(e.image)
38
- assert_max_image_size img, 100
39
- end
40
-
41
- def test_simple_resize_with_save
42
- e = Entry.new
43
- e.image = upload(f("kerb.jpg"))
44
- assert e.save
45
- e.reload
46
-
47
- img = read_image(e.image)
48
- assert_max_image_size img, 100
49
- end
50
-
51
- def test_resize_on_saved_image
52
- Entry.file_column :image, :magick => { :geometry => "100x100" }
53
-
54
- e = Entry.new
55
- e.image = upload(f("skanthak.png"))
56
- assert e.save
57
- e.reload
58
- old_path = e.image
59
-
60
- e.image = upload(f("kerb.jpg"))
61
- assert e.save
62
- assert "kerb.jpg", File.basename(e.image)
63
- assert !File.exists?(old_path), "old image '#{old_path}' still exists"
64
-
65
- img = read_image(e.image)
66
- assert_max_image_size img, 100
67
- end
68
-
69
- def test_invalid_image
70
- e = Entry.new
71
- assert_nothing_raised { e.image = upload(f("invalid-image.jpg")) }
72
- assert !e.valid?
73
- end
74
-
75
- def test_serializable
76
- e = Entry.new
77
- e.image = upload(f("skanthak.png"))
78
- assert_nothing_raised {
79
- flash = Marshal.dump(e)
80
- e = Marshal.load(flash)
81
- }
82
- assert File.exists?(e.image)
83
- end
84
-
85
- def test_imagemagick_still_usable
86
- e = Entry.new
87
- assert_nothing_raised {
88
- img = e.load_image_with_rmagick(file_path("skanthak.png"))
89
- assert img.kind_of?(Magick::Image)
90
- }
91
- end
92
- end
93
-
94
- class RMagickRequiresImageTest < AbstractRMagickTest
95
- def setup
96
- Entry.file_column :image, :magick => {
97
- :size => "100x100>",
98
- :image_required => false,
99
- :versions => {
100
- :thumb => "80x80>",
101
- :large => {:size => "200x200>", :lazy => true}
102
- }
103
- }
104
- end
105
-
106
- def test_image_required_with_image
107
- e = Entry.new(:image => upload(f("skanthak.png")))
108
- assert_max_image_size read_image(e.image), 100
109
- assert e.valid?
110
- end
111
-
112
- def test_image_required_with_invalid_image
113
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
114
- assert e.valid?, "did not ignore invalid image"
115
- assert FileUtils.identical?(e.image, f("invalid-image.jpg")), "uploaded file has not been left alone"
116
- end
117
-
118
- def test_versions_with_invalid_image
119
- e = Entry.new(:image => upload(f("invalid-image.jpg")))
120
- assert e.valid?
121
-
122
- image_state = e.send(:image_state)
123
- assert_nil image_state.create_magick_version_if_needed(:thumb)
124
- assert_nil image_state.create_magick_version_if_needed(:large)
125
- assert_nil image_state.create_magick_version_if_needed("300x300>")
126
- end
127
- end
128
-
129
- class RMagickCustomAttributesTest < AbstractRMagickTest
130
- def assert_image_property(img, property, value, text = nil)
131
- assert File.exists?(img), "the image does not exist"
132
- assert_equal value, read_image(img).send(property), text
133
- end
134
-
135
- def test_simple_attributes
136
- Entry.file_column :image, :magick => { :attributes => { :quality => 20 } }
137
- e = Entry.new("image" => upload(f("kerb.jpg")))
138
- assert_image_property e.image, :quality, 20, "the quality was not set"
139
- end
140
-
141
- def test_version_attributes
142
- Entry.file_column :image, :magick => {
143
- :versions => {
144
- :thumb => { :attributes => { :quality => 20 } }
145
- }
146
- }
147
- e = Entry.new("image" => upload(f("kerb.jpg")))
148
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
149
- end
150
-
151
- def test_lazy_attributes
152
- Entry.file_column :image, :magick => {
153
- :versions => {
154
- :thumb => { :attributes => { :quality => 20 }, :lazy => true }
155
- }
156
- }
157
- e = Entry.new("image" => upload(f("kerb.jpg")))
158
- e.send(:image_state).create_magick_version_if_needed(:thumb)
159
- assert_image_property e.image("thumb"), :quality, 20, "the quality was not set"
160
- end
161
- end
162
-
163
- class RMagickVersionsTest < AbstractRMagickTest
164
- def setup
165
- Entry.file_column :image, :magick => {:geometry => "200x200",
166
- :versions => {
167
- :thumb => "50x50",
168
- :medium => {:geometry => "100x100", :name => "100_100"},
169
- :large => {:geometry => "150x150", :lazy => true}
170
- }
171
- }
172
- end
173
-
174
-
175
- def test_should_create_thumb
176
- e = Entry.new("image" => upload(f("skanthak.png")))
177
-
178
- assert File.exists?(e.image("thumb")), "thumb-nail not created"
179
-
180
- assert_max_image_size read_image(e.image("thumb")), 50
181
- end
182
-
183
- def test_version_name_can_be_different_from_key
184
- e = Entry.new("image" => upload(f("skanthak.png")))
185
-
186
- assert File.exists?(e.image("100_100"))
187
- assert !File.exists?(e.image("medium"))
188
- end
189
-
190
- def test_should_not_create_lazy_versions
191
- e = Entry.new("image" => upload(f("skanthak.png")))
192
- assert !File.exists?(e.image("large")), "lazy versions should not be created unless needed"
193
- end
194
-
195
- def test_should_create_lazy_version_on_demand
196
- e = Entry.new("image" => upload(f("skanthak.png")))
197
-
198
- e.send(:image_state).create_magick_version_if_needed(:large)
199
-
200
- assert File.exists?(e.image("large")), "lazy version should be created on demand"
201
-
202
- assert_max_image_size read_image(e.image("large")), 150
203
- end
204
-
205
- def test_generated_name_should_not_change
206
- e = Entry.new("image" => upload(f("skanthak.png")))
207
-
208
- name1 = e.send(:image_state).create_magick_version_if_needed("50x50")
209
- name2 = e.send(:image_state).create_magick_version_if_needed("50x50")
210
- name3 = e.send(:image_state).create_magick_version_if_needed(:geometry => "50x50")
211
- assert_equal name1, name2, "hash value has changed"
212
- assert_equal name1, name3, "hash value has changed"
213
- end
214
-
215
- def test_should_create_version_with_string
216
- e = Entry.new("image" => upload(f("skanthak.png")))
217
-
218
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
219
-
220
- assert File.exists?(e.image(name))
221
-
222
- assert_max_image_size read_image(e.image(name)), 32
223
- end
224
-
225
- def test_should_create_safe_auto_id
226
- e = Entry.new("image" => upload(f("skanthak.png")))
227
-
228
- name = e.send(:image_state).create_magick_version_if_needed("32x32")
229
-
230
- assert_match /^[a-zA-Z0-9]+$/, name
231
- end
232
- end
233
-
234
- class RMagickCroppingTest < AbstractRMagickTest
235
- def setup
236
- Entry.file_column :image, :magick => {:geometry => "200x200",
237
- :versions => {
238
- :thumb => {:crop => "1:1", :geometry => "50x50"}
239
- }
240
- }
241
- end
242
-
243
- def test_should_crop_image_on_upload
244
- e = Entry.new("image" => upload(f("skanthak.png")))
245
-
246
- img = read_image(e.image("thumb"))
247
-
248
- assert_equal 50, img.rows
249
- assert_equal 50, img.columns
250
- end
251
-
252
- end
253
-
254
- class UrlForImageColumnTest < AbstractRMagickTest
255
- include FileColumnHelper
256
-
257
- def setup
258
- Entry.file_column :image, :magick => {
259
- :versions => {:thumb => "50x50"}
260
- }
261
- @request = RequestMock.new
262
- end
263
-
264
- def test_should_use_version_on_symbol_option
265
- e = Entry.new(:image => upload(f("skanthak.png")))
266
-
267
- url = url_for_image_column(e, "image", :thumb)
268
- assert_match %r{^/entry/image/tmp/.+/thumb/skanthak.png$}, url
269
- end
270
-
271
- def test_should_use_string_as_size
272
- e = Entry.new(:image => upload(f("skanthak.png")))
273
-
274
- url = url_for_image_column(e, "image", "50x50")
275
-
276
- assert_match %r{^/entry/image/tmp/.+/.+/skanthak.png$}, url
277
-
278
- url =~ /\/([^\/]+)\/skanthak.png$/
279
- dirname = $1
280
-
281
- assert_max_image_size read_image(e.image(dirname)), 50
282
- end
283
-
284
- def test_should_accept_version_hash
285
- e = Entry.new(:image => upload(f("skanthak.png")))
286
-
287
- url = url_for_image_column(e, "image", :size => "50x50", :crop => "1:1", :name => "small")
288
-
289
- assert_match %r{^/entry/image/tmp/.+/small/skanthak.png$}, url
290
-
291
- img = read_image(e.image("small"))
292
- assert_equal 50, img.rows
293
- assert_equal 50, img.columns
294
- end
295
- end
296
-
297
- class RMagickPermissionsTest < AbstractRMagickTest
298
- def setup
299
- Entry.file_column :image, :magick => {:geometry => "200x200",
300
- :versions => {
301
- :thumb => {:crop => "1:1", :geometry => "50x50"}
302
- }
303
- }, :permissions => 0616
304
- end
305
-
306
- def check_permissions(e)
307
- assert_equal 0616, (File.stat(e.image).mode & 0777)
308
- assert_equal 0616, (File.stat(e.image("thumb")).mode & 0777)
309
- end
310
-
311
- def test_permissions_with_rmagick
312
- e = Entry.new(:image => upload(f("skanthak.png")))
313
-
314
- check_permissions e
315
-
316
- assert e.save
317
-
318
- check_permissions e
319
- end
320
- end
321
-
322
- class Entry
323
- def transform_grey(img)
324
- img.quantize(256, Magick::GRAYColorspace)
325
- end
326
- end
327
-
328
- class RMagickTransformationTest < AbstractRMagickTest
329
- def assert_transformed(image)
330
- assert File.exists?(image), "the image does not exist"
331
- assert 256 > read_image(image).number_colors, "the number of colors was not changed"
332
- end
333
-
334
- def test_simple_transformation
335
- Entry.file_column :image, :magick => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
336
- e = Entry.new("image" => upload(f("skanthak.png")))
337
- assert_transformed(e.image)
338
- end
339
-
340
- def test_simple_version_transformation
341
- Entry.file_column :image, :magick => {
342
- :versions => { :thumb => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
343
- }
344
- e = Entry.new("image" => upload(f("skanthak.png")))
345
- assert_transformed(e.image("thumb"))
346
- end
347
-
348
- def test_complex_version_transformation
349
- Entry.file_column :image, :magick => {
350
- :versions => {
351
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) } }
352
- }
353
- }
354
- e = Entry.new("image" => upload(f("skanthak.png")))
355
- assert_transformed(e.image("thumb"))
356
- end
357
-
358
- def test_lazy_transformation
359
- Entry.file_column :image, :magick => {
360
- :versions => {
361
- :thumb => { :transformation => Proc.new { |image| image.quantize(256, Magick::GRAYColorspace) }, :lazy => true }
362
- }
363
- }
364
- e = Entry.new("image" => upload(f("skanthak.png")))
365
- e.send(:image_state).create_magick_version_if_needed(:thumb)
366
- assert_transformed(e.image("thumb"))
367
- end
368
-
369
- def test_simple_callback_transformation
370
- Entry.file_column :image, :magick => :transform_grey
371
- e = Entry.new(:image => upload(f("skanthak.png")))
372
- assert_transformed(e.image)
373
- end
374
-
375
- def test_complex_callback_transformation
376
- Entry.file_column :image, :magick => { :transformation => :transform_grey }
377
- e = Entry.new(:image => upload(f("skanthak.png")))
378
- assert_transformed(e.image)
379
- end
380
- end
@@ -1,21 +0,0 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
- require File.dirname(__FILE__) + '/fixtures/entry'
3
-
4
- class RMagickViewOnlyTest < Test::Unit::TestCase
5
- include FileColumnHelper
6
-
7
- def setup
8
- Entry.file_column :image
9
- @request = RequestMock.new
10
- end
11
-
12
- def teardown
13
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
14
- end
15
-
16
- def test_url_for_image_column_without_model_versions
17
- e = Entry.new(:image => upload(f("skanthak.png")))
18
-
19
- assert_nothing_raised { url_for_image_column e, "image", "50x50" }
20
- end
21
- end
@@ -1,15 +0,0 @@
1
- class Admin::Appointments2Controller < ApplicationController
2
- layout 'admin'
3
-
4
- admin_assistant_for Appointment do |a|
5
- a.form.multi = true
6
- end
7
-
8
- protected
9
-
10
- def time_from_form(time)
11
- time['1-3i'] =~ /(\d{4})-(\d{2})-(\d{2})/
12
- utc_args = [$1, $2, $3, time['4i'], time['5i']]
13
- Time.utc(*(utc_args.map(&:to_i))) unless utc_args.any?(&:blank?)
14
- end
15
- end
@@ -1,11 +0,0 @@
1
- class Admin::AppointmentsController < ApplicationController
2
- layout 'admin'
3
-
4
- admin_assistant_for Appointment do |a|
5
- a.form.multi = true
6
- a.index.search do |search|
7
- search.columns :subject, :time, :user
8
- search[:time].compare_to_range = true
9
- end
10
- end
11
- end
@@ -1,138 +0,0 @@
1
- class Admin::BlogPosts2Controller < ApplicationController
2
- layout 'admin'
3
-
4
- admin_assistant_for BlogPost do |a|
5
- a[:user].label = 'Author'
6
-
7
- # When showing the textile field, say 'Yes' and 'No' instead of 'true'
8
- # and 'false'
9
- a[:textile].boolean_labels = %w(Yes No)
10
-
11
- # For the index view:
12
- a.index do |index|
13
- # Only show these columns
14
- index.columns :user, :title, :tags, :published_at, :textile
15
-
16
- # Add the link 'All' to the top-right corner
17
- index.actions['All'] = {:all => '1'}
18
-
19
- # Sort by published_at descending, then updated_at descending
20
- index.sort_by "published_at desc, updated_at desc"
21
-
22
- # Show only 10 blog posts per page
23
- index.per_page 10
24
-
25
- # Let's have specific fields for searching
26
- index.search :id, :title, :body, :textile, :user
27
-
28
- # Make the author field a link
29
- index[:user].link_to_args do |blog_post|
30
- { :controller => 'admin/users', :action => 'edit',
31
- :id => blog_post.user_id }
32
- end
33
-
34
- index.header do |params|
35
- if params[:all]
36
- "Blog posts (all)"
37
- else
38
- "Blog posts (unpublished)"
39
- end
40
- end
41
- end
42
-
43
- # For any form page:
44
- a.form do |form|
45
- # Only show inputs for these fields
46
- form.columns :user, :title, :body, :tags, :textile, :publish
47
-
48
- # 'publish' isn't defined on BlogPost, we have to specify that it's a
49
- # check box
50
- form[:publish].input = :check_box
51
-
52
- # In addition to the 'Create'/'Update' button at the bottom, we also have
53
- # a 'Preview' button
54
- form.submit_buttons << 'Preview'
55
-
56
- form[:publish].description =
57
- "Click this and published_at will be set automatically"
58
-
59
- form[:user].select_options = {:include_blank => false}
60
-
61
- form[:body].text_area_options = {:cols => 20, :rows => 40}
62
- end
63
-
64
- # Only show some columns on the show page
65
- a.show.columns :user, :title, :body, :tags, :textile, :published_at
66
- end
67
-
68
- protected
69
-
70
- # This is run after all saves, whether they're creates or updates
71
- def after_save(blog_post)
72
- unless blog_post.tags.empty?
73
- blog_post.update_attribute(:tags_string, blog_post.tags.map(&:tag).join(','))
74
- end
75
- end
76
-
77
- # This is run before all saves, whether they're creates or updates
78
- def before_save(blog_post)
79
- if params[:blog_post][:publish] == '1' && blog_post.published_at.nil?
80
- blog_post.published_at = Time.now.utc
81
- end
82
- end
83
-
84
- # This is run in the controller context, just before render is called
85
- def before_render_for_index
86
- if @index.records.any?
87
- @var_set_by_before_render_for_index_hook = 'Confirmed that we have some records'
88
- end
89
- end
90
-
91
- # By default, only show unpublished blog posts unless params[:all] is
92
- # passed in
93
- def conditions_for_index
94
- "published_at is null" unless params[:all]
95
- end
96
-
97
- # After a successful save, redirect to the edit page with preview=1 to show
98
- # the preview pane. The HTML for the preview pane is generated in
99
- # app/views/admin/blog_posts2/_after_form.html.erb
100
- def destination_after_save(blog_post, params)
101
- if params[:commit] == 'Preview'
102
- {:action => 'edit', :id => blog_post.id, :preview => '1',
103
- :origin => params[:origin]}
104
- end
105
- end
106
-
107
- # Preprocesses the 'tags' string from the form to an array of Tag objects.
108
- # That way admin_assistant can say
109
- #
110
- # blog_post.tags = params[:tags]
111
- #
112
- # and this will work fine with the BlogPost#tags association
113
- def tags_from_form(tags_string, record_params, errors)
114
- tags = tags_string.split(/\s+/).map { |tag_str|
115
- Tag.find_by_tag(tag_str) || Tag.create(:tag => tag_str)
116
- }
117
- bad_tags = tags.select { |t| !t.valid? }
118
- unless bad_tags.empty?
119
- error_str = if bad_tags.size == 1
120
- "contain invalid string '#{bad_tags.first.tag}'"
121
- else
122
- "contain invalid strings " +
123
- bad_tags.map { |t| "'#{t.tag}'" }.join(',')
124
- end
125
- errors.add(:tags, error_str)
126
- end
127
- tags
128
- end
129
-
130
- def validate(blog_post)
131
- pub_str = params[:blog_post][:publish]
132
- unless pub_str.nil? or [true, false, '0', '1'].include?(pub_str)
133
- blog_post.errors.add(
134
- :publish, "can't be \"#{params[:blog_post][:publish]}\""
135
- )
136
- end
137
- end
138
- end
@@ -1,76 +0,0 @@
1
- class Admin::BlogPosts3Controller < ApplicationController
2
- layout 'admin'
3
-
4
- admin_assistant_for BlogPost do |a|
5
- a.model_class_name = 'post'
6
-
7
- a[:has_short_title].boolean_labels = %w(Yes No)
8
- a[:published?].boolean_labels = %w(Yes No)
9
-
10
- a.index do |index|
11
- index.columns :id, :title, :created_at, :updated_at, :body, :textile,
12
- :published?, :user
13
-
14
- index[:textile].ajax_toggle = false
15
-
16
- index.actions['All'] = {:all => '1'}
17
- index.actions['Short title'] = {:short_title => '1'}
18
- index.actions['Blank body'] = {:blank_body => '1'}
19
-
20
- # By default, only show unpublished blog posts unless params[:all] is
21
- # passed in. This needs to work with or without use of the field search
22
- # feature
23
- index.conditions do |params|
24
- if params[:all]
25
- elsif params[:blank_body]
26
- "(body is null or body = '')"
27
- elsif params[:short_title]
28
- "length(title) < 10"
29
- else
30
- 'published_at is null'
31
- end
32
- end
33
-
34
- index.cache_total_entries 12.hours
35
-
36
- # Extended search configuration
37
- index.search do |search|
38
- search.columns :id, :title, :body, :textile, :user, :has_short_title
39
- search[:body].blank_checkbox = true
40
- search[:has_short_title].field_type = :boolean
41
- search[:has_short_title].conditions do |has_short_title|
42
- if has_short_title
43
- "length(title) < 10"
44
- elsif has_short_title == false
45
- "length(title) >= 10"
46
- end
47
- end
48
- search[:id].comparators = false
49
- search[:user].match_text_fields_for_association
50
- end
51
-
52
- # sort by user by default
53
- index.sort_by :user
54
- end
55
-
56
- a.form do |form|
57
- form.columns_for_new :title, :user, :published_at
58
- form.columns_for_edit :title, :user, :published_at, :body, :merged_into
59
- form[:published_at].datetime_select_options =
60
- {:include_blank => false, :start_year => 2009}
61
- form[:published_at].default do |controller|
62
- controller.time_now_utc
63
- end
64
- end
65
- end
66
-
67
- def time_now_utc
68
- Time.now.utc
69
- end
70
-
71
- protected
72
-
73
- def before_validation(blog_post)
74
- blog_post.title = '(draft)' if blog_post.title.blank?
75
- end
76
- end