rails_admin 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (528) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile +22 -10
  5. data/README.md +32 -92
  6. data/Rakefile +13 -2
  7. data/app/assets/stylesheets/rails_admin/aristo/jquery-ui-1.8.7.custom.scss +3 -3
  8. data/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss +153 -58
  9. data/app/controllers/rails_admin/application_controller.rb +12 -12
  10. data/app/controllers/rails_admin/main_controller.rb +30 -35
  11. data/app/helpers/rails_admin/application_helper.rb +37 -40
  12. data/app/helpers/rails_admin/form_builder.rb +26 -25
  13. data/app/helpers/rails_admin/main_helper.rb +10 -9
  14. data/app/views/rails_admin/main/_dashboard_history.html.haml +5 -4
  15. data/app/views/rails_admin/main/index.html.haml +7 -0
  16. data/config/initializers/active_record_extensions.rb +3 -3
  17. data/config/initializers/haml.rb +1 -1
  18. data/config/routes.rb +7 -7
  19. data/lib/generators/rails_admin/install_generator.rb +5 -84
  20. data/lib/generators/rails_admin/templates/initializer.erb +29 -95
  21. data/lib/generators/rails_admin/utils.rb +3 -14
  22. data/lib/rails_admin.rb +1 -1
  23. data/lib/rails_admin/abstract_model.rb +30 -28
  24. data/lib/rails_admin/adapters/active_record.rb +36 -36
  25. data/lib/rails_admin/adapters/active_record/abstract_object.rb +2 -2
  26. data/lib/rails_admin/adapters/mongoid.rb +102 -108
  27. data/lib/rails_admin/adapters/mongoid/abstract_object.rb +1 -1
  28. data/lib/rails_admin/adapters/mongoid/extension.rb +5 -5
  29. data/lib/rails_admin/bootstrap-sass.rb +7 -8
  30. data/lib/rails_admin/bootstrap-sass/compass_functions.rb +2 -1
  31. data/lib/rails_admin/config.rb +24 -29
  32. data/lib/rails_admin/config/actions.rb +12 -15
  33. data/lib/rails_admin/config/actions/base.rb +8 -8
  34. data/lib/rails_admin/config/actions/bulk_delete.rb +3 -3
  35. data/lib/rails_admin/config/actions/dashboard.rb +5 -5
  36. data/lib/rails_admin/config/actions/delete.rb +4 -4
  37. data/lib/rails_admin/config/actions/edit.rb +3 -3
  38. data/lib/rails_admin/config/actions/export.rb +1 -1
  39. data/lib/rails_admin/config/actions/history_index.rb +1 -1
  40. data/lib/rails_admin/config/actions/history_show.rb +1 -1
  41. data/lib/rails_admin/config/actions/index.rb +20 -11
  42. data/lib/rails_admin/config/actions/new.rb +3 -3
  43. data/lib/rails_admin/config/actions/show.rb +2 -2
  44. data/lib/rails_admin/config/actions/show_in_app.rb +1 -1
  45. data/lib/rails_admin/config/configurable.rb +27 -27
  46. data/lib/rails_admin/config/fields.rb +7 -7
  47. data/lib/rails_admin/config/fields/association.rb +6 -7
  48. data/lib/rails_admin/config/fields/base.rb +32 -30
  49. data/lib/rails_admin/config/fields/factories/association.rb +9 -10
  50. data/lib/rails_admin/config/fields/factories/carrierwave.rb +3 -9
  51. data/lib/rails_admin/config/fields/factories/devise.rb +2 -4
  52. data/lib/rails_admin/config/fields/factories/dragonfly.rb +3 -5
  53. data/lib/rails_admin/config/fields/factories/enum.rb +1 -1
  54. data/lib/rails_admin/config/fields/factories/paperclip.rb +3 -3
  55. data/lib/rails_admin/config/fields/group.rb +6 -8
  56. data/lib/rails_admin/config/fields/types.rb +2 -2
  57. data/lib/rails_admin/config/fields/types/belongs_to_association.rb +4 -4
  58. data/lib/rails_admin/config/fields/types/boolean.rb +2 -2
  59. data/lib/rails_admin/config/fields/types/bson_object_id.rb +7 -12
  60. data/lib/rails_admin/config/fields/types/carrierwave.rb +1 -1
  61. data/lib/rails_admin/config/fields/types/ck_editor.rb +3 -3
  62. data/lib/rails_admin/config/fields/types/code_mirror.rb +9 -9
  63. data/lib/rails_admin/config/fields/types/color.rb +2 -2
  64. data/lib/rails_admin/config/fields/types/date.rb +2 -2
  65. data/lib/rails_admin/config/fields/types/datetime.rb +52 -54
  66. data/lib/rails_admin/config/fields/types/decimal.rb +1 -1
  67. data/lib/rails_admin/config/fields/types/dragonfly.rb +2 -2
  68. data/lib/rails_admin/config/fields/types/enum.rb +3 -3
  69. data/lib/rails_admin/config/fields/types/file_upload.rb +5 -5
  70. data/lib/rails_admin/config/fields/types/float.rb +1 -1
  71. data/lib/rails_admin/config/fields/types/has_and_belongs_to_many_association.rb +1 -1
  72. data/lib/rails_admin/config/fields/types/has_many_association.rb +1 -1
  73. data/lib/rails_admin/config/fields/types/has_one_association.rb +3 -4
  74. data/lib/rails_admin/config/fields/types/hidden.rb +1 -1
  75. data/lib/rails_admin/config/fields/types/integer.rb +1 -1
  76. data/lib/rails_admin/config/fields/types/paperclip.rb +2 -2
  77. data/lib/rails_admin/config/fields/types/password.rb +4 -4
  78. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +8 -11
  79. data/lib/rails_admin/config/fields/types/serialized.rb +1 -1
  80. data/lib/rails_admin/config/fields/types/string.rb +5 -6
  81. data/lib/rails_admin/config/fields/types/text.rb +6 -6
  82. data/lib/rails_admin/config/fields/types/time.rb +4 -4
  83. data/lib/rails_admin/config/fields/types/timestamp.rb +1 -1
  84. data/lib/rails_admin/config/fields/types/wysihtml5.rb +1 -2
  85. data/lib/rails_admin/config/has_fields.rb +24 -24
  86. data/lib/rails_admin/config/has_groups.rb +5 -3
  87. data/lib/rails_admin/config/hideable.rb +2 -2
  88. data/lib/rails_admin/config/lazy_model.rb +1 -1
  89. data/lib/rails_admin/config/model.rb +6 -7
  90. data/lib/rails_admin/config/proxyable/proxy.rb +4 -6
  91. data/lib/rails_admin/config/sections.rb +1 -3
  92. data/lib/rails_admin/config/sections/base.rb +1 -1
  93. data/lib/rails_admin/config/sections/list.rb +4 -0
  94. data/lib/rails_admin/engine.rb +3 -3
  95. data/lib/rails_admin/extension.rb +3 -3
  96. data/lib/rails_admin/extensions/cancan.rb +3 -3
  97. data/lib/rails_admin/extensions/cancan/authorization_adapter.rb +1 -1
  98. data/lib/rails_admin/extensions/history.rb +3 -3
  99. data/lib/rails_admin/extensions/history/auditing_adapter.rb +1 -1
  100. data/lib/rails_admin/extensions/history/history.rb +12 -11
  101. data/lib/rails_admin/extensions/paper_trail.rb +3 -3
  102. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +30 -19
  103. data/lib/rails_admin/i18n_support.rb +11 -15
  104. data/lib/rails_admin/support/core_extensions.rb +4 -5
  105. data/lib/rails_admin/support/csv_converter.rb +21 -23
  106. data/lib/rails_admin/version.rb +4 -7
  107. data/lib/rails_admin/version.rbc +582 -0
  108. data/lib/tasks/rails_admin.rake +0 -12
  109. data/spec/controllers/rails_admin/application_controller_spec.rb +12 -12
  110. data/spec/controllers/rails_admin/main_controller_spec.rb +127 -131
  111. data/spec/dummy_app/Gemfile +12 -6
  112. data/spec/dummy_app/Gemfile.lock +276 -47
  113. data/spec/dummy_app/app/active_record/abstract.rb +0 -2
  114. data/spec/dummy_app/app/active_record/another_field_test.rb +1 -1
  115. data/spec/dummy_app/app/active_record/ball.rb +2 -2
  116. data/spec/dummy_app/app/active_record/carrierwave_uploader.rb +1 -3
  117. data/spec/dummy_app/app/active_record/category.rb +1 -1
  118. data/spec/dummy_app/app/active_record/cms/basic_page.rb +1 -1
  119. data/spec/dummy_app/app/active_record/comment.rb +1 -1
  120. data/spec/dummy_app/app/active_record/comment/confirmed.rb +1 -1
  121. data/spec/dummy_app/app/active_record/division.rb +2 -2
  122. data/spec/dummy_app/app/active_record/draft.rb +5 -5
  123. data/spec/dummy_app/app/active_record/field_test.rb +6 -6
  124. data/spec/dummy_app/app/active_record/image.rb +1 -1
  125. data/spec/dummy_app/app/active_record/league.rb +3 -3
  126. data/spec/dummy_app/app/active_record/nested_field_test.rb +4 -4
  127. data/spec/dummy_app/app/active_record/player.rb +7 -7
  128. data/spec/dummy_app/app/active_record/team.rb +12 -9
  129. data/spec/dummy_app/app/active_record/user.rb +2 -2
  130. data/spec/dummy_app/app/mongoid/another_field_test.rb +1 -1
  131. data/spec/dummy_app/app/mongoid/ball.rb +3 -3
  132. data/spec/dummy_app/app/mongoid/carrierwave_uploader.rb +1 -3
  133. data/spec/dummy_app/app/mongoid/category.rb +1 -1
  134. data/spec/dummy_app/app/mongoid/cms/basic_page.rb +3 -3
  135. data/spec/dummy_app/app/mongoid/comment.rb +2 -2
  136. data/spec/dummy_app/app/mongoid/comment/confirmed.rb +1 -1
  137. data/spec/dummy_app/app/mongoid/division.rb +2 -2
  138. data/spec/dummy_app/app/mongoid/draft.rb +11 -11
  139. data/spec/dummy_app/app/mongoid/embed.rb +1 -1
  140. data/spec/dummy_app/app/mongoid/fan.rb +1 -1
  141. data/spec/dummy_app/app/mongoid/field_test.rb +35 -35
  142. data/spec/dummy_app/app/mongoid/image.rb +1 -1
  143. data/spec/dummy_app/app/mongoid/league.rb +3 -3
  144. data/spec/dummy_app/app/mongoid/nested_field_test.rb +5 -5
  145. data/spec/dummy_app/app/mongoid/player.rb +17 -17
  146. data/spec/dummy_app/app/mongoid/team.rb +28 -24
  147. data/spec/dummy_app/app/mongoid/user.rb +13 -13
  148. data/spec/dummy_app/config/application.rb +5 -5
  149. data/spec/dummy_app/config/boot.rb +1 -3
  150. data/spec/dummy_app/config/environments/test.rb +1 -1
  151. data/spec/dummy_app/config/initializers/devise.rb +2 -2
  152. data/spec/dummy_app/config/initializers/session_patch.rb +1 -2
  153. data/spec/dummy_app/config/initializers/session_store.rb +1 -1
  154. data/spec/dummy_app/config/initializers/wrap_parameters.rb +1 -1
  155. data/spec/dummy_app/config/routes.rb +2 -2
  156. data/spec/dummy_app/db/development.sqlite3 +0 -0
  157. data/spec/dummy_app/db/migrate/00000000000001_create_divisions_migration.rb +1 -1
  158. data/spec/dummy_app/db/migrate/00000000000002_create_drafts_migration.rb +1 -1
  159. data/spec/dummy_app/db/migrate/00000000000003_create_leagues_migration.rb +1 -1
  160. data/spec/dummy_app/db/migrate/00000000000004_create_players_migration.rb +5 -5
  161. data/spec/dummy_app/db/migrate/00000000000005_create_teams_migration.rb +5 -5
  162. data/spec/dummy_app/db/migrate/00000000000006_devise_create_users.rb +5 -5
  163. data/spec/dummy_app/db/migrate/00000000000007_create_histories_table.rb +7 -7
  164. data/spec/dummy_app/db/migrate/00000000000008_create_fans_migration.rb +1 -1
  165. data/spec/dummy_app/db/migrate/00000000000009_create_fans_teams_migration.rb +1 -1
  166. data/spec/dummy_app/db/migrate/00000000000010_add_revenue_to_team_migration.rb +1 -1
  167. data/spec/dummy_app/db/migrate/00000000000011_add_suspended_to_player_migration.rb +1 -1
  168. data/spec/dummy_app/db/migrate/00000000000012_add_avatar_columns_to_user.rb +0 -1
  169. data/spec/dummy_app/db/migrate/20101223222233_create_rel_tests.rb +1 -1
  170. data/spec/dummy_app/db/migrate/20110714095433_create_balls.rb +1 -1
  171. data/spec/dummy_app/db/migrate/20110901131551_change_division_primary_key.rb +3 -3
  172. data/spec/dummy_app/db/migrate/20110901150912_set_primary_key_not_null_for_divisions.rb +4 -5
  173. data/spec/dummy_app/db/migrate/20120319041705_drop_rel_tests.rb +1 -1
  174. data/spec/dummy_app/db/schema.rb +197 -0
  175. data/spec/dummy_app/db/seeds.rb +9 -9
  176. data/spec/dummy_app/db/test.sqlite3 +0 -0
  177. data/spec/dummy_app/tmp/cache/assets/test/sass/{46504e29e25493e203f6e081863c6f722ba34fce → 0e28199903adc18ba5ed7000a3cfbe6be324f02c}/mixins.scssc +0 -0
  178. data/spec/dummy_app/tmp/cache/assets/test/sass/{46504e29e25493e203f6e081863c6f722ba34fce → 0e28199903adc18ba5ed7000a3cfbe6be324f02c}/theming.scssc +0 -0
  179. data/spec/dummy_app/tmp/cache/assets/test/sass/{46504e29e25493e203f6e081863c6f722ba34fce → 0e28199903adc18ba5ed7000a3cfbe6be324f02c}/variables.scssc +0 -0
  180. data/spec/dummy_app/tmp/cache/assets/test/sass/66bb15d356a3ae9531c123a31be7776c5874ac21/font-awesome.css.erbc +0 -0
  181. data/spec/dummy_app/tmp/cache/assets/test/sass/7a85589b70ac6319b07ac05552a98bba4b834a39/font-awesome-4-compability.scssc +0 -0
  182. data/spec/dummy_app/tmp/cache/assets/test/sass/{245c4be20f01db9121b0992275b77e082f23d7df → 7a85589b70ac6319b07ac05552a98bba4b834a39}/mixins.scssc +0 -0
  183. data/spec/dummy_app/tmp/cache/assets/test/sass/{245c4be20f01db9121b0992275b77e082f23d7df → 7a85589b70ac6319b07ac05552a98bba4b834a39}/theming.scssc +0 -0
  184. data/spec/dummy_app/tmp/cache/assets/test/sass/{245c4be20f01db9121b0992275b77e082f23d7df → 7a85589b70ac6319b07ac05552a98bba4b834a39}/variables.scssc +0 -0
  185. data/spec/dummy_app/tmp/cache/assets/test/sass/{ebde8a6cd2923d8c583ca746dd952b4fe080c2a1 → 92899d6fb50bc282d329302d61a5c00fa959d762}/jquery-ui-1.8.7.custom.scssc +0 -0
  186. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/jquery.colorpicker.scssc +0 -0
  187. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/jquery.ui.timepicker.scssc +0 -0
  188. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/ra.calendar-additions.scssc +0 -0
  189. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/ra.filtering-multiselect.scssc +0 -0
  190. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/ra.widgets.scssc +0 -0
  191. data/spec/dummy_app/tmp/cache/assets/test/sass/{c7aba53479ebd90acc5f6ba8fb7463fa43b1ae1c → 977fdcd1d57ae400c0a80cee764210478c5780f6}/rails_admin.scss.erbc +0 -0
  192. data/spec/dummy_app/tmp/cache/assets/test/sass/{a65ba3e01aefad1ad59b6317cbb14d0560ca012b → 9a24497045e3375a0450bb40eb1ffe1eb56bc709}/mixins.scssc +0 -0
  193. data/spec/dummy_app/tmp/cache/assets/test/sass/{a65ba3e01aefad1ad59b6317cbb14d0560ca012b → 9a24497045e3375a0450bb40eb1ffe1eb56bc709}/theming.scssc +0 -0
  194. data/spec/dummy_app/tmp/cache/assets/test/sass/{a65ba3e01aefad1ad59b6317cbb14d0560ca012b → 9a24497045e3375a0450bb40eb1ffe1eb56bc709}/variables.scssc +0 -0
  195. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_accordion.scssc +0 -0
  196. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_alerts.scssc +0 -0
  197. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_breadcrumbs.scssc +0 -0
  198. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_button-groups.scssc +0 -0
  199. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_buttons.scssc +0 -0
  200. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_carousel.scssc +0 -0
  201. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_close.scssc +0 -0
  202. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_component-animations.scssc +0 -0
  203. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_dropdowns.scssc +0 -0
  204. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_forms.scssc +0 -0
  205. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_grid.scssc +0 -0
  206. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_hero-unit.scssc +0 -0
  207. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_labels-badges.scssc +0 -0
  208. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_layouts.scssc +0 -0
  209. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_mixins.scssc +0 -0
  210. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_modals.scssc +0 -0
  211. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_navbar.scssc +0 -0
  212. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_navs.scssc +0 -0
  213. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_pager.scssc +0 -0
  214. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_pagination.scssc +0 -0
  215. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_popovers.scssc +0 -0
  216. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_progress-bars.scssc +0 -0
  217. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_reset.scssc +0 -0
  218. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_scaffolding.scssc +0 -0
  219. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_tables.scssc +0 -0
  220. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_thumbnails.scssc +0 -0
  221. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_tooltip.scssc +0 -0
  222. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_type.scssc +0 -0
  223. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_utilities.scssc +0 -0
  224. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_variables.scssc +0 -0
  225. data/spec/dummy_app/tmp/cache/assets/test/sass/{c996a898a33b80a44fab822802e73b6e409755d2 → a011cf534fa35e4fa0708adf6019078657586c2c}/_wells.scssc +0 -0
  226. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d1c2c3a2df8517e019edf30db44566b4 → 021e87bfe65a024a849db3c621f39607} +0 -0
  227. data/spec/dummy_app/tmp/cache/assets/test/sprockets/02da6cc33425a1387089c6030cf514db +0 -0
  228. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{4863c57f6c9bbf8cf392ba250f7e8e99 → 04880af615c5763f7808495d1676565b} +0 -0
  229. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0599094d22f449fecdbc1ae48e3d901e +0 -0
  230. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{5c75555dac51f16619f3630fc4ce7811 → 06065efe9216af455ca5ae63b780842a} +0 -0
  231. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{fb0757f81f5726edb2a3fecb73c190ac → 07f7c76677c34256252f23976ce6c2a1} +0 -0
  232. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0843377cd450cc8688003ba317723fae +0 -0
  233. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0a4355e8cc379590a5aaf8542419d306 +0 -0
  234. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0b35ad462ccf12ca91cff9c51164c5a0 +0 -0
  235. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0f04a8cf5d989e555542213f5b5db676 +0 -0
  236. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{129530d9cbfe95daa40fefb31b541d13 → 1252be603446e6064e85dae1533eaa59} +0 -0
  237. data/spec/dummy_app/tmp/cache/assets/test/sprockets/12b2ef118f691f66646eac032f7535d3 +0 -0
  238. data/spec/dummy_app/tmp/cache/assets/test/sprockets/136f479ebd2eedeb83550b4a882538e5 +0 -0
  239. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1381657fbbc4cc175ae0406c8cbdd852 +0 -0
  240. data/spec/dummy_app/tmp/cache/assets/test/sprockets/161f8f439887fb5926b02a917b2fab29 +0 -0
  241. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1b26b92ae53bdc1e9f8a5afa7b72b381 +0 -0
  242. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1befe9a4bb03dc468cd7f5e7148a6a52 +0 -0
  243. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1d12409a91dcc8c8a4965c52a7f6b099 +0 -0
  244. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1db0d2a002e581a113a91a6e93e5d4e7 +0 -0
  245. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{10c9ca24ee38f89898883cf73e22a947 → 1dd74057b76db8f42e06cbb888f14956} +0 -0
  246. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{996f66db546cbb0e74c8e1b206934a8b → 1e7b3532f20949a13b8b69d2dddc559a} +0 -0
  247. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2051323c87c06ef9fb769ff13afe1d46 +0 -0
  248. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{714f390b93b33846a6c8358e3fb0555e → 2197e41c9dda6c82b109eaa0d5adaf2f} +0 -0
  249. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{cde5d358d89af1813033adcf5abdc012 → 22003805d8abcf11f0649bff9cef6c35} +0 -0
  250. data/spec/dummy_app/tmp/cache/assets/test/sprockets/258dbc982e14f78732a377754ed23a4b +0 -0
  251. data/spec/dummy_app/tmp/cache/assets/test/sprockets/26489e402a71f43f962d6055e30787d0 +0 -0
  252. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{969c58767a7de67e78f9ea69195183d9 → 276e2819a676347a7de259b70679adb8} +0 -0
  253. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2894746ab7d895286c1b09e42fc94281 +0 -0
  254. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2ab4ad958f77a3629fb62246f5604bce → 28c0c99cd6d41ead252f979cef74c6c5} +0 -0
  255. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{095e7d24e036c328ff8a353b062c075e → 2943f3fe07d2ae0184c2282647d5c50e} +0 -0
  256. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{a03d8b8153d1a1abc2abf53568d4dad0 → 2a421ff8fbf280e0d7323f26d2656144} +0 -0
  257. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d35f06fe57bd03bea2483b5398b2c6f8 → 2f23e3869b68c4c9492f9497b288f6bb} +0 -0
  258. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{9011102569db38052e6353455fac950e → 30539f6bae0581cb548f51ee6d9d5b9b} +0 -0
  259. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2656c3bece9f7e34887e2fceded0784e → 318296efd3e38c26a302d99d1638e4ad} +0 -0
  260. data/spec/dummy_app/tmp/cache/assets/test/sprockets/31bfcc7896d47062b682cb7305aa9052 +0 -0
  261. data/spec/dummy_app/tmp/cache/assets/test/sprockets/346057a4a317d5399f0faa78baf2be98 +0 -0
  262. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{0ed0d802514844bf10f8361f431c8cc8 → 374aecf6aa1d05dd23ce4881c1bdd71b} +0 -0
  263. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{76c588a87498d0a7b9c4b93f78c47965 → 382ebccfe8b6bce742f4a2bc0c109d0f} +0 -0
  264. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{9ba5c2b7b2f656550a0deffc19472e39 → 39792f57ea45373a09c7ac823905cb29} +0 -0
  265. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{e647f039e5c667d1ca130f914fb70624 → 3a3728ebf0994eb3f68ac9acf74c5904} +0 -0
  266. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{5395b275597f09db5cc276d8a35b1c9b → 3aaf980536f44c31d1d0145ba8f1721d} +0 -0
  267. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{460d342022e00bbd6edff25125a60ab1 → 3ba808481868b8a56fdf9f106eeda367} +0 -0
  268. data/spec/dummy_app/tmp/cache/assets/test/sprockets/44e79847ae7bb5c853dbfefa452355f0 +0 -0
  269. data/spec/dummy_app/tmp/cache/assets/test/sprockets/459777cb1d30f6467da8dd53d9841bee +0 -0
  270. data/spec/dummy_app/tmp/cache/assets/test/sprockets/46842ce793ce3da43a6c21ef0c0e745e +0 -0
  271. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4764b71e86b2ebfa988853e0ce3bb441 +0 -0
  272. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4821eb4277ad6a0983c16630cd5806ae +0 -0
  273. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{375cc143f1184d76e6b3ff0dfb60187c → 485a6b0358511c73965a851ba5569014} +0 -0
  274. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{ba4f88faafacc90d28bc5a92032f2608 → 49ccc514fe103c24a38f100cecb21be9} +0 -0
  275. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{b8e717c8deb6edc80a7a690369d13d35 → 49de4f401551329c23b46284313de8d1} +0 -0
  276. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{c61f7caef6bb75b1c15bde82e7cbbee2 → 4f3e6b4e40b631d3d949509f32ea9bc3} +0 -0
  277. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{5de4f3048b6d83b2236bfbc041ad8f11 → 4fb06529e2126644ddf41924f5be2880} +0 -0
  278. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4fbd3f63d231f5b25d1b8eb02ecdd150 +0 -0
  279. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4ffa898a34dcdcfb92898d913da3f720 +0 -0
  280. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5159e29eea352859ecad8605385bc97e +0 -0
  281. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{498ee0d8892d5d9be8a37030e3253e14 → 529d621e1fb6b730d9d035b143e93f69} +0 -0
  282. data/spec/dummy_app/tmp/cache/assets/test/sprockets/54c3d5d9311b5d421c51b5d473de5b05 +0 -0
  283. data/spec/dummy_app/tmp/cache/assets/test/sprockets/582efaa561d6a724a7cd82b2023e8e29 +0 -0
  284. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{b7ffc32371aea730fc8e27be3be8e633 → 59c191aebff69f4e76cb50860ff17df5} +0 -0
  285. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5a0024fd5a8ae8322b07acc733c6caed +0 -0
  286. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5a8fc55cb58b423142d530fc066dd3a4 +0 -0
  287. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5b1732a4f9d541544d84a04dda73e752 +0 -0
  288. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5c8e7da8dcddc72d152039cec5b173c9 +0 -0
  289. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2e774a2e56e0db0d18d782bbcb9639 +0 -0
  290. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{6eff33b3b8fa010e960659ed61b250e6 → 5e9526449d8415fba07fb15676ccea95} +0 -0
  291. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{63ff3018e663064066c3dae6658c36fc → 5eed513a4451dedcc36ec16c45745bd4} +0 -0
  292. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5fab61053117e1d102e0a355e4b870d3 +0 -0
  293. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{8cfd86644ffefe11ed4880518435c8a5 → 62313843f7d1e2195eca82386ddbafc4} +0 -0
  294. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{6e2e2c829c91d3d0c079771ed77e6654 → 638b254892f40165bda0c1ee6f62a6d6} +0 -0
  295. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{540da504e121104c4de8155ec685b4ea → 660d820d7f5e69fe59c0a7f01aaef8c6} +0 -0
  296. data/spec/dummy_app/tmp/cache/assets/test/sprockets/69f59cfc7f92e5d7ebf02df73928083b +0 -0
  297. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6a09089b5590cbb5dbccba9199b1aa0e +0 -0
  298. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6ab99dcd31d6d0380c0df7baa42a2b18 +0 -0
  299. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6b3e9ff481b3a040acb4e1ea61e4c8fc +0 -0
  300. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6ce0b5fdde88a0e3ff318a0c2726d46f +0 -0
  301. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6d278334e72b135765a41e991bec0500 +0 -0
  302. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{e13a9d14cda66ff1562d59bae5bb0009 → 6f70cf17d6c5ba22b8afddd7d39c4d70} +0 -0
  303. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{743e275172178779f8b1f7fbe08dd5ea → 729b76b484c9c4df3af759a93635b21d} +0 -0
  304. data/spec/dummy_app/tmp/cache/assets/test/sprockets/72d8ec2796504cc9604b01118b806cd8 +0 -0
  305. data/spec/dummy_app/tmp/cache/assets/test/sprockets/74b195601a5c6c8bf93e5e7e9e6da12b +0 -0
  306. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2d1df5e32a061a951d5a2d4d9f6c3d24 → 75c3e223b3986acf0bc6c669d16054b8} +0 -0
  307. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d4a49843caf12d9a6dc764014f42b895 → 75ed3fc3c431fc2154cdd1f760f3210e} +0 -0
  308. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7795054eed96c541e38536fa029a42ad +0 -0
  309. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2e8383214772b291c87934ed8a84b955 → 77a4a5a208b8121488fd9ef247d67813} +0 -0
  310. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7ec629ff58b2d1e0dfe7f8c56f2fc5d7 +0 -0
  311. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{b82696d97bda7df1d71f90b91abbbb80 → 840324d228205039aaaafc391c208430} +0 -0
  312. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{7be36e83efedfb86b40e05e2c2e9cacf → 842328de502c909f498ccca706cd47dc} +0 -0
  313. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{5cb7d2cb1418d5831b0b61ca68d18a07 → 8644f94b9a1a902153cd97473ce23266} +0 -0
  314. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{bdf867751d648676e25e36a9435e6b26 → 88f2fbf474d52591035c94b07b696ff9} +0 -0
  315. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{e1bba75ba340cdef270c20efd6f983ac → 89fe3f3e75d5eb4ecb1b836fd792990d} +0 -0
  316. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{a03fc26531eea1055e58e91bd64792b3 → 917c85b2a002bf08c90f4509aba5b538} +0 -0
  317. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{7f5f2d823155f3f1da616e146d540dc1 → 920f17a87bb2678c28568f5e686a4cf1} +0 -0
  318. data/spec/dummy_app/tmp/cache/assets/test/sprockets/925c3596709eb590d786f15a3cf817bb +0 -0
  319. data/spec/dummy_app/tmp/cache/assets/test/sprockets/984e0e653074756d5c241ac3597b68d8 +0 -0
  320. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{7ed06e4bd001b429d263963fbe783f11 → 98a0e68016b3c8f8000d991b1d5bc044} +0 -0
  321. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9b9810623fa8a8a92e55d065f93340ee +0 -0
  322. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9c834e292807614b87fc885949cb12d5 +0 -0
  323. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{aa87eff56d455dae33b13bb129cd4d3f → 9dab4fa8ba5260be660ee06b90e3e847} +0 -0
  324. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9f60a2e19502e0f9ad7ccffa2da50342 +0 -0
  325. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d5cb053b401e51026a9c743fc9442a45 → 9f6c080a6bd27db284fbb211f3f44a6c} +0 -0
  326. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9fb546f0f37deda2fdcfd48930de0f69 +0 -0
  327. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{bb2bc7acd86cbf95e1ca5d978aa3b407 → a0bdc79935fc14ace4c5366e1ba7d527} +0 -0
  328. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a1f2411c0e3e9a52183b5f0c96fa84c8 +0 -0
  329. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{24dcc2914999ebf715353482d3b22e51 → a41cd406b752008bf3aaeb365d9d5e8b} +0 -0
  330. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{bedffc652989e272a8e2774aab019da5 → a50199939a6040343c5487c1dde55260} +0 -0
  331. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a80f3bf6075735abb8874bf40ca7a4cd +0 -0
  332. data/spec/dummy_app/tmp/{dragonfly/cache/body/20/4b9c4f1d960805e206c28eac62367b6970f63b → cache/assets/test/sprockets/ad452a261b3fc90b3aca85ffc630817d} +0 -0
  333. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{38fd3d9139702eff7281ee67b638d92e → b0b910efc00aa49d187637e761ea0654} +0 -0
  334. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{0c78a1295e80206cd724fb0661c58ee4 → b12de6d4d7f222f76b111c25f5dab178} +0 -0
  335. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b1d340312b1b800c7c5e652e1db6c9cc +0 -0
  336. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b31203d66a43ee74d976dc763f42f38a +0 -0
  337. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{20967f4e0f44fccf2c2de06aad218647 → b944bc4b0799f7954005e8b1a5336687} +0 -0
  338. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{f8d79539ba48d44d737f7ca1295354f7 → baf1f20ee8ed55082855f5ecfbb9db4e} +0 -0
  339. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bf1fd5d742a16de894278017732d1b2c +0 -0
  340. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bffa7d2c518d584c3f1ba8b9e11cf745 +0 -0
  341. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{0f72b417ab87169150cd61260cc18f4e → c2f1cee7fb8eb8492c4084ce00dc53b6} +0 -0
  342. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c53a5fc1810ee9b6c3c933fd5590228e +0 -0
  343. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c801ebd7cabbdbe237c427692b2f6017 +0 -0
  344. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{98c978063ce9eca4f00d35e8ee8ccccb → c87758b6b5f54876dccc4562ebd59a43} +0 -0
  345. data/spec/dummy_app/tmp/cache/assets/test/sprockets/cb1a9d6c11a7eb5430d3c79838a53eb1 +0 -0
  346. data/spec/dummy_app/tmp/cache/assets/test/sprockets/cb1d6fcc9bad898327636cf414f73b57 +0 -0
  347. data/spec/dummy_app/tmp/cache/assets/test/sprockets/cd8be896a3bf8f11cc61e0fb6b90eb80 +0 -0
  348. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{550d461012567dbfec3138e404c434e3 → ce027086e6de68f182037504b6227485} +0 -0
  349. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce9ba680277b6a7f2f6c65c077e83384 +0 -0
  350. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d4d934ea7bb7519042bc79deb3028314 → cf435b3d4a48bc16f5cc1db8f7049596} +0 -0
  351. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{672892e6983bdb28969d20d688b445c3 → d024b2e0207c1a894ac2fc0c0e002033} +0 -0
  352. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{6983eaa0179424c5a469abec763c7433 → d1b6047944a0a6e232951727bba44560} +0 -0
  353. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{306d8bf77dac0876fb62a6d7d7279f8b → d2acbd849a5e6d1809ac9e9639dbc893} +0 -0
  354. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d3e77ae2b265a7b6a4e6619ae888c02f +0 -0
  355. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{55b24a753c1452383f987ea056096fc8 → d43f3b9f17586aa28c6097e3be02822f} +0 -0
  356. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d533eddb21cd722c5216bc0bb88f1c6d +0 -0
  357. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d6205326f914ac8b2f61b0fefad24ef1 +0 -0
  358. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{1ef09ffd0e1376aabbac9def4652b166 → d79f4cb89c0bf1ea5e42bfda6e6b27c5} +0 -0
  359. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{b68666c0d1bd7d3d06bacd7767043149 → d917eb39b30dcf6725854039c98a5012} +0 -0
  360. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{3a6a4e5299d2063b2dd6e980fa0551d5 → de1a47afa53c502369479e8dbbfebd9b} +0 -0
  361. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{e7da37b727b2c61d4f654f88ebda783d → dee3a9569b9ee7368f88a014ba475c3a} +0 -0
  362. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e1309c718c63004add03fd7c472ec5c1 +0 -0
  363. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d4de3cd17da73d9e0d3c4ff1142385c3 → e3e93c085f3fc84da01f92b8d61981ae} +0 -0
  364. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e5ce6cd41375d04320a8a3150db827a3 +0 -0
  365. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{8864a718fb2c0b6c297e9efbd210e1f5 → e613b18c9e1811582dc0aeaf095e56ae} +0 -0
  366. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{c242b461c1c4aa60e2dfa5486dc9a1a8 → e69a4b84ef07dbc0ac277803d272a6fa} +0 -0
  367. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d104a4ce0d9dc0398049425d45fd6e47 → e72ab273009021b9a7b5770457a9d13b} +0 -0
  368. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2998aba256780a65cc4058fdd00f3b8f → ebf2567e766b39401f690380a2d00e66} +0 -0
  369. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ec99299f858e97986ac4ba883d94826c +0 -0
  370. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ecddf8ef16cc19c9634433c4f5dcc256 +0 -0
  371. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{2e96c0383b32e1ec0746b08f3bea0c7b → eefb724057cd7d3f1e6fee605910718d} +0 -0
  372. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{51173669b5ab5031ba6c9eff069b6ae7 → f1f9a7b96317af0df54445979f298b68} +0 -0
  373. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f342ebdd61bbcd9b91b4d09aac84b7e6 +0 -0
  374. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{d778ac3298efe5fc7d13405e66041015 → f37153d14eee1485b7d6bb7bd5196af6} +0 -0
  375. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f3ad8cf21b94a7a5f382482e0529fe3c +0 -0
  376. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{1c166333b9ae232ca3c43174ff7ed396 → f4f596c9ba337be0d71e4ef01d05e45c} +0 -0
  377. data/spec/dummy_app/tmp/cache/assets/test/sprockets/{b1f49e09b0df0a360d041969f76da859 → fe334a948fd2e5baccfa25d2c4abffc4} +0 -0
  378. data/spec/dummy_app/tmp/dragonfly/cache/body/3e/2e27ad204d468500de8d9902b63d1e88657389 +4 -0
  379. data/spec/dummy_app/tmp/{cache/assets/test/sprockets/b1b5c83a14fd8b2081cbb32dd26021c4 → dragonfly/cache/body/6f/58795de38055147320844c9fa5ff32e0aa123e} +0 -0
  380. data/spec/dummy_app/tmp/dragonfly/cache/meta/1c/caf9bcaeb88256d4e9505faaa85621e4b53a8d +0 -0
  381. data/spec/dummy_app/tmp/dragonfly/cache/meta/25/1c81c04032b247ef575f4c929301f7f1963a39 +0 -0
  382. data/spec/dummy_app/tmp/dragonfly/cache/meta/2b/b5469f96538f0f47bb9c2828b5f970fae89a8d +0 -0
  383. data/spec/dummy_app/tmp/dragonfly/cache/meta/2e/276270b8e924ea3de50db2ad7a265c3bc4f0a1 +0 -0
  384. data/spec/dummy_app/tmp/dragonfly/cache/meta/62/36dfc092f525f643ded34bb316308d788f8f41 +0 -0
  385. data/spec/dummy_app/tmp/dragonfly/cache/meta/70/d58ddc461366882590f97c0d9ea3af5545b5a1 +0 -0
  386. data/spec/dummy_app/tmp/dragonfly/cache/meta/bd/bb171fbf5c5c34eff7efc8fa78817acc7dea9d +0 -0
  387. data/spec/dummy_app/tmp/dragonfly/cache/meta/d1/6c9c5ef0b7ae606b4a12cb7daf2fa7dc21acd5 +0 -0
  388. data/spec/factories.rb +2 -3
  389. data/spec/helpers/rails_admin/application_helper_spec.rb +86 -86
  390. data/spec/helpers/rails_admin/form_builder_spec.rb +6 -6
  391. data/spec/integration/authorization/cancan_spec.rb +168 -173
  392. data/spec/integration/basic/bulk_action/rails_admin_basic_bulk_action_spec.rb +11 -11
  393. data/spec/integration/basic/bulk_destroy/rails_admin_basic_bulk_destroy_spec.rb +16 -16
  394. data/spec/integration/basic/create/rails_admin_basic_create_spec.rb +69 -69
  395. data/spec/integration/basic/create/rails_admin_namespaced_model_create_spec.rb +8 -8
  396. data/spec/integration/basic/delete/rails_admin_basic_delete_spec.rb +21 -21
  397. data/spec/integration/basic/destroy/rails_admin_basic_destroy_spec.rb +32 -32
  398. data/spec/integration/basic/edit/rails_admin_basic_edit_spec.rb +39 -39
  399. data/spec/integration/basic/export/rails_admin_basic_export_spec.rb +36 -36
  400. data/spec/integration/basic/list/rails_admin_basic_list_spec.rb +194 -102
  401. data/spec/integration/basic/new/rails_admin_basic_new_spec.rb +30 -30
  402. data/spec/integration/basic/new/rails_admin_namespaced_model_new_spec.rb +12 -12
  403. data/spec/integration/basic/show/rails_admin_basic_show_spec.rb +34 -34
  404. data/spec/integration/basic/update/rails_admin_basic_update_spec.rb +90 -90
  405. data/spec/integration/config/edit/rails_admin_config_edit_spec.rb +351 -352
  406. data/spec/integration/config/list/rails_admin_config_list_spec.rb +132 -133
  407. data/spec/integration/config/show/rails_admin_config_show_spec.rb +82 -83
  408. data/spec/integration/history/rails_admin_history_spec.rb +15 -15
  409. data/spec/integration/rails_admin_spec.rb +48 -49
  410. data/spec/integration/relation_spec.rb +12 -12
  411. data/spec/orm/active_record.rb +7 -4
  412. data/spec/orm/mongoid.rb +1 -7
  413. data/spec/rails_admin/abstract_model_spec.rb +28 -28
  414. data/spec/rails_admin/active_record_extension_spec.rb +3 -3
  415. data/spec/rails_admin/adapters/active_record/abstract_object_spec.rb +29 -29
  416. data/spec/rails_admin/adapters/active_record_spec.rb +210 -215
  417. data/spec/rails_admin/adapters/mongoid/abstract_object_spec.rb +19 -19
  418. data/spec/rails_admin/adapters/mongoid_spec.rb +429 -435
  419. data/spec/rails_admin/config/actions/base_spec.rb +9 -9
  420. data/spec/rails_admin/config/actions_spec.rb +42 -42
  421. data/spec/rails_admin/config/fields/base_spec.rb +135 -136
  422. data/spec/rails_admin/config/fields/date_spec.rb +17 -17
  423. data/spec/rails_admin/config/fields/datetime_spec.rb +12 -13
  424. data/spec/rails_admin/config/fields/file_upload_spec.rb +4 -5
  425. data/spec/rails_admin/config/fields/time_spec.rb +12 -13
  426. data/spec/rails_admin/config/fields/timestamp_spec.rb +5 -5
  427. data/spec/rails_admin/config/fields/types/ck_editor_spec.rb +1 -1
  428. data/spec/rails_admin/config/fields/types/datetime_spec.rb +2 -2
  429. data/spec/rails_admin/config/fields_spec.rb +4 -4
  430. data/spec/rails_admin/config/has_fields_spec.rb +4 -4
  431. data/spec/rails_admin/config/lazy_model_spec.rb +5 -5
  432. data/spec/rails_admin/config/model_spec.rb +50 -50
  433. data/spec/rails_admin/config/proxyable/proxy_spec.rb +7 -10
  434. data/spec/rails_admin/config/sections_spec.rb +22 -22
  435. data/spec/rails_admin/config_spec.rb +81 -80
  436. data/spec/rails_admin/support/csv_converter_spec.rb +3 -3
  437. data/spec/spec_helper.rb +11 -14
  438. metadata +509 -548
  439. metadata.gz.sig +0 -0
  440. data/lib/generators/rails_admin/templates/drop.rb +0 -18
  441. data/lib/generators/rails_admin/templates/migration.rb +0 -18
  442. data/lib/generators/rails_admin/uninstall_generator.rb +0 -22
  443. data/spec/dummy_app/tmp/cache/assets/test/sass/245c4be20f01db9121b0992275b77e082f23d7df/font-awesome-4-compability.scssc +0 -0
  444. data/spec/dummy_app/tmp/cache/assets/test/sass/ec09962bad77c2bf0bbd3ac3d62b1dd18394a9fe/font-awesome.css.erbc +0 -0
  445. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0166686128d421b993db59eb5e22c92c +0 -0
  446. data/spec/dummy_app/tmp/cache/assets/test/sprockets/03c695c9019f09cbb02f63a7ae21d79f +0 -0
  447. data/spec/dummy_app/tmp/cache/assets/test/sprockets/09f8aac43754fe92352c1a0dac795897 +0 -0
  448. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0ae5c9a0fc0ac395440fd4a9475ad717 +0 -0
  449. data/spec/dummy_app/tmp/cache/assets/test/sprockets/11f4d136083919b98336de97c5a27364 +0 -0
  450. data/spec/dummy_app/tmp/cache/assets/test/sprockets/128dcffe5acb878aaf10cb69ede11e54 +0 -0
  451. data/spec/dummy_app/tmp/cache/assets/test/sprockets/143fa89e22fd0f160912728242c12d20 +0 -0
  452. data/spec/dummy_app/tmp/cache/assets/test/sprockets/174a5ce6774da56e0d025f915d2a5656 +0 -0
  453. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1e909aba91e1216beb4533895a4a6ffa +0 -0
  454. data/spec/dummy_app/tmp/cache/assets/test/sprockets/21af0c9472c74ff4307411a74eb52a08 +0 -0
  455. data/spec/dummy_app/tmp/cache/assets/test/sprockets/232be00ca912eb52d6fc11676eee2f52 +0 -0
  456. data/spec/dummy_app/tmp/cache/assets/test/sprockets/245b58f60816ff2e286784b47a8124a6 +0 -0
  457. data/spec/dummy_app/tmp/cache/assets/test/sprockets/24df57fbd4ef4a5d613ab3360a611f9d +0 -0
  458. data/spec/dummy_app/tmp/cache/assets/test/sprockets/26495c65c6a62b71419149d7dd3b601b +0 -0
  459. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2d69e41d82df0b55096aed4faa6f16c6 +0 -0
  460. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2f60f107ce85662c1588f521bb9e2c8b +0 -0
  461. data/spec/dummy_app/tmp/cache/assets/test/sprockets/30061ffe89ebc51d869d6b363b18a7cf +0 -0
  462. data/spec/dummy_app/tmp/cache/assets/test/sprockets/34ac1a6bcf81e3f9139511c7be3dfed9 +0 -0
  463. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3c44e3b6e6c89b71c859ee6552fd8abb +0 -0
  464. data/spec/dummy_app/tmp/cache/assets/test/sprockets/412440cb48736db6d625f0ecb113344d +0 -0
  465. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4557193886d8770d362ce8103d320b9f +0 -0
  466. data/spec/dummy_app/tmp/cache/assets/test/sprockets/498f25956085afc83e15c44ffb1170e6 +0 -0
  467. data/spec/dummy_app/tmp/cache/assets/test/sprockets/57dc08580327982fc6a9e8c0a7f168ad +0 -0
  468. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5a6cbfd514173d817be78f9d005c5680 +0 -0
  469. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2c9668e1a6c05d64b5c7cd79ddd647 +0 -0
  470. data/spec/dummy_app/tmp/cache/assets/test/sprockets/64277385d99fc22b7ff9fa9cacc0dc93 +0 -0
  471. data/spec/dummy_app/tmp/cache/assets/test/sprockets/66c9b69b948666df4d011498e6631eed +0 -0
  472. data/spec/dummy_app/tmp/cache/assets/test/sprockets/696be962f98b08b9fee127ddd7e99903 +0 -0
  473. data/spec/dummy_app/tmp/cache/assets/test/sprockets/69d2c687f9659c7d6fb668bddb032834 +0 -0
  474. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6bd55d53bef2f0dd81671f0f02f7d3ed +0 -0
  475. data/spec/dummy_app/tmp/cache/assets/test/sprockets/70b145271cbc457a0b6fd0c63af2983f +0 -0
  476. data/spec/dummy_app/tmp/cache/assets/test/sprockets/73f41636108e88974107e84d4d50801d +0 -0
  477. data/spec/dummy_app/tmp/cache/assets/test/sprockets/75f716413cdabd240c8b85adc42ddad9 +0 -0
  478. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7741691076a9f393f20d291004464ac0 +0 -0
  479. data/spec/dummy_app/tmp/cache/assets/test/sprockets/785ad3ea421e6a5227ad573a68eb210e +0 -0
  480. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7a9b30ad67a8c153e95d638e962bf463 +0 -0
  481. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7aa93b56c89c66301f9154d27ea9014f +0 -0
  482. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7c081ddde599ff1c2e0006defac49285 +0 -0
  483. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7ef92f534d8e2b3abde760d1813145d9 +0 -0
  484. data/spec/dummy_app/tmp/cache/assets/test/sprockets/82d50803717341c893f612a86d9a1400 +0 -0
  485. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8626144fc98fb2a6c7ede9bf55f84cac +0 -0
  486. data/spec/dummy_app/tmp/cache/assets/test/sprockets/898f5214bcdb21409c81c8aade73b535 +0 -0
  487. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8f5d6d8fba731caff3f9e84487876612 +0 -0
  488. data/spec/dummy_app/tmp/cache/assets/test/sprockets/91c2a4d8729e7c56e56029d18edb1176 +0 -0
  489. data/spec/dummy_app/tmp/cache/assets/test/sprockets/99e5beb37b7130f59a12936b6b763447 +0 -0
  490. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9ad9a36052fd8184d3634f8edbf52a68 +0 -0
  491. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a70e63d06a6899f97de5cf676b2c395c +0 -0
  492. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b1b02c2fe88268d3d00709aeca4c2eb5 +0 -0
  493. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b95121cacfdf3b3cd1197526fbc6c098 +0 -0
  494. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bab598b96111d2c4545459320f65853b +0 -0
  495. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bbc9f2cbbd599b8b17e585cd2ebfc9a2 +0 -0
  496. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c1bbc7c7493a2006f9116a79be4aad50 +0 -0
  497. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c3381e393b50c9df2f8b97e4634b1349 +0 -0
  498. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c402e3bddd9e25c23e52df17c8bb42a3 +0 -0
  499. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c7222887ab4570345607228eed54b7c4 +0 -0
  500. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d4e4ebef5c7337c61bee8cc343e473d4 +0 -0
  501. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d5150138d2eedf2573c71dbd75180e2a +0 -0
  502. data/spec/dummy_app/tmp/cache/assets/test/sprockets/dbeda8fff4e9b5084fd1bc79a0f220d0 +0 -0
  503. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e43b6fc5e743fc33b6ec77b00fc1c916 +0 -0
  504. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ec6a90e298605bce56e3e47e1c4a6d5c +0 -0
  505. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ef41f276ef9b69b0d57e4566493cc15d +0 -0
  506. data/spec/dummy_app/tmp/cache/assets/test/sprockets/efba5ca5522c353d79d1b624f22179c1 +0 -0
  507. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f304c66c0c0e65597b8a53e4b9883357 +0 -0
  508. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f386bc0d31bc15498eaff65440bf1ead +0 -0
  509. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f9c9bd4d84f1951260e50180fa8ae0d2 +0 -0
  510. data/spec/dummy_app/tmp/cache/assets/test/sprockets/fa6cff1eeaad0d65a825b3ebd3045070 +0 -0
  511. data/spec/dummy_app/tmp/cache/assets/test/sprockets/fead2dec6a8d5e520cd797810ef316bd +0 -0
  512. data/spec/dummy_app/tmp/dragonfly/cache/body/d9/6abc70a2bba359cc1bebcf56d7d4e522eacbad +0 -4
  513. data/spec/dummy_app/tmp/dragonfly/cache/meta/01/52bba6767d462a8815bfef629b8413079a9d31 +0 -0
  514. data/spec/dummy_app/tmp/dragonfly/cache/meta/38/703cefed91dd44c4a8fea5cbb4b17e1ebfc99d +0 -0
  515. data/spec/dummy_app/tmp/dragonfly/cache/meta/40/1d77fa6d5446212f87dac823fbdcb241ec9325 +0 -0
  516. data/spec/dummy_app/tmp/dragonfly/cache/meta/40/95eda2cf7223fc56a96360973c859a9f24d468 +0 -0
  517. data/spec/dummy_app/tmp/dragonfly/cache/meta/5b/7f94b5e3c284cefaa1531e7b5c7f20354a6735 +0 -0
  518. data/spec/dummy_app/tmp/dragonfly/cache/meta/5e/ef47362a4fd7fd0542ff5e873eb5b76d7d5002 +0 -0
  519. data/spec/dummy_app/tmp/dragonfly/cache/meta/64/5a7c779a6e798b4f85e897f1d39ef331e1678c +0 -0
  520. data/spec/dummy_app/tmp/dragonfly/cache/meta/67/d60c85f99af4a911cf86702114da2d9fff52ac +0 -0
  521. data/spec/dummy_app/tmp/dragonfly/cache/meta/82/f18afea133bee8e0c723324497383d7bb510f9 +0 -0
  522. data/spec/dummy_app/tmp/dragonfly/cache/meta/84/9965055e94a3d5727a725d174bbbed8f8ecce3 +0 -0
  523. data/spec/dummy_app/tmp/dragonfly/cache/meta/90/acadf04574dc9417c2f7c238ee48e901b92474 +0 -0
  524. data/spec/dummy_app/tmp/dragonfly/cache/meta/a8/8839a9c373f06becc049eeb4f4cdb194c1ceda +0 -0
  525. data/spec/dummy_app/tmp/dragonfly/cache/meta/b7/b845f13b154ef49a71b1be96931905695a62fc +0 -0
  526. data/spec/dummy_app/tmp/dragonfly/cache/meta/ca/9693eea0638512131858fa1fc6c43a76687529 +0 -0
  527. data/spec/dummy_app/tmp/dragonfly/cache/meta/e7/c486ba5ec259581c09ba1f4ee381c719719397 +0 -0
  528. data/spec/dummy_app/tmp/dragonfly/cache/meta/f2/220f8edf3a69687421c04f7fc325efd46ca120 +0 -0
