basepack 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +46 -0
- data/README.md +215 -0
- data/Rakefile +23 -0
- data/app/assets/javascripts/basepack/forms/query/date.jst.ejs +8 -0
- data/app/assets/javascripts/basepack/forms/query/filter.jst.ejs +15 -0
- data/app/assets/javascripts/basepack/forms/query/predicate.jst.ejs +7 -0
- data/app/assets/javascripts/basepack/forms/query.coffee +126 -0
- data/app/assets/javascripts/basepack/forms.coffee +503 -0
- data/app/assets/javascripts/basepack/list.coffee +38 -0
- data/app/assets/javascripts/basepack/loading_spinner.coffee.erb +27 -0
- data/app/assets/javascripts/basepack.js +17 -0
- data/app/assets/stylesheets/basepack/bootstrap-variables.css.scss +42 -0
- data/app/assets/stylesheets/basepack/forms.css.scss +143 -0
- data/app/assets/stylesheets/basepack/print.css.scss +15 -0
- data/app/assets/stylesheets/basepack/select2-bootstrap.css +92 -0
- data/app/assets/stylesheets/basepack/sortable.scss +10 -0
- data/app/assets/stylesheets/basepack/theming.css.scss +73 -0
- data/app/assets/stylesheets/basepack.css.scss +21 -0
- data/app/controllers/basepack/base_controller.rb +766 -0
- data/app/helpers/form_helper.rb +142 -0
- data/app/helpers/resources_helper.rb +50 -0
- data/app/models/basepack/import_importable.rb +24 -0
- data/app/models/basepack/settings.rb +15 -0
- data/app/views/basepack/base/_bulk_edit.html.haml +1 -0
- data/app/views/basepack/base/_diff.html.haml +1 -0
- data/app/views/basepack/base/_edit.html.haml +1 -0
- data/app/views/basepack/base/_export.html.haml +1 -0
- data/app/views/basepack/base/_header.html.haml +25 -0
- data/app/views/basepack/base/_import.html.haml +1 -0
- data/app/views/basepack/base/_index.html.haml +1 -0
- data/app/views/basepack/base/_page_actions.html.haml +24 -0
- data/app/views/basepack/base/_query.html.haml +1 -0
- data/app/views/basepack/base/_show.html.haml +1 -0
- data/app/views/basepack/base/bulk_edit.html.haml +2 -0
- data/app/views/basepack/base/diff.html.haml +2 -0
- data/app/views/basepack/base/edit.html.haml +2 -0
- data/app/views/basepack/base/export.html.haml +3 -0
- data/app/views/basepack/base/import.html.haml +2 -0
- data/app/views/basepack/base/index.html.haml +2 -0
- data/app/views/basepack/base/new.html.haml +2 -0
- data/app/views/basepack/base/show.html.haml +2 -0
- data/app/views/forms/_bulk_edit.html.haml +21 -0
- data/app/views/forms/_diff.html.haml +63 -0
- data/app/views/forms/_edit.html.haml +7 -0
- data/app/views/forms/_export.html.haml +70 -0
- data/app/views/forms/_form_fields.html.haml +13 -0
- data/app/views/forms/_import.html.haml +18 -0
- data/app/views/forms/_import_configuration_csv.html.haml +23 -0
- data/app/views/forms/_list.html.haml +25 -0
- data/app/views/forms/_page_entries_info.html.haml +8 -0
- data/app/views/forms/_pagination.html.haml +3 -0
- data/app/views/forms/_query.html.haml +59 -0
- data/app/views/forms/_query_menu.html.haml +23 -0
- data/app/views/forms/_show.html.haml +11 -0
- data/app/views/forms/_show_without_blanks.html.haml +12 -0
- data/app/views/forms/bulk_edit/_form_filtering_multiselect.html.haml +8 -0
- data/app/views/forms/bulk_edit/_form_nested_many.html.haml +1 -0
- data/app/views/forms/bulk_edit/_form_tag_list.html.haml +1 -0
- data/app/views/forms/bulk_edit/_tag_list_with_suggestions.html.haml +21 -0
- data/app/views/forms/buttons/_apply.html.haml +4 -0
- data/app/views/forms/buttons/_bulk_delete.html.haml +5 -0
- data/app/views/forms/buttons/_cancel.html.haml +3 -0
- data/app/views/forms/buttons/_create.html.haml +5 -0
- data/app/views/forms/buttons/_delete.html.haml +3 -0
- data/app/views/forms/buttons/_edit.html.haml +3 -0
- data/app/views/forms/buttons/_export.html.haml +4 -0
- data/app/views/forms/buttons/_import.html.haml +4 -0
- data/app/views/forms/buttons/_modal_cancel.html.haml +4 -0
- data/app/views/forms/buttons/_modal_close.html.haml +1 -0
- data/app/views/forms/buttons/_print.html.haml +3 -0
- data/app/views/forms/buttons/_query.html.haml +25 -0
- data/app/views/forms/buttons/_refresh.html.haml +4 -0
- data/app/views/forms/buttons/_submit.html.haml +4 -0
- data/app/views/forms/buttons/_submit_create.html.haml +4 -0
- data/app/views/forms/edit/_form_ck_editor.html.haml +11 -0
- data/app/views/forms/edit/_form_code_mirror.html.haml +10 -0
- data/app/views/forms/edit/_form_colorpicker.html.haml +7 -0
- data/app/views/forms/edit/_form_datetime.html.haml +6 -0
- data/app/views/forms/edit/_form_enumeration.html.haml +20 -0
- data/app/views/forms/edit/_form_field.html.haml +8 -0
- data/app/views/forms/edit/_form_file_upload.html.haml +14 -0
- data/app/views/forms/edit/_form_filtering_multiselect.html.haml +2 -0
- data/app/views/forms/edit/_form_filtering_select.html.haml +2 -0
- data/app/views/forms/edit/_form_nested_many.html.haml +14 -0
- data/app/views/forms/edit/_form_nested_one.html.haml +5 -0
- data/app/views/forms/edit/_form_polymorphic_association.html.haml +11 -0
- data/app/views/forms/edit/_form_rich_text.html.haml +8 -0
- data/app/views/forms/edit/_form_tag_list.html.haml +1 -0
- data/app/views/forms/edit/_form_text.html.haml +2 -0
- data/app/views/forms/edit/_form_wysihtml5.html.haml +9 -0
- data/app/views/forms/edit/_select_or_nested.html.haml +30 -0
- data/app/views/forms/edit/_tag_list_with_suggestions.html.haml +15 -0
- data/app/views/kaminari/_first_page.html.erb +3 -0
- data/app/views/kaminari/_gap.html.erb +3 -0
- data/app/views/kaminari/_last_page.html.erb +3 -0
- data/app/views/kaminari/_next_page.html.erb +3 -0
- data/app/views/kaminari/_page.html.erb +3 -0
- data/app/views/kaminari/_paginator.html.erb +17 -0
- data/app/views/kaminari/_prev_page.html.erb +3 -0
- data/config/basepack-settings.yml +38 -0
- data/config/initializers/basepack.rb +1 -0
- data/config/initializers/kaminari_config.rb +10 -0
- data/config/initializers/rails_admin.rb +6 -0
- data/config/initializers/ransack.rb +95 -0
- data/config/initializers/simple_form.rb +145 -0
- data/config/initializers/simple_form_bootstrap.rb +47 -0
- data/config/locales/cs.yml +13 -0
- data/config/locales/en.yml +24 -0
- data/config/locales/kaminari.cs.yml +20 -0
- data/config/locales/kaminari.en.yml +19 -0
- data/config/locales/rails_admin.cs.yml +130 -0
- data/config/locales/ransack.cs.yml +70 -0
- data/config/locales/simple_form.cs.yml +28 -0
- data/config/locales/simple_form.en.yml +24 -0
- data/config/routes.rb +2 -0
- data/lib/basepack/delegation.rb +66 -0
- data/lib/basepack/engine.rb +28 -0
- data/lib/basepack/filter_ql.rb +267 -0
- data/lib/basepack/forms/base.rb +246 -0
- data/lib/basepack/forms/bulk_edit.rb +44 -0
- data/lib/basepack/forms/diff.rb +66 -0
- data/lib/basepack/forms/edit.rb +145 -0
- data/lib/basepack/forms/export.rb +109 -0
- data/lib/basepack/forms/factories/base.rb +53 -0
- data/lib/basepack/forms/factories/query_rails_admin.rb +31 -0
- data/lib/basepack/forms/factories/rails_admin.rb +57 -0
- data/lib/basepack/forms/fields/base.rb +158 -0
- data/lib/basepack/forms/fields/belongs_to_association.rb +25 -0
- data/lib/basepack/forms/fields/has_and_belongs_to_many_association.rb +12 -0
- data/lib/basepack/forms/fields/has_many_association.rb +50 -0
- data/lib/basepack/forms/fields/has_one_association.rb +19 -0
- data/lib/basepack/forms/fields/single_association.rb +32 -0
- data/lib/basepack/forms/groups/base.rb +71 -0
- data/lib/basepack/forms/groups/diff.rb +18 -0
- data/lib/basepack/forms/import.rb +147 -0
- data/lib/basepack/forms/list.rb +74 -0
- data/lib/basepack/forms/query.rb +211 -0
- data/lib/basepack/forms/show.rb +18 -0
- data/lib/basepack/import/actions.rb +105 -0
- data/lib/basepack/import/controller.rb +94 -0
- data/lib/basepack/import/importable.rb +40 -0
- data/lib/basepack/import/model_dragonfly.rb +232 -0
- data/lib/basepack/model.rb +30 -0
- data/lib/basepack/renderable.rb +45 -0
- data/lib/basepack/sections/bulk_edit.rb +15 -0
- data/lib/basepack/sections/import.rb +15 -0
- data/lib/basepack/sections/query.rb +19 -0
- data/lib/basepack/utils.rb +225 -0
- data/lib/basepack/version.rb +3 -0
- data/lib/basepack.rb +215 -0
- data/lib/generators/basepack/install_generator.rb +185 -0
- data/lib/generators/basepack/scaffold/scaffold_generator.rb +12 -0
- data/lib/generators/basepack/templates/application.css.scss +15 -0
- data/lib/generators/basepack/templates/application.js +20 -0
- data/lib/generators/basepack/templates/basepack-settings.yml +15 -0
- data/lib/generators/basepack/templates/basepack_and_overrides.css +3 -0
- data/lib/generators/basepack/templates/basepack_and_overrides.css.scss +3 -0
- data/lib/generators/basepack/templates/dragonfly.rb +8 -0
- data/lib/generators/basepack/templates/filter.rb +84 -0
- data/lib/generators/basepack/templates/filters_controller.rb +2 -0
- data/lib/generators/basepack/templates/import.rb +35 -0
- data/lib/generators/basepack/templates/layouts/_content.html.haml +8 -0
- data/lib/generators/basepack/templates/layouts/_facebook.html.haml +11 -0
- data/lib/generators/basepack/templates/layouts/_footer.html.haml +2 -0
- data/lib/generators/basepack/templates/layouts/_head.html.haml +17 -0
- data/lib/generators/basepack/templates/layouts/_header.html.haml +1 -0
- data/lib/generators/basepack/templates/layouts/_navigation.html.erb +28 -0
- data/lib/generators/basepack/templates/layouts/application-fluid.html.haml +18 -0
- data/lib/generators/basepack/templates/layouts/application.html.haml +11 -0
- data/lib/generators/basepack/templates/layouts/rails_admin/application.html.haml +24 -0
- data/lib/generators/basepack/templates/migrations/create_filters.rb +15 -0
- data/lib/generators/basepack/templates/migrations/create_imports.rb +23 -0
- data/lib/generators/basepack/templates/migrations/create_imports_importables_join_table.rb +10 -0
- data/lib/generators/basepack/templates/rails_admin.rb +35 -0
- data/lib/generators/basepack/templates/resources_controller.rb +3 -0
- data/lib/generators/rails/basepack_controller_generator.rb +11 -0
- data/lib/generators/rails/basepack_resource_route_generator.rb +40 -0
- data/lib/generators/rails/templates/controller.rb +6 -0
- data/lib/tasks/basepack_tasks.rake +4 -0
- data/spec/controllers/basepack/base_controller_spec.rb +5 -0
- data/spec/dummy_app/README.rdoc +28 -0
- data/spec/dummy_app/Rakefile +7 -0
- data/spec/dummy_app/app/assets/javascripts/application.js +19 -0
- data/spec/dummy_app/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy_app/app/assets/stylesheets/basepack_and_overrides.css +3 -0
- data/spec/dummy_app/app/controllers/accounts_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/application_controller.rb +5 -0
- data/spec/dummy_app/app/controllers/employee_with_nesteds_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/employees_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/positions_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/projects_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/resources_controller.rb +2 -0
- data/spec/dummy_app/app/controllers/skills_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/tasks_controller.rb +3 -0
- data/spec/dummy_app/app/controllers/users_controller.rb +2 -0
- data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
- data/spec/dummy_app/app/models/ability.rb +7 -0
- data/spec/dummy_app/app/models/account.rb +18 -0
- data/spec/dummy_app/app/models/employee.rb +56 -0
- data/spec/dummy_app/app/models/employee_with_nested.rb +6 -0
- data/spec/dummy_app/app/models/position.rb +13 -0
- data/spec/dummy_app/app/models/project.rb +16 -0
- data/spec/dummy_app/app/models/settings.rb +4 -0
- data/spec/dummy_app/app/models/skill.rb +13 -0
- data/spec/dummy_app/app/models/task.rb +20 -0
- data/spec/dummy_app/app/models/user.rb +26 -0
- data/spec/dummy_app/app/views/layouts/_content.html.haml +8 -0
- data/spec/dummy_app/app/views/layouts/_footer.html.haml +2 -0
- data/spec/dummy_app/app/views/layouts/_head.html.haml +17 -0
- data/spec/dummy_app/app/views/layouts/_header.html.haml +1 -0
- data/spec/dummy_app/app/views/layouts/_navigation.html.erb +28 -0
- data/spec/dummy_app/app/views/layouts/application.html.haml +11 -0
- data/spec/dummy_app/bin/bundle +3 -0
- data/spec/dummy_app/bin/rails +4 -0
- data/spec/dummy_app/bin/rake +4 -0
- data/spec/dummy_app/config/application.rb +28 -0
- data/spec/dummy_app/config/boot.rb +5 -0
- data/spec/dummy_app/config/database.yml +25 -0
- data/spec/dummy_app/config/environment.rb +5 -0
- data/spec/dummy_app/config/environments/development.rb +29 -0
- data/spec/dummy_app/config/environments/production.rb +80 -0
- data/spec/dummy_app/config/environments/test.rb +36 -0
- data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy_app/config/initializers/devise.rb +213 -0
- data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy_app/config/initializers/inflections.rb +16 -0
- data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
- data/spec/dummy_app/config/initializers/rails_admin.rb +33 -0
- data/spec/dummy_app/config/initializers/secret_token.rb +12 -0
- data/spec/dummy_app/config/initializers/session_store.rb +3 -0
- data/spec/dummy_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy_app/config/locales/devise.en.yml +59 -0
- data/spec/dummy_app/config/locales/en.yml +23 -0
- data/spec/dummy_app/config/routes.rb +32 -0
- data/spec/dummy_app/config.ru +4 -0
- data/spec/dummy_app/db/development.sqlite3 +0 -0
- data/spec/dummy_app/db/migrate/20131017141521_devise_create_users.rb +46 -0
- data/spec/dummy_app/db/migrate/20131204162705_create_employees.rb +13 -0
- data/spec/dummy_app/db/migrate/20131204163255_create_positions.rb +9 -0
- data/spec/dummy_app/db/migrate/20131204163517_create_tasks.rb +11 -0
- data/spec/dummy_app/db/migrate/20131207080009_create_accounts.rb +10 -0
- data/spec/dummy_app/db/migrate/20131207080750_create_skills.rb +9 -0
- data/spec/dummy_app/db/migrate/20131207081215_employees_skills.rb +10 -0
- data/spec/dummy_app/db/migrate/20131213193133_create_projects.rb +11 -0
- data/spec/dummy_app/db/migrate/20131213195422_change_tasks_associations.rb +5 -0
- data/spec/dummy_app/db/migrate/20131220193113_add_title_to_employees.rb +5 -0
- data/spec/dummy_app/db/schema.rb +121 -0
- data/spec/dummy_app/db/test.sqlite3 +0 -0
- data/spec/dummy_app/log/development.log +6801 -0
- data/spec/dummy_app/log/test.log +292178 -0
- data/spec/dummy_app/public/404.html +58 -0
- data/spec/dummy_app/public/422.html +58 -0
- data/spec/dummy_app/public/500.html +57 -0
- data/spec/dummy_app/public/favicon.ico +0 -0
- data/spec/dummy_app/spec/factories/factories.rb +40 -0
- data/spec/dummy_app/spec/models/employees_spec.rb +5 -0
- data/spec/dummy_app/spec/models/user_spec.rb +24 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/4c3af79921173448804b83f254ba105cda287756/font-awesome.css.erbc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/517b219fe56f7ccf93e010b001d2d3a1b459bfba/bootstrap-modal.cssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.colorpicker.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.ui.timepicker.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/ra.calendar-additions.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/6c0703113df22b0e3ea387c6ab99e8fcfd6a83c2/jquery-ui-1.8.7.custom.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/bootstrap-variables.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/forms.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/print.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/select2-bootstrap.cssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/sortable.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/theming.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/9c999c00494fa4fafa9bdff246834bab6e26edf8/basepack.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap-responsive.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_accordion.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_alerts.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_breadcrumbs.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_button-groups.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_buttons.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_carousel.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_close.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_code.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_component-animations.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_dropdowns.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_forms.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_grid.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_hero-unit.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_labels-badges.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_layouts.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_media.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_mixins.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_modals.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navbar.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navs.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pager.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pagination.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_popovers.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_progress-bars.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_reset.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-1200px-min.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-767px-max.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-768px-979px.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-navbar.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-utilities.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_scaffolding.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_sprites.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tables.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_thumbnails.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tooltip.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_type.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_utilities.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_variables.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_wells.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/bootstrap.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/responsive.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sass/f31185238ced2f85aef3331b2fccaf2065e3231a/select2.css.erbc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/00241a7292d851bac376d0f0957e63ff +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/003e285de7c62692a9fe3b8f50902380 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/0104c964a4f56bb5b2899a07f10af9f9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/052bb63ff29bc44571c2232131c36a8a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/089607f98e898c71fd68e8ae51754987 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/09050dc72206d6f6ad9f3f02b685419b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/0cafd9bc53d49c2cf5e5824a613c234a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/0ff0b5f27512c6d962359fb992396486 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/11bce97ed3034e6e70d23980be846e97 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/11eff350cf9d6699fa472a8cc51a5ae4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/12ca1512e2358f3ac0eb9052a78f0a87 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/184efa29626c6b13fd6f290830370818 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/1a9589d7b8d8cbf05f74469c8f4c4156 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/1c50d4281907563387028ba86a066d3c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/22e2b6a8afe048228c40b58e65bfdb13 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2598bea497f818511170f1767eb626cb +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/26576898fc49833696cd3f3fb7eccf95 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/28418912ed32585ce915ff3973682be4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2a6e117dba2d7db2ef21aca7fcb9230c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2aac860bfb56742949faa12d706267d0 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2c8963580cbc47dc28cbed8da42f84ca +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2cc54b227549bd5df491930580a8bc64 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2da93a1145941acb52281bece48fe4a3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/2f7c7ba8274ab8efb2b4f5cdecbd6a32 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/30f9c6c7e6c0b1341b38eb1b28f31810 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/33b864d3cf87bb7e2b39adfa0426f263 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/33d1f9ea25c7b89f2459940d9212a669 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/37f26ee40ea683e5f0ceaf797b814a54 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/38b637f41c9bd27a51de4b1762a73647 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3a736bd97a21b78316991160ba80effd +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3bd17609c55e7cdacc4b78a9dd1ed0d1 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c4ff97255336da127cbcb0caf6e3015 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c88e1379f0ea6777de02c6a0b8c9945 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3c8e11617355c1c5e083959f26cee4b6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3d03edf86b468f9e9b330ed805860769 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3d7fbddfa7a63c926358b342a3eac479 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3db6c2748a108d113d84d4110cf508c6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3de8063d0af2ad28e95baf817514b616 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/3f30325451dfb42de8d8ed9a9c084659 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/47b40976b55c9edc54252cc19e81984d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/47d3aa8065e6b7e20f718fcd29cb8660 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/4a4c804531d617393de455ae5e7d3ef3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/4b33722102ab3dcfd0b25b5bef28dea2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/4d002d1a4924d16b15d4ed3f18091bff +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/4fb84f030762485b5f9e956b5185da20 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/4fc760e501c018ae614b48f11d1d291a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/506b60726578735bdb85ff7c0d7fe54e +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/508370aab9933724fc4d037be88afc43 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/508c14fe1a15ea3e34224307aac6225d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/558a8cddd270ecb5edb5567005eebc6c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/56784bb9c5211915112e308ec4fe55bd +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/572d0e3e85fa261156105039963d871d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5748f429893a84aa7c3d3f5a8c83c429 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/57ca51d3b9c0dca90847bde786647ed9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/58216b347a0e26bfb17bb6858fa58fe3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5a723f838e928f8525dbfe097421bcc5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5ca7841eb0c1ce4fce5ca5c089c81a27 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5d92496bf7c2f2a7c6f658a3bfd9168c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5de0dcc5b363271c35e2f24cdc6d0fb5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e2ab7bcc69360d652fafb3fbc63c5a3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e2af01867b50ec9e726fc860497c77f +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e377f8032ceddd7a1010605ae5a4e36 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/5e5e62c9fddb2531b4265503882f69d4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6296f81d09f2fb08fc08cfb512d06172 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/63a371041bf7f21fa88e427db780f480 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/63ae6b3d3df541f5fc47dd7722eedffc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/64888fd16034a8607f962f87418fedb3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/67bcc3d148c493a1945bc97ef249d81d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/68378e5dd52f7dedcefab5dd586a99b4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6a03a21304c0e62a86f049dbd1bec75d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6d6cbd0baea2774f4a367edf79c20efb +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6e81adbb0a0e41feab2afa9b138d0a6d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f222094c80a63b5f18d99b89ec1df5f +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f4d8a75f9952ad791647a0c21be66d3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/6f83c9939102b4619eabd02111cf327d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/704e339f6490098455c0c834c0ba168e +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/72b128fc6f546bdd9b63f28a930e6f63 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/72c1561e683cf672ae85824865c551ea +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/733efb7785d2a5bf99bfabc1e65bc6cc +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7358b3ce166ffd9482ebf11bcae20b4e +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7398227d5d76926ebb4eefd0f60a8682 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/749bdc6c2fb7dc20a6a2ac10738c7b32 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/766f9ac65b372adfffbc20fc3c11787d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/780aca8465b079da370475ddc33153c8 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/78107b4418a915310b877f2476a86c6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7bc5f8b1be235cc1cc912f2ce07b3575 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7bf5b05b9aa2a7f9ee3aa9256775e185 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7c4325d5e7ed475316bc2f09f5a8426b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7d3a0d4123a39f727d17b424cb809172 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7d7323f314bbd56742b63fbb33245731 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7e17604cb69365b9c04ab2bdab5e1883 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/7f079fa6db901e720e9a93fb9fea4fc3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/805aeb5e9f7a354449fe22b474de0ac3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/827c7c505cb992c5d964bcbc2fc423d7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/8356748bbeceb07c6517ded5fcbeec11 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/83e117043b923d0d16ab464274ae7761 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/848fa2a63c294b86937ee46fdcb42969 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/84dd8d2de6f42c1106c041b3af94a8b2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/84ed3d82ea61013675e915122c957247 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/8589169f6c1a9ee8a6467dd57394aa1c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/864c25920b418fdad6911595015b545e +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/867a7f30a2e3e699a4dd32531b542fa2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/887d9742047f5e9c5eceaf910c77a1de +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/8a577fda2de89b9bee8e3e3edff1e493 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/8c2ee669e9cd5c095f2f4ff75d814907 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/8f6c0c726ca9a75d4d4dc89ab01cd6f9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/9115a6dc55fd7a6bd4eb922e8f4327c1 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/93a7167bf36c621d305a9481e3d25bce +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/9492d6e391e59a3b1fe0926011514606 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/98797413746006678e6718e2fc0072e3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/9ea680f1317b9aabfa7f2c8500d8d238 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/9edca4894af4373eb021d163773d4ad5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/9f0670e1cd6d8b55b6f4538ad18d24dd +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a5e7024917f7c6b419ab0cdf38e72e6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a61f72bcd625cc47886c1928cd35055c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a6fad88c8628b92fa21b43b1aa76cf7d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a7825c008941de47e400148ced44c977 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a7957c8a663412b3fc916487d9b4fa11 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/a979dde04e397cb6c5c3bbfe0ff3d6cf +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/abbc1edaaf47dfc80b1166ef445e776e +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/abe5d0ed7bfa91ab738920f1d07df4c6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/addd43bf5b4f0533b7e8041185debdd3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ae79cf81961bd21d204095a53ad08acd +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/b13b77b3a33991854e944d8a18f17d62 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/b262e9ec489792ed46d9a3f061a2575f +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/b563282525ff9ba52595f00de0175716 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/b5cfdf8b42163460b9a99af40af1f850 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/b8a8c2faf730407b004ec269c26473d7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/bf2ad2d8b5bd3fdc6aa311eb0e0d002a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/bf5d63f847739999ed7724f45d7593d5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c0ba2663731f9ebc0224d9c3fa57dd5d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c0f6d55b2d582ab7f1a8f1b2baa0e55c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c1248b471da8a4a819a68eb0af3dc103 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c2266d7fe9597848b5baa3b118ada4f4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c2e43f298ce02a9c759d2b7df87a81a6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c38e7994f800531bc12b23135523c6b3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c3eaaf0a21b3dfc3c3a607a6ad16ddca +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c3f0b48cfae36a2ddf7176919c338557 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c4858b3b9b3bd5475da0e04bd3a35191 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c60717cd75961085cbfaed1b3db6f6af +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c79787636fbf28ee3ffd89edf5669d75 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c81f70729312f8cfffb2fa682afd6a39 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c9487d16cf2ce7367963c017d1732be2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/c98b3083f4ba9d3d0a76bac8d1a8e2e9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/caef372e0b0efd371eb93602c2ba72b6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/cb1f853dc4682e46b8f6922910af7491 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce095fdd19d87bdedf6f29dedc5f8be2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce1b44d8727c41febfc3a96f9bd00599 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ce57fab3414f0fb0fd0dec0214b04d2f +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/cef38ed915676983be0704ef77a90742 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/d019216c3cec51a12564f968de0c3a8d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/d318e9b3460db4bf73b729bb3d937077 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/d82b7d635f85356c0e82b32ba4c6a4aa +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/d92dd66f936d3a75c863b72e2b27115d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/db31397e2b32946f71bec3519464a2da +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ddf79bf78a7f737dc2c2e6747003b7d0 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ddfe77f5b6c3a355da00713ec7c8b092 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/df4353ad516c274a84e9ccb80b30a3ac +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e1cbb636d734b1c62f30f4f238c9662a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e21995a68b298fb3743da07cc42cecc6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e38a482225929905e4c579fc6fa31238 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e481ffc4e01eb6fbf7ce2ffd1636a669 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e545f687f3a940a17b49b971b4133c0c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e6548eae94b88a5488902e756cb0b8a8 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e6af1f885ff81245d4ada1412fda047b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/e8678645dc9662106d5d3504a253950d +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/eadf6b627f39c82d965368dd440557c3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/eef581f1488012db6d2917e1bfdd8696 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ef00280fe4cee5914acc741f3fe2e25a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ef24895902c6875e7b5476d9d73d8e6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f03b1104103a3a2aab0806b59a918f2f +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f0906a63ce8aa3885ea12f7b2e04b203 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f30c986d0368baf246d16a5a9baf0a3a +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f4d2c43148f3ab92536c07cb05df0a4c +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f5b822723ea8a3561c0f0a8819ab2838 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f82cd72f16a42c411e418fb85e3da9e7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/f86420678d4a78184e7c2fd2c2ae2b02 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/fd469e8d4a2474e7a0de32464b4c9be6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ff435fd5d18db4f8c1de46245385d286 +0 -0
- data/spec/dummy_app/tmp/cache/assets/development/sprockets/ffbfecea42fde1ce85f0c6993dacb73a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/4c3af79921173448804b83f254ba105cda287756/font-awesome.css.erbc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/517b219fe56f7ccf93e010b001d2d3a1b459bfba/bootstrap-modal.cssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.colorpicker.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/jquery.ui.timepicker.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/5f2148516ed2cc365f29b92c4f1d6f005cae0a2d/ra.calendar-additions.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/6c0703113df22b0e3ea387c6ab99e8fcfd6a83c2/jquery-ui-1.8.7.custom.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/bootstrap-variables.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/forms.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/print.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/select2-bootstrap.cssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/sortable.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/72fd245dc0f9dc0baba8cfdebd78071f7693f8cf/theming.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/9c999c00494fa4fafa9bdff246834bab6e26edf8/basepack.css.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap-responsive.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/c7a33d5d8afb8d443e69f9ef9559d2ebad9cb197/bootstrap.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_accordion.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_alerts.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_breadcrumbs.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_button-groups.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_buttons.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_carousel.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_close.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_code.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_component-animations.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_dropdowns.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_forms.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_grid.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_hero-unit.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_labels-badges.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_layouts.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_media.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_mixins.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_modals.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navbar.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_navs.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pager.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_pagination.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_popovers.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_progress-bars.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_reset.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-1200px-min.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-767px-max.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-768px-979px.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-navbar.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_responsive-utilities.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_scaffolding.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_sprites.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tables.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_thumbnails.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_tooltip.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_type.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_utilities.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_variables.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/_wells.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/bootstrap.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/dacfd9c3953b41ace4d8fe1afd7b6ca0584d6004/responsive.scssc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sass/f31185238ced2f85aef3331b2fccaf2065e3231a/select2.css.erbc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/00241a7292d851bac376d0f0957e63ff +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/003e285de7c62692a9fe3b8f50902380 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/0104c964a4f56bb5b2899a07f10af9f9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/089607f98e898c71fd68e8ae51754987 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/0cafd9bc53d49c2cf5e5824a613c234a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/0ff0b5f27512c6d962359fb992396486 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/11bce97ed3034e6e70d23980be846e97 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/11eff350cf9d6699fa472a8cc51a5ae4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/12ca1512e2358f3ac0eb9052a78f0a87 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/184efa29626c6b13fd6f290830370818 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/1a9589d7b8d8cbf05f74469c8f4c4156 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/1c50d4281907563387028ba86a066d3c +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/22e2b6a8afe048228c40b58e65bfdb13 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2598bea497f818511170f1767eb626cb +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/26576898fc49833696cd3f3fb7eccf95 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/28418912ed32585ce915ff3973682be4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2aac860bfb56742949faa12d706267d0 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2c8963580cbc47dc28cbed8da42f84ca +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2cc54b227549bd5df491930580a8bc64 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2da93a1145941acb52281bece48fe4a3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/30f9c6c7e6c0b1341b38eb1b28f31810 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/33b864d3cf87bb7e2b39adfa0426f263 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/33d1f9ea25c7b89f2459940d9212a669 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/37f26ee40ea683e5f0ceaf797b814a54 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/38b637f41c9bd27a51de4b1762a73647 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3c4ff97255336da127cbcb0caf6e3015 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3c8e11617355c1c5e083959f26cee4b6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3d03edf86b468f9e9b330ed805860769 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3d7fbddfa7a63c926358b342a3eac479 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3de8063d0af2ad28e95baf817514b616 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/3f30325451dfb42de8d8ed9a9c084659 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/47d3aa8065e6b7e20f718fcd29cb8660 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/4a4c804531d617393de455ae5e7d3ef3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/4b33722102ab3dcfd0b25b5bef28dea2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/4d002d1a4924d16b15d4ed3f18091bff +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/4fb84f030762485b5f9e956b5185da20 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/4fc760e501c018ae614b48f11d1d291a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/506b60726578735bdb85ff7c0d7fe54e +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/508c14fe1a15ea3e34224307aac6225d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/572d0e3e85fa261156105039963d871d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5748f429893a84aa7c3d3f5a8c83c429 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/57ca51d3b9c0dca90847bde786647ed9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/58216b347a0e26bfb17bb6858fa58fe3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5a723f838e928f8525dbfe097421bcc5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5ca7841eb0c1ce4fce5ca5c089c81a27 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5de0dcc5b363271c35e2f24cdc6d0fb5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2ab7bcc69360d652fafb3fbc63c5a3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/5e2af01867b50ec9e726fc860497c77f +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/63a371041bf7f21fa88e427db780f480 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/63ae6b3d3df541f5fc47dd7722eedffc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/64888fd16034a8607f962f87418fedb3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/67bcc3d148c493a1945bc97ef249d81d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/68378e5dd52f7dedcefab5dd586a99b4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6a03a21304c0e62a86f049dbd1bec75d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6d6cbd0baea2774f4a367edf79c20efb +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6e81adbb0a0e41feab2afa9b138d0a6d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f222094c80a63b5f18d99b89ec1df5f +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f4d8a75f9952ad791647a0c21be66d3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/6f83c9939102b4619eabd02111cf327d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/704e339f6490098455c0c834c0ba168e +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/72b128fc6f546bdd9b63f28a930e6f63 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/72c1561e683cf672ae85824865c551ea +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/733efb7785d2a5bf99bfabc1e65bc6cc +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7398227d5d76926ebb4eefd0f60a8682 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/766f9ac65b372adfffbc20fc3c11787d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/780aca8465b079da370475ddc33153c8 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/78107b4418a915310b877f2476a86c6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7bc5f8b1be235cc1cc912f2ce07b3575 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7c4325d5e7ed475316bc2f09f5a8426b +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7d3a0d4123a39f727d17b424cb809172 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7d7323f314bbd56742b63fbb33245731 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7e17604cb69365b9c04ab2bdab5e1883 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/7f079fa6db901e720e9a93fb9fea4fc3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/827c7c505cb992c5d964bcbc2fc423d7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/83e117043b923d0d16ab464274ae7761 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/848fa2a63c294b86937ee46fdcb42969 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/84dd8d2de6f42c1106c041b3af94a8b2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/84ed3d82ea61013675e915122c957247 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/8589169f6c1a9ee8a6467dd57394aa1c +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/887d9742047f5e9c5eceaf910c77a1de +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/8a577fda2de89b9bee8e3e3edff1e493 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/8c2ee669e9cd5c095f2f4ff75d814907 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/8f6c0c726ca9a75d4d4dc89ab01cd6f9 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/9115a6dc55fd7a6bd4eb922e8f4327c1 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/93a7167bf36c621d305a9481e3d25bce +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/9492d6e391e59a3b1fe0926011514606 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/98797413746006678e6718e2fc0072e3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/a5e7024917f7c6b419ab0cdf38e72e6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/a61f72bcd625cc47886c1928cd35055c +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/a6fad88c8628b92fa21b43b1aa76cf7d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/a7825c008941de47e400148ced44c977 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/a7957c8a663412b3fc916487d9b4fa11 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/abbc1edaaf47dfc80b1166ef445e776e +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/abe5d0ed7bfa91ab738920f1d07df4c6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/addd43bf5b4f0533b7e8041185debdd3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ae79cf81961bd21d204095a53ad08acd +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/b13b77b3a33991854e944d8a18f17d62 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/b262e9ec489792ed46d9a3f061a2575f +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/b563282525ff9ba52595f00de0175716 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/b5cfdf8b42163460b9a99af40af1f850 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/b8a8c2faf730407b004ec269c26473d7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/bf2ad2d8b5bd3fdc6aa311eb0e0d002a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/bf5d63f847739999ed7724f45d7593d5 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c0ba2663731f9ebc0224d9c3fa57dd5d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c1248b471da8a4a819a68eb0af3dc103 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c2266d7fe9597848b5baa3b118ada4f4 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c38e7994f800531bc12b23135523c6b3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c3eaaf0a21b3dfc3c3a607a6ad16ddca +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c3f0b48cfae36a2ddf7176919c338557 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c4858b3b9b3bd5475da0e04bd3a35191 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c60717cd75961085cbfaed1b3db6f6af +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c79787636fbf28ee3ffd89edf5669d75 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c81f70729312f8cfffb2fa682afd6a39 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/c9487d16cf2ce7367963c017d1732be2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/caef372e0b0efd371eb93602c2ba72b6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce095fdd19d87bdedf6f29dedc5f8be2 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce1b44d8727c41febfc3a96f9bd00599 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ce57fab3414f0fb0fd0dec0214b04d2f +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/cef38ed915676983be0704ef77a90742 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/d82b7d635f85356c0e82b32ba4c6a4aa +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/d92dd66f936d3a75c863b72e2b27115d +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/df4353ad516c274a84e9ccb80b30a3ac +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e1cbb636d734b1c62f30f4f238c9662a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e21995a68b298fb3743da07cc42cecc6 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e38a482225929905e4c579fc6fa31238 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e481ffc4e01eb6fbf7ce2ffd1636a669 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e545f687f3a940a17b49b971b4133c0c +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e6548eae94b88a5488902e756cb0b8a8 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/e6af1f885ff81245d4ada1412fda047b +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/eadf6b627f39c82d965368dd440557c3 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ef24895902c6875e7b5476d9d73d8e6b +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f0906a63ce8aa3885ea12f7b2e04b203 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f30c986d0368baf246d16a5a9baf0a3a +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f4d2c43148f3ab92536c07cb05df0a4c +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f5b822723ea8a3561c0f0a8819ab2838 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/f82cd72f16a42c411e418fb85e3da9e7 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ff435fd5d18db4f8c1de46245385d286 +0 -0
- data/spec/dummy_app/tmp/cache/assets/test/sprockets/ffbfecea42fde1ce85f0c6993dacb73a +0 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162026497852199536.html +140 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162030365979579973.html +138 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162048324949230951.html +112 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162050472624679051.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162051149832011801.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162051552039794721.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162053001557043118.html +747 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162053292250254476.html +115 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162152333224586970.html +131 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131216215647403551844.html +125 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162158082748551609.html +131 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312162158088359803421.html +131 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312182137592841800935.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131218214441554050539.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312261935056942776945.html +259 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312261936286563388256.html +259 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271118002257059702.html +153 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271128336029989748.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271129315690411904.html +121 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227113202580591737.html +107 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271132244794498907.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271133318824850156.html +112 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271134317429303772.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271134353284147706.html +153 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227113603650964832.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271137218900108849.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271218362796119085.html +122 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271218401902692864.html +153 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271219015533405075.html +153 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271220169885656076.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271220441372008048.html +123 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271220485434671929.html +153 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271224181755415982.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271224325301730596.html +123 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271228171029900518.html +113 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271407363281638390.html +628 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271408083129633112.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271415367683301637.html +628 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271417475568989244.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271418196628463520.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271420132522546597.html +198 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271420133130129630.html +198 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271425401053845386.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271426108301688471.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271428418329320932.html +127 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271431575742602266.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271433385527107241.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271433401942304014.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271439499410141437.html +116 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271439509031720607.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271441348332077802.html +126 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271441365445661911.html +116 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271457397144808296.html +416 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271504022932290123.html +448 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227150426152029741.html +416 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271505268120229617.html +450 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227150615333567591.html +450 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271506599178616234.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271507017378535543.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271507357624937637.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227150741532676452.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227150820420044934.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271508259996452817.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271509203051781930.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271509248613318515.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271514294787082016.html +198 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271514297373677646.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271514318217955735.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271518353503870265.html +175 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271519099724216470.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271519124515598988.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271519565062036130.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-20131227151956788730482.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271520596747460049.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271521071461923825.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271522043068145141.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271522046336876738.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271528279956840950.html +114 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271528309526479429.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271530093771347047.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271547306806749083.html +132 -0
- data/spec/dummy_app/tmp/capybara/capybara-201312271547354314836403.html +114 -0
- data/spec/integration/basic/bulk_edit/basepack_basic_bulk_edit_spec.rb +149 -0
- data/spec/integration/basic/create/basepack_basic_create_spec.rb +124 -0
- data/spec/integration/basic/destroy/basepack_basic_destroy_spec.rb +61 -0
- data/spec/integration/basic/edit/basepack_basic_edit_spec.rb +64 -0
- data/spec/integration/basic/list/basepack_basic_list_spec.rb +566 -0
- data/spec/integration/basic/list/basepack_bulk_actions_spec.rb +128 -0
- data/spec/integration/basic/merge/basepack_basic_merge_spec.rb +18 -0
- data/spec/integration/basic/new/basepack_basic_new_spec.rb +96 -0
- data/spec/integration/basic/show/basepack_basic_show_spec.rb +317 -0
- data/spec/integration/basic/update/basepack_basic_update_spec.rb +54 -0
- data/spec/spec_helper.rb +69 -0
- data/spec/support/basepack_helper.rb +66 -0
- data/spec/support/devise.rb +3 -0
- 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
|