elucid-rails_admin 0.0.1

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 (348) hide show
  1. data/Gemfile +54 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +1334 -0
  4. data/Rakefile +14 -0
  5. data/app/assets/images/rails_admin/aristo/images/bg_fallback.png +0 -0
  6. data/app/assets/images/rails_admin/aristo/images/icon_sprite.png +0 -0
  7. data/app/assets/images/rails_admin/aristo/images/progress_bar.gif +0 -0
  8. data/app/assets/images/rails_admin/aristo/images/slider_handles.png +0 -0
  9. data/app/assets/images/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  10. data/app/assets/images/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  11. data/app/assets/images/rails_admin/bullet_black.png +0 -0
  12. data/app/assets/images/rails_admin/bullet_white.png +0 -0
  13. data/app/assets/images/rails_admin/calendar.png +0 -0
  14. data/app/assets/images/rails_admin/clock.png +0 -0
  15. data/app/assets/images/rails_admin/colorpicker/colorpicker_background.png +0 -0
  16. data/app/assets/images/rails_admin/colorpicker/colorpicker_hex.png +0 -0
  17. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_b.png +0 -0
  18. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_h.png +0 -0
  19. data/app/assets/images/rails_admin/colorpicker/colorpicker_hsb_s.png +0 -0
  20. data/app/assets/images/rails_admin/colorpicker/colorpicker_indic.gif +0 -0
  21. data/app/assets/images/rails_admin/colorpicker/colorpicker_overlay.png +0 -0
  22. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_b.png +0 -0
  23. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_g.png +0 -0
  24. data/app/assets/images/rails_admin/colorpicker/colorpicker_rgb_r.png +0 -0
  25. data/app/assets/images/rails_admin/colorpicker/colorpicker_select.gif +0 -0
  26. data/app/assets/images/rails_admin/colorpicker/colorpicker_submit.png +0 -0
  27. data/app/assets/images/rails_admin/colorpicker/custom_background.png +0 -0
  28. data/app/assets/images/rails_admin/colorpicker/custom_hex.png +0 -0
  29. data/app/assets/images/rails_admin/colorpicker/custom_hsb_b.png +0 -0
  30. data/app/assets/images/rails_admin/colorpicker/custom_hsb_h.png +0 -0
  31. data/app/assets/images/rails_admin/colorpicker/custom_hsb_s.png +0 -0
  32. data/app/assets/images/rails_admin/colorpicker/custom_indic.gif +0 -0
  33. data/app/assets/images/rails_admin/colorpicker/custom_rgb_b.png +0 -0
  34. data/app/assets/images/rails_admin/colorpicker/custom_rgb_g.png +0 -0
  35. data/app/assets/images/rails_admin/colorpicker/custom_rgb_r.png +0 -0
  36. data/app/assets/images/rails_admin/colorpicker/custom_submit.png +0 -0
  37. data/app/assets/images/rails_admin/colorpicker/select.png +0 -0
  38. data/app/assets/images/rails_admin/colorpicker/select2.png +0 -0
  39. data/app/assets/images/rails_admin/colorpicker/slider.png +0 -0
  40. data/app/assets/images/rails_admin/logo.png +0 -0
  41. data/app/assets/images/rails_admin/magnifier.png +0 -0
  42. data/app/assets/images/rails_admin/multiselect/icon_sprite.png +0 -0
  43. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png +0 -0
  44. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-n-light.png +0 -0
  45. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png +0 -0
  46. data/app/assets/images/rails_admin/multiselect/ui-icon-circle-triangle-s-light.png +0 -0
  47. data/app/assets/javascripts/rails_admin/custom/ui.js +1 -0
  48. data/app/assets/javascripts/rails_admin/jquery-ui-1.8.16.custom.js +5019 -0
  49. data/app/assets/javascripts/rails_admin/jquery.colorpicker.js +484 -0
  50. data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +1219 -0
  51. data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +67 -0
  52. data/app/assets/javascripts/rails_admin/ra.filter-box.js +119 -0
  53. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +280 -0
  54. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +181 -0
  55. data/app/assets/javascripts/rails_admin/ra.remote-form.js +147 -0
  56. data/app/assets/javascripts/rails_admin/rails_admin.js.erb +17 -0
  57. data/app/assets/javascripts/rails_admin/themes/default/ui.js +1 -0
  58. data/app/assets/javascripts/rails_admin/ui.js.coffee +30 -0
  59. data/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png +0 -0
  60. data/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png +0 -0
  61. data/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif +0 -0
  62. data/app/assets/stylesheets/rails_admin/aristo/images/slider_handles.png +0 -0
  63. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png +0 -0
  64. data/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png +0 -0
  65. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.css.scss +733 -0
  66. data/app/assets/stylesheets/rails_admin/base/README +2 -0
  67. data/app/assets/stylesheets/rails_admin/base/mixins.css.scss +1 -0
  68. data/app/assets/stylesheets/rails_admin/base/theming.css.scss +102 -0
  69. data/app/assets/stylesheets/rails_admin/base/variables.css.scss +1 -0
  70. data/app/assets/stylesheets/rails_admin/custom/README +3 -0
  71. data/app/assets/stylesheets/rails_admin/custom/mixins.css.scss +9 -0
  72. data/app/assets/stylesheets/rails_admin/custom/theming.css.scss +11 -0
  73. data/app/assets/stylesheets/rails_admin/custom/variables.css.scss +11 -0
  74. data/app/assets/stylesheets/rails_admin/imports.css.scss.erb +51 -0
  75. data/app/assets/stylesheets/rails_admin/jquery.colorpicker.css.scss +180 -0
  76. data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.css.scss +53 -0
  77. data/app/assets/stylesheets/rails_admin/ra.calendar-additions.css.scss +25 -0
  78. data/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.css.scss +85 -0
  79. data/app/assets/stylesheets/rails_admin/rails_admin.css +4 -0
  80. data/app/assets/stylesheets/rails_admin/themes/README +11 -0
  81. data/app/assets/stylesheets/rails_admin/themes/default/mixins.css.scss +1 -0
  82. data/app/assets/stylesheets/rails_admin/themes/default/theming.css.scss +1 -0
  83. data/app/assets/stylesheets/rails_admin/themes/default/variables.css.scss +1 -0
  84. data/app/controllers/rails_admin/application_controller.rb +62 -0
  85. data/app/controllers/rails_admin/history_controller.rb +26 -0
  86. data/app/controllers/rails_admin/main_controller.rb +371 -0
  87. data/app/helpers/rails_admin/application_helper.rb +65 -0
  88. data/app/helpers/rails_admin/form_builder.rb +52 -0
  89. data/app/helpers/rails_admin/main_helper.rb +100 -0
  90. data/app/models/rails_admin/history.rb +64 -0
  91. data/app/views/kaminari/twitter-bootstrap/_gap.html.haml +2 -0
  92. data/app/views/kaminari/twitter-bootstrap/_next_page.html.haml +4 -0
  93. data/app/views/kaminari/twitter-bootstrap/_page.html.haml +4 -0
  94. data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +10 -0
  95. data/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml +4 -0
  96. data/app/views/layouts/rails_admin/_navigation.html.haml +19 -0
  97. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +9 -0
  98. data/app/views/layouts/rails_admin/application.html.haml +41 -0
  99. data/app/views/rails_admin/history/_dashboard.html.haml +10 -0
  100. data/app/views/rails_admin/history/show.html.haml +42 -0
  101. data/app/views/rails_admin/main/_delete_notice.html.haml +19 -0
  102. data/app/views/rails_admin/main/_form_colorpicker.html.haml +26 -0
  103. data/app/views/rails_admin/main/_form_datetime.html.haml +7 -0
  104. data/app/views/rails_admin/main/_form_enumeration.html.haml +5 -0
  105. data/app/views/rails_admin/main/_form_field.html.haml +1 -0
  106. data/app/views/rails_admin/main/_form_file_upload.html.haml +19 -0
  107. data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +57 -0
  108. data/app/views/rails_admin/main/_form_filtering_select.html.haml +47 -0
  109. data/app/views/rails_admin/main/_form_polymorphic_association.html.haml +36 -0
  110. data/app/views/rails_admin/main/_form_text.html.haml +13 -0
  111. data/app/views/rails_admin/main/_models_links.html.haml +31 -0
  112. data/app/views/rails_admin/main/_object_links.html.haml +23 -0
  113. data/app/views/rails_admin/main/_submit_buttons.html.haml +12 -0
  114. data/app/views/rails_admin/main/bulk_delete.html.haml +6 -0
  115. data/app/views/rails_admin/main/dashboard.html.haml +31 -0
  116. data/app/views/rails_admin/main/delete.html.haml +13 -0
  117. data/app/views/rails_admin/main/edit.html.haml +2 -0
  118. data/app/views/rails_admin/main/export.html.haml +70 -0
  119. data/app/views/rails_admin/main/index.html.haml +98 -0
  120. data/app/views/rails_admin/main/new.html.haml +2 -0
  121. data/app/views/rails_admin/main/show.html.haml +14 -0
  122. data/config/initializers/active_record_extensions.rb +19 -0
  123. data/config/initializers/devise_patch.rb +9 -0
  124. data/config/initializers/haml.rb +3 -0
  125. data/config/locales/devise.bg.yml +42 -0
  126. data/config/locales/devise.de.yml +39 -0
  127. data/config/locales/devise.en.yml +39 -0
  128. data/config/locales/devise.es.yml +39 -0
  129. data/config/locales/devise.fi.yml +39 -0
  130. data/config/locales/devise.fr.yml +78 -0
  131. data/config/locales/devise.hr.yml +49 -0
  132. data/config/locales/devise.it.yml +39 -0
  133. data/config/locales/devise.lt.yml +39 -0
  134. data/config/locales/devise.mn.yml +39 -0
  135. data/config/locales/devise.nb.yml +43 -0
  136. data/config/locales/devise.pt-BR.yml +39 -0
  137. data/config/locales/devise.pt-PT.yml +39 -0
  138. data/config/locales/devise.ro.yml +46 -0
  139. data/config/locales/devise.ru.yml +39 -0
  140. data/config/locales/devise.sv.yml +39 -0
  141. data/config/locales/devise.tr.yml +39 -0
  142. data/config/locales/devise.uk.yml +39 -0
  143. data/config/locales/devise.zh-CN.yml +39 -0
  144. data/config/locales/devise.zh_cn.yml +39 -0
  145. data/config/locales/rails_admin.bg.yml +104 -0
  146. data/config/locales/rails_admin.da.yml +99 -0
  147. data/config/locales/rails_admin.de.yml +110 -0
  148. data/config/locales/rails_admin.en.yml +114 -0
  149. data/config/locales/rails_admin.es.yml +112 -0
  150. data/config/locales/rails_admin.fi.yml +107 -0
  151. data/config/locales/rails_admin.fr.yml +110 -0
  152. data/config/locales/rails_admin.hr.yml +81 -0
  153. data/config/locales/rails_admin.it.yml +109 -0
  154. data/config/locales/rails_admin.ja.yml +110 -0
  155. data/config/locales/rails_admin.lt.yml +102 -0
  156. data/config/locales/rails_admin.lv.yml +100 -0
  157. data/config/locales/rails_admin.mn.yml +103 -0
  158. data/config/locales/rails_admin.nb.yml +110 -0
  159. data/config/locales/rails_admin.nl.yml +135 -0
  160. data/config/locales/rails_admin.pl.yml +111 -0
  161. data/config/locales/rails_admin.pt-BR.yml +109 -0
  162. data/config/locales/rails_admin.pt-PT.yml +109 -0
  163. data/config/locales/rails_admin.ro.yml +113 -0
  164. data/config/locales/rails_admin.ru.yml +109 -0
  165. data/config/locales/rails_admin.sv.yml +103 -0
  166. data/config/locales/rails_admin.tr.yml +103 -0
  167. data/config/locales/rails_admin.uk.yml +100 -0
  168. data/config/locales/rails_admin.zh-CN.yml +114 -0
  169. data/config/locales/rails_admin.zh_cn.yml +107 -0
  170. data/config/routes.rb +28 -0
  171. data/lib/generators/rails_admin/install_generator.rb +83 -0
  172. data/lib/generators/rails_admin/templates/drop.rb +18 -0
  173. data/lib/generators/rails_admin/templates/initializer.erb +150 -0
  174. data/lib/generators/rails_admin/templates/migration.rb +18 -0
  175. data/lib/generators/rails_admin/uninstall_generator.rb +22 -0
  176. data/lib/generators/rails_admin/utils.rb +30 -0
  177. data/lib/rails_admin.rb +57 -0
  178. data/lib/rails_admin/abstract_model.rb +73 -0
  179. data/lib/rails_admin/abstract_object.rb +28 -0
  180. data/lib/rails_admin/adapters/active_record.rb +359 -0
  181. data/lib/rails_admin/config.rb +287 -0
  182. data/lib/rails_admin/config/base.rb +111 -0
  183. data/lib/rails_admin/config/fields.rb +99 -0
  184. data/lib/rails_admin/config/fields/association.rb +101 -0
  185. data/lib/rails_admin/config/fields/base.rb +273 -0
  186. data/lib/rails_admin/config/fields/factories/carrierwave.rb +16 -0
  187. data/lib/rails_admin/config/fields/factories/devise.rb +31 -0
  188. data/lib/rails_admin/config/fields/factories/dragonfly.rb +20 -0
  189. data/lib/rails_admin/config/fields/factories/enum.rb +11 -0
  190. data/lib/rails_admin/config/fields/factories/paperclip.rb +26 -0
  191. data/lib/rails_admin/config/fields/factories/password.rb +17 -0
  192. data/lib/rails_admin/config/fields/group.rb +63 -0
  193. data/lib/rails_admin/config/fields/groupable.rb +25 -0
  194. data/lib/rails_admin/config/fields/types.rb +26 -0
  195. data/lib/rails_admin/config/fields/types/all.rb +22 -0
  196. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +51 -0
  197. data/lib/rails_admin/config/fields/types/boolean.rb +29 -0
  198. data/lib/rails_admin/config/fields/types/carrierwave.rb +32 -0
  199. data/lib/rails_admin/config/fields/types/color.rb +37 -0
  200. data/lib/rails_admin/config/fields/types/date.rb +24 -0
  201. data/lib/rails_admin/config/fields/types/datetime.rb +160 -0
  202. data/lib/rails_admin/config/fields/types/decimal.rb +14 -0
  203. data/lib/rails_admin/config/fields/types/dragonfly.rb +51 -0
  204. data/lib/rails_admin/config/fields/types/enum.rb +35 -0
  205. data/lib/rails_admin/config/fields/types/file_upload.rb +54 -0
  206. data/lib/rails_admin/config/fields/types/float.rb +14 -0
  207. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +14 -0
  208. data/lib/rails_admin/config/fields/types/has_many_association.rb +42 -0
  209. data/lib/rails_admin/config/fields/types/has_one_association.rb +31 -0
  210. data/lib/rails_admin/config/fields/types/integer.rb +24 -0
  211. data/lib/rails_admin/config/fields/types/paperclip.rb +38 -0
  212. data/lib/rails_admin/config/fields/types/password.rb +41 -0
  213. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +78 -0
  214. data/lib/rails_admin/config/fields/types/string.rb +34 -0
  215. data/lib/rails_admin/config/fields/types/text.rb +39 -0
  216. data/lib/rails_admin/config/fields/types/time.rb +31 -0
  217. data/lib/rails_admin/config/fields/types/timestamp.rb +18 -0
  218. data/lib/rails_admin/config/has_fields.rb +112 -0
  219. data/lib/rails_admin/config/has_groups.rb +39 -0
  220. data/lib/rails_admin/config/hideable.rb +28 -0
  221. data/lib/rails_admin/config/model.rb +89 -0
  222. data/lib/rails_admin/config/proxy.rb +40 -0
  223. data/lib/rails_admin/config/sections.rb +51 -0
  224. data/lib/rails_admin/config/sections/create.rb +11 -0
  225. data/lib/rails_admin/config/sections/export.rb +18 -0
  226. data/lib/rails_admin/config/sections/list.rb +55 -0
  227. data/lib/rails_admin/config/sections/navigation.rb +21 -0
  228. data/lib/rails_admin/config/sections/show.rb +50 -0
  229. data/lib/rails_admin/config/sections/update.rb +11 -0
  230. data/lib/rails_admin/engine.rb +15 -0
  231. data/lib/rails_admin/extension.rb +23 -0
  232. data/lib/rails_admin/extensions/cancan.rb +5 -0
  233. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +71 -0
  234. data/lib/rails_admin/generic_support.rb +15 -0
  235. data/lib/rails_admin/i18n_support.rb +43 -0
  236. data/lib/rails_admin/support/core_extensions.rb +44 -0
  237. data/lib/rails_admin/support/csv_converter.rb +109 -0
  238. data/lib/rails_admin/version.rb +6 -0
  239. data/lib/tasks/prepare_ci_env.rake +27 -0
  240. data/lib/tasks/rails_admin.rake +18 -0
  241. data/spec/ci.sh +2 -0
  242. data/spec/controllers/application_controller_spec.rb +30 -0
  243. data/spec/controllers/main_controller_spec.rb +86 -0
  244. data/spec/database_helpers.rb +15 -0
  245. data/spec/dummy_app/Gemfile +52 -0
  246. data/spec/dummy_app/README +256 -0
  247. data/spec/dummy_app/Rakefile +7 -0
  248. data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
  249. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  250. data/spec/dummy_app/app/locales/models.en.yml +8 -0
  251. data/spec/dummy_app/app/models/abstract.rb +5 -0
  252. data/spec/dummy_app/app/models/ball.rb +8 -0
  253. data/spec/dummy_app/app/models/cms.rb +5 -0
  254. data/spec/dummy_app/app/models/cms/basic_page.rb +7 -0
  255. data/spec/dummy_app/app/models/cms/unscoped_page.rb +3 -0
  256. data/spec/dummy_app/app/models/comment.rb +3 -0
  257. data/spec/dummy_app/app/models/division.rb +8 -0
  258. data/spec/dummy_app/app/models/draft.rb +11 -0
  259. data/spec/dummy_app/app/models/fan.rb +5 -0
  260. data/spec/dummy_app/app/models/field_test.rb +13 -0
  261. data/spec/dummy_app/app/models/league.rb +10 -0
  262. data/spec/dummy_app/app/models/player.rb +15 -0
  263. data/spec/dummy_app/app/models/rel_test.rb +6 -0
  264. data/spec/dummy_app/app/models/team.rb +25 -0
  265. data/spec/dummy_app/app/models/user.rb +21 -0
  266. data/spec/dummy_app/app/uploaders/carrierwave_uploader.rb +53 -0
  267. data/spec/dummy_app/app/views/layouts/application.html.erb +13 -0
  268. data/spec/dummy_app/config.ru +4 -0
  269. data/spec/dummy_app/config/application.rb +47 -0
  270. data/spec/dummy_app/config/boot.rb +6 -0
  271. data/spec/dummy_app/config/database.yml +22 -0
  272. data/spec/dummy_app/config/environment.rb +5 -0
  273. data/spec/dummy_app/config/environments/development.rb +27 -0
  274. data/spec/dummy_app/config/environments/production.rb +51 -0
  275. data/spec/dummy_app/config/environments/test.rb +39 -0
  276. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  277. data/spec/dummy_app/config/initializers/devise.rb +142 -0
  278. data/spec/dummy_app/config/initializers/inflections.rb +10 -0
  279. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  280. data/spec/dummy_app/config/initializers/quiet_assets.rb +10 -0
  281. data/spec/dummy_app/config/initializers/rails_admin.rb +10 -0
  282. data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
  283. data/spec/dummy_app/config/initializers/session_store.rb +8 -0
  284. data/spec/dummy_app/config/routes.rb +8 -0
  285. data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +13 -0
  286. data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +19 -0
  287. data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +12 -0
  288. data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +20 -0
  289. data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +22 -0
  290. data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +19 -0
  291. data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +16 -0
  292. data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +12 -0
  293. data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +11 -0
  294. data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +9 -0
  295. data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +9 -0
  296. data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +16 -0
  297. data/spec/dummy_app/db/migrate/00000000000013_add_roles_to_user.rb +9 -0
  298. data/spec/dummy_app/db/migrate/00000000000014_add_color_to_team_migration.rb +9 -0
  299. data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +15 -0
  300. data/spec/dummy_app/db/migrate/20110103205808_create_comments.rb +15 -0
  301. data/spec/dummy_app/db/migrate/20110123042530_rename_histories_to_rails_admin_histories.rb +9 -0
  302. data/spec/dummy_app/db/migrate/20110224184303_create_field_tests.rb +22 -0
  303. data/spec/dummy_app/db/migrate/20110328193014_create_cms_basic_pages.rb +14 -0
  304. data/spec/dummy_app/db/migrate/20110329183136_remove_league_id_from_teams.rb +9 -0
  305. data/spec/dummy_app/db/migrate/20110607152842_add_format_to_field_test.rb +9 -0
  306. data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +12 -0
  307. data/spec/dummy_app/db/migrate/20110831090841_add_protected_field_and_restricted_field_to_field_tests.rb +6 -0
  308. data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +19 -0
  309. data/spec/dummy_app/db/migrate/20110901142530_rename_league_id_foreign_key_on_divisions.rb +5 -0
  310. data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +21 -0
  311. data/spec/dummy_app/db/migrate/20110901154834_change_length_for_rails_admin_histories.rb +9 -0
  312. data/spec/dummy_app/db/migrate/20111103174459_create_unscoped_pages.rb +9 -0
  313. data/spec/dummy_app/db/migrate/20111108143642_add_dragonfly_and_carrierwave_to_field_tests.rb +7 -0
  314. data/spec/dummy_app/db/seeds.rb +18 -0
  315. data/spec/dummy_app/doc/README_FOR_APP +2 -0
  316. data/spec/dummy_app/public/404.html +0 -0
  317. data/spec/dummy_app/public/favicon.ico +0 -0
  318. data/spec/dummy_app/script/rails +6 -0
  319. data/spec/factories.rb +62 -0
  320. data/spec/generator_helpers.rb +30 -0
  321. data/spec/generators/install_generator_spec.rb +85 -0
  322. data/spec/generators/uninstall_generator_spec.rb +35 -0
  323. data/spec/lib/abstract_object_spec.rb +119 -0
  324. data/spec/lib/rails_admin_spec.rb +153 -0
  325. data/spec/requests/authorization/cancan_spec.rb +260 -0
  326. data/spec/requests/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +25 -0
  327. data/spec/requests/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +55 -0
  328. data/spec/requests/basic/create/rails_admin_basic_create_spec.rb +143 -0
  329. data/spec/requests/basic/create/rails_admin_namespaced_model_create_spec.rb +24 -0
  330. data/spec/requests/basic/delete/rails_admin_basic_delete_spec.rb +35 -0
  331. data/spec/requests/basic/destroy/rails_admin_basic_destroy_spec.rb +56 -0
  332. data/spec/requests/basic/edit/rails_admin_basic_edit_spec.rb +98 -0
  333. data/spec/requests/basic/export/rails_admin_basic_export_spec.rb +84 -0
  334. data/spec/requests/basic/list/rails_admin_basic_list_spec.rb +401 -0
  335. data/spec/requests/basic/new/rails_admin_basic_new_spec.rb +74 -0
  336. data/spec/requests/basic/new/rails_admin_namespaced_model_new_spec.rb +31 -0
  337. data/spec/requests/basic/show/rails_admin_basic_show_spec.rb +83 -0
  338. data/spec/requests/basic/update/rails_admin_basic_update_spec.rb +169 -0
  339. data/spec/requests/config/edit/rails_admin_config_edit_spec.rb +744 -0
  340. data/spec/requests/config/list/rails_admin_config_list_spec.rb +549 -0
  341. data/spec/requests/config/navigation/rails_admin_config_navigation_spec.rb +107 -0
  342. data/spec/requests/config/rails_admin_config_spec.rb +180 -0
  343. data/spec/requests/config/show/rails_admin_config_show_spec.rb +275 -0
  344. data/spec/requests/history/rails_admin_history_spec.rb +57 -0
  345. data/spec/requests/rails_admin_spec.rb +103 -0
  346. data/spec/requests/relation_spec.rb +26 -0
  347. data/spec/spec_helper.rb +88 -0
  348. metadata +717 -0
