rails_admin 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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