@@ -1,38 +1,38 @@
1
1
  require 'spec_helper'
2
2
  require 'rails_admin/adapters/mongoid/abstract_object'
3
3
 
4
- describe "RailsAdmin::Adapters::Mongoid::AbstractObject", :mongoid => true do
5
- before(:each) do
4
+ describe 'RailsAdmin::Adapters::Mongoid::AbstractObject', mongoid: true do
5
+ before do
6
6
  @players = FactoryGirl.create_list :player, 3
7
7
  @draft = FactoryGirl.create :draft
8
8
  @team = RailsAdmin::Adapters::Mongoid::AbstractObject.new FactoryGirl.create :team
9
9
  end
10
10
 
11
- describe "references_many association" do
12
- it "supports retrieval of ids through foo_ids" do
11
+ describe 'references_many association' do
12
+ it 'supports retrieval of ids through foo_ids' do
13
13
  expect(@team.player_ids).to eq([])
14
- player = FactoryGirl.create :player, :team => @team
14
+ player = FactoryGirl.create :player, team: @team
15
15
  expect(@team.player_ids).to eq([player.id])
16
16
  end
17
17
 
18
- it "supports assignment of items through foo_ids=" do
18
+ it 'supports assignment of items through foo_ids=' do
19
19
  expect(@team.players).to eq([])
