basepack 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (798) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +46 -0
  3. data/README.md +215 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/basepack/forms/query/date.jst.ejs +8 -0
  6. data/app/assets/javascripts/basepack/forms/query/filter.jst.ejs +15 -0
  7. data/app/assets/javascripts/basepack/forms/query/predicate.jst.ejs +7 -0
  8. data/app/assets/javascripts/basepack/forms/query.coffee +126 -0
  9. data/app/assets/javascripts/basepack/forms.coffee +503 -0
  10. data/app/assets/javascripts/basepack/list.coffee +38 -0
  11. data/app/assets/javascripts/basepack/loading_spinner.coffee.erb +27 -0
  12. data/app/assets/javascripts/basepack.js +17 -0
  13. data/app/assets/stylesheets/basepack/bootstrap-variables.css.scss +42 -0
  14. data/app/assets/stylesheets/basepack/forms.css.scss +143 -0
  15. data/app/assets/stylesheets/basepack/print.css.scss +15 -0
  16. data/app/assets/stylesheets/basepack/select2-bootstrap.css +92 -0
  17. data/app/assets/stylesheets/basepack/sortable.scss +10 -0
  18. data/app/assets/stylesheets/basepack/theming.css.scss +73 -0
  19. data/app/assets/stylesheets/basepack.css.scss +21 -0
  20. data/app/controllers/basepack/base_controller.rb +766 -0
  21. data/app/helpers/form_helper.rb +142 -0
  22. data/app/helpers/resources_helper.rb +50 -0
  23. data/app/models/basepack/import_importable.rb +24 -0
  24. data/app/models/basepack/settings.rb +15 -0
  25. data/app/views/basepack/base/_bulk_edit.html.haml +1 -0
  26. data/app/views/basepack/base/_diff.html.haml +1 -0
  27. data/app/views/basepack/base/_edit.html.haml +1 -0
  28. data/app/views/basepack/base/_export.html.haml +1 -0
  29. data/app/views/basepack/base/_header.html.haml +25 -0
  30. data/app/views/basepack/base/_import.html.haml +1 -0
  31. data/app/views/basepack/base/_index.html.haml +1 -0
  32. data/app/views/basepack/base/_page_actions.html.haml +24 -0
  33. data/app/views/basepack/base/_query.html.haml +1 -0
  34. data/app/views/basepack/base/_show.html.haml +1 -0
  35. data/app/views/basepack/base/bulk_edit.html.haml +2 -0
  36. data/app/views/basepack/base/diff.html.haml +2 -0
  37. data/app/views/basepack/base/edit.html.haml +2 -0
  38. data/app/views/basepack/base/export.html.haml +3 -0
  39. data/app/views/basepack/base/import.html.haml +2 -0
  40. data/app/views/basepack/base/index.html.haml +2 -0
  41. data/app/views/basepack/base/new.html.haml +2 -0
  42. data/app/views/basepack/base/show.html.haml +2 -0
  43. data/app/views/forms/_bulk_edit.html.haml +21 -0
  44. data/app/views/forms/_diff.html.haml +63 -0
  45. data/app/views/forms/_edit.html.haml +7 -0
  46. data/app/views/forms/_export.html.haml +70 -0
  47. data/app/views/forms/_form_fields.html.haml +13 -0
  48. data/app/views/forms/_import.html.haml +18 -0
  49. data/app/views/forms/_import_configuration_csv.html.haml +23 -0
  50. data/app/views/forms/_list.html.haml +25 -0
  51. data/app/views/forms/_page_entries_info.html.haml +8 -0
  52. data/app/views/forms/_pagination.html.haml +3 -0
  53. data/app/views/forms/_query.html.haml +59 -0
  54. data/app/views/forms/_query_menu.html.haml +23 -0
  55. data/app/views/forms/_show.html.haml +11 -0
  56. data/app/views/forms/_show_without_blanks.html.haml +12 -0
  57. data/app/views/forms/bulk_edit/_form_filtering_multiselect.html.haml +8 -0
  58. data/app/views/forms/bulk_edit/_form_nested_many.html.haml +1 -0
  59. data/app/views/forms/bulk_edit/_form_tag_list.html.haml +1 -0
  60. data/app/views/forms/bulk_edit/_tag_list_with_suggestions.html.haml +21 -0
  61. data/app/views/forms/buttons/_apply.html.haml +4 -0
  62. data/app/views/forms/buttons/_bulk_delete.html.haml +5 -0
  63. data/app/views/forms/buttons/_cancel.html.haml +3 -0
  64. data/app/views/forms/buttons/_create.html.haml +5 -0
  65. data/app/views/forms/buttons/_delete.html.haml +3 -0
  66. data/app/views/forms/buttons/_edit.html.haml +3 -0
  67. data/app/views/forms/buttons/_export.html.haml +4 -0
  68. data/app/views/forms/buttons/_import.html.haml +4 -0
  69. data/app/views/forms/buttons/_modal_cancel.html.haml +4 -0
  70. data/app/views/forms/buttons/_modal_close.html.haml +1 -0
  71. data/app/views/forms/buttons/_print.html.haml +3 -0
  72. data/app/views/forms/buttons/_query.html.haml +25 -0
  73. data/app/views/forms/buttons/_refresh.html.haml +4 -0
  74. data/app/views/forms/buttons/_submit.html.haml +4 -0
  75. data/app/views/forms/buttons/_submit_create.html.haml +4 -0
  76. data/app/views/forms/edit/_form_ck_editor.html.haml +11 -0
  77. data/app/views/forms/edit/_form_code_mirror.html.haml +10 -0
  78. data/app/views/forms/edit/_form_colorpicker.html.haml +7 -0
  79. data/app/views/forms/edit/_form_datetime.html.haml +6 -0
  80. data/app/views/forms/edit/_form_enumeration.html.haml +20 -0
  81. data/app/views/forms/edit/_form_field.html.haml +8 -0
  82. data/app/views/forms/edit/_form_file_upload.html.haml +14 -0
  83. data/app/views/forms/edit/_form_filtering_multiselect.html.haml +2 -0
  84. data/app/views/forms/edit/_form_filtering_select.html.haml +2 -0
  85. data/app/views/forms/edit/_form_nested_many.html.haml +14 -0
  86. data/app/views/forms/edit/_form_nested_one.html.haml +5 -0
  87. data/app/views/forms/edit/_form_polymorphic_association.html.haml +11 -0
  88. data/app/views/forms/edit/_form_rich_text.html.haml +8 -0
  89. data/app/views/forms/edit/_form_tag_list.html.haml +1 -0
  90. data/app/views/forms/edit/_form_text.html.haml +2 -0
  91. data/app/views/forms/edit/_form_wysihtml5.html.haml +9 -0
  92. data/app/views/forms/edit/_select_or_nested.html.haml +30 -0
  93. data/app/views/forms/edit/_tag_list_with_suggestions.html.haml +15 -0
  94. data/app/views/kaminari/_first_page.html.erb +3 -0
  95. data/app/views/kaminari/_gap.html.erb +3 -0
  96. data/app/views/kaminari/_last_page.html.erb +3 -0
  97. data/app/views/kaminari/_next_page.html.erb +3 -0
  98. data/app/views/kaminari/_page.html.erb +3 -0
  99. data/app/views/kaminari/_paginator.html.erb +17 -0
  100. data/app/views/kaminari/_prev_page.html.erb +3 -0
  101. data/config/basepack-settings.yml +38 -0
  102. data/config/initializers/basepack.rb +1 -0
  103. data/config/initializers/kaminari_config.rb +10 -0
  104. data/config/initializers/rails_admin.rb +6 -0
  105. data/config/initializers/ransack.rb +95 -0
  106. data/config/initializers/simple_form.rb +145 -0
  107. data/config/initializers/simple_form_bootstrap.rb +47 -0
  108. data/config/locales/cs.yml +13 -0
  109. data/config/locales/en.yml +24 -0
  110. data/config/locales/kaminari.cs.yml +20 -0
  111. data/config/locales/kaminari.en.yml +19 -0
  112. data/config/locales/rails_admin.cs.yml +130 -0
  113. data/config/locales/ransack.cs.yml +70 -0
  114. data/config/locales/simple_form.cs.yml +28 -0
  115. data/config/locales/simple_form.en.yml +24 -0
  116. data/config/routes.rb +2 -0
  117. data/lib/basepack/delegation.rb +66 -0
  118. data/lib/basepack/engine.rb +28 -0
  119. data/lib/basepack/filter_ql.rb +267 -0
  120. data/lib/basepack/forms/base.rb +246 -0
  121. data/lib/basepack/forms/bulk_edit.rb +44 -0
  122. data/lib/basepack/forms/diff.rb +66 -0
  123. data/lib/basepack/forms/edit.rb +145 -0
  124. data/lib/basepack/forms/export.rb +109 -0
  125. data/lib/basepack/forms/factories/base.rb +53 -0
  126. data/lib/basepack/forms/factories/query_rails_admin.rb +31 -0
  127. data/lib/basepack/forms/factories/rails_admin.rb +57 -0
  128. data/lib/basepack/forms/fields/base.rb +158 -0
  129. data/lib/basepack/forms/fields/belongs_to_association.rb +25 -0
  130. data/lib/basepack/forms/fields/has_and_belongs_to_many_association.rb +12 -0
  131. data/lib/basepack/forms/fields/has_many_association.rb +50 -0
  132. data/lib/basepack/forms/fields/has_one_association.rb +19 -0
  133. data/lib/basepack/forms/fields/single_association.rb +32 -0
  134. data/lib/basepack/forms/groups/base.rb +71 -0
  135. data/lib/basepack/forms/groups/diff.rb +18 -0
  136. data/lib/basepack/forms/import.rb +147 -0
  137. data/lib/basepack/forms/list.rb +74 -0
  138. data/lib/basepack/forms/query.rb +211 -0
  139. data/lib/basepack/forms/show.rb +18 -0
  140. data/lib/basepack/import/actions.rb +105 -0
  141. data/lib/basepack/import/controller.rb +94 -0
  142. data/lib/basepack/import/importable.rb +40 -0
  143. data/lib/basepack/import/model_dragonfly.rb +232 -0
  144. data/lib/basepack/model.rb +30 -0
  145. data/lib/basepack/renderable.rb +45 -0
  146. data/lib/basepack/sections/bulk_edit.rb +15 -0
  147. data/lib/basepack/sections/import.rb +15 -0
  148. data/lib/basepack/sections/query.rb +19 -0
  149. data/lib/basepack/utils.rb +225 -0
  150. data/lib/basepack/version.rb +3 -0
  151. data/lib/basepack.rb +215 -0
  152. data/lib/generators/basepack/install_generator.rb +185 -0
  153. data/lib/generators/basepack/scaffold/scaffold_generator.rb +12 -0
  154. data/lib/generators/basepack/templates/application.css.scss +15 -0
  155. data/lib/generators/basepack/templates/application.js +20 -0
  156. data/lib/generators/basepack/templates/basepack-settings.yml +15 -0
  157. data/lib/generators/basepack/templates/basepack_and_overrides.css +3 -0
  158. data/lib/generators/basepack/templates/basepack_and_overrides.css.scss +3 -0
  159. data/lib/generators/basepack/templates/dragonfly.rb +8 -0
  160. data/lib/generators/basepack/templates/filter.rb +84 -0
  161. data/lib/generators/basepack/templates/filters_controller.rb +2 -0
  162. data/lib/generators/basepack/templates/import.rb +35 -0
  163. data/lib/generators/basepack/templates/layouts/_content.html.haml +8 -0
  164. data/lib/generators/basepack/templates/layouts/_facebook.html.haml +11 -0
  165. data/lib/generators/basepack/templates/layouts/_footer.html.haml +2 -0
  166. data/lib/generators/basepack/templates/layouts/_head.html.haml +17 -0
  167. data/lib/generators/basepack/templates/layouts/_header.html.haml +1 -0
  168. data/lib/generators/basepack/templates/layouts/_navigation.html.erb +28 -0
  169. data/lib/generators/basepack/templates/layouts/application-fluid.html.haml +18 -0
  170. data/lib/generators/basepack/templates/layouts/application.html.haml +11 -0
  171. data/lib/generators/basepack/templates/layouts/rails_admin/application.html.haml +24 -0
  172. data/lib/generators/basepack/templates/migrations/create_filters.rb +15 -0
  173. data/lib/generators/basepack/templates/migrations/create_imports.rb +23 -0
  174. data/lib/generators/basepack/templates/migrations/create_imports_importables_join_table.rb +10 -0
  175. data/lib/generators/basepack/templates/rails_admin.rb +35 -0
  176. data/lib/generators/basepack/templates/resources_controller.rb +3 -0
  177. data/lib/generators/rails/basepack_controller_generator.rb +11 -0
  178. data/lib/generators/rails/basepack_resource_route_generator.rb +40 -0
  179. data/lib/generators/rails/templates/controller.rb +6 -0
  180. data/lib/tasks/basepack_tasks.rake +4 -0
  181. data/spec/controllers/basepack/base_controller_spec.rb +5 -0
  182. data/spec/dummy_app/README.rdoc +28 -0
  183. data/spec/dummy_app/Rakefile +7 -0
  184. data/spec/dummy_app/app/assets/javascripts/application.js +19 -0
  185. data/spec/dummy_app/app/assets/stylesheets/application.css +15 -0
  186. data/spec/dummy_app/app/assets/stylesheets/basepack_and_overrides.css +3 -0
  187. data/spec/dummy_app/app/controllers/accounts_controller.rb +3 -0
  188. data/spec/dummy_app/app/controllers/application_controller.rb +5 -0
  189. data/spec/dummy_app/app/controllers/employee_with_nesteds_controller.rb +3 -0
  190. data/spec/dummy_app/app/controllers/employees_controller.rb +3 -0
  191. data/spec/dummy_app/app/controllers/positions_controller.rb +3 -0
  192. data/spec/dummy_app/app/controllers/projects_controller.rb +3 -0
  193. data/spec/dummy_app/app/controllers/resources_controller.rb +2 -0
  194. data/spec/dummy_app/app/controllers/skills_controller.rb +3 -0
  195. data/spec/dummy_app/app/controllers/tasks_controller.rb +3 -0
  196. data/spec/dummy_app/app/controllers/users_controller.rb +2 -0
  197. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  198. data/spec/dummy_app/app/models/ability.rb +7 -0
  199. data/spec/dummy_app/app/models/account.rb +18 -0
  200. data/spec/dummy_app/app/models/employee.rb +56 -0
  201. data/spec/dummy_app/app/models/employee_with_nested.rb +6 -0
  202. data/spec/dummy_app/app/models/position.rb +13 -0
  203. data/spec/dummy_app/app/models/project.rb +16 -0
  204. data/spec/dummy_app/app/models/settings.rb +4 -0
  205. data/spec/dummy_app/app/models/skill.rb +13 -0
  206. data/spec/dummy_app/app/models/task.rb +20 -0
  207. data/spec/dummy_app/app/models/user.rb +26 -0
  208. data/spec/dummy_app/app/views/layouts/_content.html.haml +8 -0
  209. data/spec/dummy_app/app/views/layouts/_footer.html.haml +2 -0
  210. data/spec/dummy_app/app/views/layouts/_head.html.haml +17 -0
  211. data/spec/dummy_app/app/views/layouts/_header.html.haml +1 -0
  212. data/spec/dummy_app/app/views/layouts/_navigation.html.erb +28 -0
  213. data/spec/dummy_app/app/views/layouts/application.html.haml +11 -0
  214. data/spec/dummy_app/bin/bundle +3 -0
  215. data/spec/dummy_app/bin/rails +4 -0
  216. data/spec/dummy_app/bin/rake +4 -0
  217. data/spec/dummy_app/config/application.rb +28 -0
  218. data/spec/dummy_app/config/boot.rb +5 -0
  219. data/spec/dummy_app/config/database.yml +25 -0
  220. data/spec/dummy_app/config/environment.rb +5 -0
  221. data/spec/dummy_app/config/environments/development.rb +29 -0
  222. data/spec/dummy_app/config/environments/production.rb +80 -0
  223. data/spec/dummy_app/config/environments/test.rb +36 -0
  224. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  225. data/spec/dummy_app/config/initializers/devise.rb +213 -0
  226. data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +4 -0
  227. data/spec/dummy_app/config/initializers/inflections.rb +16 -0
  228. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  229. data/spec/dummy_app/config/initializers/rails_admin.rb +33 -0
  230. data/spec/dummy_app/config/initializers/secret_token.rb +12 -0
  231. data/spec/dummy_app/config/initializers/session_store.rb +3 -0
  232. data/spec/dummy_app/config/initializers/wrap_parameters.rb +14 -0
  233. data/spec/dummy_app/config/locales/devise.en.yml +59 -0
  234. data/spec/dummy_app/config/locales/en.yml +23 -0
  235. data/spec/dummy_app/config/routes.rb +32 -0
  236. data/spec/dummy_app/config.ru +4 -0
  237. data/spec/dummy_app/db/development.sqlite3 +0 -0
  238. data/spec/dummy_app/db/migrate/20131017141521_devise_create_users.rb +46 -0
  239. data/spec/dummy_app/db/migrate/20131204162705_create_employees.rb +13 -0
  240. data/spec/dummy_app/db/migrate/20131204163255_create_positions.rb +9 -0
  241. data/spec/dummy_app/db/migrate/20131204163517_create_tasks.rb +11 -0
  242. data/spec/dummy_app/db/migrate/20131207080009_create_accounts.rb +10 -0
  243. data/spec/dummy_app/db/migrate/20131207080750_create_skills.rb +9 -0
  244. data/spec/dummy_app/db/migrate/20131207081215_employees_skills.rb +10 -0
  245. data/spec/dummy_app/db/migrate/20131213193133_create_projects.rb +11 -0
  246. data/spec/dummy_app/db/migrate/20131213195422_change_tasks_associations.rb +5 -0
  247. data/spec/dummy_app/db/migrate/20131220193113_add_title_to_employees.rb +5 -0
  248. data/spec/dummy_app/db/schema.rb +121 -0
  249. data/spec/dummy_app/db/test.sqlite3 +0 -0
  250. data/spec/dummy_app/log/development.log +6801 -0
  251. data/spec/dummy_app/log/test.log +292178 -0
  252. data/spec/dummy_app/public/404.html +58 -0
  253. data/spec/dummy_app/public/422.html +58 -0
  254. data/spec/dummy_app/public/500.html +57 -0
  255. data/spec/dummy_app/public/favicon.ico +0 -0
  256. data/spec/dummy_app/spec/factories/factories.rb +40 -0
  257. data/spec/dummy_app/spec/models/employees_spec.rb +5 -0
  258. data/spec/dummy_app/spec/models/user_spec.rb +24 -0
  259. data/spec/dummy_app/tmp/cache/assets/development/sass/4c3af79921173448804b83f254ba105cda287756/font-awesome.css.erbc +0 -0
  260. data/spec/dummy_app/tmp/cache/assets/development/sass/517b219fe56f7ccf93e010b001d2d3a1b459bfba/bootstrap-modal.cssc +0 -0
  261. data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.colorpicker.scssc +0 -0
  262. data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.ui.timepicker.scssc +0 -0
  263. data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/ra.calendar-additions.scssc +0 -0
  264. data/spec/dummy_app/tmp/cache/assets/development/sass/6c0703113df22b0e3ea387c6ab99e8fcfd6a83c2/jquery-ui-1.8.7.custom.scssc +0 -0
  265. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/bootstrap-variables.css.scssc +0 -0
  266. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/forms.css.scssc +0 -0
  267. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/print.css.scssc +0 -0
  268. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/select2-bootstrap.cssc +0 -0
  269. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/sortable.scssc +0 -0
  270. data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/theming.css.scssc +0 -0
  271. data/spec/dummy_app/tmp/cache/assets/development/sass/9c999c00494fa4fafa9bdff246834bab6e26edf8/basepack.css.scssc +0 -0
  272. data/spec/dummy_app/tmp/cache/assets/development/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap-responsive.scssc +0 -0
  273. data/spec/dummy_app/tmp/cache/assets/development/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap.scssc +0 -0
  274. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_accordion.scssc +0 -0
  275. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_alerts.scssc +0 -0
  276. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_breadcrumbs.scssc +0 -0
  277. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_button-groups.scssc +0 -0
  278. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_buttons.scssc +0 -0
  279. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_carousel.scssc +0 -0
  280. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_close.scssc +0 -0
  281. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_code.scssc +0 -0
  282. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_component-animations.scssc +0 -0
  283. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_dropdowns.scssc +0 -0
  284. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_forms.scssc +0 -0
  285. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_grid.scssc +0 -0
  286. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_hero-unit.scssc +0 -0
  287. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_labels-badges.scssc +0 -0
  288. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_layouts.scssc +0 -0
  289. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_media.scssc +0 -0
  290. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_mixins.scssc +0 -0
  291. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_modals.scssc +0 -0
  292. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navbar.scssc +0 -0
  293. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navs.scssc +0 -0
  294. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pager.scssc +0 -0
  295. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pagination.scssc +0 -0
  296. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_popovers.scssc +0 -0
  297. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_progress-bars.scssc +0 -0
  298. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_reset.scssc +0 -0
  299. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-1200px-min.scssc +0 -0
  300. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-767px-max.scssc +0 -0
  301. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-768px-979px.scssc +0 -0
  302. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-navbar.scssc +0 -0
  303. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-utilities.scssc +0 -0
  304. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_scaffolding.scssc +0 -0
  305. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_sprites.scssc +0 -0
  306. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tables.scssc +0 -0
  307. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_thumbnails.scssc +0 -0
  308. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tooltip.scssc +0 -0
  309. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_type.scssc +0 -0
  310. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_utilities.scssc +0 -0
  311. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_variables.scssc +0 -0
  312. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_wells.scssc +0 -0
  313. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/bootstrap.scssc +0 -0
  314. data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/responsive.scssc +0 -0
  315. data/spec/dummy_app/tmp/cache/assets/development/sass/f31185238ced2f85aef3331b2fccaf2065e3231a/select2.css.erbc +0 -0
  316. data/spec/dummy_app/tmp/cache/assets/development/sprockets/00241a7292d851bac376d0f0957e63ff +0 -0
  317. data/spec/dummy_app/tmp/cache/assets/development/sprockets/003e285de7c62692a9fe3b8f50902380 +0 -0
  318. data/spec/dummy_app/tmp/cache/assets/development/sprockets/0104c964a4f56bb5b2899a07f10af9f9 +0 -0
  319. data/spec/dummy_app/tmp/cache/assets/development/sprockets/052bb63ff29bc44571c2232131c36a8a +0 -0
  320. data/spec/dummy_app/tmp/cache/assets/development/sprockets/089607f98e898c71fd68e8ae51754987 +0 -0
  321. data/spec/dummy_app/tmp/cache/assets/development/sprockets/09050dc72206d6f6ad9f3f02b685419b +0 -0
  322. data/spec/dummy_app/tmp/cache/assets/development/sprockets/0cafd9bc53d49c2cf5e5824a613c234a +0 -0
  323. data/spec/dummy_app/tmp/cache/assets/development/sprockets/0ff0b5f27512c6d962359fb992396486 +0 -0
  324. data/spec/dummy_app/tmp/cache/assets/development/sprockets/11bce97ed3034e6e70d23980be846e97 +0 -0
  325. data/spec/dummy_app/tmp/cache/assets/development/sprockets/11eff350cf9d6699fa472a8cc51a5ae4 +0 -0
  326. data/spec/dummy_app/tmp/cache/assets/development/sprockets/12ca1512e2358f3ac0eb9052a78f0a87 +0 -0
  327. data/spec/dummy_app/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  328. data/spec/dummy_app/tmp/cache/assets/development/sprockets/184efa29626c6b13fd6f290830370818 +0 -0
  329. data/spec/dummy_app/tmp/cache/assets/development/sprockets/1a9589d7b8d8cbf05f74469c8f4c4156 +0 -0
  330. data/spec/dummy_app/tmp/cache/assets/development/sprockets/1c50d4281907563387028ba86a066d3c +0 -0
  331. data/spec/dummy_app/tmp/cache/assets/development/sprockets/22e2b6a8afe048228c40b58e65bfdb13 +0 -0
  332. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2598bea497f818511170f1767eb626cb +0 -0
  333. data/spec/dummy_app/tmp/cache/assets/development/sprockets/26576898fc49833696cd3f3fb7eccf95 +0 -0
  334. data/spec/dummy_app/tmp/cache/assets/development/sprockets/28418912ed32585ce915ff3973682be4 +0 -0
  335. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2a6e117dba2d7db2ef21aca7fcb9230c +0 -0
  336. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2aac860bfb56742949faa12d706267d0 +0 -0
  337. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2c8963580cbc47dc28cbed8da42f84ca +0 -0
  338. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2cc54b227549bd5df491930580a8bc64 +0 -0
  339. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2da93a1145941acb52281bece48fe4a3 +0 -0
  340. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  341. data/spec/dummy_app/tmp/cache/assets/development/sprockets/2f7c7ba8274ab8efb2b4f5cdecbd6a32 +0 -0
  342. data/spec/dummy_app/tmp/cache/assets/development/sprockets/30f9c6c7e6c0b1341b38eb1b28f31810 +0 -0
  343. data/spec/dummy_app/tmp/cache/assets/development/sprockets/33b864d3cf87bb7e2b39adfa0426f263 +0 -0
  344. data/spec/dummy_app/tmp/cache/assets/development/sprockets/33d1f9ea25c7b89f2459940d9212a669 +0 -0
  345. data/spec/dummy_app/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  346. data/spec/dummy_app/tmp/cache/assets/development/sprockets/37f26ee40ea683e5f0ceaf797b814a54 +0 -0
  347. data/spec/dummy_app/tmp/cache/assets/development/sprockets/38b637f41c9bd27a51de4b1762a73647 +0 -0
  348. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3a736bd97a21b78316991160ba80effd +0 -0
  349. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3bd17609c55e7cdacc4b78a9dd1ed0d1 +0 -0
  350. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c4ff97255336da127cbcb0caf6e3015 +0 -0
  351. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c88e1379f0ea6777de02c6a0b8c9945 +0 -0
  352. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c8e11617355c1c5e083959f26cee4b6 +0 -0
  353. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3d03edf86b468f9e9b330ed805860769 +0 -0
  354. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3d7fbddfa7a63c926358b342a3eac479 +0 -0
  355. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3db6c2748a108d113d84d4110cf508c6 +0 -0
  356. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3de8063d0af2ad28e95baf817514b616 +0 -0
  357. data/spec/dummy_app/tmp/cache/assets/development/sprockets/3f30325451dfb42de8d8ed9a9c084659 +0 -0
  358. data/spec/dummy_app/tmp/cache/assets/development/sprockets/47b40976b55c9edc54252cc19e81984d +0 -0
  359. data/spec/dummy_app/tmp/cache/assets/development/sprockets/47d3aa8065e6b7e20f718fcd29cb8660 +0 -0
  360. data/spec/dummy_app/tmp/cache/assets/development/sprockets/4a4c804531d617393de455ae5e7d3ef3 +0 -0
  361. data/spec/dummy_app/tmp/cache/assets/development/sprockets/4b33722102ab3dcfd0b25b5bef28dea2 +0 -0
  362. data/spec/dummy_app/tmp/cache/assets/development/sprockets/4d002d1a4924d16b15d4ed3f18091bff +0 -0
  363. data/spec/dummy_app/tmp/cache/assets/development/sprockets/4fb84f030762485b5f9e956b5185da20 +0 -0
  364. data/spec/dummy_app/tmp/cache/assets/development/sprockets/4fc760e501c018ae614b48f11d1d291a +0 -0
  365. data/spec/dummy_app/tmp/cache/assets/development/sprockets/506b60726578735bdb85ff7c0d7fe54e +0 -0
  366. data/spec/dummy_app/tmp/cache/assets/development/sprockets/508370aab9933724fc4d037be88afc43 +0 -0
  367. data/spec/dummy_app/tmp/cache/assets/development/sprockets/508c14fe1a15ea3e34224307aac6225d +0 -0
  368. data/spec/dummy_app/tmp/cache/assets/development/sprockets/558a8cddd270ecb5edb5567005eebc6c +0 -0
  369. data/spec/dummy_app/tmp/cache/assets/development/sprockets/56784bb9c5211915112e308ec4fe55bd +0 -0
  370. data/spec/dummy_app/tmp/cache/assets/development/sprockets/572d0e3e85fa261156105039963d871d +0 -0
  371. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5748f429893a84aa7c3d3f5a8c83c429 +0 -0
  372. data/spec/dummy_app/tmp/cache/assets/development/sprockets/57ca51d3b9c0dca90847bde786647ed9 +0 -0
  373. data/spec/dummy_app/tmp/cache/assets/development/sprockets/58216b347a0e26bfb17bb6858fa58fe3 +0 -0
  374. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5a723f838e928f8525dbfe097421bcc5 +0 -0
  375. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5ca7841eb0c1ce4fce5ca5c089c81a27 +0 -0
  376. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5d92496bf7c2f2a7c6f658a3bfd9168c +0 -0
  377. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5de0dcc5b363271c35e2f24cdc6d0fb5 +0 -0
  378. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e2ab7bcc69360d652fafb3fbc63c5a3 +0 -0
  379. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e2af01867b50ec9e726fc860497c77f +0 -0
  380. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e377f8032ceddd7a1010605ae5a4e36 +0 -0
  381. data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e5e62c9fddb2531b4265503882f69d4 +0 -0
  382. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6296f81d09f2fb08fc08cfb512d06172 +0 -0
  383. data/spec/dummy_app/tmp/cache/assets/development/sprockets/63a371041bf7f21fa88e427db780f480 +0 -0
  384. data/spec/dummy_app/tmp/cache/assets/development/sprockets/63ae6b3d3df541f5fc47dd7722eedffc +0 -0
  385. data/spec/dummy_app/tmp/cache/assets/development/sprockets/64888fd16034a8607f962f87418fedb3 +0 -0
  386. data/spec/dummy_app/tmp/cache/assets/development/sprockets/67bcc3d148c493a1945bc97ef249d81d +0 -0
  387. data/spec/dummy_app/tmp/cache/assets/development/sprockets/68378e5dd52f7dedcefab5dd586a99b4 +0 -0
  388. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6a03a21304c0e62a86f049dbd1bec75d +0 -0
  389. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6d6cbd0baea2774f4a367edf79c20efb +0 -0
  390. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6e81adbb0a0e41feab2afa9b138d0a6d +0 -0
  391. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f222094c80a63b5f18d99b89ec1df5f +0 -0
  392. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f4d8a75f9952ad791647a0c21be66d3 +0 -0
  393. data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f83c9939102b4619eabd02111cf327d +0 -0
  394. data/spec/dummy_app/tmp/cache/assets/development/sprockets/704e339f6490098455c0c834c0ba168e +0 -0
  395. data/spec/dummy_app/tmp/cache/assets/development/sprockets/72b128fc6f546bdd9b63f28a930e6f63 +0 -0
  396. data/spec/dummy_app/tmp/cache/assets/development/sprockets/72c1561e683cf672ae85824865c551ea +0 -0
  397. data/spec/dummy_app/tmp/cache/assets/development/sprockets/733efb7785d2a5bf99bfabc1e65bc6cc +0 -0
  398. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7358b3ce166ffd9482ebf11bcae20b4e +0 -0
  399. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7398227d5d76926ebb4eefd0f60a8682 +0 -0
  400. data/spec/dummy_app/tmp/cache/assets/development/sprockets/749bdc6c2fb7dc20a6a2ac10738c7b32 +0 -0
  401. data/spec/dummy_app/tmp/cache/assets/development/sprockets/766f9ac65b372adfffbc20fc3c11787d +0 -0
  402. data/spec/dummy_app/tmp/cache/assets/development/sprockets/780aca8465b079da370475ddc33153c8 +0 -0
  403. data/spec/dummy_app/tmp/cache/assets/development/sprockets/78107b4418a915310b877f2476a86c6b +0 -0
  404. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7bc5f8b1be235cc1cc912f2ce07b3575 +0 -0
  405. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7bf5b05b9aa2a7f9ee3aa9256775e185 +0 -0
  406. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7c4325d5e7ed475316bc2f09f5a8426b +0 -0
  407. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7d3a0d4123a39f727d17b424cb809172 +0 -0
  408. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7d7323f314bbd56742b63fbb33245731 +0 -0
  409. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7e17604cb69365b9c04ab2bdab5e1883 +0 -0
  410. data/spec/dummy_app/tmp/cache/assets/development/sprockets/7f079fa6db901e720e9a93fb9fea4fc3 +0 -0
  411. data/spec/dummy_app/tmp/cache/assets/development/sprockets/805aeb5e9f7a354449fe22b474de0ac3 +0 -0
  412. data/spec/dummy_app/tmp/cache/assets/development/sprockets/827c7c505cb992c5d964bcbc2fc423d7 +0 -0
  413. data/spec/dummy_app/tmp/cache/assets/development/sprockets/8356748bbeceb07c6517ded5fcbeec11 +0 -0
  414. data/spec/dummy_app/tmp/cache/assets/development/sprockets/83e117043b923d0d16ab464274ae7761 +0 -0
  415. data/spec/dummy_app/tmp/cache/assets/development/sprockets/848fa2a63c294b86937ee46fdcb42969 +0 -0
  416. data/spec/dummy_app/tmp/cache/assets/development/sprockets/84dd8d2de6f42c1106c041b3af94a8b2 +0 -0
  417. data/spec/dummy_app/tmp/cache/assets/development/sprockets/84ed3d82ea61013675e915122c957247 +0 -0
  418. data/spec/dummy_app/tmp/cache/assets/development/sprockets/8589169f6c1a9ee8a6467dd57394aa1c +0 -0
  419. data/spec/dummy_app/tmp/cache/assets/development/sprockets/864c25920b418fdad6911595015b545e +0 -0
  420. data/spec/dummy_app/tmp/cache/assets/development/sprockets/867a7f30a2e3e699a4dd32531b542fa2 +0 -0
  421. data/spec/dummy_app/tmp/cache/assets/development/sprockets/887d9742047f5e9c5eceaf910c77a1de +0 -0
  422. data/spec/dummy_app/tmp/cache/assets/development/sprockets/8a577fda2de89b9bee8e3e3edff1e493 +0 -0
  423. data/spec/dummy_app/tmp/cache/assets/development/sprockets/8c2ee669e9cd5c095f2f4ff75d814907 +0 -0
  424. data/spec/dummy_app/tmp/cache/assets/development/sprockets/8f6c0c726ca9a75d4d4dc89ab01cd6f9 +0 -0
  425. data/spec/dummy_app/tmp/cache/assets/development/sprockets/9115a6dc55fd7a6bd4eb922e8f4327c1 +0 -0
  426. data/spec/dummy_app/tmp/cache/assets/development/sprockets/93a7167bf36c621d305a9481e3d25bce +0 -0
  427. data/spec/dummy_app/tmp/cache/assets/development/sprockets/9492d6e391e59a3b1fe0926011514606 +0 -0
  428. data/spec/dummy_app/tmp/cache/assets/development/sprockets/98797413746006678e6718e2fc0072e3 +0 -0
  429. data/spec/dummy_app/tmp/cache/assets/development/sprockets/9ea680f1317b9aabfa7f2c8500d8d238 +0 -0
  430. data/spec/dummy_app/tmp/cache/assets/development/sprockets/9edca4894af4373eb021d163773d4ad5 +0 -0
  431. data/spec/dummy_app/tmp/cache/assets/development/sprockets/9f0670e1cd6d8b55b6f4538ad18d24dd +0 -0
  432. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a5e7024917f7c6b419ab0cdf38e72e6b +0 -0
  433. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a61f72bcd625cc47886c1928cd35055c +0 -0
  434. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a6fad88c8628b92fa21b43b1aa76cf7d +0 -0
  435. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a7825c008941de47e400148ced44c977 +0 -0
  436. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a7957c8a663412b3fc916487d9b4fa11 +0 -0
  437. data/spec/dummy_app/tmp/cache/assets/development/sprockets/a979dde04e397cb6c5c3bbfe0ff3d6cf +0 -0
  438. data/spec/dummy_app/tmp/cache/assets/development/sprockets/abbc1edaaf47dfc80b1166ef445e776e +0 -0
  439. data/spec/dummy_app/tmp/cache/assets/development/sprockets/abe5d0ed7bfa91ab738920f1d07df4c6 +0 -0
  440. data/spec/dummy_app/tmp/cache/assets/development/sprockets/addd43bf5b4f0533b7e8041185debdd3 +0 -0
  441. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ae79cf81961bd21d204095a53ad08acd +0 -0
  442. data/spec/dummy_app/tmp/cache/assets/development/sprockets/b13b77b3a33991854e944d8a18f17d62 +0 -0
  443. data/spec/dummy_app/tmp/cache/assets/development/sprockets/b262e9ec489792ed46d9a3f061a2575f +0 -0
  444. data/spec/dummy_app/tmp/cache/assets/development/sprockets/b563282525ff9ba52595f00de0175716 +0 -0
  445. data/spec/dummy_app/tmp/cache/assets/development/sprockets/b5cfdf8b42163460b9a99af40af1f850 +0 -0
  446. data/spec/dummy_app/tmp/cache/assets/development/sprockets/b8a8c2faf730407b004ec269c26473d7 +0 -0
  447. data/spec/dummy_app/tmp/cache/assets/development/sprockets/bf2ad2d8b5bd3fdc6aa311eb0e0d002a +0 -0
  448. data/spec/dummy_app/tmp/cache/assets/development/sprockets/bf5d63f847739999ed7724f45d7593d5 +0 -0
  449. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c0ba2663731f9ebc0224d9c3fa57dd5d +0 -0
  450. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c0f6d55b2d582ab7f1a8f1b2baa0e55c +0 -0
  451. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c1248b471da8a4a819a68eb0af3dc103 +0 -0
  452. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c2266d7fe9597848b5baa3b118ada4f4 +0 -0
  453. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c2e43f298ce02a9c759d2b7df87a81a6 +0 -0
  454. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c38e7994f800531bc12b23135523c6b3 +0 -0
  455. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c3eaaf0a21b3dfc3c3a607a6ad16ddca +0 -0
  456. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c3f0b48cfae36a2ddf7176919c338557 +0 -0
  457. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c4858b3b9b3bd5475da0e04bd3a35191 +0 -0
  458. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c60717cd75961085cbfaed1b3db6f6af +0 -0
  459. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c79787636fbf28ee3ffd89edf5669d75 +0 -0
  460. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c81f70729312f8cfffb2fa682afd6a39 +0 -0
  461. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c9487d16cf2ce7367963c017d1732be2 +0 -0
  462. data/spec/dummy_app/tmp/cache/assets/development/sprockets/c98b3083f4ba9d3d0a76bac8d1a8e2e9 +0 -0
  463. data/spec/dummy_app/tmp/cache/assets/development/sprockets/caef372e0b0efd371eb93602c2ba72b6 +0 -0
  464. data/spec/dummy_app/tmp/cache/assets/development/sprockets/cb1f853dc4682e46b8f6922910af7491 +0 -0
  465. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce095fdd19d87bdedf6f29dedc5f8be2 +0 -0
  466. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce1b44d8727c41febfc3a96f9bd00599 +0 -0
  467. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce57fab3414f0fb0fd0dec0214b04d2f +0 -0
  468. data/spec/dummy_app/tmp/cache/assets/development/sprockets/cef38ed915676983be0704ef77a90742 +0 -0
  469. data/spec/dummy_app/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  470. data/spec/dummy_app/tmp/cache/assets/development/sprockets/d019216c3cec51a12564f968de0c3a8d +0 -0
  471. data/spec/dummy_app/tmp/cache/assets/development/sprockets/d318e9b3460db4bf73b729bb3d937077 +0 -0
  472. data/spec/dummy_app/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  473. data/spec/dummy_app/tmp/cache/assets/development/sprockets/d82b7d635f85356c0e82b32ba4c6a4aa +0 -0
  474. data/spec/dummy_app/tmp/cache/assets/development/sprockets/d92dd66f936d3a75c863b72e2b27115d +0 -0
  475. data/spec/dummy_app/tmp/cache/assets/development/sprockets/db31397e2b32946f71bec3519464a2da +0 -0
  476. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ddf79bf78a7f737dc2c2e6747003b7d0 +0 -0
  477. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ddfe77f5b6c3a355da00713ec7c8b092 +0 -0
  478. data/spec/dummy_app/tmp/cache/assets/development/sprockets/df4353ad516c274a84e9ccb80b30a3ac +0 -0
  479. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e1cbb636d734b1c62f30f4f238c9662a +0 -0
  480. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e21995a68b298fb3743da07cc42cecc6 +0 -0
  481. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e38a482225929905e4c579fc6fa31238 +0 -0
  482. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e481ffc4e01eb6fbf7ce2ffd1636a669 +0 -0
  483. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e545f687f3a940a17b49b971b4133c0c +0 -0
  484. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e6548eae94b88a5488902e756cb0b8a8 +0 -0
  485. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e6af1f885ff81245d4ada1412fda047b +0 -0
  486. data/spec/dummy_app/tmp/cache/assets/development/sprockets/e8678645dc9662106d5d3504a253950d +0 -0
  487. data/spec/dummy_app/tmp/cache/assets/development/sprockets/eadf6b627f39c82d965368dd440557c3 +0 -0
  488. data/spec/dummy_app/tmp/cache/assets/development/sprockets/eef581f1488012db6d2917e1bfdd8696 +0 -0
  489. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ef00280fe4cee5914acc741f3fe2e25a +0 -0
  490. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ef24895902c6875e7b5476d9d73d8e6b +0 -0
  491. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f03b1104103a3a2aab0806b59a918f2f +0 -0
  492. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f0906a63ce8aa3885ea12f7b2e04b203 +0 -0
  493. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f30c986d0368baf246d16a5a9baf0a3a +0 -0
  494. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f4d2c43148f3ab92536c07cb05df0a4c +0 -0
  495. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f5b822723ea8a3561c0f0a8819ab2838 +0 -0
  496. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  497. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f82cd72f16a42c411e418fb85e3da9e7 +0 -0
  498. data/spec/dummy_app/tmp/cache/assets/development/sprockets/f86420678d4a78184e7c2fd2c2ae2b02 +0 -0
  499. data/spec/dummy_app/tmp/cache/assets/development/sprockets/fd469e8d4a2474e7a0de32464b4c9be6 +0 -0
  500. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ff435fd5d18db4f8c1de46245385d286 +0 -0
  501. data/spec/dummy_app/tmp/cache/assets/development/sprockets/ffbfecea42fde1ce85f0c6993dacb73a +0 -0
  502. data/spec/dummy_app/tmp/cache/assets/test/sass/4c3af79921173448804b83f254ba105cda287756/font-awesome.css.erbc +0 -0
  503. data/spec/dummy_app/tmp/cache/assets/test/sass/517b219fe56f7ccf93e010b001d2d3a1b459bfba/bootstrap-modal.cssc +0 -0
  504. data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.colorpicker.scssc +0 -0
  505. data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.ui.timepicker.scssc +0 -0
  506. data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/ra.calendar-additions.scssc +0 -0
  507. data/spec/dummy_app/tmp/cache/assets/test/sass/6c0703113df22b0e3ea387c6ab99e8fcfd6a83c2/jquery-ui-1.8.7.custom.scssc +0 -0
  508. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/bootstrap-variables.css.scssc +0 -0
  509. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/forms.css.scssc +0 -0
  510. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/print.css.scssc +0 -0
  511. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/select2-bootstrap.cssc +0 -0
  512. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/sortable.scssc +0 -0
  513. data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/theming.css.scssc +0 -0
  514. data/spec/dummy_app/tmp/cache/assets/test/sass/9c999c00494fa4fafa9bdff246834bab6e26edf8/basepack.css.scssc +0 -0
  515. data/spec/dummy_app/tmp/cache/assets/test/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap-responsive.scssc +0 -0
  516. data/spec/dummy_app/tmp/cache/assets/test/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap.scssc +0 -0
  517. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_accordion.scssc +0 -0
  518. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_alerts.scssc +0 -0
  519. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_breadcrumbs.scssc +0 -0
  520. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_button-groups.scssc +0 -0
  521. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_buttons.scssc +0 -0
  522. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_carousel.scssc +0 -0
  523. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_close.scssc +0 -0
  524. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_code.scssc +0 -0
  525. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_component-animations.scssc +0 -0
  526. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_dropdowns.scssc +0 -0
  527. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_forms.scssc +0 -0
  528. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_grid.scssc +0 -0
  529. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_hero-unit.scssc +0 -0
  530. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_labels-badges.scssc +0 -0
  531. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_layouts.scssc +0 -0
  532. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_media.scssc +0 -0
  533. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_mixins.scssc +0 -0
  534. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_modals.scssc +0 -0
  535. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navbar.scssc +0 -0
  536. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navs.scssc +0 -0
  537. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pager.scssc +0 -0
  538. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pagination.scssc +0 -0
  539. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_popovers.scssc +0 -0
  540. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_progress-bars.scssc +0 -0
  541. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_reset.scssc +0 -0
  542. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-1200px-min.scssc +0 -0
  543. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-767px-max.scssc +0 -0
  544. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-768px-979px.scssc +0 -0
  545. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-navbar.scssc +0 -0
  546. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-utilities.scssc +0 -0
  547. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_scaffolding.scssc +0 -0
  548. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_sprites.scssc +0 -0
  549. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tables.scssc +0 -0
  550. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_thumbnails.scssc +0 -0
  551. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tooltip.scssc +0 -0
  552. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_type.scssc +0 -0
  553. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_utilities.scssc +0 -0
  554. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_variables.scssc +0 -0
  555. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_wells.scssc +0 -0
  556. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/bootstrap.scssc +0 -0
  557. data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/responsive.scssc +0 -0
  558. data/spec/dummy_app/tmp/cache/assets/test/sass/f31185238ced2f85aef3331b2fccaf2065e3231a/select2.css.erbc +0 -0
  559. data/spec/dummy_app/tmp/cache/assets/test/sprockets/00241a7292d851bac376d0f0957e63ff +0 -0
  560. data/spec/dummy_app/tmp/cache/assets/test/sprockets/003e285de7c62692a9fe3b8f50902380 +0 -0
  561. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0104c964a4f56bb5b2899a07f10af9f9 +0 -0
  562. data/spec/dummy_app/tmp/cache/assets/test/sprockets/089607f98e898c71fd68e8ae51754987 +0 -0
  563. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0cafd9bc53d49c2cf5e5824a613c234a +0 -0
  564. data/spec/dummy_app/tmp/cache/assets/test/sprockets/0ff0b5f27512c6d962359fb992396486 +0 -0
  565. data/spec/dummy_app/tmp/cache/assets/test/sprockets/11bce97ed3034e6e70d23980be846e97 +0 -0
  566. data/spec/dummy_app/tmp/cache/assets/test/sprockets/11eff350cf9d6699fa472a8cc51a5ae4 +0 -0
  567. data/spec/dummy_app/tmp/cache/assets/test/sprockets/12ca1512e2358f3ac0eb9052a78f0a87 +0 -0
  568. data/spec/dummy_app/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  569. data/spec/dummy_app/tmp/cache/assets/test/sprockets/184efa29626c6b13fd6f290830370818 +0 -0
  570. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1a9589d7b8d8cbf05f74469c8f4c4156 +0 -0
  571. data/spec/dummy_app/tmp/cache/assets/test/sprockets/1c50d4281907563387028ba86a066d3c +0 -0
  572. data/spec/dummy_app/tmp/cache/assets/test/sprockets/22e2b6a8afe048228c40b58e65bfdb13 +0 -0
  573. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2598bea497f818511170f1767eb626cb +0 -0
  574. data/spec/dummy_app/tmp/cache/assets/test/sprockets/26576898fc49833696cd3f3fb7eccf95 +0 -0
  575. data/spec/dummy_app/tmp/cache/assets/test/sprockets/28418912ed32585ce915ff3973682be4 +0 -0
  576. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2aac860bfb56742949faa12d706267d0 +0 -0
  577. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2c8963580cbc47dc28cbed8da42f84ca +0 -0
  578. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2cc54b227549bd5df491930580a8bc64 +0 -0
  579. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2da93a1145941acb52281bece48fe4a3 +0 -0
  580. data/spec/dummy_app/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  581. data/spec/dummy_app/tmp/cache/assets/test/sprockets/30f9c6c7e6c0b1341b38eb1b28f31810 +0 -0
  582. data/spec/dummy_app/tmp/cache/assets/test/sprockets/33b864d3cf87bb7e2b39adfa0426f263 +0 -0
  583. data/spec/dummy_app/tmp/cache/assets/test/sprockets/33d1f9ea25c7b89f2459940d9212a669 +0 -0
  584. data/spec/dummy_app/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  585. data/spec/dummy_app/tmp/cache/assets/test/sprockets/37f26ee40ea683e5f0ceaf797b814a54 +0 -0
  586. data/spec/dummy_app/tmp/cache/assets/test/sprockets/38b637f41c9bd27a51de4b1762a73647 +0 -0
  587. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3c4ff97255336da127cbcb0caf6e3015 +0 -0
  588. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3c8e11617355c1c5e083959f26cee4b6 +0 -0
  589. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3d03edf86b468f9e9b330ed805860769 +0 -0
  590. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3d7fbddfa7a63c926358b342a3eac479 +0 -0
  591. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3de8063d0af2ad28e95baf817514b616 +0 -0
  592. data/spec/dummy_app/tmp/cache/assets/test/sprockets/3f30325451dfb42de8d8ed9a9c084659 +0 -0
  593. data/spec/dummy_app/tmp/cache/assets/test/sprockets/47d3aa8065e6b7e20f718fcd29cb8660 +0 -0
  594. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4a4c804531d617393de455ae5e7d3ef3 +0 -0
  595. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4b33722102ab3dcfd0b25b5bef28dea2 +0 -0
  596. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4d002d1a4924d16b15d4ed3f18091bff +0 -0
  597. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4fb84f030762485b5f9e956b5185da20 +0 -0
  598. data/spec/dummy_app/tmp/cache/assets/test/sprockets/4fc760e501c018ae614b48f11d1d291a +0 -0
  599. data/spec/dummy_app/tmp/cache/assets/test/sprockets/506b60726578735bdb85ff7c0d7fe54e +0 -0
  600. data/spec/dummy_app/tmp/cache/assets/test/sprockets/508c14fe1a15ea3e34224307aac6225d +0 -0
  601. data/spec/dummy_app/tmp/cache/assets/test/sprockets/572d0e3e85fa261156105039963d871d +0 -0
  602. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5748f429893a84aa7c3d3f5a8c83c429 +0 -0
  603. data/spec/dummy_app/tmp/cache/assets/test/sprockets/57ca51d3b9c0dca90847bde786647ed9 +0 -0
  604. data/spec/dummy_app/tmp/cache/assets/test/sprockets/58216b347a0e26bfb17bb6858fa58fe3 +0 -0
  605. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5a723f838e928f8525dbfe097421bcc5 +0 -0
  606. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5ca7841eb0c1ce4fce5ca5c089c81a27 +0 -0
  607. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5de0dcc5b363271c35e2f24cdc6d0fb5 +0 -0
  608. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2ab7bcc69360d652fafb3fbc63c5a3 +0 -0
  609. data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2af01867b50ec9e726fc860497c77f +0 -0
  610. data/spec/dummy_app/tmp/cache/assets/test/sprockets/63a371041bf7f21fa88e427db780f480 +0 -0
  611. data/spec/dummy_app/tmp/cache/assets/test/sprockets/63ae6b3d3df541f5fc47dd7722eedffc +0 -0
  612. data/spec/dummy_app/tmp/cache/assets/test/sprockets/64888fd16034a8607f962f87418fedb3 +0 -0
  613. data/spec/dummy_app/tmp/cache/assets/test/sprockets/67bcc3d148c493a1945bc97ef249d81d +0 -0
  614. data/spec/dummy_app/tmp/cache/assets/test/sprockets/68378e5dd52f7dedcefab5dd586a99b4 +0 -0
  615. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6a03a21304c0e62a86f049dbd1bec75d +0 -0
  616. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6d6cbd0baea2774f4a367edf79c20efb +0 -0
  617. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6e81adbb0a0e41feab2afa9b138d0a6d +0 -0
  618. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f222094c80a63b5f18d99b89ec1df5f +0 -0
  619. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f4d8a75f9952ad791647a0c21be66d3 +0 -0
  620. data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f83c9939102b4619eabd02111cf327d +0 -0
  621. data/spec/dummy_app/tmp/cache/assets/test/sprockets/704e339f6490098455c0c834c0ba168e +0 -0
  622. data/spec/dummy_app/tmp/cache/assets/test/sprockets/72b128fc6f546bdd9b63f28a930e6f63 +0 -0
  623. data/spec/dummy_app/tmp/cache/assets/test/sprockets/72c1561e683cf672ae85824865c551ea +0 -0
  624. data/spec/dummy_app/tmp/cache/assets/test/sprockets/733efb7785d2a5bf99bfabc1e65bc6cc +0 -0
  625. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7398227d5d76926ebb4eefd0f60a8682 +0 -0
  626. data/spec/dummy_app/tmp/cache/assets/test/sprockets/766f9ac65b372adfffbc20fc3c11787d +0 -0
  627. data/spec/dummy_app/tmp/cache/assets/test/sprockets/780aca8465b079da370475ddc33153c8 +0 -0
  628. data/spec/dummy_app/tmp/cache/assets/test/sprockets/78107b4418a915310b877f2476a86c6b +0 -0
  629. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7bc5f8b1be235cc1cc912f2ce07b3575 +0 -0
  630. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7c4325d5e7ed475316bc2f09f5a8426b +0 -0
  631. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7d3a0d4123a39f727d17b424cb809172 +0 -0
  632. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7d7323f314bbd56742b63fbb33245731 +0 -0
  633. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7e17604cb69365b9c04ab2bdab5e1883 +0 -0
  634. data/spec/dummy_app/tmp/cache/assets/test/sprockets/7f079fa6db901e720e9a93fb9fea4fc3 +0 -0
  635. data/spec/dummy_app/tmp/cache/assets/test/sprockets/827c7c505cb992c5d964bcbc2fc423d7 +0 -0
  636. data/spec/dummy_app/tmp/cache/assets/test/sprockets/83e117043b923d0d16ab464274ae7761 +0 -0
  637. data/spec/dummy_app/tmp/cache/assets/test/sprockets/848fa2a63c294b86937ee46fdcb42969 +0 -0
  638. data/spec/dummy_app/tmp/cache/assets/test/sprockets/84dd8d2de6f42c1106c041b3af94a8b2 +0 -0
  639. data/spec/dummy_app/tmp/cache/assets/test/sprockets/84ed3d82ea61013675e915122c957247 +0 -0
  640. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8589169f6c1a9ee8a6467dd57394aa1c +0 -0
  641. data/spec/dummy_app/tmp/cache/assets/test/sprockets/887d9742047f5e9c5eceaf910c77a1de +0 -0
  642. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8a577fda2de89b9bee8e3e3edff1e493 +0 -0
  643. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8c2ee669e9cd5c095f2f4ff75d814907 +0 -0
  644. data/spec/dummy_app/tmp/cache/assets/test/sprockets/8f6c0c726ca9a75d4d4dc89ab01cd6f9 +0 -0
  645. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9115a6dc55fd7a6bd4eb922e8f4327c1 +0 -0
  646. data/spec/dummy_app/tmp/cache/assets/test/sprockets/93a7167bf36c621d305a9481e3d25bce +0 -0
  647. data/spec/dummy_app/tmp/cache/assets/test/sprockets/9492d6e391e59a3b1fe0926011514606 +0 -0
  648. data/spec/dummy_app/tmp/cache/assets/test/sprockets/98797413746006678e6718e2fc0072e3 +0 -0
  649. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a5e7024917f7c6b419ab0cdf38e72e6b +0 -0
  650. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a61f72bcd625cc47886c1928cd35055c +0 -0
  651. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a6fad88c8628b92fa21b43b1aa76cf7d +0 -0
  652. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a7825c008941de47e400148ced44c977 +0 -0
  653. data/spec/dummy_app/tmp/cache/assets/test/sprockets/a7957c8a663412b3fc916487d9b4fa11 +0 -0
  654. data/spec/dummy_app/tmp/cache/assets/test/sprockets/abbc1edaaf47dfc80b1166ef445e776e +0 -0
  655. data/spec/dummy_app/tmp/cache/assets/test/sprockets/abe5d0ed7bfa91ab738920f1d07df4c6 +0 -0
  656. data/spec/dummy_app/tmp/cache/assets/test/sprockets/addd43bf5b4f0533b7e8041185debdd3 +0 -0
  657. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ae79cf81961bd21d204095a53ad08acd +0 -0
  658. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b13b77b3a33991854e944d8a18f17d62 +0 -0
  659. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b262e9ec489792ed46d9a3f061a2575f +0 -0
  660. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b563282525ff9ba52595f00de0175716 +0 -0
  661. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b5cfdf8b42163460b9a99af40af1f850 +0 -0
  662. data/spec/dummy_app/tmp/cache/assets/test/sprockets/b8a8c2faf730407b004ec269c26473d7 +0 -0
  663. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bf2ad2d8b5bd3fdc6aa311eb0e0d002a +0 -0
  664. data/spec/dummy_app/tmp/cache/assets/test/sprockets/bf5d63f847739999ed7724f45d7593d5 +0 -0
  665. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c0ba2663731f9ebc0224d9c3fa57dd5d +0 -0
  666. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c1248b471da8a4a819a68eb0af3dc103 +0 -0
  667. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c2266d7fe9597848b5baa3b118ada4f4 +0 -0
  668. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c38e7994f800531bc12b23135523c6b3 +0 -0
  669. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c3eaaf0a21b3dfc3c3a607a6ad16ddca +0 -0
  670. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c3f0b48cfae36a2ddf7176919c338557 +0 -0
  671. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c4858b3b9b3bd5475da0e04bd3a35191 +0 -0
  672. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c60717cd75961085cbfaed1b3db6f6af +0 -0
  673. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c79787636fbf28ee3ffd89edf5669d75 +0 -0
  674. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c81f70729312f8cfffb2fa682afd6a39 +0 -0
  675. data/spec/dummy_app/tmp/cache/assets/test/sprockets/c9487d16cf2ce7367963c017d1732be2 +0 -0
  676. data/spec/dummy_app/tmp/cache/assets/test/sprockets/caef372e0b0efd371eb93602c2ba72b6 +0 -0
  677. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce095fdd19d87bdedf6f29dedc5f8be2 +0 -0
  678. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce1b44d8727c41febfc3a96f9bd00599 +0 -0
  679. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce57fab3414f0fb0fd0dec0214b04d2f +0 -0
  680. data/spec/dummy_app/tmp/cache/assets/test/sprockets/cef38ed915676983be0704ef77a90742 +0 -0
  681. data/spec/dummy_app/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  682. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  683. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d82b7d635f85356c0e82b32ba4c6a4aa +0 -0
  684. data/spec/dummy_app/tmp/cache/assets/test/sprockets/d92dd66f936d3a75c863b72e2b27115d +0 -0
  685. data/spec/dummy_app/tmp/cache/assets/test/sprockets/df4353ad516c274a84e9ccb80b30a3ac +0 -0
  686. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e1cbb636d734b1c62f30f4f238c9662a +0 -0
  687. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e21995a68b298fb3743da07cc42cecc6 +0 -0
  688. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e38a482225929905e4c579fc6fa31238 +0 -0
  689. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e481ffc4e01eb6fbf7ce2ffd1636a669 +0 -0
  690. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e545f687f3a940a17b49b971b4133c0c +0 -0
  691. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e6548eae94b88a5488902e756cb0b8a8 +0 -0
  692. data/spec/dummy_app/tmp/cache/assets/test/sprockets/e6af1f885ff81245d4ada1412fda047b +0 -0
  693. data/spec/dummy_app/tmp/cache/assets/test/sprockets/eadf6b627f39c82d965368dd440557c3 +0 -0
  694. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ef24895902c6875e7b5476d9d73d8e6b +0 -0
  695. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f0906a63ce8aa3885ea12f7b2e04b203 +0 -0
  696. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f30c986d0368baf246d16a5a9baf0a3a +0 -0
  697. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f4d2c43148f3ab92536c07cb05df0a4c +0 -0
  698. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f5b822723ea8a3561c0f0a8819ab2838 +0 -0
  699. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  700. data/spec/dummy_app/tmp/cache/assets/test/sprockets/f82cd72f16a42c411e418fb85e3da9e7 +0 -0
  701. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ff435fd5d18db4f8c1de46245385d286 +0 -0
  702. data/spec/dummy_app/tmp/cache/assets/test/sprockets/ffbfecea42fde1ce85f0c6993dacb73a +0 -0
  703. data/spec/dummy_app/tmp/capybara/capybara-201312162026497852199536.html +140 -0
  704. data/spec/dummy_app/tmp/capybara/capybara-201312162030365979579973.html +138 -0
  705. data/spec/dummy_app/tmp/capybara/capybara-201312162048324949230951.html +112 -0
  706. data/spec/dummy_app/tmp/capybara/capybara-201312162050472624679051.html +113 -0
  707. data/spec/dummy_app/tmp/capybara/capybara-201312162051149832011801.html +113 -0
  708. data/spec/dummy_app/tmp/capybara/capybara-201312162051552039794721.html +113 -0
  709. data/spec/dummy_app/tmp/capybara/capybara-201312162053001557043118.html +747 -0
  710. data/spec/dummy_app/tmp/capybara/capybara-201312162053292250254476.html +115 -0
  711. data/spec/dummy_app/tmp/capybara/capybara-201312162152333224586970.html +131 -0
  712. data/spec/dummy_app/tmp/capybara/capybara-20131216215647403551844.html +125 -0
  713. data/spec/dummy_app/tmp/capybara/capybara-201312162158082748551609.html +131 -0
  714. data/spec/dummy_app/tmp/capybara/capybara-201312162158088359803421.html +131 -0
  715. data/spec/dummy_app/tmp/capybara/capybara-201312182137592841800935.html +114 -0
  716. data/spec/dummy_app/tmp/capybara/capybara-20131218214441554050539.html +114 -0
  717. data/spec/dummy_app/tmp/capybara/capybara-201312261935056942776945.html +259 -0
  718. data/spec/dummy_app/tmp/capybara/capybara-201312261936286563388256.html +259 -0
  719. data/spec/dummy_app/tmp/capybara/capybara-201312271118002257059702.html +153 -0
  720. data/spec/dummy_app/tmp/capybara/capybara-201312271128336029989748.html +127 -0
  721. data/spec/dummy_app/tmp/capybara/capybara-201312271129315690411904.html +121 -0
  722. data/spec/dummy_app/tmp/capybara/capybara-20131227113202580591737.html +107 -0
  723. data/spec/dummy_app/tmp/capybara/capybara-201312271132244794498907.html +114 -0
  724. data/spec/dummy_app/tmp/capybara/capybara-201312271133318824850156.html +112 -0
  725. data/spec/dummy_app/tmp/capybara/capybara-201312271134317429303772.html +126 -0
  726. data/spec/dummy_app/tmp/capybara/capybara-201312271134353284147706.html +153 -0
  727. data/spec/dummy_app/tmp/capybara/capybara-20131227113603650964832.html +127 -0
  728. data/spec/dummy_app/tmp/capybara/capybara-201312271137218900108849.html +126 -0
  729. data/spec/dummy_app/tmp/capybara/capybara-201312271218362796119085.html +122 -0
  730. data/spec/dummy_app/tmp/capybara/capybara-201312271218401902692864.html +153 -0
  731. data/spec/dummy_app/tmp/capybara/capybara-201312271219015533405075.html +153 -0
  732. data/spec/dummy_app/tmp/capybara/capybara-201312271220169885656076.html +113 -0
  733. data/spec/dummy_app/tmp/capybara/capybara-201312271220441372008048.html +123 -0
  734. data/spec/dummy_app/tmp/capybara/capybara-201312271220485434671929.html +153 -0
  735. data/spec/dummy_app/tmp/capybara/capybara-201312271224181755415982.html +113 -0
  736. data/spec/dummy_app/tmp/capybara/capybara-201312271224325301730596.html +123 -0
  737. data/spec/dummy_app/tmp/capybara/capybara-201312271228171029900518.html +113 -0
  738. data/spec/dummy_app/tmp/capybara/capybara-201312271407363281638390.html +628 -0
  739. data/spec/dummy_app/tmp/capybara/capybara-201312271408083129633112.html +127 -0
  740. data/spec/dummy_app/tmp/capybara/capybara-201312271415367683301637.html +628 -0
  741. data/spec/dummy_app/tmp/capybara/capybara-201312271417475568989244.html +127 -0
  742. data/spec/dummy_app/tmp/capybara/capybara-201312271418196628463520.html +127 -0
  743. data/spec/dummy_app/tmp/capybara/capybara-201312271420132522546597.html +198 -0
  744. data/spec/dummy_app/tmp/capybara/capybara-201312271420133130129630.html +198 -0
  745. data/spec/dummy_app/tmp/capybara/capybara-201312271425401053845386.html +126 -0
  746. data/spec/dummy_app/tmp/capybara/capybara-201312271426108301688471.html +127 -0
  747. data/spec/dummy_app/tmp/capybara/capybara-201312271428418329320932.html +127 -0
  748. data/spec/dummy_app/tmp/capybara/capybara-201312271431575742602266.html +132 -0
  749. data/spec/dummy_app/tmp/capybara/capybara-201312271433385527107241.html +114 -0
  750. data/spec/dummy_app/tmp/capybara/capybara-201312271433401942304014.html +126 -0
  751. data/spec/dummy_app/tmp/capybara/capybara-201312271439499410141437.html +116 -0
  752. data/spec/dummy_app/tmp/capybara/capybara-201312271439509031720607.html +126 -0
  753. data/spec/dummy_app/tmp/capybara/capybara-201312271441348332077802.html +126 -0
  754. data/spec/dummy_app/tmp/capybara/capybara-201312271441365445661911.html +116 -0
  755. data/spec/dummy_app/tmp/capybara/capybara-201312271457397144808296.html +416 -0
  756. data/spec/dummy_app/tmp/capybara/capybara-201312271504022932290123.html +448 -0
  757. data/spec/dummy_app/tmp/capybara/capybara-20131227150426152029741.html +416 -0
  758. data/spec/dummy_app/tmp/capybara/capybara-201312271505268120229617.html +450 -0
  759. data/spec/dummy_app/tmp/capybara/capybara-20131227150615333567591.html +450 -0
  760. data/spec/dummy_app/tmp/capybara/capybara-201312271506599178616234.html +132 -0
  761. data/spec/dummy_app/tmp/capybara/capybara-201312271507017378535543.html +114 -0
  762. data/spec/dummy_app/tmp/capybara/capybara-201312271507357624937637.html +132 -0
  763. data/spec/dummy_app/tmp/capybara/capybara-20131227150741532676452.html +114 -0
  764. data/spec/dummy_app/tmp/capybara/capybara-20131227150820420044934.html +114 -0
  765. data/spec/dummy_app/tmp/capybara/capybara-201312271508259996452817.html +132 -0
  766. data/spec/dummy_app/tmp/capybara/capybara-201312271509203051781930.html +132 -0
  767. data/spec/dummy_app/tmp/capybara/capybara-201312271509248613318515.html +114 -0
  768. data/spec/dummy_app/tmp/capybara/capybara-201312271514294787082016.html +198 -0
  769. data/spec/dummy_app/tmp/capybara/capybara-201312271514297373677646.html +114 -0
  770. data/spec/dummy_app/tmp/capybara/capybara-201312271514318217955735.html +132 -0
  771. data/spec/dummy_app/tmp/capybara/capybara-201312271518353503870265.html +175 -0
  772. data/spec/dummy_app/tmp/capybara/capybara-201312271519099724216470.html +132 -0
  773. data/spec/dummy_app/tmp/capybara/capybara-201312271519124515598988.html +114 -0
  774. data/spec/dummy_app/tmp/capybara/capybara-201312271519565062036130.html +132 -0
  775. data/spec/dummy_app/tmp/capybara/capybara-20131227151956788730482.html +114 -0
  776. data/spec/dummy_app/tmp/capybara/capybara-201312271520596747460049.html +132 -0
  777. data/spec/dummy_app/tmp/capybara/capybara-201312271521071461923825.html +114 -0
  778. data/spec/dummy_app/tmp/capybara/capybara-201312271522043068145141.html +132 -0
  779. data/spec/dummy_app/tmp/capybara/capybara-201312271522046336876738.html +114 -0
  780. data/spec/dummy_app/tmp/capybara/capybara-201312271528279956840950.html +114 -0
  781. data/spec/dummy_app/tmp/capybara/capybara-201312271528309526479429.html +132 -0
  782. data/spec/dummy_app/tmp/capybara/capybara-201312271530093771347047.html +132 -0
  783. data/spec/dummy_app/tmp/capybara/capybara-201312271547306806749083.html +132 -0
  784. data/spec/dummy_app/tmp/capybara/capybara-201312271547354314836403.html +114 -0
  785. data/spec/integration/basic/bulk_edit/basepack_basic_bulk_edit_spec.rb +149 -0
  786. data/spec/integration/basic/create/basepack_basic_create_spec.rb +124 -0
  787. data/spec/integration/basic/destroy/basepack_basic_destroy_spec.rb +61 -0
  788. data/spec/integration/basic/edit/basepack_basic_edit_spec.rb +64 -0
  789. data/spec/integration/basic/list/basepack_basic_list_spec.rb +566 -0
  790. data/spec/integration/basic/list/basepack_bulk_actions_spec.rb +128 -0
  791. data/spec/integration/basic/merge/basepack_basic_merge_spec.rb +18 -0
  792. data/spec/integration/basic/new/basepack_basic_new_spec.rb +96 -0
  793. data/spec/integration/basic/show/basepack_basic_show_spec.rb +317 -0
  794. data/spec/integration/basic/update/basepack_basic_update_spec.rb +54 -0
  795. data/spec/spec_helper.rb +69 -0
  796. data/spec/support/basepack_helper.rb +66 -0
  797. data/spec/support/devise.rb +3 -0
  798. metadata +1794 -0
