admin_assistant 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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