20
- @team.player_ids = @players.map(&:id)
20
+ @team.player_ids = @players.collect(&:id)
21
21
  @team.reload
22
- expect(@team.players.map(&:id)).to match_array @players.map(&:id)
22
+ expect(@team.players.collect(&:id)).to match_array @players.collect(&:id)
23
23
  end
24
24
 
25
- it "skips invalid id on assignment through foo_ids=" do
26
- @team.player_ids = @players.map{|item| item.id.to_s }.unshift('4f431021dcf2310db7000006')
25
+ it 'skips invalid id on assignment through foo_ids=' do
26
+ @team.player_ids = @players.collect { |item| item.id.to_s }.unshift('4f431021dcf2310db7000006')
27
27
  @team.reload
28
- @players.each &:reload
29
- expect(@team.players.map(&:id)).to match_array @players.map(&:id)
28
+ @players.each(&:reload)
29
+ expect(@team.players.collect(&:id)).to match_array @players.collect(&:id)
30
30
  end
31
31
 
32
32
  describe "model's custom setter" do
33
33
  before do
34
34
  Team.class_eval do
35
- def player_ids= players_ids
35
+ def player_ids=(players_ids)
36
36
  self.custom_field = players_ids * ', '
37
37
  end
38
38
  end
@@ -44,19 +44,19 @@ describe "RailsAdmin::Adapters::Mongoid::AbstractObject", :mongoid => true do
44
44
  end