@@ -0,0 +1,66 @@
1
+ module Basepack
2
+ module Delegation
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def delegate_attrs(*attrs_names)
7
+ options = attrs_names.last.is_a?(Hash) ? attrs_names.pop : {}
8
+ to = options[:to] || :delegate
9
+
10
+ attrs_names.each do |attr|
11
+ if attr[-1] == "?"
12
+ writter = attr[0...-1]
13
+ define_method attr do
14
+ send(writter)
15
+ end
16
+ else
17
+ writter = attr
18
+ end
19
+
20
+ var = "@#{writter}".to_sym
21
+ default = "#{writter}!".to_sym
22
+ delegated = "#{writter}_delegated".to_sym
23
+
24
+ attr_writer writter
25
+
26
+ define_method writter do |&block|
27
+ if block
28
+ instance_variable_set(block)
29
+ else
30
+ if instance_variable_defined?(var)
31
+ val = instance_variable_get(var)
32
+ val.is_a?(Proc) ? instance_eval(&val) : val
33
+ else
34
+ send(default)
35
+ end
36
+ end
37
+ end
38
+
39
+ define_method delegated do
40
+ d = send(to)
41
+ d.respond_to?(attr) ? d.public_send(attr) : nil
42
+ end
43
+
44
+ define_method default do
45
+ send(delegated)
46
+ end
47
+ end
48
+ end
49
+
50
+ def attr_default(attr, if_args = [], &block)
51
+ delegated = "#{attr}_delegated".to_sym
52
+ if_args = if_args.map {|a| "@#{a}".to_sym }
53
+
54
+ define_method "#{attr}!" do
55
+ val = send(delegated)
56
+ if val.nil? or if_args.any? {|a| instance_variable_defined?(a) }
57
+ instance_eval(&block)
58
+ else
59
+ val # no argument redefined, return delegate
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+
@@ -0,0 +1,28 @@
1
+ require 'csv'
2
+ require 'rails_admin'
3
+ require 'inherited_resources'
4
+ require 'select2-rails'
5
+ require 'bootstrap-modal-rails'
6
+ require 'underscore-rails'
7
+ require 'underscore-string-rails'
8
+ require 'rails-i18n'
9
+
10
+ module Basepack
11
+ class Engine < ::Rails::Engine
12
+ config.autoload_paths += [root.join('lib')]
13
+ #if Rails.env.development?
14
+ # config.to_prepare do
15
+ # Rails.logger.debug "RELOADING BASEPACK"
16
+ # require_dependency Basepack::Engine.root.join('lib', 'basepack').to_s
17
+ # end
18
+ #end
19
+
20
+ config.generators do |g|
21
+ g.test_framework :rspec, :fixture => false
22
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
23
+ g.assets false
24
+ g.helper false
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,267 @@
1
+ # encoding: UTF-8
2
+ require 'parslet'
3
+
4
+ module Basepack
5
+ class FilterQL
6
+ class ParseError < StandardError; end
7
+
8
+ class Parser < Parslet::Parser
9
+ def stri(str)
10
+ key_chars = str.split(//)
11
+ key_chars.collect! { |char| match["#{char.upcase}#{char.downcase}"] }.reduce(:>>)
12
+ end
13
+
14
+ rule(:spaces) { match('\s').repeat(1) } # at least 1 space character (space, tab, new line, carriage return)
15
+ rule(:spaces?) { spaces.maybe } # a bunch of spaces or not
16
+
17
+ rule(:quote) { str("'") }
18
+ rule(:nonquote) { str("'").absnt? >> any }
19
+
20
+ rule(:dbquote) { str('"') }
21
+ rule(:nondbquote) { str('"').absnt? >> any }
22
+
23
+ rule(:escape) { str('\\') >> any }
24
+ rule(:comma) { spaces? >> str(',') >> spaces? }
25
+
26
+ rule(:and_op) { stri('and') >> spaces? }
27
+ rule(:or_op) { stri('or') >> spaces? }
28
+ rule(:lparen) { str("(") >> spaces? }
29
+ rule(:rparen) { str(")") >> spaces? }
30
+ rule(:not_op) { spaces? >> stri('not').maybe.as(:not) >> spaces? }
31
+
32
+ rule(:operator) { str('=') | str('!=') | str('>=') | str('<=') | str('>') | str('<') }
33
+ rule(:str_op) { stri('like') | stri('cont') | stri('start') | stri('end') }
34
+ rule(:switch_op) { stri('null') | stri('blank') }
35
+ rule(:identifier) { (match('[a-z_]') >> match('[a-z0-9_]').repeat).as(:identifier) }
36
+ rule(:string) { (quote >> (escape | nonquote).repeat.as(:string) >> quote) | (dbquote >> (escape | nondbquote).repeat.as(:string) >> dbquote) }
37
+ rule(:integer) { (str('+') | str('-')).maybe >> match('[0-9]').repeat(1) }
38
+ rule(:float) { integer >> (str('.') >> match('[0-9]').repeat(1) | stri('e') >> match('[0-9]').repeat(1)) }
39
+ rule(:literal) { string | array | jshash | function.as(:function) | float.as(:float) | integer.as(:integer) | stri('true').as(:true) | stri('false').as(:false) }
40
+
41
+ rule(:array) { str('[') >> spaces? >> (literal >> (comma >> literal).repeat).maybe.as(:array) >> spaces? >> str(']') }
42
+ rule(:hash_pair) { ( identifier.as(:key) >> spaces? >> str(':') >> spaces? >> literal.as(:val) ).as(:hash_pair) }
43
+ rule(:jshash) { str('{') >> spaces? >> (hash_pair >> (comma >> hash_pair).repeat).maybe.as(:jshash) >> spaces? >> str('}') }
44
+
45
+ rule(:function) { (match('[a-z_]') >> match('[a-z0-9_]').repeat).as(:function_name) >> str('(') >> literal.maybe.as(:param) >> str(')') }
46
+
47
+ rule(:expression) { identifier.as(:id) >> spaces? >> operator.as(:op) >> spaces? >> literal.as(:value) >> spaces? }
48
+ rule(:str_expression) { identifier.as(:id) >> spaces >> not_op.as(:not) >> str_op.as(:op) >> spaces? >> string.as(:str) >> spaces? }
49
+ rule(:blank_expr) { identifier.as(:id) >> spaces >> stri('is') >> not_op.as(:not) >> switch_op.as(:switch_op) >> spaces? }
50
+
51
+ #rule(:condition) { lparen >> or_cond >> rparen | expression | str_expression | blank_expr }
52
+ #rule(:and_cond) { (condition.as(:left) >> and_op >> and_cond.as(:right)).as(:and) | condition }
53
+ #rule(:or_cond) { (and_cond.as(:left) >> or_op >> or_cond.as(:right)).as(:or) | and_cond }
54
+ rule(:condition) { expression | str_expression | blank_expr }
55
+ #rule(:query) { spaces? >> or_cond >> spaces? }
56
+ rule(:query) { spaces? >> ( condition >> (and_op >> condition).repeat ).as(:query) >> spaces? }
57
+
58
+ root :query
59
+ end
60
+
61
+ PREDICATE_MAP = {
62
+ "=" => 'eq',
63
+ "!=" => 'not_eq',
64
+ ">=" => 'gteq',
65
+ "<=" => 'lteq',
66
+ ">" => 'gt',
67
+ "<" => 'lt',
68
+ "like" => 'matches',
69
+ "notlike" => 'does_not_match',
70
+ "cont" => 'cont',
71
+ "notcont" => 'not_cont',
72
+ "start" => 'start',
73
+ "notstart" => 'not_start',
74
+ "end" => 'end',
75
+ "notend" => 'not_end',
76
+ "blank" => 'blank',
77
+ "notblank" => 'present',
78
+ "null" => 'null',
79
+ "notnull" => 'not_null',
80
+ }.freeze
81
+
82
+ PREDICATE_MAP_REVERSE = {
83
+ 'eq' => "=",
84
+ 'not_eq' => "!=",
85
+ 'gteq' => ">=",
86
+ 'lteq' => "<=",
87
+ 'gt' => ">",
88
+ 'lt' => "<",
89
+ 'matches' => "like",
90
+ 'does_not_match' => "not like",
91
+ 'cont' => "cont",
92
+ 'not_cont' => "not cont",
93
+ 'start' => "start",
94
+ 'not_start' => "not start",
95
+ 'end' => "end",
96
+ 'not_end' => "not end",
97
+ 'blank' => "is blank",
98
+ 'present' => "is not blank",
99
+ 'null' => "is null",
100
+ 'not_null' => "is not null",
101
+ 'true' => "= true",
102
+ 'false' => "= false",
103
+ }.freeze
104
+
105
+ class Transformer < Parslet::Transform
106
+ class HashPair < Struct.new(:key, :val); end
107
+
108
+ rule(:string => simple(:str)) { FilterQL.string_to_value(str.to_s) }
109
+ rule(:integer => simple(:int)) { Integer(int) }
110
+ rule(:float => simple(:float)) { Float(float) }
111
+ rule(:identifier => simple(:id)) { id.to_sym }
112
+ rule(:true => simple(:true)) { true }
113
+ rule(:false => simple(:false)) { false }
114
+ rule(:not => simple(:n)) { n ? :not : nil }
115
+
116
+ rule(:function => { :function_name => simple(:fce_name), :param => subtree(:param) }) do
117
+ b = builder.new_for_slice(fce_name)
118
+ if f = builder.functions[fce_name.to_sym]
119
+ f.call(b, param)
120
+ else
121
+ b.raise_error("Neznámá funkce `#{fce_name}'")
122
+ end
123
+ end
124
+
125
+ rule(:array => subtree(:ar)) { Array(ar) }
126
+ rule(:jshash => subtree(:ob)) do
127
+ (ob.is_a?(Array) ? ob : [ ob ]).inject({}) { |h, e| h[e.key] = e.val; h }
128
+ end
129
+ rule(:hash_pair => { :key => simple(:ke), :val => simple(:va) }) { HashPair.new(ke, va) }
130
+
131
+ rule(id: simple(:id), op: simple(:op), value: subtree(:value)) do
132
+ { "#{id}_#{PREDICATE_MAP[op.to_s]}" => value }
133
+ end
134
+
135
+ rule(id: simple(:id), not: simple(:n), op: simple(:op), str: simple(:value)) do
136
+ predicate = PREDICATE_MAP["#{n}#{op}"]
137
+ { "#{id}_#{predicate}" => value }
138
+ end
139
+
140
+ rule(id: simple(:id), not: simple(:n), switch_op: simple(:value)) do
141
+ predicate = PREDICATE_MAP["#{n}#{value}"]
142
+ { "#{id}_#{predicate}" => true }
143
+ end
144
+
145
+ rule(:query => subtree(:conditions)) do
146
+ Array.wrap(conditions).inject({}) {|result, cond| result.merge(cond)}
147
+ end
148
+ end
149
+
150
+ class Builder
151
+ attr_reader :query, :options, :slice
152
+
153
+ def initialize(query, options, slice = nil)
154
+ @query = query
155
+ @options = options
156
+ @slice = slice
157
+ end
158
+
159
+ def functions
160
+ @options[:functions] || {}
161
+ end
162
+
163
+ def raise_error_for_pos(message, pos, line = '?', column = '?')
164
+ query_error = pos >= query.length ? "#{query}(<=CHYBA)" : query.dup.insert(pos, "(<=CHYBA)")
165
+ raise ParseError, "#{message} na řádku #{line} sloupec #{column}: \"#{query_error}\""
166
+ end
167
+
168
+ def raise_error(message)
169
+ if slice
170
+ line, column = slice.line_and_column
171
+ raise_error_for_pos(message, slice.offset + slice.size, line, column)
172
+ else
173
+ raise ParseError, message
174
+ end
175
+ end
176
+
177
+ def new_for_slice(slice)
178
+ Builder.new(query, options, slice)
179
+ end
180
+ end
181
+
182
+ def initialize(options = nil)
183
+ @parser = Parser.new
184
+ @transformer = Transformer.new
185
+ @options = (options || {}).freeze
186
+ end
187
+
188
+ def parse(query, options = nil)
189
+ builder = Builder.new(query, @options)
190
+ begin
191
+ ast = @parser.parse(query, reporter: Parslet::ErrorReporter::Deepest.new)
192
+ @transformer.apply(ast, builder: builder)
193
+ rescue Parslet::ParseFailed => e
194
+ #puts e.cause.ascii_tree
195
+ deepest = deepest_cause(e.cause)
196
+ line, column = deepest.source.line_and_column(deepest.pos)
197
+ builder.raise_error_for_pos("Neočekáváný vstup", deepest.pos, line, column)
198
+ end
199
+ end
200
+
201
+ #Basepack::FilterQL.test
202
+ def self.test
203
+ new(
204
+ functions: {
205
+ user: proc {|builder, arg| arg.inspect }
206
+ }
207
+ ).parse(
208
+ "a0 = user() and a01 = user('I') and a02 = user({ x: 1}) and a03 = user([1,2,'3']) and " +
209
+ "a1 = 3 and a2 like 'asd' and a3 not like 'asd' and a4 is null and a5 is not null and a6 != 'as\\'d' and a7 = \"str\\\"s\" and " +
210
+ "a8 = { key:'value', key2:1 } and a9 = ['str', 4, 3.5] ",
211
+ )
212
+ end
213
+
214
+ def self.conditions_to_ql(conditions)
215
+ conditions.map do |name, predicate_name, value|
216
+ if predicates[predicate_name][:type] == :boolean
217
+ "#{name} #{PREDICATE_MAP_REVERSE[predicate_name]}"
218
+ else
219
+ case value
220
+ when String then value = value_to_string(value)
221
+ when Hash then value = value_to_jshash(value)
222
+ end
223
+ "#{name} #{PREDICATE_MAP_REVERSE[predicate_name]} #{value}"
224
+ end
225
+ end.join(" and ")
226
+ end
227
+
228
+ def self.predicates
229
+ @predicates ||= begin
230
+ Hash[Ransack.predicates.map do |k, predicate|
231
+ [k, {
232
+ name: k,
233
+ label: Ransack::Translate.predicate(k),
234
+ type: predicate.type,
235
+ compound: predicate.compound,
236
+ wants_array: predicate.wants_array,
237
+ }]
238
+ end.compact]
239
+ end
240
+ end
241
+
242
+ def self.value_to_string(value)
243
+ "'#{value.gsub(/(['\\])/, '\\\\\1')}'"
244
+ end
245
+
246
+ def self.value_to_jshash(value)
247
+ res = value.inject([]) do |r,(k,v)|
248
+ r << "#{k}: #{v.inspect}"
249
+ end.join(", ")
250
+ "{ #{res} }"
251
+ end
252
+
253
+ def self.string_to_value(string)
254
+ string.gsub(/\\(.)/, '\1')
255
+ end
256
+
257
+ private
258
+
259
+ def deepest_cause(cause)
260
+ if cause.children.any?
261
+ deepest_cause(cause.children.first)
262
+ else
263
+ cause
264
+ end
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,246 @@
1
+ module Basepack
2
+ module Forms
3
+ class Base
4
+ include Basepack::Renderable
5
+
6
+ attr_reader :groups
7
+ attr_reader :factory
8
+ attr_reader :resource_class
9
+ attr_reader :association_chain
10
+ attr_accessor :resource
11
+ attr_accessor :view
12
+ attr_accessor :partial
13
+ attr_reader :nested_in
14
+
15
+ def initialize(factory, chain, options = {})
16
+ @factory = factory
17
+ @fields_hash = {}
18
+ @groups = []
19
+ @nested_in = options[:nested_in]
20
+
21
+ chain = Array.wrap(chain)
22
+ @association_chain = chain[0...-1].freeze
23
+
24
+ if chain.last.is_a? Class
25
+ @resource_class = chain.last
26
+ else
27
+ @resource = chain.last
28
+ @resource_class = @resource.class
29
+ end
30
+ end
31
+
32
+ def build_from_factory
33
+ factory.build_form(self)
34
+ end
35
+
36
+ def new_form(*args)
37
+ form = factory.new_form(*args)
38
+ form.view = view
39
+ if configure_nested_form = form.nested_in.try(:configure_nested_form)
40
+ form.configure(&configure_nested_form)
41
+ end
42
+ form
43
+ end
44
+
45
+ def configure(&block)
46
+ yield(self)
47
+ self
48
+ end
49
+
50
+ def label
51
+ @label ||= resource_class.model_name.human
52
+ end
53
+
54
+ def label_plural
55
+ @label_plural ||= resource_class.model_name.human(count: 'other', default: label.pluralize)
56
+ end
57
+
58
+ def chain
59
+ @association_chain + [resource]
60
+ end
61
+
62
+ def chain_with_class
63
+ @association_chain + [resource_class]
64
+ end
65
+
66
+ def resource
67
+ @resource ||= resource_class.new # TODO - nested_in.build_resource
68
+ end
69
+
70
+ def new_record?
71
+ !@resource or @resource.new_record?
72
+ end
73
+
74
+ def inverse_of_nested_in?(field) # TODO remove and should be automatical (test in visible_fields or in visible?)
75
+ field.inverse_of_nested_in?
76
+ end
77
+
78
+ def field_names
79
+ @fields_hash.keys
80
+ end
81
+
82
+ def fields
83
+ @fields_hash.values
84
+ end
85
+
86
+ def fields_hash
87
+ @fields_hash.dup
88
+ end
89
+
90
+ def visible_fields
91
+ @fields_hash.values.find_all {|f| f.visible? }
92
+ end
93
+
94
+ def has_field?(name)
95
+ @fields_hash.has_key? name
96
+ end
97
+
98
+ def field(name, delegate_or_attributes = nil)
99
+ if delegate_or_attributes or block_given?
100
+ field = @fields_hash[name]
101
+ if field
102
+ field.update_attributes(delegate_or_attributes) unless delegate_or_attributes.nil?
103
+ else
104
+ field = factory.new_field(name, self, delegate_or_attributes)
105
+ end
106
+ yield(field) if block_given?
107
+ @fields_hash[name] = field
108
+ else
109
+ @fields_hash[name]
110
+ end
111
+ end
112
+
113
+ def visible_field(name)
114
+ field = @fields_hash[name]
115
+ field && field.visible? ? field : nil
116
+ end
117
+
118
+ def hide_field(field_name)
119
+ @fields_hash[field_name].try :visible=, false
120
+ end
121
+
122
+ def hide_fields(*field_names)
123
+ field_names.each {|f| hide_field(f)}
124
+ end
125
+
126
+ def show_fields(*field_names)
127
+ field_names.each {|name| @fields_hash[name].try :visible, true }
128
+ end
129
+
130
+ def group(attributes = nil)
131
+ group = factory.new_group(self, attributes)
132
+ yield(group) if block_given?
133
+ @groups << group
134
+ group
135
+ end
136
+
137
+ def default_group
138
+ @groups.first
139
+ end
140
+
141
+ def visible_groups
142
+ groups.find_all {|g| g.field_names.present? }
143
+ end
144
+
145
+ render do
146
+ view.render @partial || default_partial, form: self
147
+ end
148
+
149
+ def default_partial
150
+ end
151
+
152
+ def render_field(field)
153
+ field.render
154
+ end
155
+
156
+ def render_field!(field)
157
+ end
158
+
159
+ def content_for_field(field_name, &block)
160
+ field(field_name) do |f|
161
+ f.content(&block)
162
+ end
163
+ end
164
+
165
+ def path
166
+ view.url_for(chain)
167
+ end
168
+
169
+ def permit_params(params)
170
+ sanitize_params(params).permit!
171
+ end
172
+
173
+ def sanitize_params(params, add_to_allwed = [])
174
+ new_params = params.dup
175
+ allowed = add_to_allwed.dup
176
+
177
+ visible_fields.each do |f|
178
+ next if f.read_only? or f.inverse_of_nested_in?
179
+
180
+ f.parse_input(new_params)
181
+
182
+ f.allowed_methods.each do |m|
183
+ if f.type == :serialized or (new_params[m].is_a?(Array) or new_params[m].is_a?(Hash)) ^ !f.multiple?
184
+ allowed << m
185
+ end
186
+ end
187
+
188
+ if nform = f.nform and nparams = new_params[f.method_name]
189
+ # nested_form with accepts_nested_attributes_for needs :id and
190
+ # :_destroy params in some cases
191
+
192
+ nested_allowed = []
193
+ field_nested_params = f.nested_form
194
+ if field_nested_params
195
+ nested_allowed << :id unless field_nested_params[:update_only]
196
+ nested_allowed << :_destroy if field_nested_params[:allow_destroy] or nform.new_record?
197
+ end
198
+
199
+ new_params[f.method_name] = case nparams
200
+ when Array
201
+ nparams.map {|p| p.is_a?(Hash) ? nform.sanitize_params(p, nested_allowed) : p.to_s}
202
+ when Hash
203
+ if f.multiple?
204
+ Hash[nparams.map do |k, p|
205
+ [k, p.is_a?(Hash) ? nform.sanitize_params(p, nested_allowed) : p.to_s]
206
+ end]
207
+ else
208
+ allowed << f.method_name
209
+ nform.sanitize_params(nparams, nested_allowed)
210
+ end
211
+ else
212
+ nparams
213
+ end
214
+ end
215
+ end
216
+
217
+ unpermitted = new_params.slice!(*allowed)
218
+ if unpermitted.present?
219
+ ActiveSupport::Notifications.instrument("unpermitted_parameters.action_controller", keys: unpermitted.keys)
220
+ end
221
+
222
+ new_params
223
+ end
224
+
225
+ def with_resource(resource, *args, &block)
226
+ orig_resource, @resource = @resource, resource
227
+ begin
228
+ yield(resource, *args)
229
+ ensure
230
+ @resource = orig_resource
231
+ end
232
+ end
233
+
234
+ def inspect
235
+ "#<#{self.class.name}[#{resource_class.name}] #{field_names}>"
236
+ end
237
+
238
+ # use more lookup paths for translations
239
+ def translate(resource, action, subaction = "menu")
240
+ Utils.translate(resource, action, subaction)
241
+ end
242
+
243
+ end
244
+ end
245
+ end
246
+
@@ -0,0 +1,44 @@
1
+ module Basepack
2
+ module Forms
3
+ class BulkEdit < Forms::Edit
4
+ attr_accessor :query_form
5
+
6
+ def initialize(factory, chain, options = {})
7
+ super(factory, chain, options)
8
+ @query_form = options[:query_form]
9
+ end
10
+
11
+ def collection
12
+ @query_form ? @query_form.collection_without_pagination : []
13
+ end
14
+
15
+ def path
16
+ @path ||= view.polymorphic_path([:bulk_update, chain].flatten, query_form.params)
17
+ end
18
+
19
+
20
+ def build_from_factory
21
+ factory.build_form(self)
22
+ end
23
+
24
+ def default_partial
25
+ 'forms/bulk_edit'
26
+ end
27
+
28
+ def render_field!(field)
29
+ if field.bulk_editable? and !field.read_only? and field.view_helper != :hidden_field
30
+ field.required = false
31
+ if field.bulk_edit_partial.present? and view.lookup_context.template_exists?(field.bulk_edit_partial, '', true)
32
+ #rendering input field with bulk_edit extensions
33
+ view.render field.bulk_edit_partial, form: self, field: field
34
+ else
35
+ #rendering common input field
36
+ view.render field.partial, form: self, field: field
37
+ end
38
+ end
39
+ end
40
+
41
+
42
+ end
43
+ end
44
+ end