@@ -0,0 +1,15 @@
1
+ class CreateComments < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :comments do |t|
4
+ t.integer :commentable_id
5
+ t.string :commentable_type
6
+ t.text :content
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :comments
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ class RenameHistoriesToRailsAdminHistories < ActiveRecord::Migration
2
+ def self.up
3
+ rename_table :histories, :rails_admin_histories
4
+ end
5
+
6
+ def self.down
7
+ rename_table :rails_admin_histories, :histories
8
+ end
9
+ end
@@ -0,0 +1,22 @@
1
+ class CreateFieldTests < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :field_tests do |t|
4
+ t.string :string_field
5
+ t.text :text_field
6
+ t.integer :integer_field
7
+ t.float :float_field
8
+ t.decimal :decimal_field
9
+ t.datetime :datetime_field
10
+ t.timestamp :timestamp_field
11
+ t.time :time_field
12
+ t.date :date_field
13
+ t.boolean :boolean_field
14
+
15
+ t.timestamps
16
+ end
17
+ end
18
+
19
+ def self.down
20
+ drop_table :field_tests
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ class CreateCmsBasicPages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :cms_basic_pages do |t|
4
+ t.string :title
5
+ t.text :content
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ drop_table :cms_basic_pages
13
+ end
14
+ end
@@ -0,0 +1,9 @@
1
+ class RemoveLeagueIdFromTeams < ActiveRecord::Migration
2
+ def self.up
3
+ remove_column :teams, :league_id
4
+ end
5
+
6
+ def self.down
7
+ add_column :teams, :league_id, :integer
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddFormatToFieldTest < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :field_tests, :format, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :field_tests, :format
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ class CreateBalls < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :balls, :force => true do |t|
4
+ t.string :color
5
+ t.timestamps
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :balls
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ class AddProtectedFieldAndRestrictedFieldToFieldTests < ActiveRecord::Migration
2
+ def change
3
+ add_column :field_tests, :restricted_field, :string
4
+ add_column :field_tests, :protected_field, :string
5
+ end
6
+ end
@@ -0,0 +1,19 @@
1
+ class ChangeDivisionPrimaryKey < ActiveRecord::Migration
2
+ def up
3
+ drop_table :divisions
4
+ create_table :divisions, :primary_key => 'custom_id' do |t|
5
+ t.timestamps
6
+ t.integer :league_id
7
+ t.string :name, :limit => 50, :null => false
8
+ end
9
+ end
10
+
11
+ def down
12
+ drop_table :divisions
13
+ create_table :divisions do |t|
14
+ t.timestamps
15
+ t.integer :league_id
16
+ t.string :name, :limit => 50, :null => false
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ class RenameLeagueIdForeignKeyOnDivisions < ActiveRecord::Migration
2
+ def change
3
+ rename_column :divisions, :league_id, :custom_league_id
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ class SetPrimaryKeyNotNullForDivisions < ActiveRecord::Migration
2
+ def up
3
+ drop_table :divisions
4
+ create_table :divisions, :id => false do |t|
5
+ t.timestamps
6
+ t.primary_key :custom_id
7
+ t.integer :custom_league_id
8
+ t.string :name, :limit => 50, :null => false
9
+ end
10
+
11
+ end
12
+
13
+ def down
14
+ drop_table :divisions
15
+ create_table :divisions, :primary_key => :custom_id do |t|
16
+ t.timestamps
17
+ t.integer :custom_league_id
18
+ t.string :name, :limit => 50, :null => false
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ class ChangeLengthForRailsAdminHistories < ActiveRecord::Migration
2
+ def up
3
+ change_column :rails_admin_histories, :message, :text
4
+ end
5
+
6
+ def down
7
+ change_column :rails_admin_histories, :message, :string
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateUnscopedPages < ActiveRecord::Migration
2
+ def change
3
+ create_table :unscoped_pages do |t|
4
+ t.string :title
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ class AddDragonflyAndCarrierwaveToFieldTests < ActiveRecord::Migration
2
+ def change
3
+ add_column :field_tests, :paperclip_asset_file_name, :string
4
+ add_column :field_tests, :dragonfly_asset_uid, :string
5
+ add_column :field_tests, :carrierwave_asset, :string
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ require 'mlb'
2
+
3
+ User.create(:email => 'username@example.com', :password => 'password', :password_confirmation => 'password')
4
+
5
+ MLB::Team.all.each do |mlb_team|
6
+ unless league = RailsAdmin::AbstractModel.new("League").first(:conditions => ["name = ?", mlb_team.league])
7
+ league = RailsAdmin::AbstractModel.new("League").create(:name => mlb_team.league)
8
+ end
9
+ unless division = RailsAdmin::AbstractModel.new("Division").first(:conditions => ["name = ?", mlb_team.division])
10
+ division = RailsAdmin::AbstractModel.new("Division").create(:name => mlb_team.division, :league => league)
11
+ end
12
+ unless team = RailsAdmin::AbstractModel.new("Team").first(:conditions => ["name = ?", mlb_team.name])
13
+ team = RailsAdmin::AbstractModel.new("Team").create(:name => mlb_team.name, :logo_url => mlb_team.logo_url, :manager => mlb_team.manager, :ballpark => mlb_team.ballpark, :mascot => mlb_team.mascot, :founded => mlb_team.founded, :wins => mlb_team.wins, :losses => mlb_team.losses, :win_percentage => ("%.3f" % (mlb_team.wins.to_f / (mlb_team.wins + mlb_team.losses))).to_f, :division => division)
14
+ end
15
+ mlb_team.players.reject{|player| player.number.nil?}.each do |player|
16
+ RailsAdmin::AbstractModel.new("Player").create(:name => player.name, :number => player.number, :position => player.position, :team => team)
17
+ end
18
+ end
@@ -0,0 +1,2 @@
1
+ Use this README file to introduce your application and point to useful places in the API for learning more.
2
+ Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries.
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,62 @@
1
+ # coding: utf-8
2
+
3
+ FactoryGirl.define do
4
+ factory :player do
5
+ sequence(:name) { |n| "Player #{n}" }
6
+ sequence(:number) { |n| n }
7
+ sequence(:position) { |n| "Position #{n}" }
8
+ end
9
+
10
+ factory :draft do
11
+ date 1.week.ago
12
+ sequence(:round)
13
+ sequence(:pick)
14
+ sequence(:overall)
15
+ sequence(:college) {|n| "College #{n}"}
16
+ association :team
17
+ association :player
18
+ end
19
+
20
+ factory :team do
21
+ sequence(:division_id)
22
+ sequence(:name) { |n| "Team #{n}" }
23
+ sequence(:manager) { |n| "Manager #{n}" }
24
+ sequence(:founded)
25
+ sequence(:wins)
26
+ sequence(:losses)
27
+ sequence(:win_percentage)
28
+ end
29
+
30
+ factory :league do
31
+ sequence(:name) { |n| "League #{n}" }
32
+ end
33
+
34
+ factory :fan do
35
+ sequence(:name) { |n| "Fan #{n}" }
36
+ end
37
+
38
+ factory :user do
39
+ sequence(:email) { |n| "username_#{n}@example.com" }
40
+ sequence(:password) { |n| "password" }
41
+ end
42
+
43
+ factory :field_test do
44
+ end
45
+
46
+
47
+ factory :comment do
48
+ sequence(:content) do |n| <<-EOF
49
+ Lorém --#{n}-- ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
50
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
51
+ quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
52
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
53
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
54
+ proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
55
+ EOF
56
+ end
57
+ end
58
+
59
+ factory :ball do
60
+ color(%W(red blue green yellow purple brown black white).sample)
61
+ end
62
+ end
@@ -0,0 +1,30 @@
1
+ module GeneratorHelpers
2
+
3
+ def create_routes_file(devise_user = 'user', rails_admin_path = 'admin')
4
+ File.open(File.join(destination_root, 'config', 'routes.rb'), 'w') do |f|
5
+ f.puts "DummyApp::Application.routes.draw do"
6
+ f.puts " devise_for :#{devise_user}s" if devise_user
7
+ f.puts " mount RailsAdmin::Engine => '/#{rails_admin_path}', :as => 'rails_admin'" if rails_admin_path
8
+ f.puts " root :to => '/'"
9
+ f.puts "end"
10
+ end
11
+ end
12
+
13
+ def create_config_file(devise_user = 'user')
14
+ File.open(File.join(destination_root, 'config', 'initializers', 'rails_admin.rb'), 'w') do |f|
15
+ f.puts %{
16
+ RailsAdmin.config do |config|
17
+ config.current_user_method { current_#{devise_user} }
18
+ end
19
+ }
20
+ end
21
+ end
22
+
23
+ def has_route?(route)
24
+ File.open(File.join(destination_root, 'config', 'routes.rb')).read.index(route)
25
+ end
26
+
27
+ def has_config?(config)
28
+ File.open(File.join(destination_root, 'config', 'initializers', 'rails_admin.rb')).read.index(config)
29
+ end
30
+ end
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+ require 'generator_helpers'
3
+
4
+ describe 'RailsAdmin::InstallGenerator' do
5
+ include GeneratorSpec::TestCase
6
+ include GeneratorHelpers
7
+
8
+ tests RailsAdmin::InstallGenerator
9
+ destination ::File.expand_path("../tmp/dummy_app", __FILE__)
10
+
11
+ before :all do
12
+ @rails_root = Rails.configuration.root
13
+ Rails.configuration.root = Pathname.new(destination_root)
14
+ end
15
+
16
+ after :all do
17
+ Rails.configuration.root = @rails_root
18
+ end
19
+
20
+ context "when ran on a new app without Devise and RailsAdmin installed" do
21
+ before :all do
22
+ prepare_destination
23
+ FileUtils.cp_r(::File.expand_path("../../dummy_app/", __FILE__), ::File.expand_path('../', Pathname.new(destination_root))) # copying dummy_app to test directory
24
+ FileUtils.rm(::File.expand_path("config/initializers/rails_admin.rb", Pathname.new(destination_root)))
25
+ FileUtils.rm(::File.expand_path("config/initializers/devise.rb", Pathname.new(destination_root)))
26
+ create_routes_file(nil, nil)
27
+ assert_no_migration 'db/migrate/create_rails_admin_histories_table.rb'
28
+ assert_no_file 'config/initializers/rails_admin.rb'
29
+ assert_no_file 'config/initializers/devise.rb'
30
+ @output = run_generator ['admin', 'rails_admin_root']
31
+ end
32
+
33
+ it "creates a migration for rails_admin" do
34
+ assert_migration 'db/migrate/create_rails_admin_histories_table.rb'
35
+ end
36
+
37
+ it "invokes devise setup" do
38
+ assert @output.match /generate devise/ # we don't want to test devise route and migration generation
39
+ end
40
+
41
+ it "creates an initializer" do
42
+ assert_file 'config/initializers/rails_admin.rb'
43
+ end
44
+
45
+ it "generates a route for rails_admin" do
46
+ assert has_route?("mount RailsAdmin::Engine => '/rails_admin_root', :as => 'rails_admin'")
47
+ end
48
+
49
+ it "adds a current_user_method with given Devise user name" do
50
+ assert has_config?("current_admin")
51
+ end
52
+ end
53
+
54
+ context "when upgrading an app with Devise and RailsAdmin already installed" do
55
+ before :all do
56
+ prepare_destination
57
+ FileUtils.cp_r(::File.expand_path("../../dummy_app/", __FILE__), ::File.expand_path('../', Pathname.new(destination_root))) # copying dummy_app to test directory
58
+ FileUtils.rm(::File.expand_path("config/initializers/rails_admin.rb", Pathname.new(destination_root)))
59
+ create_routes_file('old_user', 'old_admin_route')
60
+ create_config_file('old_user')
61
+ assert has_config?('current_old_user')
62
+ assert has_route?('devise_for :old_users')
63
+ assert has_route?("mount RailsAdmin::Engine => '/old_admin_route', :as => 'rails_admin'")
64
+ @output = run_generator ['new_user', 'new_admin_route']
65
+ end
66
+
67
+ it "should update RA route (only one instance of RailsAdmin allowed)" do
68
+ assert has_route?("mount RailsAdmin::Engine => '/new_admin_route', :as => 'rails_admin'")
69
+ assert !has_route?("mount RailsAdmin::Engine => '/old_admin_route', :as => 'rails_admin'")
70
+ end
71
+
72
+ it "invokes devise setup" do
73
+ assert @output.match /generate devise/
74
+ end
75
+
76
+ it "should create a new example config file" do
77
+ assert ::File.exists?(::File.expand_path("config/initializers/rails_admin.rb.example", Pathname.new(destination_root)))
78
+ end
79
+
80
+ it "should update the config file with new user method" do
81
+ assert has_config?('current_new_user')
82
+ assert !has_config?('current_old_user')
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'RailsAdmin::UninstallGenerator' do
4
+ include GeneratorSpec::TestCase
5
+ include GeneratorHelpers
6
+
7
+ tests RailsAdmin::UninstallGenerator
8
+ destination ::File.expand_path("../tmp/dummy_app", __FILE__)
9
+
10
+ before :all do
11
+ prepare_destination
12
+ FileUtils.cp_r(::File.expand_path("../../dummy_app/", __FILE__), ::File.expand_path('../', Pathname.new(destination_root))) # copying dummy_app to test directory
13
+ FileUtils.rm(::File.expand_path("config/initializers/rails_admin.rb", Pathname.new(destination_root)))
14
+ create_config_file('user')
15
+ create_routes_file('user', 'admin')
16
+
17
+ assert_file 'config/initializers/rails_admin.rb'
18
+ assert has_route?("mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'")
19
+
20
+ @output = run_generator
21
+ end
22
+
23
+
24
+ it "creates migrations for droping histories table" do
25
+ assert_migration 'db/migrate/drop_rails_admin_histories_table.rb'
26
+ end
27
+
28
+ it "removes config file" do
29
+ assert_no_file 'config/initializers/rails_admin.rb'
30
+ end
31
+
32
+ it "removes rails_admin route" do
33
+ assert !has_route?("mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'")
34
+ end
35
+ end
@@ -0,0 +1,119 @@
1
+ require 'spec_helper'
2
+
3
+ describe "AbstractObject" do
4
+ describe "proxy" do
5
+ let(:object) { mock("object") }
6
+ let(:abstract_object) { RailsAdmin::AbstractObject.new(object) }
7
+
8
+ it "should act like a proxy" do
9
+ object.should_receive(:method_call)
10
+ abstract_object.method_call
11
+ end
12
+ end
13
+
14
+ describe "create" do
15
+ let(:player) { Player.new }
16
+ let(:object) { RailsAdmin::AbstractObject.new player }
17
+ let(:name) { "Stefan Kiszonka" }
18
+ let(:number) { 87 }
19
+ let(:position) { "Fifth baseman" }
20
+ let(:suspended) { true }
21
+
22
+ describe "a record without associations" do
23
+ before do
24
+ object.set_attributes({ :name => name, :number => number, :position => position, :suspended => suspended, :team_id => nil })
25
+ end
26
+
27
+ it "should create a Player with given attributes" do
28
+ object.save.should be_true
29
+
30
+ player.reload
31
+ player.name.should == name
32
+ player.number.should == number
33
+ player.position.should == position
34
+ player.suspended.should == false # protected
35
+ player.draft.should == nil
36
+ player.team.should == nil
37
+ end
38
+ end
39
+
40
+ describe "a record with protected attributes and has_one association" do
41
+ let(:draft) { Factory :draft }
42
+
43
+ before do
44
+ object.set_attributes({ :name => name, :number => number, :position => position, :suspended => suspended, :team_id => nil, :draft_id => draft.id })
45
+ end
46
+
47
+ it "should create a Player with given attributes" do
48
+ object.save.should be_true
49
+
50
+ player.reload
51
+ player.name.should == name
52
+ player.number.should == number
53
+ player.position.should == position
54
+ player.suspended.should == false # protected
55
+ player.draft.should == draft.reload
56
+ player.team.should == nil
57
+ end
58
+ end
59
+
60
+ describe "a record with has_many associations" do
61
+ let(:league) { League.new }
62
+ let(:object) { RailsAdmin::AbstractObject.new league }
63
+ let(:name) { "Awesome League" }
64
+ let(:teams) { [Factory(:team)] }
65
+ let(:divisions) { [Division.create!(:name => 'div 1', :league => League.create!(:name => 'north')), Division.create!(:name => 'div 2', :league => League.create!(:name => 'south'))] }
66
+
67
+ before do
68
+ object.set_attributes({ :name => name, :division_ids => divisions.map(&:id) })
69
+ end
70
+
71
+ it "should create a League with given attributes and associations" do
72
+ object.save.should be_true
73
+ league.reload
74
+ league.name.should == name
75
+ league.divisions.should == divisions
76
+ end
77
+ end
78
+ end
79
+
80
+ describe "update" do
81
+ describe "a record with protected attributes and has_one association" do
82
+ let(:name) { "Stefan Koza" }
83
+ let(:suspended) { true }
84
+ let(:player) { Factory :player, :suspended => true, :name => name, :draft => Factory(:draft) }
85
+ let(:object) { RailsAdmin::AbstractObject.new player }
86
+ let(:new_team) { Factory :team }
87
+ let(:new_suspended) { false }
88
+ let(:new_draft) { nil }
89
+ let(:new_number) { player.number + 29 }
90
+
91
+ before do
92
+ object.set_attributes({ :number => new_number, :team_id => new_team.id, :suspended => new_suspended, :draft_id => new_draft })
93
+ object.save
94
+ end
95
+
96
+ it "should update a record and associations" do
97
+ object.reload
98
+ object.number.should == new_number
99
+ object.name.should == name
100
+ object.draft.should == nil
101
+ object.suspended.should == true # protected
102
+ object.team.should == new_team
103
+ end
104
+ end
105
+ end
106
+
107
+ describe "destroy" do
108
+ let(:player) { Factory :player }
109
+ let(:object) { RailsAdmin::AbstractObject.new player }
110
+
111
+ before do
112
+ object.destroy
113
+ end
114
+
115
+ it "should delete the record" do
116
+ Player.exists?(player.id).should == false
117
+ end
118
+ end
119
+ end