45
45
  end
46
46
 
47
- it "have been called" do
47
+ it 'have been called' do
48
48
  expect(@team.custom_field).to eq(nil)
49
- @team.player_ids = @players.map(&:id)
50
- expect(@team.custom_field).to eq(@players.map(&:id) * ', ')
49
+ @team.player_ids = @players.collect(&:id)
50
+ expect(@team.custom_field).to eq(@players.collect(&:id) * ', ')
51
51
  end
52
52
  end
53
53
  end
54
54
 
55
- describe "references_one association" do
55
+ describe 'references_one association' do
56
56
  describe "model's custom setter" do
57
57
  before do
58
58
  Team.class_eval do
59
- def draft_id= draft_id
59
+ def draft_id=(draft_id)
60
60
  self.custom_field = draft_id.to_s
61
61
  end
62
62
  end
@@ -68,7 +68,7 @@ describe "RailsAdmin::Adapters::Mongoid::AbstractObject", :mongoid => true do
68
68
  end
69
69
  end
70
70
 
71
- it "have been called" do
71
+ it 'have been called' do
72
72
  expect(@team.custom_field).to eq(nil)
73
73
  @team.draft_id = @draft.id
74
74
  expect(@team.custom_field).to eq(@draft.id.to_s)
@@ -1,16 +1,16 @@
1
1
  require 'spec_helper'
2
2
  require 'timecop'
3
3
 
4
- describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
5
- describe "#associations" do
4
+ describe 'RailsAdmin::Adapters::Mongoid', mongoid: true do
5
+ describe '#associations' do
6
6
  before :all do
7
7
  RailsAdmin::AbstractModel.reset_polymorphic_parents
8
8
 
9
9
  class MongoBlog
10
10
  include Mongoid::Document
11
11
  has_many :mongo_posts
12
- has_many :mongo_comments, :as => :commentable
13
- belongs_to :librarian, :polymorphic => true
12
+ has_many :mongo_comments, as: :commentable
13
+ belongs_to :librarian, polymorphic: true
14
14
  field :mongo_blog_id
15
15
  end
16
16
 
@@ -18,7 +18,7 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
18
18
  include Mongoid::Document
19
19
  belongs_to :mongo_blog
20
20
  has_and_belongs_to_many :mongo_categories
21
- has_many :mongo_comments, :as => :commentable
21
+ has_many :mongo_comments, as: :commentable
22
22
  embeds_one :mongo_note
23
23
  accepts_nested_attributes_for :mongo_note
24
24
  end
@@ -26,32 +26,32 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
26
26
  class MongoCategory
27
27
  include Mongoid::Document
28
28
  has_and_belongs_to_many :mongo_posts
29
- belongs_to :librarian, :polymorphic => true
29
+ belongs_to :librarian, polymorphic: true
30
30
  end
31
31
 
32
32
  class MongoUser
33
33
  include Mongoid::Document
34
34
  has_one :mongo_profile
35
- has_many :mongo_categories, :as => :librarian
35
+ has_many :mongo_categories, as: :librarian
36
36
 
37
37
  embeds_many :mongo_notes
38
38
  accepts_nested_attributes_for :mongo_notes
39
- field :name, :type => String
40
- field :message, :type => String
41
- field :short_text, :type => String
39
+ field :name, type: String
40
+ field :message, type: String
41
+ field :short_text, type: String
42
42
 
43
- validates :short_text, :length => {:maximum => 255}
43
+ validates :short_text, length: {maximum: 255}
44
44
  end
45
45
 
46
46
  class MongoProfile
47
47
  include Mongoid::Document
48
48
  belongs_to :mongo_user
49
- has_many :mongo_blogs, :as => :librarian
49
+ has_many :mongo_blogs, as: :librarian
50
50
  end
51
51
 
52
52
  class MongoComment
53
53
  include Mongoid::Document
54
- belongs_to :commentable, :polymorphic => true
54
+ belongs_to :commentable, polymorphic: true
55
55
  end
56
56
 
57
57
  class MongoNote
@@ -72,161 +72,161 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
72
72
  RailsAdmin::AbstractModel.reset_polymorphic_parents
73
73
  end
74
74
 
75
- it "lists associations" do
76
- expect(@post.associations.map{|a| a[:name]}).to match_array [:mongo_blog, :mongo_categories, :mongo_comments, :mongo_note]
75
+ it 'lists associations' do
76
+ expect(@post.associations.collect { |a| a[:name] }).to match_array [:mongo_blog, :mongo_categories, :mongo_comments, :mongo_note]
77
77
  end
78
78
 
79
- it "reads correct and know types in [:belongs_to, :has_and_belongs_to_many, :has_many, :has_one]" do
80
- expect((@post.associations + @blog.associations + @user.associations).map{|a|a[:type].to_s}.uniq).to match_array ['belongs_to', 'has_and_belongs_to_many', 'has_many', 'has_one']
79
+ it 'reads correct and know types in [:belongs_to, :has_and_belongs_to_many, :has_many, :has_one]' do
80
+ expect((@post.associations + @blog.associations + @user.associations).collect { |a|a[:type].to_s }.uniq).to match_array %w(belongs_to has_and_belongs_to_many has_many has_one)
81
81
  end
82
82
 
83
- it "has correct parameter of belongs_to association" do
84
- param = @post.associations.find{|a| a[:name] == :mongo_blog}
85
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
86
- :name => :mongo_blog,
87
- :pretty_name => "Mongo blog",
88
- :type => :belongs_to,
89
- :foreign_key => :mongo_blog_id,
90
- :foreign_type => nil,
91
- :foreign_inverse_of => nil,
92
- :as => nil,
93
- :polymorphic => false,
94
- :inverse_of => nil,
95
- :read_only => nil,
96
- :nested_form => nil
97
- })
83
+ it 'has correct parameter of belongs_to association' do
84
+ param = @post.associations.detect { |a| a[:name] == :mongo_blog }
85
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
86
+ name: :mongo_blog,
87
+ pretty_name: 'Mongo blog',
88
+ type: :belongs_to,
89
+ foreign_key: :mongo_blog_id,
90
+ foreign_type: nil,
91
+ foreign_inverse_of: nil,
92
+ as: nil,
93
+ polymorphic: false,
94
+ inverse_of: nil,
95
+ read_only: nil,
96
+ nested_form: nil
97
+ )
98
98
  expect(param[:primary_key_proc].call).to eq(:_id)
99
99
  expect(param[:model_proc].call).to eq(MongoBlog)
100
100
  end
101
101
 
102
- it "has correct parameter of has_many association" do
103
- param = @blog.associations.find{|a| a[:name] == :mongo_posts}
104
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
105
- :name => :mongo_posts,
106
- :pretty_name => "Mongo posts",
107
- :type => :has_many,
108
- :foreign_key => :mongo_blog_id,
109
- :foreign_type => nil,
110
- :foreign_inverse_of => nil,
111
- :as => nil,
112
- :polymorphic => false,
113
- :inverse_of => nil,
114
- :read_only => nil,
115
- :nested_form => nil
116
- })
102
+ it 'has correct parameter of has_many association' do
103
+ param = @blog.associations.detect { |a| a[:name] == :mongo_posts }
104
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
105
+ name: :mongo_posts,
106
+ pretty_name: 'Mongo posts',
107
+ type: :has_many,
108
+ foreign_key: :mongo_blog_id,
109
+ foreign_type: nil,
110
+ foreign_inverse_of: nil,
111
+ as: nil,
112
+ polymorphic: false,
113
+ inverse_of: nil,
114
+ read_only: nil,
115
+ nested_form: nil
116
+ )
117
117
  expect(param[:primary_key_proc].call).to eq(:_id)
118
118
  expect(param[:model_proc].call).to eq(MongoPost)
119
- expect(@post.properties.find{|f| f[:name] == :mongo_blog_id}[:type]).to eq(:bson_object_id)
120
- end
121
-
122
- it "does not confuse foreign_key column which belongs to associated model" do
123
- expect(@blog.properties.find{|f| f[:name] == :mongo_blog_id}[:type]).to eq(:string)
124
- end
125
-
126
- it "has correct parameter of has_and_belongs_to_many association" do
127
- param = @post.associations.find{|a| a[:name] == :mongo_categories}
128
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
129
- :name => :mongo_categories,
130
- :pretty_name => "Mongo categories",
131
- :type => :has_and_belongs_to_many,
132
- :foreign_key => :mongo_category_ids,
133
- :foreign_type => nil,
134
- :foreign_inverse_of => nil,
135
- :as => nil,
136
- :polymorphic => false,
137
- :inverse_of => nil,
138
- :read_only => nil,
139
- :nested_form => nil
140
- })
119
+ expect(@post.properties.detect { |f| f[:name] == :mongo_blog_id }[:type]).to eq(:bson_object_id)
120
+ end
121
+
122
+ it 'does not confuse foreign_key column which belongs to associated model' do
123
+ expect(@blog.properties.detect { |f| f[:name] == :mongo_blog_id }[:type]).to eq(:string)
124
+ end
125
+
126
+ it 'has correct parameter of has_and_belongs_to_many association' do
127
+ param = @post.associations.detect { |a| a[:name] == :mongo_categories }
128
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
129
+ name: :mongo_categories,
130
+ pretty_name: 'Mongo categories',
131
+ type: :has_and_belongs_to_many,
132
+ foreign_key: :mongo_category_ids,
133
+ foreign_type: nil,
134
+ foreign_inverse_of: nil,
135
+ as: nil,
136
+ polymorphic: false,
137
+ inverse_of: nil,
138
+ read_only: nil,
139
+ nested_form: nil
140
+ )
141
141
  expect(param[:primary_key_proc].call).to eq(:_id)
142
142
  expect(param[:model_proc].call).to eq(MongoCategory)
143
143
  end
144
144
 
145
- it "has correct parameter of polymorphic belongs_to association" do
146
- allow(RailsAdmin::Config).to receive(:models_pool).and_return(["MongoBlog", "MongoPost", "MongoCategory", "MongoUser", "MongoProfile", "MongoComment"])
147
- param = @comment.associations.find{|a| a[:name] == :commentable}
148
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
149
- :name => :commentable,
150
- :pretty_name => "Commentable",
151
- :type => :belongs_to,
152
- :foreign_key => :commentable_id,
153
- :foreign_type => :commentable_type,
154
- :foreign_inverse_of => nil,
155
- :as => nil,
156
- :polymorphic => true,
157
- :inverse_of => nil,
158
- :read_only => nil,
159
- :nested_form => nil
160
- })
145
+ it 'has correct parameter of polymorphic belongs_to association' do
146
+ allow(RailsAdmin::Config).to receive(:models_pool).and_return(%w(MongoBlog MongoPost MongoCategory MongoUser MongoProfile MongoComment))
147
+ param = @comment.associations.detect { |a| a[:name] == :commentable }
148
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
149
+ name: :commentable,
150
+ pretty_name: 'Commentable',
151
+ type: :belongs_to,
152
+ foreign_key: :commentable_id,
153
+ foreign_type: :commentable_type,
154
+ foreign_inverse_of: nil,
155
+ as: nil,
156
+ polymorphic: true,
157
+ inverse_of: nil,
158
+ read_only: nil,
159
+ nested_form: nil
160
+ )
161
161
  expect(param[:primary_key_proc].call).to eq(:_id)
162
162
  expect(param[:model_proc].call).to eq([MongoBlog, MongoPost])
163
163
  end
164
164
 
165
- it "has correct parameter of polymorphic inverse has_many association" do
166
- allow(RailsAdmin::Config).to receive(:models_pool).and_return(["MongoBlog", "MongoPost", "MongoCategory", "MongoUser", "MongoProfile", "MongoComment"])
167
- param = @blog.associations.find{|a| a[:name] == :mongo_comments}
168
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
169
- :name => :mongo_comments,
170
- :pretty_name => "Mongo comments",
171
- :type => :has_many,
172
- :foreign_key => :commentable_id,
173
- :foreign_type => nil,
174
- :foreign_inverse_of => nil,
175
- :as => :commentable,
176
- :polymorphic => false,
177
- :inverse_of => nil,
178
- :read_only => nil,
179
- :nested_form => nil
180
- })
165
+ it 'has correct parameter of polymorphic inverse has_many association' do
166
+ allow(RailsAdmin::Config).to receive(:models_pool).and_return(%w(MongoBlog MongoPost MongoCategory MongoUser MongoProfile MongoComment))
167
+ param = @blog.associations.detect { |a| a[:name] == :mongo_comments }
168
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
169
+ name: :mongo_comments,
170
+ pretty_name: 'Mongo comments',
171
+ type: :has_many,
172
+ foreign_key: :commentable_id,
173
+ foreign_type: nil,
174
+ foreign_inverse_of: nil,
175
+ as: :commentable,
176
+ polymorphic: false,
177
+ inverse_of: nil,
178
+ read_only: nil,
179
+ nested_form: nil
180
+ )
181
181
  expect(param[:primary_key_proc].call).to eq(:_id)
182
182
  expect(param[:model_proc].call).to eq(MongoComment)
183
183
  end
184
184
 
185
185
  it 'has correct opposite model lookup for polymorphic associations' do
186
- allow(RailsAdmin::Config).to receive(:models_pool).and_return(["MongoBlog", "MongoPost", "MongoCategory", "MongoUser", "MongoProfile", "MongoComment"])
187
- expect(@category.associations.find{|a| a[:name] == :librarian}[:model_proc].call).to eq [MongoUser]
188
- expect(@blog.associations.find{|a| a[:name] == :librarian}[:model_proc].call).to eq [MongoProfile]
189
- end
190
-
191
- it "has correct parameter of embeds_one association" do
192
- param = @post.associations.find{|a| a[:name] == :mongo_note}
193
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
194
- :name => :mongo_note,
195
- :pretty_name => "Mongo note",
196
- :type => :has_one,
197
- :foreign_key => nil,
198
- :foreign_type => nil,
199
- :foreign_inverse_of => nil,
200
- :as => nil,
201
- :polymorphic => false,
202
- :inverse_of => nil,
203
- :read_only => nil,
204
- :nested_form => {:allow_destroy => false, :update_only => false}
205
- })
186
+ allow(RailsAdmin::Config).to receive(:models_pool).and_return(%w(MongoBlog MongoPost MongoCategory MongoUser MongoProfile MongoComment))
187
+ expect(@category.associations.detect { |a| a[:name] == :librarian }[:model_proc].call).to eq [MongoUser]
188
+ expect(@blog.associations.detect { |a| a[:name] == :librarian }[:model_proc].call).to eq [MongoProfile]
189
+ end
190
+
191
+ it 'has correct parameter of embeds_one association' do
192
+ param = @post.associations.detect { |a| a[:name] == :mongo_note }
193
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
194
+ name: :mongo_note,
195
+ pretty_name: 'Mongo note',
196
+ type: :has_one,
197
+ foreign_key: nil,
198
+ foreign_type: nil,
199
+ foreign_inverse_of: nil,
200
+ as: nil,
201
+ polymorphic: false,
202
+ inverse_of: nil,
203
+ read_only: nil,
204
+ nested_form: {allow_destroy: false, update_only: false}
205
+ )
206
206
  expect(param[:primary_key_proc].call).to eq(:_id)
207
207
  expect(param[:model_proc].call).to eq(MongoNote)
208
208
  end
209
209
 
210
- it "has correct parameter of embeds_many association" do
211
- param = @user.associations.find{|a| a[:name] == :mongo_notes}
212
- expect(param.reject{|k, v| [:primary_key_proc, :model_proc].include? k }).to eq({
213
- :name => :mongo_notes,
214
- :pretty_name => "Mongo notes",
215
- :type => :has_many,
216
- :foreign_key => nil,
217
- :foreign_type => nil,
218
- :foreign_inverse_of => nil,
219
- :as => nil,
220
- :polymorphic => false,
221
- :inverse_of => nil,
222
- :read_only => nil,
223
- :nested_form => {:allow_destroy => false, :update_only => false}
224
- })
210
+ it 'has correct parameter of embeds_many association' do
211
+ param = @user.associations.detect { |a| a[:name] == :mongo_notes }
212
+ expect(param.reject { |k, v| [:primary_key_proc, :model_proc].include? k }).to eq(
213
+ name: :mongo_notes,
214
+ pretty_name: 'Mongo notes',
215
+ type: :has_many,
216
+ foreign_key: nil,
217
+ foreign_type: nil,
218
+ foreign_inverse_of: nil,
219
+ as: nil,
220
+ polymorphic: false,
221
+ inverse_of: nil,
222
+ read_only: nil,
223
+ nested_form: {allow_destroy: false, update_only: false}
224
+ )
225
225
  expect(param[:primary_key_proc].call).to eq(:_id)
226
226
  expect(param[:model_proc].call).to eq(MongoNote)
227
227
  end
228
228
 
229
- it "raises error when embeds_* is used without accepts_nested_attributes_for" do
229
+ it 'raises error when embeds_* is used without accepts_nested_attributes_for' do
230
230
  class MongoEmbedsOne
231
231
  include Mongoid::Document
232
232
  embeds_one :mongo_embedded
@@ -253,17 +253,17 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
253
253
  recursively_embeds_many
254
254
  end
255
255
 
256
- expect(lambda{ RailsAdmin::AbstractModel.new(MongoEmbedsOne).associations }).to raise_error(RuntimeError,
257
- "Embbeded association without accepts_nested_attributes_for can't be handled by RailsAdmin,\nbecause embedded model doesn't have top-level access.\nPlease add `accepts_nested_attributes_for :mongo_embedded' line to `MongoEmbedsOne' model.\n"
256
+ expect(lambda { RailsAdmin::AbstractModel.new(MongoEmbedsOne).associations }).to raise_error(RuntimeError,
257
+ "Embbeded association without accepts_nested_attributes_for can't be handled by RailsAdmin,\nbecause embedded model doesn't have top-level access.\nPlease add `accepts_nested_attributes_for :mongo_embedded' line to `MongoEmbedsOne' model.\n"
258
258
  )
259
- expect(lambda{ RailsAdmin::AbstractModel.new(MongoEmbedsMany).associations }).to raise_error(RuntimeError,
260
- "Embbeded association without accepts_nested_attributes_for can't be handled by RailsAdmin,\nbecause embedded model doesn't have top-level access.\nPlease add `accepts_nested_attributes_for :mongo_embeddeds' line to `MongoEmbedsMany' model.\n"
259
+ expect(lambda { RailsAdmin::AbstractModel.new(MongoEmbedsMany).associations }).to raise_error(RuntimeError,
260
+ "Embbeded association without accepts_nested_attributes_for can't be handled by RailsAdmin,\nbecause embedded model doesn't have top-level access.\nPlease add `accepts_nested_attributes_for :mongo_embeddeds' line to `MongoEmbedsMany' model.\n"
261
261
  )
262
- expect(lambda{ RailsAdmin::AbstractModel.new(MongoRecursivelyEmbedsOne).associations }).not_to raise_error
263
- expect(lambda{ RailsAdmin::AbstractModel.new(MongoRecursivelyEmbedsMany).associations }).not_to raise_error
262
+ expect(lambda { RailsAdmin::AbstractModel.new(MongoRecursivelyEmbedsOne).associations }).not_to raise_error
263
+ expect(lambda { RailsAdmin::AbstractModel.new(MongoRecursivelyEmbedsMany).associations }).not_to raise_error
264
264
  end
265
265
 
266
- it "works with inherited embeds_many model" do
266
+ it 'works with inherited embeds_many model' do
267
267
  class MongoEmbedsParent
268
268
  include Mongoid::Document
269
269
  embeds_many :mongo_embeddeds
@@ -277,252 +277,249 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
277
277
 
278
278
  class MongoEmbedsChild < MongoEmbedsParent; end
279
279
 
280
- expect(lambda{ RailsAdmin::AbstractModel.new(MongoEmbedsChild).associations }).not_to raise_error
280
+ expect(lambda { RailsAdmin::AbstractModel.new(MongoEmbedsChild).associations }).not_to raise_error
281
281
  end
282
282
  end
283
283
 
284
- describe "#properties" do
284
+ describe '#properties' do
285
285
  before :all do
286
286
  @abstract_model = RailsAdmin::AbstractModel.new(FieldTest)
287
287
  end
288
288
 
289
- it "maps Mongoid column types to RA types" do
290
- expect(@abstract_model.properties.select{|p| %w(_id array_field big_decimal_field
291
- boolean_field bson_object_id_field bson_binary_field date_field datetime_field
292
- time_with_zone_field default_field float_field hash_field integer_field name
293
- object_field range_field short_text string_field subject symbol_field text_field
294
- time_field title).include? p[:name].to_s}).to match_array [
295
- { :name => :_id,
296
- :pretty_name => "Id",
297
- :nullable? => true,
298
- :serial? => true,
299
- :type => :bson_object_id,
300
- :length => nil },
301
- { :name => :array_field,
302
- :pretty_name => "Array field",
303
- :nullable? => true,
304
- :serial? => false,
305
- :type => :serialized,
306
- :length => nil },
307
- { :name => :big_decimal_field,
308
- :pretty_name => "Big decimal field",
309
- :nullable? => true,
310
- :serial? => false,
311
- :type => :decimal,
312
- :length => nil },
313
- { :name => :boolean_field,
314
- :pretty_name => "Boolean field",
315
- :nullable? => true,
316
- :serial? => false,
317
- :type => :boolean,
318
- :length => nil },
319
- { :name => :bson_object_id_field,
320
- :pretty_name => "Bson object id field",
321
- :nullable? => true,
322
- :serial? => false,
323
- :type => :bson_object_id,
324
- :length => nil },
325
- { :name => :date_field,
326
- :pretty_name => "Date field",
327
- :nullable? => true,
328
- :serial? => false,
329
- :type => :date,
330
- :length => nil },
331
- { :name => :datetime_field,
332
- :pretty_name => "Datetime field",
333
- :nullable? => true,
334
- :serial? => false,
335
- :type => :datetime,
336
- :length => nil },
337
- { :name => :time_with_zone_field,
338
- :pretty_name => "Time with zone field",
339
- :nullable? => true,
340
- :serial? => false,
341
- :type => :datetime,
342
- :length => nil },
343
- { :name => :default_field,
344
- :pretty_name => "Default field",
345
- :nullable? => true,
346
- :serial? => false,
347
- :type => :string,
348
- :length => 255 },
349
- { :name => :float_field,
350
- :pretty_name => "Float field",
351
- :nullable? => true,
352
- :serial? => false,
353
- :type => :float,
354
- :length => nil },
355
- { :name => :hash_field,
356
- :pretty_name => "Hash field",
357
- :nullable? => true,
358
- :serial? => false,
359
- :type => :serialized,
360
- :length => nil },
361
- { :name => :integer_field,
362
- :pretty_name => "Integer field",
363
- :nullable? => true,
364
- :serial? => false,
365
- :type => :integer,
366
- :length => nil },
367
- { :name => :name,
368
- :pretty_name => "Name",
369
- :nullable? => true,
370
- :serial? => false,
371
- :type => :string,
372
- :length => 255 },
373
- { :name => :object_field,
374
- :pretty_name => "Object field",
375
- :nullable? => true,
376
- :serial? => false,
377
- :type => :string,
378
- :length => 255 },
379
- { :name => :short_text,
380
- :pretty_name => "Short text",
381
- :nullable? => true,
382
- :serial? => false,
383
- :type => :string,
384
- :length => 255 },
385
- { :name => :string_field,
386
- :pretty_name => "String field",
387
- :nullable? => true,
388
- :serial? => false,
389
- :type => :text,
390
- :length => nil },
391
- { :name => :subject,
392
- :pretty_name => "Subject",
393
- :nullable? => true,
394
- :serial? => false,
395
- :type => :string,
396
- :length => 255 },
397
- { :name => :symbol_field,
398
- :pretty_name => "Symbol field",
399
- :nullable? => true,
400
- :serial? => false,
401
- :type => :string,
402
- :length => 255 },
403
- { :name => :text_field,
404
- :pretty_name => "Text field",
405
- :nullable? => true,
406
- :serial? => false,
407
- :type => :text,
408
- :length => nil },
409
- { :name => :time_field,
410
- :pretty_name => "Time field",
411
- :nullable? => true,
412
- :serial? => false,
413
- :type => :datetime,
414
- :length => nil },
415
- { :name => :title,
416
- :pretty_name => "Title",
417
- :nullable? => true,
418
- :serial? => false,
419
- :type => :string,
420
- :length => 255 }
289
+ it 'maps Mongoid column types to RA types' do
290
+ properties = %w(_id array_field big_decimal_field boolean_field bson_object_id_field bson_binary_field date_field datetime_field time_with_zone_field default_field float_field hash_field integer_field name object_field range_field short_text string_field subject symbol_field text_field time_field title)
291
+ expect(@abstract_model.properties.select { |p| properties.include? p[:name].to_s }).to match_array [
292
+ {:name => :_id,
293
+ :pretty_name => 'Id',
294
+ :nullable? => true,
295
+ :serial? => true,
296
+ :type => :bson_object_id,
297
+ :length => nil},
298
+ {:name => :array_field,
299
+ :pretty_name => 'Array field',
300
+ :nullable? => true,
301
+ :serial? => false,
302
+ :type => :serialized,
303
+ :length => nil},
304
+ {:name => :big_decimal_field,
305
+ :pretty_name => 'Big decimal field',
306
+ :nullable? => true,
307
+ :serial? => false,
308
+ :type => :decimal,
309
+ :length => nil},
310
+ {:name => :boolean_field,
311
+ :pretty_name => 'Boolean field',
312
+ :nullable? => true,
313
+ :serial? => false,
314
+ :type => :boolean,
315
+ :length => nil},
316
+ {:name => :bson_object_id_field,
317
+ :pretty_name => 'Bson object id field',
318
+ :nullable? => true,
319
+ :serial? => false,
320
+ :type => :bson_object_id,
321
+ :length => nil},
322
+ {:name => :date_field,
323
+ :pretty_name => 'Date field',
324
+ :nullable? => true,
325
+ :serial? => false,
326
+ :type => :date,
327
+ :length => nil},
328
+ {:name => :datetime_field,
329
+ :pretty_name => 'Datetime field',
330
+ :nullable? => true,
331
+ :serial? => false,
332
+ :type => :datetime,
333
+ :length => nil},
334
+ {:name => :time_with_zone_field,
335
+ :pretty_name => 'Time with zone field',
336
+ :nullable? => true,
337
+ :serial? => false,
338
+ :type => :datetime,
339
+ :length => nil},
340
+ {:name => :default_field,
341
+ :pretty_name => 'Default field',
342
+ :nullable? => true,
343
+ :serial? => false,
344
+ :type => :string,
345
+ :length => 255},
346
+ {:name => :float_field,
347
+ :pretty_name => 'Float field',
348
+ :nullable? => true,
349
+ :serial? => false,
350
+ :type => :float,
351
+ :length => nil},
352
+ {:name => :hash_field,
353
+ :pretty_name => 'Hash field',
354
+ :nullable? => true,
355
+ :serial? => false,
356
+ :type => :serialized,
357
+ :length => nil},
358
+ {:name => :integer_field,
359
+ :pretty_name => 'Integer field',
360
+ :nullable? => true,
361
+ :serial? => false,
362
+ :type => :integer,
363
+ :length => nil},
364
+ {:name => :name,
365
+ :pretty_name => 'Name',
366
+ :nullable? => true,
367
+ :serial? => false,
368
+ :type => :string,
369
+ :length => 255},
370
+ {:name => :object_field,
371
+ :pretty_name => 'Object field',
372
+ :nullable? => true,
373
+ :serial? => false,
374
+ :type => :string,
375
+ :length => 255},
376
+ {:name => :short_text,
377
+ :pretty_name => 'Short text',
378
+ :nullable? => true,
379
+ :serial? => false,
380
+ :type => :string,
381
+ :length => 255},
382
+ {:name => :string_field,
383
+ :pretty_name => 'String field',
384
+ :nullable? => true,
385
+ :serial? => false,
386
+ :type => :text,
387
+ :length => nil},
388
+ {:name => :subject,
389
+ :pretty_name => 'Subject',
390
+ :nullable? => true,
391
+ :serial? => false,
392
+ :type => :string,
393
+ :length => 255},
394
+ {:name => :symbol_field,
395
+ :pretty_name => 'Symbol field',
396
+ :nullable? => true,
397
+ :serial? => false,
398
+ :type => :string,
399
+ :length => 255},
400
+ {:name => :text_field,
401
+ :pretty_name => 'Text field',
402
+ :nullable? => true,
403
+ :serial? => false,
404
+ :type => :text,
405
+ :length => nil},
406
+ {:name => :time_field,
407
+ :pretty_name => 'Time field',
408
+ :nullable? => true,
409
+ :serial? => false,
410
+ :type => :datetime,
411
+ :length => nil},
412
+ {:name => :title,
413
+ :pretty_name => 'Title',
414
+ :nullable? => true,
415
+ :serial? => false,
416
+ :type => :string,
417
+ :length => 255}
421
418
  ]
422
419
  end
423
420
 
424
- it "detects validation length properly" do
421
+ it 'detects validation length properly' do
425
422
  class LengthValiated
426
423
  include Mongoid::Document
427
- field :text, :type => String
428
- validates :text, :length => {:maximum => 50}
424
+ field :text, type: String
425
+ validates :text, length: {maximum: 50}
429
426
  end
430
427
  expect(RailsAdmin::AbstractModel.new('LengthValiated').send(:length_validation_lookup, :text)).to eq(50)
431
428
  end
432
429
 
433
- it "does not cause problem with custom validators" do
430
+ it 'does not cause problem with custom validators' do
434
431
  class MyCustomValidator < ActiveModel::Validator
435
432
  def validate(r); end
436
433
  end
437
434
  class CustomValiated
438
435
  include Mongoid::Document
439
- field :text, :type => String
436
+ field :text, type: String
440
437
  validates_with MyCustomValidator
441
438
  end
442
- expect(lambda{ RailsAdmin::AbstractModel.new('CustomValiated').send(:length_validation_lookup, :text) }).not_to raise_error
439
+ expect(lambda { RailsAdmin::AbstractModel.new('CustomValiated').send(:length_validation_lookup, :text) }).not_to raise_error
443
440
  end
444
441
  end
445
442
 
446
- describe "data access method" do
443
+ describe 'data access method' do
447
444
  before do
448
445
  @players = FactoryGirl.create_list(:player, 3)
449
446
  @abstract_model = RailsAdmin::AbstractModel.new('Player')
450
447
  end
451
448
 
452
- it "#new returns instance of AbstractObject" do
449
+ it '#new returns instance of AbstractObject' do
453
450
  expect(@abstract_model.new.object).to be_instance_of(Player)
454
451
  end
455
452
 
456
- it "#get returns instance of AbstractObject" do
453
+ it '#get returns instance of AbstractObject' do
457
454
  expect(@abstract_model.get(@players.first.id.to_s).object).to eq(@players.first)
458
455
  end
459
456
 
460
- it "#get returns nil when id does not exist" do
457
+ it '#get returns nil when id does not exist' do
461
458
  expect(@abstract_model.get('4f4f0824dcf2315093000000')).to be_nil
462
459
  end
463
460
 
464
- it "#first returns a player" do
461
+ it '#first returns a player' do
465
462
  expect(@players).to include @abstract_model.first
466
463
  end
467
464
 
468
- it "#count returns count of items" do
465
+ it '#count returns count of items' do
469
466
  expect(@abstract_model.count).to eq(@players.count)
470
467
  end
471
468
 
472
- it "#destroy destroys multiple items" do
469
+ it '#destroy destroys multiple items' do
473
470
  @abstract_model.destroy(@players[0..1])
474
471
  expect(Player.all).to eq(@players[2..2])
475
472
  end
476
473
 
477
- it "#where returns filtered results" do
478
- expect(@abstract_model.where(:name => @players.first.name).to_a).to eq([@players.first])
474
+ it '#where returns filtered results' do
475
+ expect(@abstract_model.where(name: @players.first.name).to_a).to eq([@players.first])
479
476
  end
480
477
 
481
- describe "#all" do
482
- it "works without options" do
478
+ describe '#all' do
479
+ it 'works without options' do
483
480
  expect(@abstract_model.all.to_a).to match_array @players
484
481
  end
485
482
 
486
- it "supports eager loading" do
487
- expect(@abstract_model.all(:include => :team).inclusions.map{|i| i.class_name}).to eq(["Team"])
483
+ it 'supports eager loading' do
484
+ expect(@abstract_model.all(include: :team).inclusions.collect { |i| i.class_name }).to eq(['Team'])
488
485
  end
489
486
 
490
- it "supports limiting" do
491
- expect(@abstract_model.all(:limit => 2).to_a).to have(2).items
487
+ it 'supports limiting' do
488
+ expect(@abstract_model.all(limit: 2).to_a).to have(2).items
492
489
  end
493
490
 
494
- it "supports retrieval by bulk_ids" do
495
- expect(@abstract_model.all(:bulk_ids => @players[0..1].map{|player| player.id.to_s }).to_a).to match_array @players[0..1]
491
+ it 'supports retrieval by bulk_ids' do
492
+ expect(@abstract_model.all(bulk_ids: @players[0..1].collect { |player| player.id.to_s }).to_a).to match_array @players[0..1]
496
493
  end
497
494
 
498
- it "supports pagination" do
499
- expect(@abstract_model.all(:sort => 'players._id', :page => 2, :per => 1).to_a).to eq(@players[1..1])
495
+ it 'supports pagination' do
496
+ expect(@abstract_model.all(sort: 'players._id', page: 2, per: 1).to_a).to eq(@players[1..1])
500
497
  # To prevent RSpec matcher to call Mongoid::Criteria#== method,
501
498
  # (we want to test equality of query result, not of Mongoid criteria)
502
499
  # to_a is added to invoke Mongoid query
503
500
  end
504
501
 
505
- it "supports ordering" do
506
- expect(@abstract_model.all(:sort => 'players._id', :sort_reverse => true).to_a).to eq(@players.sort)
507
- expect(@abstract_model.all(:sort => 'players._id', :sort_reverse => false).to_a).to eq(@players.sort.reverse)
502
+ it 'supports ordering' do
503
+ expect(@abstract_model.all(sort: 'players._id', sort_reverse: true).to_a).to eq(@players.sort)
504
+ expect(@abstract_model.all(sort: 'players._id', sort_reverse: false).to_a).to eq(@players.sort.reverse)
508
505
  end
509
506
 
510
- it "supports querying" do
511
- expect(@abstract_model.all(:query => @players[1].name)).to eq(@players[1..1])
507
+ it 'supports querying' do
508
+ expect(@abstract_model.all(query: @players[1].name)).to eq(@players[1..1])
512
509
  end
513
510
 
514
- it "supports filtering" do
515
- expect(@abstract_model.all(:filters => {"name" => {"0000" => {:o => "is", :v => @players[1].name}}})).to eq(@players[1..1])
511
+ it 'supports filtering' do
512
+ expect(@abstract_model.all(filters: {'name' => {'0000' => {o: 'is', v: @players[1].name}}})).to eq(@players[1..1])
516
513
  end
517
514
 
518
- it "ignores non-existent field name on filtering" do
519
- expect(lambda{ @abstract_model.all(:filters => {"dummy" => {"0000" => {:o => "is", :v => @players[1].name}}}) }).not_to raise_error
515
+ it 'ignores non-existent field name on filtering' do
516
+ expect(lambda { @abstract_model.all(filters: {'dummy' => {'0000' => {o: 'is', v: @players[1].name}}}) }).not_to raise_error
520
517
  end
521
518
  end
522
519
  end
523
520
 
524
- describe "searching on association" do
525
- describe "whose type is belongs_to" do
521
+ describe 'searching on association' do
522
+ describe 'whose type is belongs_to' do
526
523
  before do
527
524
  RailsAdmin.config Player do
528
525
  field :team do
@@ -530,21 +527,21 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
530
527
  end
531
528
  end
532
529
  @players = FactoryGirl.create_list(:player, 3)
533
- @team = FactoryGirl.create :team, :name => 'foobar'
530
+ @team = FactoryGirl.create :team, name: 'foobar'
534
531
  @team.players << @players[1]
535
532
  @abstract_model = RailsAdmin::AbstractModel.new('Player')
536
533
  end
537
534
 
538
- it "supports querying" do
539
- expect(@abstract_model.all(:query => 'foobar').to_a).to eq(@players[1..1])
535
+ it 'supports querying' do
536
+ expect(@abstract_model.all(query: 'foobar').to_a).to eq(@players[1..1])
540
537
  end
541
538
 
542
- it "supports filtering" do
543
- expect(@abstract_model.all(:filters => {"team" => {"0000" => {:o => "is", :v => 'foobar'}}}).to_a).to eq(@players[1..1])
539
+ it 'supports filtering' do
540
+ expect(@abstract_model.all(filters: {'team' => {'0000' => {o: 'is', v: 'foobar'}}}).to_a).to eq(@players[1..1])
544
541
  end
545
542
  end
546
543
 
547
- describe "whose type is has_many" do
544
+ describe 'whose type is has_many' do
548
545
  before do
549
546
  RailsAdmin.config Team do
550
547
  field :players do
@@ -553,22 +550,22 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
553
550
  end
554
551
  end
555
552
  @teams = FactoryGirl.create_list(:team, 3)
556
- @players = [{:team => @teams[1]},
557
- {:team => @teams[1], :name => 'foobar'},
558
- {:team => @teams[2]}].map{|h| FactoryGirl.create :player, h}
553
+ @players = [{team: @teams[1]},
554
+ {team: @teams[1], name: 'foobar'},
555
+ {team: @teams[2]}].collect { |h| FactoryGirl.create :player, h }
559
556
  @abstract_model = RailsAdmin::AbstractModel.new('Team')
560
557
  end
561
558
 
562
- it "supports querying" do
563
- expect(@abstract_model.all(:query => 'foobar').to_a).to eq(@teams[1..1])
559
+ it 'supports querying' do
560
+ expect(@abstract_model.all(query: 'foobar').to_a).to eq(@teams[1..1])
564
561
  end
565
562
 
566
- it "supports filtering" do
567
- expect(@abstract_model.all(:filters => {"players" => {"0000" => {:o => "is", :v => 'foobar'}}}).to_a).to eq(@teams[1..1])
563
+ it 'supports filtering' do
564
+ expect(@abstract_model.all(filters: {'players' => {'0000' => {o: 'is', v: 'foobar'}}}).to_a).to eq(@teams[1..1])
568
565
  end
569
566
  end
570
567
 
571
- describe "whose type is has_and_belongs_to_many" do
568
+ describe 'whose type is has_and_belongs_to_many' do
572
569
  before do
573
570
  RailsAdmin.config Team do
574
571
  field :fans do
@@ -577,22 +574,22 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
577
574
  end
578
575
  end
579
576
  @teams = FactoryGirl.create_list(:team, 3)
580
- @fans = [{}, {:name => 'foobar'}, {}].map{|h| FactoryGirl.create :fan, h}
577
+ @fans = [{}, {name: 'foobar'}, {}].collect { |h| FactoryGirl.create :fan, h }
581
578
  @teams[1].fans = [@fans[0], @fans[1]]
582
579
  @teams[2].fans << @fans[2]
583
580
  @abstract_model = RailsAdmin::AbstractModel.new('Team')
584
581
  end
585
582
 
586
- it "supports querying" do
587
- expect(@abstract_model.all(:query => 'foobar').to_a).to eq(@teams[1..1])
583
+ it 'supports querying' do
584
+ expect(@abstract_model.all(query: 'foobar').to_a).to eq(@teams[1..1])
588
585
  end
589
586
 
590
- it "supports filtering" do
591
- expect(@abstract_model.all(:filters => {"fans" => {"0000" => {:o => "is", :v => 'foobar'}}}).to_a).to eq(@teams[1..1])
587
+ it 'supports filtering' do
588
+ expect(@abstract_model.all(filters: {'fans' => {'0000' => {o: 'is', v: 'foobar'}}}).to_a).to eq(@teams[1..1])
592
589
  end
593
590
  end
594
591
 
595
- describe "whose type is embedded has_many" do
592
+ describe 'whose type is embedded has_many' do
596
593
  before do
597
594
  RailsAdmin.config FieldTest do
598
595
  field :embeds do
@@ -601,224 +598,221 @@ describe "RailsAdmin::Adapters::Mongoid", :mongoid => true do
601
598
  end
602
599
  end
603
600
  @field_tests = FactoryGirl.create_list(:field_test, 3)
604
- @field_tests[0].embeds.create :name => 'foo'
605
- @field_tests[1].embeds.create :name => 'bar'
601
+ @field_tests[0].embeds.create name: 'foo'
602
+ @field_tests[1].embeds.create name: 'bar'
606
603
  @abstract_model = RailsAdmin::AbstractModel.new('FieldTest')
607
604
  end
608
605
 
609
- it "supports querying" do
610
- expect(@abstract_model.all(:query => 'bar').to_a).to eq(@field_tests[1..1])
606
+ it 'supports querying' do
607
+ expect(@abstract_model.all(query: 'bar').to_a).to eq(@field_tests[1..1])
611
608
  end
612
609
 
613
- it "supports filtering" do
614
- expect(@abstract_model.all(:filters => {"embeds" => {"0000" => {:o => "is", :v => 'bar'}}}).to_a).to eq(@field_tests[1..1])
610
+ it 'supports filtering' do
611
+ expect(@abstract_model.all(filters: {'embeds' => {'0000' => {o: 'is', v: 'bar'}}}).to_a).to eq(@field_tests[1..1])
615
612
  end
616
613
  end
617
614
  end
618
615
 
619
- describe "#query_conditions" do
616
+ describe '#query_conditions' do
620
617
  before do
621
618
  @abstract_model = RailsAdmin::AbstractModel.new('Player')
622
- @players = [{}, {:name => 'Many foos'}, {:position => 'foo shortage'}].
623
- map{|h| FactoryGirl.create :player, h}
619
+ @players = [{}, {name: 'Many foos'}, {position: 'foo shortage'}].
620
+ collect { |h| FactoryGirl.create :player, h }
624
621
  end
625
622
 
626
- it "makes correct query" do
627
- expect(@abstract_model.all(:query => "foo").to_a).to match_array @players[1..2]
623
+ it 'makes correct query' do
624
+ expect(@abstract_model.all(query: 'foo').to_a).to match_array @players[1..2]
628
625
  end
629
626
  end
630
627
 
631
- describe "#filter_conditions" do
628
+ describe '#filter_conditions' do
632
629
  before do
633
630
  @abstract_model = RailsAdmin::AbstractModel.new('Player')
634
- @team = FactoryGirl.create :team, :name => 'king of bar'
635
- @players = [{}, {:team => @team}, {:name => 'Many foos', :team => @team}, {:name => 'Great foo'}].
636
- map{|h| FactoryGirl.create :player, h}
631
+ @team = FactoryGirl.create :team, name: 'king of bar'
632
+ @players = [{}, {team: @team}, {name: 'Many foos', team: @team}, {name: 'Great foo'}].
633
+ collect { |h| FactoryGirl.create :player, h }
637
634
  end
638
635
 
639
- it "makes correct query" do
640
- expect(@abstract_model.all(:filters =>
641
- {"name" => {"0000" => {:o => "like", :v => "foo"}},
642
- "team" => {"0001" => {:o => "like", :v => "bar"}}}
643
- )).to eq([@players[2]])
636
+ it 'makes correct query' do
637
+ expect(@abstract_model.all(filters: {'name' => {'0000' => {o: 'like', v: 'foo'}}, 'team' => {'0001' => {o: 'like', v: 'bar'}}})).to eq([@players[2]])
644
638
  end
645
639
  end
646
640
 
647
- describe "#build_statement" do
641
+ describe '#build_statement' do
648
642
  before do
649
643
  @abstract_model = RailsAdmin::AbstractModel.new('FieldTest')
650
644
  end
651
645
 
652
646
  it "ignores '_discard' operator or value" do
653
- [["_discard", ""], ["", "_discard"]].each do |value, operator|
647
+ [['_discard', ''], ['', '_discard']].each do |value, operator|
654
648
  expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to be_nil
655
649
  end
656
650
  end
657
651
 
658
652
  it "supports '_blank' operator" do
659
- [["_blank", ""], ["", "_blank"]].each do |value, operator|
660
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => {"$in" => [nil, ""]}})
653
+ [['_blank', ''], ['', '_blank']].each do |value, operator|
654
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: {'$in' => [nil, '']})
661
655
  end
662
656
  end
663
657
 
664
658
  it "supports '_present' operator" do
665
- [["_present", ""], ["", "_present"]].each do |value, operator|
666
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => {"$nin" => [nil, ""]}})
659
+ [['_present', ''], ['', '_present']].each do |value, operator|
660
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: {'$nin' => [nil, '']})
667
661
  end
668
662
  end
669
663
 
670
664
  it "supports '_null' operator" do
671
- [["_null", ""], ["", "_null"]].each do |value, operator|
672
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => nil})
665
+ [['_null', ''], ['', '_null']].each do |value, operator|
666
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: nil)
673
667
  end
674
668
  end
675
669
 
676
670
  it "supports '_not_null' operator" do
677
- [["_not_null", ""], ["", "_not_null"]].each do |value, operator|
678
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => {"$ne" => nil}})
671
+ [['_not_null', ''], ['', '_not_null']].each do |value, operator|
672
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: {'$ne' => nil})
679
673
  end
680
674
  end
681
675
 
682
676
  it "supports '_empty' operator" do
683
- [["_empty", ""], ["", "_empty"]].each do |value, operator|
684
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => ""})
677
+ [['_empty', ''], ['', '_empty']].each do |value, operator|
678
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: '')
685
679
  end
686
680
  end
687
681
 
688
682
  it "supports '_not_empty' operator" do
689
- [["_not_empty", ""], ["", "_not_empty"]].each do |value, operator|
690
- expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq({:name => {"$ne" => ""}})
683
+ [['_not_empty', ''], ['', '_not_empty']].each do |value, operator|
684
+ expect(@abstract_model.send(:build_statement, :name, :string, value, operator)).to eq(name: {'$ne' => ''})
691
685
  end
692
686
  end
693
687
 
694
- it "supports boolean type query" do
695
- ['false', 'f', '0'].each do |value|
696
- expect(@abstract_model.send(:build_statement, :field, :boolean, value, nil)).to eq({:field => false})
688
+ it 'supports boolean type query' do
689
+ %w(false f 0).each do |value|
690
+ expect(@abstract_model.send(:build_statement, :field, :boolean, value, nil)).to eq(field: false)
697
691
  end
698
- ['true', 't', '1'].each do |value|
699
- expect(@abstract_model.send(:build_statement, :field, :boolean, value, nil)).to eq({:field => true})
692
+ %w(true t 1).each do |value|
693
+ expect(@abstract_model.send(:build_statement, :field, :boolean, value, nil)).to eq(field: true)
700
694
  end
701
695
  expect(@abstract_model.send(:build_statement, :field, :boolean, 'word', nil)).to be_nil
702
696
  end
703
697
 
704
- it "supports integer type query" do
705
- expect(@abstract_model.send(:build_statement, :field, :integer, "1", nil)).to eq({:field => 1})
698
+ it 'supports integer type query' do
699
+ expect(@abstract_model.send(:build_statement, :field, :integer, '1', nil)).to eq(field: 1)
706
700
  expect(@abstract_model.send(:build_statement, :field, :integer, 'word', nil)).to be_nil
707
701
  end
708
702
 
709
- it "supports integer type range query" do
703
+ it 'supports integer type range query' do
710
704
  expect(@abstract_model.send(:build_statement, :field, :integer, ['', '', ''], 'between')).to be_nil
711
705
  expect(@abstract_model.send(:build_statement, :field, :integer, ['2', '', ''], 'between')).to be_nil
712
- expect(@abstract_model.send(:build_statement, :field, :integer, ['', '3', ''], 'between')).to eq({:field => {"$gte" => 3}})
713
- expect(@abstract_model.send(:build_statement, :field, :integer, ['', '', '5'], 'between')).to eq({:field => {"$lte" => 5}})
714
- expect(@abstract_model.send(:build_statement, :field, :integer, ['' , '10', '20'], 'between')).to eq({:field => {"$gte" => 10, "$lte" => 20}})
715
- expect(@abstract_model.send(:build_statement, :field, :integer, ['15', '10', '20'], 'between')).to eq({:field => {"$gte" => 10, "$lte" => 20}})
716
- expect(@abstract_model.send(:build_statement, :field, :integer, ['', 'word1', '' ], 'between')).to be_nil
706
+ expect(@abstract_model.send(:build_statement, :field, :integer, ['', '3', ''], 'between')).to eq(field: {'$gte' => 3})
707
+ expect(@abstract_model.send(:build_statement, :field, :integer, ['', '', '5'], 'between')).to eq(field: {'$lte' => 5})
708
+ expect(@abstract_model.send(:build_statement, :field, :integer, ['' , '10', '20'], 'between')).to eq(field: {'$gte' => 10, '$lte' => 20})
709
+ expect(@abstract_model.send(:build_statement, :field, :integer, %w(15 10 20), 'between')).to eq(field: {'$gte' => 10, '$lte' => 20})
710
+ expect(@abstract_model.send(:build_statement, :field, :integer, ['', 'word1', ''], 'between')).to be_nil
717
711
  expect(@abstract_model.send(:build_statement, :field, :integer, ['', '' , 'word2'], 'between')).to be_nil
718
712
  expect(@abstract_model.send(:build_statement, :field, :integer, ['', 'word3', 'word4'], 'between')).to be_nil
719
713
  end
720
714
 
721
- it "supports both decimal and float type queries" do
722
- expect(@abstract_model.send(:build_statement, :field, :decimal, "1.1", nil)).to eq({:field => 1.1})
715
+ it 'supports both decimal and float type queries' do
716
+ expect(@abstract_model.send(:build_statement, :field, :decimal, '1.1', nil)).to eq(field: 1.1)
723
717
  expect(@abstract_model.send(:build_statement, :field, :decimal, 'word', nil)).to be_nil
724
- expect(@abstract_model.send(:build_statement, :field, :decimal, "1.1" , 'default')).to eq({:field => 1.1})
718
+ expect(@abstract_model.send(:build_statement, :field, :decimal, '1.1' , 'default')).to eq(field: 1.1)
725
719
  expect(@abstract_model.send(:build_statement, :field, :decimal, 'word', 'default')).to be_nil
726
- expect(@abstract_model.send(:build_statement, :field, :decimal, "1.1" , 'between')).to eq({:field => 1.1})
720
+ expect(@abstract_model.send(:build_statement, :field, :decimal, '1.1' , 'between')).to eq(field: 1.1)
727
721
  expect(@abstract_model.send(:build_statement, :field, :decimal, 'word', 'between')).to be_nil
728
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['6.1', '' , '' ], 'default')).to eq({:field => 6.1})
729
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['7.1', '10.1', '' ], 'default')).to eq({:field => 7.1})
730
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['8.1', '' , '20.1'], 'default')).to eq({:field => 8.1})
731
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['9.1', '10.1', '20.1'], 'default')).to eq({:field => 9.1})
722
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['6.1', '' , ''], 'default')).to eq(field: 6.1)
723
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['7.1', '10.1', ''], 'default')).to eq(field: 7.1)
724
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['8.1', '' , '20.1'], 'default')).to eq(field: 8.1)
725
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['9.1', '10.1', '20.1'], 'default')).to eq(field: 9.1)
732
726
  expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '', ''], 'between')).to be_nil
733
727
  expect(@abstract_model.send(:build_statement, :field, :decimal, ['2.1', '', ''], 'between')).to be_nil
734
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '3.1', ''], 'between')).to eq({:field => {"$gte" => 3.1}})
735
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '', '5.1'], 'between')).to eq({:field => {"$lte" => 5.1}})
736
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['' , '10.1', '20.1'], 'between')).to eq({:field => {"$gte" => 10.1, "$lte" => 20.1}})
737
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['15.1', '10.1', '20.1'], 'between')).to eq({:field => {"$gte" => 10.1, "$lte" => 20.1}})
738
- expect(@abstract_model.send(:build_statement, :field, :decimal, ['', 'word1', '' ], 'between')).to be_nil
728
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '3.1', ''], 'between')).to eq(field: {'$gte' => 3.1})
729
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '', '5.1'], 'between')).to eq(field: {'$lte' => 5.1})
730
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['' , '10.1', '20.1'], 'between')).to eq(field: {'$gte' => 10.1, '$lte' => 20.1})
731
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['15.1', '10.1', '20.1'], 'between')).to eq(field: {'$gte' => 10.1, '$lte' => 20.1})
732
+ expect(@abstract_model.send(:build_statement, :field, :decimal, ['', 'word1', ''], 'between')).to be_nil
739
733
  expect(@abstract_model.send(:build_statement, :field, :decimal, ['', '' , 'word2'], 'between')).to be_nil
740
734
  expect(@abstract_model.send(:build_statement, :field, :decimal, ['', 'word3', 'word4'], 'between')).to be_nil
741
735
 
742
- expect(@abstract_model.send(:build_statement, :field, :float, "1.1", nil)).to eq({:field => 1.1})
736
+ expect(@abstract_model.send(:build_statement, :field, :float, '1.1', nil)).to eq(field: 1.1)
743
737
  expect(@abstract_model.send(:build_statement, :field, :float, 'word', nil)).to be_nil
744
- expect(@abstract_model.send(:build_statement, :field, :float, "1.1" , 'default')).to eq({:field => 1.1})
738
+ expect(@abstract_model.send(:build_statement, :field, :float, '1.1' , 'default')).to eq(field: 1.1)
745
739
  expect(@abstract_model.send(:build_statement, :field, :float, 'word', 'default')).to be_nil
746
- expect(@abstract_model.send(:build_statement, :field, :float, "1.1" , 'between')).to eq({:field => 1.1})
740
+ expect(@abstract_model.send(:build_statement, :field, :float, '1.1' , 'between')).to eq(field: 1.1)
747
741
  expect(@abstract_model.send(:build_statement, :field, :float, 'word', 'between')).to be_nil
748
- expect(@abstract_model.send(:build_statement, :field, :float, ['6.1', '' , '' ], 'default')).to eq({:field => 6.1})
749
- expect(@abstract_model.send(:build_statement, :field, :float, ['7.1', '10.1', '' ], 'default')).to eq({:field => 7.1})
750
- expect(@abstract_model.send(:build_statement, :field, :float, ['8.1', '' , '20.1'], 'default')).to eq({:field => 8.1})
751
- expect(@abstract_model.send(:build_statement, :field, :float, ['9.1', '10.1', '20.1'], 'default')).to eq({:field => 9.1})
742
+ expect(@abstract_model.send(:build_statement, :field, :float, ['6.1', '' , ''], 'default')).to eq(field: 6.1)
743
+ expect(@abstract_model.send(:build_statement, :field, :float, ['7.1', '10.1', ''], 'default')).to eq(field: 7.1)
744
+ expect(@abstract_model.send(:build_statement, :field, :float, ['8.1', '' , '20.1'], 'default')).to eq(field: 8.1)
745
+ expect(@abstract_model.send(:build_statement, :field, :float, ['9.1', '10.1', '20.1'], 'default')).to eq(field: 9.1)
752
746
  expect(@abstract_model.send(:build_statement, :field, :float, ['', '', ''], 'between')).to be_nil
753
747
  expect(@abstract_model.send(:build_statement, :field, :float, ['2.1', '', ''], 'between')).to be_nil
754
- expect(@abstract_model.send(:build_statement, :field, :float, ['', '3.1', ''], 'between')).to eq({:field => {"$gte" => 3.1}})
755
- expect(@abstract_model.send(:build_statement, :field, :float, ['', '', '5.1'], 'between')).to eq({:field => {"$lte" => 5.1}})
756
- expect(@abstract_model.send(:build_statement, :field, :float, ['' , '10.1', '20.1'], 'between')).to eq({:field => {"$gte" => 10.1, "$lte" => 20.1}})
757
- expect(@abstract_model.send(:build_statement, :field, :float, ['15.1', '10.1', '20.1'], 'between')).to eq({:field => {"$gte" => 10.1, "$lte" => 20.1}})
758
- expect(@abstract_model.send(:build_statement, :field, :float, ['', 'word1', '' ], 'between')).to be_nil
748
+ expect(@abstract_model.send(:build_statement, :field, :float, ['', '3.1', ''], 'between')).to eq(field: {'$gte' => 3.1})
749
+ expect(@abstract_model.send(:build_statement, :field, :float, ['', '', '5.1'], 'between')).to eq(field: {'$lte' => 5.1})
750
+ expect(@abstract_model.send(:build_statement, :field, :float, ['' , '10.1', '20.1'], 'between')).to eq(field: {'$gte' => 10.1, '$lte' => 20.1})
751
+ expect(@abstract_model.send(:build_statement, :field, :float, ['15.1', '10.1', '20.1'], 'between')).to eq(field: {'$gte' => 10.1, '$lte' => 20.1})
752
+ expect(@abstract_model.send(:build_statement, :field, :float, ['', 'word1', ''], 'between')).to be_nil
759
753
  expect(@abstract_model.send(:build_statement, :field, :float, ['', '' , 'word2'], 'between')).to be_nil
760
754
  expect(@abstract_model.send(:build_statement, :field, :float, ['', 'word3', 'word4'], 'between')).to be_nil
761
755
  end
762
756
 
763
- it "supports string type query" do
764
- expect(@abstract_model.send(:build_statement, :field, :string, "", nil)).to be_nil
765
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "was")).to be_nil
766
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "default")).to eq({:field => /foo/i})
767
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "like")).to eq({:field => /foo/i})
768
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "starts_with")).to eq({:field => /^foo/i})
769
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "ends_with")).to eq({:field => /foo$/i})
770
- expect(@abstract_model.send(:build_statement, :field, :string, "foo", "is")).to eq({:field => 'foo'})
757
+ it 'supports string type query' do
758
+ expect(@abstract_model.send(:build_statement, :field, :string, '', nil)).to be_nil
759
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'was')).to be_nil
760
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'default')).to eq(field: /foo/i)
761
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'like')).to eq(field: /foo/i)
762
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'starts_with')).to eq(field: /^foo/i)
763
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'ends_with')).to eq(field: /foo$/i)
764
+ expect(@abstract_model.send(:build_statement, :field, :string, 'foo', 'is')).to eq(field: 'foo')
771
765
  end
772
766
 
773
- it "supports date type query" do
774
- expect(@abstract_model.send(:filter_conditions, { "date_field" => { "1" => { :v => ["", "01/02/2012", "01/03/2012"], :o => 'between' } } })).to eq({"$and" => [{"date_field" => {"$gte" => Date.new(2012,1,2), "$lte" => Date.new(2012,1,3)}}]})
775
- expect(@abstract_model.send(:filter_conditions, { "date_field" => { "1" => { :v => ["", "01/03/2012", ""], :o => 'between' } } } )).to eq({"$and" => [{"date_field" => {"$gte" => Date.new(2012,1,3)}}]})
776
- expect(@abstract_model.send(:filter_conditions, { "date_field" => { "1" => { :v => ["", "", "01/02/2012"], :o => 'between' } } } )).to eq({"$and" => [{"date_field" => {"$lte" => Date.new(2012,1,2)}}]})
777
- expect(@abstract_model.send(:filter_conditions, { "date_field" => { "1" => { :v => ["01/02/2012"], :o => 'default' } } } )).to eq({"$and" => [{"date_field" => {"$gte" => Date.new(2012,1,2), "$lte" => Date.new(2012,1,2)}}]})
767
+ it 'supports date type query' do
768
+ expect(@abstract_model.send(:filter_conditions, 'date_field' => {'1' => {v: ['', '01/02/2012', '01/03/2012'], o: 'between'}})).to eq('$and' => [{'date_field' => {'$gte' => Date.new(2012, 1, 2), '$lte' => Date.new(2012, 1, 3)}}])
769
+ expect(@abstract_model.send(:filter_conditions, 'date_field' => {'1' => {v: ['', '01/03/2012', ''], o: 'between'}})).to eq('$and' => [{'date_field' => {'$gte' => Date.new(2012, 1, 3)}}])
770
+ expect(@abstract_model.send(:filter_conditions, 'date_field' => {'1' => {v: ['', '', '01/02/2012'], o: 'between'}})).to eq('$and' => [{'date_field' => {'$lte' => Date.new(2012, 1, 2)}}])
771
+ expect(@abstract_model.send(:filter_conditions, 'date_field' => {'1' => {v: ['01/02/2012'], o: 'default'}})).to eq('$and' => [{'date_field' => {'$gte' => Date.new(2012, 1, 2), '$lte' => Date.new(2012, 1, 2)}}])
778
772
  end
779
773
 
780
- it "supports datetime type query" do
781
- expect(@abstract_model.send(:filter_conditions, { "datetime_field" => { "1" => { :v => ["", "01/02/2012", "01/03/2012"], :o => 'between' } } } )).to eq({"$and" => [{"datetime_field" => {"$gte" => Time.local(2012,1,2), "$lte" => Time.local(2012,1,3).end_of_day}}]})
782
- expect(@abstract_model.send(:filter_conditions, { "datetime_field" => { "1" => { :v => ["", "01/03/2012", ""], :o => 'between' } } } )).to eq({"$and" => [{"datetime_field" => {"$gte" => Time.local(2012,1,3)}}]})
783
- expect(@abstract_model.send(:filter_conditions, { "datetime_field" => { "1" => { :v => ["", "", "01/02/2012"], :o => 'between' } } } )).to eq({"$and" => [{"datetime_field" => {"$lte" => Time.local(2012,1,2).end_of_day}}]})
784
- expect(@abstract_model.send(:filter_conditions, { "datetime_field" => { "1" => { :v => ["01/02/2012"], :o => 'default' } } } )).to eq({"$and" => [{"datetime_field" => {"$gte" => Time.local(2012,1,2), "$lte" => Time.local(2012,1,2).end_of_day}}]})
774
+ it 'supports datetime type query' do
775
+ expect(@abstract_model.send(:filter_conditions, 'datetime_field' => {'1' => {v: ['', '01/02/2012', '01/03/2012'], o: 'between'}})).to eq('$and' => [{'datetime_field' => {'$gte' => Time.local(2012, 1, 2), '$lte' => Time.local(2012, 1, 3).end_of_day}}])
776
+ expect(@abstract_model.send(:filter_conditions, 'datetime_field' => {'1' => {v: ['', '01/03/2012', ''], o: 'between'}})).to eq('$and' => [{'datetime_field' => {'$gte' => Time.local(2012, 1, 3)}}])
777
+ expect(@abstract_model.send(:filter_conditions, 'datetime_field' => {'1' => {v: ['', '', '01/02/2012'], o: 'between'}})).to eq('$and' => [{'datetime_field' => {'$lte' => Time.local(2012, 1, 2).end_of_day}}])
778
+ expect(@abstract_model.send(:filter_conditions, 'datetime_field' => {'1' => {v: ['01/02/2012'], o: 'default'}})).to eq('$and' => [{'datetime_field' => {'$gte' => Time.local(2012, 1, 2), '$lte' => Time.local(2012, 1, 2).end_of_day}}])
785
779
  end
786
780
 
787
- it "supports enum type query" do
788
- expect(@abstract_model.send(:build_statement, :field, :enum, "1", nil)).to eq({:field => {"$in" => ["1"]}})
781
+ it 'supports enum type query' do
782
+ expect(@abstract_model.send(:build_statement, :field, :enum, '1', nil)).to eq(field: {'$in' => ['1']})
789
783
  end
790
784
  end
791
785
 
792
- describe "model attribute method" do
786
+ describe 'model attribute method' do
793
787
  before do
794
788
  @abstract_model = RailsAdmin::AbstractModel.new('Player')
795
789
  end
796
790
 
797
- it "#scoped returns relation object" do
791
+ it '#scoped returns relation object' do
798
792
  expect(@abstract_model.scoped).to be_instance_of(Mongoid::Criteria)
799
793
  end
800
794
 
801
- it "#table_name works" do
795
+ it '#table_name works' do
802
796
  expect(@abstract_model.table_name).to eq('players')
803
797
  end
804
798
  end
805
799
 
806
- describe "serialization" do
800
+ describe 'serialization' do
807
801
  before do
808
802
  @abstract_model = RailsAdmin::AbstractModel.new('FieldTest')
809
803
  @controller = RailsAdmin::MainController.new
810
804
  end
811
805
 
812
- it "accepts array value" do
813
- params = HashWithIndifferentAccess.new({:array_field => '[1, 3]'})
806
+ it 'accepts array value' do
807
+ params = HashWithIndifferentAccess.new(array_field: '[1, 3]')
814
808
  @controller.send(:sanitize_params_for!, 'create', @abstract_model.config, params)
815
809
  expect(params[:array_field]).to eq([1, 3])
816
810
  end
817
811
 
818
- it "accepts hash value" do
819
- params = HashWithIndifferentAccess.new({:hash_field => '{a: 1, b: 3}'})
812
+ it 'accepts hash value' do
813
+ params = HashWithIndifferentAccess.new(hash_field: '{a: 1, b: 3}')
820
814
  @controller.send(:sanitize_params_for!, 'create', @abstract_model.config, params)
821
- expect(params[:hash_field]).to eq({"a" => 1, "b" => 3})
815
+ expect(params[:hash_field]).to eq('a' => 1, 'b' => 3)
822
816
  end
823
817
  end
824
818
  end