zizia 4.0.3.alpha.01 → 4.0.4.alpha.01

Sign up to get free protection for your applications and to get access to all the features.
Files changed (868) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +45 -0
  3. data/.gitignore +17 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +80 -0
  6. data/.rubocop_todo.yml +21 -0
  7. data/.solr_wrapper +8 -0
  8. data/.travis.yml +12 -0
  9. data/Gemfile +12 -0
  10. data/Rakefile +38 -0
  11. data/app/assets/config/zizia_manifest.js +2 -0
  12. data/app/assets/images/zizia/.keep +0 -0
  13. data/app/assets/javascripts/zizia/DisplayUploadedFile.es6 +43 -0
  14. data/app/assets/javascripts/zizia/application.js +13 -0
  15. data/app/assets/javascripts/zizia/zizia.js +6 -0
  16. data/app/assets/stylesheets/zizia/_file_upload.scss +17 -0
  17. data/app/assets/stylesheets/zizia/application.css +15 -0
  18. data/app/assets/stylesheets/zizia/zizia.scss +1 -0
  19. data/app/controllers/zizia/application_controller.rb +6 -0
  20. data/app/controllers/zizia/csv_imports_controller.rb +54 -0
  21. data/app/controllers/zizia/importer_documentation_controller.rb +11 -0
  22. data/app/helpers/importer_documentation_helper.rb +13 -0
  23. data/app/helpers/zizia/application_helper.rb +14 -0
  24. data/app/importers/modular_importer.rb +52 -0
  25. data/app/jobs/zizia/application_job.rb +5 -0
  26. data/app/jobs/zizia/start_csv_import_job.rb +14 -0
  27. data/app/models/zizia/application_record.rb +6 -0
  28. data/app/models/zizia/csv_import.rb +21 -0
  29. data/app/models/zizia/csv_import_detail.rb +20 -0
  30. data/app/models/zizia/pre_ingest_file.rb +6 -0
  31. data/app/models/zizia/pre_ingest_work.rb +6 -0
  32. data/app/uploaders/zizia/csv_manifest_uploader.rb +62 -0
  33. data/app/uploaders/zizia/csv_manifest_validator.rb +163 -0
  34. data/app/views/layouts/zizia/application.html.erb +14 -0
  35. data/app/views/zizia/csv_imports/_actions.html.erb +3 -0
  36. data/app/views/zizia/csv_imports/_collection_selection.html.erb +3 -0
  37. data/app/views/zizia/csv_imports/_error.html.erb +10 -0
  38. data/app/views/zizia/csv_imports/_file_upload.html.erb +3 -0
  39. data/app/views/zizia/csv_imports/_form.html.erb +83 -0
  40. data/app/views/zizia/csv_imports/_no_collection.html.erb +7 -0
  41. data/app/views/zizia/csv_imports/_record_count.html.erb +8 -0
  42. data/app/views/zizia/csv_imports/_start_import_form.html.erb +10 -0
  43. data/app/views/zizia/csv_imports/_update_actor_stack.html.erb +5 -0
  44. data/app/views/zizia/csv_imports/index.html.erb +21 -0
  45. data/app/views/zizia/csv_imports/new.html.erb +2 -0
  46. data/app/views/zizia/csv_imports/preview.html.erb +76 -0
  47. data/app/views/zizia/csv_imports/show.html.erb +31 -0
  48. data/app/views/zizia/importer_documentation/guide.html.erb +1 -0
  49. data/bin/rails +15 -0
  50. data/config/routes.rb +9 -0
  51. data/db/migrate/201901162141281_create_zizia_csv_imports.rb +9 -0
  52. data/db/migrate/201901162203121_add_manifest_to_zizia_csv_imports.rb +6 -0
  53. data/db/migrate/201901241536541_add_fedora_collection_id_to_zizia_csv_imports.rb +5 -0
  54. data/db/migrate/201901241536542_add_update_actor_stack_to_zizia_csv_imports.rb +5 -0
  55. data/db/migrate/20190911133657_create_zizia_pre_ingest_files.rb +12 -0
  56. data/db/migrate/20190911134002_create_zizia_pre_ingest_works.rb +9 -0
  57. data/db/migrate/20190911142616_create_zizia_csv_import_details.rb +8 -0
  58. data/db/migrate/20190918214137_drop_users.rb +11 -0
  59. data/db/migrate/20190919145012_user_roles.rb +18 -0
  60. data/db/migrate/20190921153802_add_depositor_id_to_csv_import_detail.rb +5 -0
  61. data/db/migrate/20190921153851_add_collection_id_to_csv_import_detail.rb +5 -0
  62. data/db/migrate/20190921153933_add_batch_id_to_csv_import_detail.rb +5 -0
  63. data/db/migrate/20190921154009_add_success_count_to_csv_import_detail.rb +5 -0
  64. data/db/migrate/20190921154038_add_failure_count_to_csv_import_detail.rb +5 -0
  65. data/db/migrate/20190921154221_add_deduplication_field_to_csv_import_detail.rb +5 -0
  66. data/db/migrate/20190923182946_add_update_actor_stack_to_csv_import_detail.rb +5 -0
  67. data/docs/_config.yml +1 -0
  68. data/docs/customizing_metadata.md +41 -0
  69. data/docs/index.md +113 -0
  70. data/lib/zizia/always_invalid_validator.rb +17 -0
  71. data/lib/zizia/csv_template.rb +9 -0
  72. data/lib/zizia/engine.rb +32 -0
  73. data/lib/zizia/hash_mapper.rb +44 -0
  74. data/lib/zizia/hyrax/hyrax_basic_metadata_mapper.rb +149 -0
  75. data/lib/zizia/hyrax/hyrax_default_updater.rb +11 -0
  76. data/lib/zizia/hyrax/hyrax_delete_files_updater.rb +16 -0
  77. data/lib/zizia/hyrax/hyrax_metadata_only_updater.rb +58 -0
  78. data/lib/zizia/hyrax/hyrax_record_importer.rb +247 -0
  79. data/lib/zizia/hyrax/metadata_only_stack.rb +70 -0
  80. data/lib/zizia/importer.rb +58 -0
  81. data/lib/zizia/input_record.rb +65 -0
  82. data/lib/zizia/metadata_mapper.rb +83 -0
  83. data/lib/zizia/parser.rb +132 -0
  84. data/lib/zizia/parsers/csv_parser.rb +45 -0
  85. data/lib/zizia/record_importer.rb +44 -0
  86. data/lib/zizia/spec/fakes/fake_parser.rb +22 -0
  87. data/lib/zizia/spec/shared_examples/a_mapper.rb +32 -0
  88. data/lib/zizia/spec/shared_examples/a_parser.rb +73 -0
  89. data/lib/zizia/spec/shared_examples/a_validator.rb +29 -0
  90. data/lib/zizia/spec.rb +14 -0
  91. data/lib/zizia/validator.rb +106 -0
  92. data/lib/zizia/validators/csv_format_validator.rb +26 -0
  93. data/lib/zizia/validators/title_validator.rb +30 -0
  94. data/lib/zizia/version.rb +5 -0
  95. data/lib/zizia.rb +66 -0
  96. data/log/.keep +0 -0
  97. data/solr/config/_rest_managed.json +3 -0
  98. data/solr/config/admin-extra.html +31 -0
  99. data/solr/config/elevate.xml +36 -0
  100. data/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  101. data/solr/config/protwords.txt +21 -0
  102. data/solr/config/routes.rb +9 -0
  103. data/solr/config/schema.xml +366 -0
  104. data/solr/config/scripts.conf +24 -0
  105. data/solr/config/solrconfig.xml +322 -0
  106. data/solr/config/spellings.txt +2 -0
  107. data/solr/config/stopwords.txt +58 -0
  108. data/solr/config/stopwords_en.txt +58 -0
  109. data/solr/config/synonyms.txt +31 -0
  110. data/solr/config/xslt/example.xsl +132 -0
  111. data/solr/config/xslt/example_atom.xsl +67 -0
  112. data/solr/config/xslt/example_rss.xsl +66 -0
  113. data/solr/config/xslt/luke.xsl +337 -0
  114. data/spec/controllers/importer_documentation_controller_spec.rb +14 -0
  115. data/spec/dummy/.fcrepo_wrapper +4 -0
  116. data/spec/dummy/.gitignore +23 -0
  117. data/spec/dummy/.rspec +1 -0
  118. data/spec/dummy/.ruby-version +1 -0
  119. data/spec/dummy/.solr_wrapper +8 -0
  120. data/spec/dummy/.solr_wrapper.yml +5 -0
  121. data/spec/dummy/Gemfile +75 -0
  122. data/spec/dummy/README.md +24 -0
  123. data/spec/dummy/Rakefile +8 -0
  124. data/spec/dummy/app/actors/hyrax/actors/work_actor.rb +8 -0
  125. data/spec/dummy/app/assets/config/manifest.js +3 -0
  126. data/spec/dummy/app/assets/images/.keep +0 -0
  127. data/spec/dummy/app/assets/images/unauthorized.png +0 -0
  128. data/spec/dummy/app/assets/images/us_404.svg +91 -0
  129. data/spec/dummy/app/assets/javascripts/application.js +25 -0
  130. data/spec/dummy/app/assets/javascripts/blacklight_gallery.js +1 -0
  131. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  132. data/spec/dummy/app/assets/javascripts/channels/.keep +0 -0
  133. data/spec/dummy/app/assets/javascripts/openseadragon.js +2 -0
  134. data/spec/dummy/app/assets/stylesheets/application.css +16 -0
  135. data/spec/dummy/app/assets/stylesheets/hyrax.scss +16 -0
  136. data/spec/dummy/app/assets/stylesheets/openseadragon.css +3 -0
  137. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  138. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  139. data/spec/dummy/app/controllers/application_controller.rb +16 -0
  140. data/spec/dummy/app/controllers/catalog_controller.rb +298 -0
  141. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  142. data/spec/dummy/app/controllers/hyrax/works_controller.rb +14 -0
  143. data/spec/dummy/app/forms/hyrax/work_form.rb +9 -0
  144. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  145. data/spec/dummy/app/helpers/hyrax_helper.rb +5 -0
  146. data/spec/dummy/app/indexers/work_indexer.rb +18 -0
  147. data/spec/dummy/app/jobs/application_job.rb +2 -0
  148. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  149. data/spec/dummy/app/models/ability.rb +23 -0
  150. data/spec/dummy/app/models/application_record.rb +3 -0
  151. data/spec/dummy/app/models/collection.rb +7 -0
  152. data/spec/dummy/app/models/concerns/.keep +0 -0
  153. data/spec/dummy/app/models/file_set.rb +4 -0
  154. data/spec/dummy/app/models/qa/local_authority.rb +2 -0
  155. data/spec/dummy/app/models/qa/local_authority_entry.rb +3 -0
  156. data/spec/dummy/app/models/qa.rb +5 -0
  157. data/spec/dummy/app/models/search_builder.rb +16 -0
  158. data/spec/dummy/app/models/solr_document.rb +28 -0
  159. data/spec/dummy/app/models/user.rb +29 -0
  160. data/spec/dummy/app/models/work.rb +14 -0
  161. data/spec/dummy/app/presenters/hyrax/work_presenter.rb +6 -0
  162. data/spec/dummy/app/views/hyrax/works/_work.html.erb +2 -0
  163. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  164. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  165. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  166. data/spec/dummy/bin/bundle +3 -0
  167. data/spec/dummy/bin/rails +9 -0
  168. data/spec/dummy/bin/rake +9 -0
  169. data/spec/dummy/bin/setup +38 -0
  170. data/spec/dummy/bin/spring +17 -0
  171. data/spec/dummy/bin/update +29 -0
  172. data/spec/dummy/bin/yarn +11 -0
  173. data/spec/dummy/config/analytics.yml +9 -0
  174. data/spec/dummy/config/application.rb +18 -0
  175. data/spec/dummy/config/authorities/licenses.yml +46 -0
  176. data/spec/dummy/config/authorities/resource_types.yml +41 -0
  177. data/spec/dummy/config/authorities/rights_statements.yml +37 -0
  178. data/spec/dummy/config/blacklight.yml +9 -0
  179. data/spec/dummy/config/boot.rb +3 -0
  180. data/spec/dummy/config/cable.yml +10 -0
  181. data/spec/dummy/config/credentials.yml.enc +1 -0
  182. data/spec/dummy/config/database.yml +25 -0
  183. data/spec/dummy/config/environment.rb +5 -0
  184. data/spec/dummy/config/environments/development.rb +54 -0
  185. data/spec/dummy/config/environments/production.rb +91 -0
  186. data/spec/dummy/config/environments/test.rb +44 -0
  187. data/spec/dummy/config/fcrepo_wrapper_test.yml +4 -0
  188. data/spec/dummy/config/fedora.yml +15 -0
  189. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  190. data/spec/dummy/config/initializers/assets.rb +14 -0
  191. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  192. data/spec/dummy/config/initializers/bundler.rb +1 -0
  193. data/spec/dummy/config/initializers/clamav.rb +1 -0
  194. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  195. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  196. data/spec/dummy/config/initializers/devise.rb +299 -0
  197. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  198. data/spec/dummy/config/initializers/hydra_config.rb +24 -0
  199. data/spec/dummy/config/initializers/hyrax.rb +283 -0
  200. data/spec/dummy/config/initializers/inflections.rb +16 -0
  201. data/spec/dummy/config/initializers/mailboxer.rb +22 -0
  202. data/spec/dummy/config/initializers/mime_types.rb +8 -0
  203. data/spec/dummy/config/initializers/mini_magick.rb +5 -0
  204. data/spec/dummy/config/initializers/redis_config.rb +3 -0
  205. data/spec/dummy/config/initializers/riiif.rb +26 -0
  206. data/spec/dummy/config/initializers/simple_form.rb +170 -0
  207. data/spec/dummy/config/initializers/simple_form_bootstrap.rb +150 -0
  208. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  209. data/spec/dummy/config/locales/blacklight.en.yml +3 -0
  210. data/spec/dummy/config/locales/devise.en.yml +65 -0
  211. data/spec/dummy/config/locales/en.yml +33 -0
  212. data/spec/dummy/config/locales/hyrax.de.yml +58 -0
  213. data/spec/dummy/config/locales/hyrax.en.yml +58 -0
  214. data/spec/dummy/config/locales/hyrax.es.yml +58 -0
  215. data/spec/dummy/config/locales/hyrax.fr.yml +58 -0
  216. data/spec/dummy/config/locales/hyrax.it.yml +58 -0
  217. data/spec/dummy/config/locales/hyrax.pt-BR.yml +58 -0
  218. data/spec/dummy/config/locales/hyrax.zh.yml +58 -0
  219. data/spec/dummy/config/master.key +1 -0
  220. data/spec/dummy/config/puma.rb +56 -0
  221. data/spec/dummy/config/redis.yml +9 -0
  222. data/spec/dummy/config/role_map.yml +23 -0
  223. data/spec/dummy/config/routes.rb +33 -0
  224. data/spec/dummy/config/secrets.yml +32 -0
  225. data/spec/dummy/config/solr.yml +7 -0
  226. data/spec/dummy/config/solr_wrapper_test.yml +8 -0
  227. data/spec/dummy/config/spring.rb +6 -0
  228. data/spec/dummy/config/storage.yml +34 -0
  229. data/spec/dummy/config/tinymce.yml +12 -0
  230. data/spec/dummy/config/workflows/default_workflow.json +21 -0
  231. data/spec/dummy/config/workflows/mediated_deposit_workflow.json +76 -0
  232. data/spec/dummy/config.ru +5 -0
  233. data/spec/dummy/db/migrate/20190918192626_create_searches.blacklight.rb +17 -0
  234. data/spec/dummy/db/migrate/20190918192627_create_bookmarks.blacklight.rb +19 -0
  235. data/spec/dummy/db/migrate/20190918192628_add_polymorphic_type_to_bookmarks.blacklight.rb +9 -0
  236. data/spec/dummy/db/migrate/20190918192704_devise_create_users.rb +44 -0
  237. data/spec/dummy/db/migrate/20190918192715_add_devise_guests_to_users.rb +15 -0
  238. data/spec/dummy/db/migrate/20190918192840_create_version_committers.hyrax.rb +15 -0
  239. data/spec/dummy/db/migrate/20190918192841_create_checksum_audit_logs.hyrax.rb +19 -0
  240. data/spec/dummy/db/migrate/20190918192842_create_single_use_links.hyrax.rb +12 -0
  241. data/spec/dummy/db/migrate/20190918192843_add_social_to_users.hyrax.rb +13 -0
  242. data/spec/dummy/db/migrate/20190918192844_add_ldap_attrs_to_user.hyrax.rb +27 -0
  243. data/spec/dummy/db/migrate/20190918192845_add_avatars_to_users.hyrax.rb +15 -0
  244. data/spec/dummy/db/migrate/20190918192846_create_trophies.hyrax.rb +10 -0
  245. data/spec/dummy/db/migrate/20190918192847_add_linkedin_to_users.hyrax.rb +5 -0
  246. data/spec/dummy/db/migrate/20190918192848_create_tinymce_assets.hyrax.rb +8 -0
  247. data/spec/dummy/db/migrate/20190918192849_create_content_blocks.hyrax.rb +10 -0
  248. data/spec/dummy/db/migrate/20190918192850_create_featured_works.hyrax.rb +12 -0
  249. data/spec/dummy/db/migrate/20190918192851_add_external_key_to_content_blocks.hyrax.rb +6 -0
  250. data/spec/dummy/db/migrate/20190918192852_create_proxy_deposit_rights.hyrax.rb +10 -0
  251. data/spec/dummy/db/migrate/20190918192853_create_proxy_deposit_requests.hyrax.rb +15 -0
  252. data/spec/dummy/db/migrate/20190918192854_create_file_view_stats.hyrax.rb +12 -0
  253. data/spec/dummy/db/migrate/20190918192855_create_file_download_stats.hyrax.rb +12 -0
  254. data/spec/dummy/db/migrate/20190918192856_add_orcid_to_users.hyrax.rb +5 -0
  255. data/spec/dummy/db/migrate/20190918192857_create_user_stats.hyrax.rb +19 -0
  256. data/spec/dummy/db/migrate/20190918192858_create_work_view_stats.hyrax.rb +12 -0
  257. data/spec/dummy/db/migrate/20190918192859_add_works_to_user_stats.hyrax.rb +13 -0
  258. data/spec/dummy/db/migrate/20190918192860_change_trophy_generic_file_id_to_work_id.hyrax.rb +5 -0
  259. data/spec/dummy/db/migrate/20190918192861_change_proxy_deposit_generic_file_id_to_work_id.hyrax.rb +5 -0
  260. data/spec/dummy/db/migrate/20190918192862_change_audit_log_generic_file_id_to_file_set_id.hyrax.rb +5 -0
  261. data/spec/dummy/db/migrate/20190918192863_change_proxy_deposit_request_generic_file_id_to_work_id.hyrax.rb +5 -0
  262. data/spec/dummy/db/migrate/20190918192864_create_uploaded_files.hyrax.rb +10 -0
  263. data/spec/dummy/db/migrate/20190918192865_create_features.hyrax.rb +10 -0
  264. data/spec/dummy/db/migrate/20190918192866_create_operations.hyrax.rb +23 -0
  265. data/spec/dummy/db/migrate/20190918192867_change_featured_work_generic_file_id_to_work_id.hyrax.rb +6 -0
  266. data/spec/dummy/db/migrate/20190918192868_add_arkivo_to_users.hyrax.rb +8 -0
  267. data/spec/dummy/db/migrate/20190918192869_create_sipity.hyrax.rb +163 -0
  268. data/spec/dummy/db/migrate/20190918192870_create_sipity_workflow_methods.hyrax.rb +10 -0
  269. data/spec/dummy/db/migrate/20190918192871_create_permission_template.hyrax.rb +11 -0
  270. data/spec/dummy/db/migrate/20190918192872_create_permission_template_access.hyrax.rb +11 -0
  271. data/spec/dummy/db/migrate/20190918192873_add_release_to_permission_templates.hyrax.rb +6 -0
  272. data/spec/dummy/db/migrate/20190918192874_add_permission_template_to_sipity_workflow.hyrax.rb +26 -0
  273. data/spec/dummy/db/migrate/20190918192875_tidy_up_because_of_bad_exception.hyrax.rb +13 -0
  274. data/spec/dummy/db/migrate/20190918192876_add_allows_access_grant_to_workflow.hyrax.rb +5 -0
  275. data/spec/dummy/db/migrate/20190918192877_change_checksum_audit_log.hyrax.rb +18 -0
  276. data/spec/dummy/db/migrate/20190918192878_create_job_io_wrappers.hyrax.rb +15 -0
  277. data/spec/dummy/db/migrate/20190918192879_create_collection_types.hyrax.rb +17 -0
  278. data/spec/dummy/db/migrate/20190918192880_update_collection_type_column_names.hyrax.rb +9 -0
  279. data/spec/dummy/db/migrate/20190918192881_update_collection_type_column_options.hyrax.rb +17 -0
  280. data/spec/dummy/db/migrate/20190918192882_create_collection_branding_infos.hyrax.rb +15 -0
  281. data/spec/dummy/db/migrate/20190918192883_create_collection_type_participants.hyrax.rb +11 -0
  282. data/spec/dummy/db/migrate/20190918192884_rename_admin_set_id_to_source_id.hyrax.rb +5 -0
  283. data/spec/dummy/db/migrate/20190918192885_add_preferred_locale_to_users.hyrax.rb +5 -0
  284. data/spec/dummy/db/migrate/20190918192886_add_collection_type_sharing_options.hyrax.rb +5 -0
  285. data/spec/dummy/db/migrate/20190918192887_add_unique_constraint_to_permission_template_accesses.hyrax.rb +8 -0
  286. data/spec/dummy/db/migrate/20190918192888_add_branding_to_collection_type.hyrax.rb +5 -0
  287. data/spec/dummy/db/migrate/20190918192889_add_badge_color_to_collection_types.hyrax.rb +5 -0
  288. data/spec/dummy/db/migrate/20190918192914_create_mailboxer.mailboxer_engine.rb +65 -0
  289. data/spec/dummy/db/migrate/20190918192915_add_conversation_optout.mailboxer_engine.rb +15 -0
  290. data/spec/dummy/db/migrate/20190918192916_add_missing_indices.mailboxer_engine.rb +20 -0
  291. data/spec/dummy/db/migrate/20190918192917_add_delivery_tracking_info_to_mailboxer_receipts.mailboxer_engine.rb +8 -0
  292. data/spec/dummy/db/migrate/20190918192937_create_qa_local_authorities.rb +10 -0
  293. data/spec/dummy/db/migrate/20190918192948_create_qa_local_authority_entries.rb +12 -0
  294. data/spec/dummy/db/migrate/20190918193045_create_minter_states.noid_rails_engine.rb +17 -0
  295. data/spec/dummy/db/migrate/20190918193046_rename_minter_state_random_to_rand.noid_rails_engine.rb +8 -0
  296. data/spec/dummy/db/schema.rb +608 -0
  297. data/spec/dummy/db/seeds.rb +7 -0
  298. data/spec/dummy/lib/assets/.keep +0 -0
  299. data/spec/dummy/lib/tasks/.keep +0 -0
  300. data/spec/dummy/log/.keep +0 -0
  301. data/spec/dummy/package.json +5 -0
  302. data/spec/dummy/public/404.html +67 -0
  303. data/spec/dummy/public/422.html +67 -0
  304. data/spec/dummy/public/500.html +66 -0
  305. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  306. data/spec/dummy/public/apple-touch-icon.png +0 -0
  307. data/spec/dummy/public/assets/.sprockets-manifest-6a791b26afc0064d45ad6c9c7834c971.json +1 -0
  308. data/spec/dummy/public/assets/application-19a48f32b51ff0cbcf36875591de326026d5594d66e05aa640bd3ad61cc96f9e.js +91588 -0
  309. data/spec/dummy/public/assets/application-19a48f32b51ff0cbcf36875591de326026d5594d66e05aa640bd3ad61cc96f9e.js.gz +0 -0
  310. data/spec/dummy/public/assets/application-c66e5ddf197c4624336180640f7928a84eece4ef5868c26d430e6e45c9a83ae3.css +19965 -0
  311. data/spec/dummy/public/assets/application-c66e5ddf197c4624336180640f7928a84eece4ef5868c26d430e6e45c9a83ae3.css.gz +0 -0
  312. data/spec/dummy/public/assets/audio-5133b642ee875760dbd85bfab48649d009efd4bd29db1165f891b48a90b4f37e.png +0 -0
  313. data/spec/dummy/public/assets/blacklight/gallery/view-icon-masonry-94cb2f417ca00047d6e4603644bebaa67037ef9b3efcc9c95b42229c1c571345.png +0 -0
  314. data/spec/dummy/public/assets/blacklight/gallery/view-icon-masonry@2x-da61b9e430c6b3f007aaa8073c062b147c909746c254f0adb81eaf476dc1a26d.png +0 -0
  315. data/spec/dummy/public/assets/blacklight/logo-e368f4faad4c5310352e175e1fba8220b57aab2e29cbe0f3ca1189a2ef085f9b.png +0 -0
  316. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot +0 -0
  317. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot.gz +0 -0
  318. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg +288 -0
  319. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg.gz +0 -0
  320. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff +0 -0
  321. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf +0 -0
  322. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf.gz +0 -0
  323. data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 +0 -0
  324. data/spec/dummy/public/assets/browse_everything-0bc39e0e4f7158f7de0b75f0bf1cffee0dc75901e8a0d1ab62fe57615ae92903.css +12766 -0
  325. data/spec/dummy/public/assets/browse_everything-0bc39e0e4f7158f7de0b75f0bf1cffee0dc75901e8a0d1ab62fe57615ae92903.css.gz +0 -0
  326. data/spec/dummy/public/assets/browse_everything-771abc13184782ddcdb092a916b42013516bb8d172351e1c6415c293c556118f.js +3648 -0
  327. data/spec/dummy/public/assets/browse_everything-771abc13184782ddcdb092a916b42013516bb8d172351e1c6415c293c556118f.js.gz +0 -0
  328. data/spec/dummy/public/assets/collection-a38b932554788aa578debf2319e8c4ba8a7db06b3ba57ecda1391a548a4b6e0a.png +0 -0
  329. data/spec/dummy/public/assets/dataTables/back_disabled-6950463a4f9db9435b8df01fa276eaf88aa65b8913b82e979317d741305bb5d6.png +0 -0
  330. data/spec/dummy/public/assets/dataTables/back_enabled-9fd6f47b90ca92e855bdf80a0d57178af3a59c307e5c0246bb24dc781d3ae69b.png +0 -0
  331. data/spec/dummy/public/assets/dataTables/back_enabled_hover-b3a398bdb9afa40edff875c14c972ac9329e018e2e5e175ebb8e104c59be37e1.png +0 -0
  332. data/spec/dummy/public/assets/dataTables/extras/background-c15341923393fd36f738e5240b31c86b30da3c1e13438cc65a325f58e255074a.png +0 -0
  333. data/spec/dummy/public/assets/dataTables/extras/button-4b15f6f40d20396a3a485d7f3a587138a9d68da923ce9a48ec40e25b8d2391f8.png +0 -0
  334. data/spec/dummy/public/assets/dataTables/extras/collection-bbd8b7d27060bd17a10af4143f1e716ffaee2f652af70381bf71057aefa5e0f4.png +0 -0
  335. data/spec/dummy/public/assets/dataTables/extras/collection_hover-eaab9c30ceead4610031a39b77a08d80c87f8c97bdfa6e52aa7e6e1dcaaeb4e1.png +0 -0
  336. data/spec/dummy/public/assets/dataTables/extras/copy-a0feeab39e2b27cd966f77ebac68be4b3638eae7b51b61431bf860a1bb6da929.png +0 -0
  337. data/spec/dummy/public/assets/dataTables/extras/copy_hover-cde411862f25c1f66a2f54da665968e4b5be58e5eb6ef5769fc69fde1cf8915e.png +0 -0
  338. data/spec/dummy/public/assets/dataTables/extras/csv-d1ddfd7d80b19736d956c00dbe6a9dde454e0b48e732975a89f0d9ec8ca5646c.png +0 -0
  339. data/spec/dummy/public/assets/dataTables/extras/csv_hover-671101bdd0b393cd51c28b34fb5fa24c08932e654c75b47df2d7ef8b021ce289.png +0 -0
  340. data/spec/dummy/public/assets/dataTables/extras/filler-641b9f55bbce36baf21b2611ba7a6373a8a23727b111590129d411f24b5d4559.png +0 -0
  341. data/spec/dummy/public/assets/dataTables/extras/insert-945e4b99b340f6622d545081443a10871345105c14d009cd6c4d0536d790032f.png +0 -0
  342. data/spec/dummy/public/assets/dataTables/extras/loading-background-ea6b39e733ae4ef8b41540bb3052a5715d1293bd3506582a9f001441f41445a0.png +0 -0
  343. data/spec/dummy/public/assets/dataTables/extras/pdf-178bccf4fa6246c4e983e1b45bd521c929fa197321ccafdc0c8c0dce799699b2.png +0 -0
  344. data/spec/dummy/public/assets/dataTables/extras/pdf_hover-a0c883c30bf77280618eba2ce08de7e1377bff15955ebf024deee72819f33945.png +0 -0
  345. data/spec/dummy/public/assets/dataTables/extras/print-56efc7161f8c36454f011542fd51c4c515fd8a64e4e499834daaf0415bc55bd1.png +0 -0
  346. data/spec/dummy/public/assets/dataTables/extras/print_hover-dfd041e39e9342f1706335301e65b2fe1bbed3ecce90aeed1b6880b3177dc5c9.png +0 -0
  347. data/spec/dummy/public/assets/dataTables/extras/xls-7995e42ff963255fb782c1b858e7d01be93f204befade7e7a41961e42d285d44.png +0 -0
  348. data/spec/dummy/public/assets/dataTables/extras/xls_hover-4aeef987c05055d78ff769f7ad4d871b897fced597d77fcc92ace6945d99f5bd.png +0 -0
  349. data/spec/dummy/public/assets/dataTables/favicon-6e1bbb9a62636471771c683fc0589a487f74296503c9e4b6d2d92e7fda3faff6.ico +0 -0
  350. data/spec/dummy/public/assets/dataTables/favicon-6e1bbb9a62636471771c683fc0589a487f74296503c9e4b6d2d92e7fda3faff6.ico.gz +0 -0
  351. data/spec/dummy/public/assets/dataTables/forward_disabled-ede9f1003cef25add5cc2b13f531a014ed9bea78154d4fba008b21f353030295.png +0 -0
  352. data/spec/dummy/public/assets/dataTables/forward_enabled-bcb3b13b5aaf9015767aff77d621f1f9557adcd8eb8284d06f0b51e2475556b0.png +0 -0
  353. data/spec/dummy/public/assets/dataTables/forward_enabled_hover-4fa2d689a633713d9fb8900611a646c5df0ba24deb9597ab955c62cba77ae3b4.png +0 -0
  354. data/spec/dummy/public/assets/dataTables/foundation/sort_asc-ee6010bb0a8d17e58307136a0fbf0b196d949ab6c50eb66d1ff8f0a7d2a4d48b.png +0 -0
  355. data/spec/dummy/public/assets/dataTables/foundation/sort_asc_disabled-fd53b2df2d10bac2af507450a9d89c1283acbb6be750a02b401aa3f6c38a350d.png +0 -0
  356. data/spec/dummy/public/assets/dataTables/foundation/sort_both-624f0a471a2535c4754e1f6974b0e64ee70d6907738346e2a11d0bff20258b8c.png +0 -0
  357. data/spec/dummy/public/assets/dataTables/foundation/sort_desc-26da8e7eaf746a08dec2928977be21aa67212484540a12042b86aa2d904b80e8.png +0 -0
  358. data/spec/dummy/public/assets/dataTables/foundation/sort_desc_disabled-3450cc1e5a1585690226a713a726753b3fa2d177e41338a36e0a3188e3f02663.png +0 -0
  359. data/spec/dummy/public/assets/dataTables/minus-334c4ab08c4bfdbed5a82bdeaa7fb3f240c730b04dee5206184dc8067a5d0e6b.png +0 -0
  360. data/spec/dummy/public/assets/dataTables/plus-eb27ce978b61a3763680c02c1f8c9bc92c2fc86ebb8cc3aef6a5e538e9562265.png +0 -0
  361. data/spec/dummy/public/assets/dataTables/sort_asc-ee6010bb0a8d17e58307136a0fbf0b196d949ab6c50eb66d1ff8f0a7d2a4d48b.png +0 -0
  362. data/spec/dummy/public/assets/dataTables/sort_asc_disabled-50f0e16f8289b1f09eb0d0494d0eee7ae4717e857a4ed77997bb06cefecb2528.png +0 -0
  363. data/spec/dummy/public/assets/dataTables/sort_both-624f0a471a2535c4754e1f6974b0e64ee70d6907738346e2a11d0bff20258b8c.png +0 -0
  364. data/spec/dummy/public/assets/dataTables/sort_desc-26da8e7eaf746a08dec2928977be21aa67212484540a12042b86aa2d904b80e8.png +0 -0
  365. data/spec/dummy/public/assets/dataTables/sort_desc_disabled-3450cc1e5a1585690226a713a726753b3fa2d177e41338a36e0a3188e3f02663.png +0 -0
  366. data/spec/dummy/public/assets/default-f936e9c3ea7a38e2c2092099586a71380b11258697b37fb4df376704495a849a.png +0 -0
  367. data/spec/dummy/public/assets/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico +0 -0
  368. data/spec/dummy/public/assets/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico.gz +0 -0
  369. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-1b7f3de49d68b01f415574ebb82e6110a1d09cda2071ad8451bdb5124131a292.ttf +0 -0
  370. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-1b7f3de49d68b01f415574ebb82e6110a1d09cda2071ad8451bdb5124131a292.ttf.gz +0 -0
  371. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-3c4a1bb7ce3234407184f0d80cc4dec075e4ad616b44dcc5778e1cfb1bc24019.woff2 +0 -0
  372. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-7414288c272f6cc10304aa18e89bf24fb30f40afd644623f425c2c3d71fbe06a.svg +640 -0
  373. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-7414288c272f6cc10304aa18e89bf24fb30f40afd644623f425c2c3d71fbe06a.svg.gz +0 -0
  374. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-a7c7e4930090e038a280fd61d88f0dc03dad4aeaedbd8c9be3dd9aa4c3b6f8d1.woff +0 -0
  375. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot +0 -0
  376. data/spec/dummy/public/assets/font-awesome/fontawesome-webfont-d4f5a99224154f2a808e42a441ddc9248ffe78b7a4083684ce159270b30b912a.eot.gz +0 -0
  377. data/spec/dummy/public/assets/fontawesome-webfont-2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe.woff2 +0 -0
  378. data/spec/dummy/public/assets/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot +0 -0
  379. data/spec/dummy/public/assets/fontawesome-webfont-7bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979.eot.gz +0 -0
  380. data/spec/dummy/public/assets/fontawesome-webfont-9428f8b023ac16cd31335614569668ccc199588550d1d1f274873da8211a9fcd.ttf +0 -0
  381. data/spec/dummy/public/assets/fontawesome-webfont-9428f8b023ac16cd31335614569668ccc199588550d1d1f274873da8211a9fcd.ttf.gz +0 -0
  382. data/spec/dummy/public/assets/fontawesome-webfont-c49e830da6dd1917d752afc4947bcf0bae316b14f81a27395993d6e66b1d2853.svg +255 -0
  383. data/spec/dummy/public/assets/fontawesome-webfont-c49e830da6dd1917d752afc4947bcf0bae316b14f81a27395993d6e66b1d2853.svg.gz +0 -0
  384. data/spec/dummy/public/assets/fontawesome-webfont-d45f5fb1fb4e1a101a8ad8722af443272f6c3d409d912e8175e6268d48e0b091.woff +0 -0
  385. data/spec/dummy/public/assets/hydra/powered_by_hydra-df621100d14d209a52ec4d645e81a6c84fcbd503bfafa1c6d6d6937984d81c98.png +0 -0
  386. data/spec/dummy/public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-ae65a7ae22c4c23115948fdeb5c05c9137dbd13ca2d426b3c4c3c4183451e410.png +0 -0
  387. data/spec/dummy/public/assets/jquery-ui/ui-icons_444444_256x240-31d988765b4e6f56553c29588c500381dc3e6f0aa2980c8212202e5644aefd5d.png +0 -0
  388. data/spec/dummy/public/assets/jquery-ui/ui-icons_555555_256x240-32175261daee76c82bb0edf0eea16a56421866fbc31e94f3c1d570aa114502f5.png +0 -0
  389. data/spec/dummy/public/assets/jquery-ui/ui-icons_777620_256x240-0b020fc6e696d88d296e7bb1f61f1eb2ad827848e2c7382a4c3e0999e702dd9b.png +0 -0
  390. data/spec/dummy/public/assets/jquery-ui/ui-icons_777777_256x240-faf32007ae120c302213557626e660dd10e711c5dd4f1113d35f26dc05b78d2f.png +0 -0
  391. data/spec/dummy/public/assets/jquery-ui/ui-icons_cc0000_256x240-40985a64b4d5dd213fba27fcd862a1bd1b337a97674f6ff0b9ec20abcee4bc69.png +0 -0
  392. data/spec/dummy/public/assets/jquery-ui/ui-icons_ffffff_256x240-350df1b7131037de20e83c5c0f3a41a770d2ac48b5762ea772b3f4a8a7b9d47a.png +0 -0
  393. data/spec/dummy/public/assets/loading-b84750cc5a395288fcfd0cf42e3a60d6135e2f14db83fce05e97e5abacc2f9b4.gif +0 -0
  394. data/spec/dummy/public/assets/openseadragon/button_grouphover-2e64df18c27b1a51955c47cbe7535fa2a25548cefb7d1a2de625b59f31853cb6.png +0 -0
  395. data/spec/dummy/public/assets/openseadragon/button_hover-b1086485b0d055d468a729f5a6a79f78fc06fdfa814710dedb7021a7d6206fde.png +0 -0
  396. data/spec/dummy/public/assets/openseadragon/button_pressed-01f1c05bdee216ec417e3475552cd053ce3199bfd2c9e1660f2c7cdc60d0be11.png +0 -0
  397. data/spec/dummy/public/assets/openseadragon/button_rest-5c693c3b03e6efc5c491ab2e8e1ba81800de423a16da8c7f348c19ae8924d142.png +0 -0
  398. data/spec/dummy/public/assets/openseadragon/fullpage_grouphover-f96415fcf86eff56b664f2328ffd61972b98738874d995e077091344f59fc26b.png +0 -0
  399. data/spec/dummy/public/assets/openseadragon/fullpage_hover-3cc954037484edb4a74d97a374605301b4da04c034981af70ec0ec3e1bb509a8.png +0 -0
  400. data/spec/dummy/public/assets/openseadragon/fullpage_pressed-7b3d188695ec59993a09cf27dde280b1da93fd43360f721642b42229b9e5e817.png +0 -0
  401. data/spec/dummy/public/assets/openseadragon/fullpage_rest-1b7ae93b3fe5d0df99e196bfe22b93c7f05d2d5e0fdf97b8b8e957e5476ff586.png +0 -0
  402. data/spec/dummy/public/assets/openseadragon/home_grouphover-2f2dfd6ed6fd11c1aec5491c36f071cf51a96712ddac54b803a8fee917ce27d8.png +0 -0
  403. data/spec/dummy/public/assets/openseadragon/home_hover-170fc906037fe8707d3757775ea4ccb3ebbf883329c44473cd247d0f22c320d9.png +0 -0
  404. data/spec/dummy/public/assets/openseadragon/home_pressed-e8a08eb8d9862e63c8df96fbe508956ae031b09d85533adf83e094c5b187833c.png +0 -0
  405. data/spec/dummy/public/assets/openseadragon/home_rest-6fd27483f507bf8b4a15d6c60d43e9bb3bd14b84959973d61a622bbb4777dfc9.png +0 -0
  406. data/spec/dummy/public/assets/openseadragon/next_grouphover-e7c76fb2c8a792a63efe2ad76da276fd079f50ec0df2b03b04bfc36cfc217103.png +0 -0
  407. data/spec/dummy/public/assets/openseadragon/next_hover-67210c1194693f480cfe9935281fd447a86c46b65e67ce182632cb518dfd2bb9.png +0 -0
  408. data/spec/dummy/public/assets/openseadragon/next_pressed-95afb05783b4c599eec66a21a2b98ea09d6b0be41cce42ed512239cede37a1ab.png +0 -0
  409. data/spec/dummy/public/assets/openseadragon/next_rest-d9b1965f3bcddd3db23e63037a27152c1b7528811582c68b7b4bf25b8673fe07.png +0 -0
  410. data/spec/dummy/public/assets/openseadragon/previous_grouphover-c7e82a94049ff615a7dc6f78ae3758d7d33eab41a69093d9c1101c164c07fe8b.png +0 -0
  411. data/spec/dummy/public/assets/openseadragon/previous_hover-94126f0047e7901b3d2e408abb58b20744a7251786746d7508624db5b4c81bce.png +0 -0
  412. data/spec/dummy/public/assets/openseadragon/previous_pressed-b80145c436ff5cd94c3f672eed9f1723fcd13077870337874171e99dee9f9929.png +0 -0
  413. data/spec/dummy/public/assets/openseadragon/previous_rest-56999fcbe41a0ebb5d701fb463caea0e3850478d1f869e2e7a73b7dc363ca2e2.png +0 -0
  414. data/spec/dummy/public/assets/openseadragon/rotateleft_grouphover-35d3cf9efe958bd88ae0c532648403824df252fa6835aa586301b19c80c264e3.png +0 -0
  415. data/spec/dummy/public/assets/openseadragon/rotateleft_hover-59fee051c2aff4c8491255be664f87671c089db4863f933989b10263818cf435.png +0 -0
  416. data/spec/dummy/public/assets/openseadragon/rotateleft_pressed-97d28095eb471109d0aee65f9f4dc5ee6dba6d7fed433e3a910dcda69ca4a977.png +0 -0
  417. data/spec/dummy/public/assets/openseadragon/rotateleft_rest-ab4731e3c7d7a4b40ea07c16269e8117ce58506177dc438cc00cdf837f513f09.png +0 -0
  418. data/spec/dummy/public/assets/openseadragon/rotateright_grouphover-ebdaf54f82601db210a5ac2e0a54790c0decd8dea5bd115f7d6d0d2bf04c5e00.png +0 -0
  419. data/spec/dummy/public/assets/openseadragon/rotateright_hover-a9124016ebe30ec16f3691a16cc57997174652f480f3002d45beaf918b1230c1.png +0 -0
  420. data/spec/dummy/public/assets/openseadragon/rotateright_pressed-a75e74dab723a0587d365e4b076572d1440df9f31c424ef4a6be62f3a45d472b.png +0 -0
  421. data/spec/dummy/public/assets/openseadragon/rotateright_rest-c201ce35f6651e824eee3eb5ca3e42fc40035d2070eec9ce1261c8b7bc126526.png +0 -0
  422. data/spec/dummy/public/assets/openseadragon/zoomin_grouphover-ecd40589890cdfd81911752c4af02c691a201c21d74bbad5f3d9336463b52604.png +0 -0
  423. data/spec/dummy/public/assets/openseadragon/zoomin_hover-6a2c08cf07b12162f73e80417d6e49e7da4b219981c9929abf89fbd1a18b58a2.png +0 -0
  424. data/spec/dummy/public/assets/openseadragon/zoomin_pressed-b9eb902ca333aaabd8cf77c1184a6aa24311bcba0d836dc6ebded4c5d7146475.png +0 -0
  425. data/spec/dummy/public/assets/openseadragon/zoomin_rest-674258f78d924bfe2454a637ecf912fe7069105ab68980f69674ff5c25521ed9.png +0 -0
  426. data/spec/dummy/public/assets/openseadragon/zoomout_grouphover-b582631f7ede7c640c46a29d74728814d3b7332b14748054ae460aa9be929e77.png +0 -0
  427. data/spec/dummy/public/assets/openseadragon/zoomout_hover-b752facaf76d197e235dd789929e86577339ffa280b6a51621388f2cad9900e1.png +0 -0
  428. data/spec/dummy/public/assets/openseadragon/zoomout_pressed-99ce17d25e10d07ebe3a21642eb350bfd80c603cbb6a4b0af705fbcdf8ca57dc.png +0 -0
  429. data/spec/dummy/public/assets/openseadragon/zoomout_rest-a4ff50ab46d8de87c720cb9cbccc9b4bef1cdda1394b9c8a2b4e6fb2f63e13aa.png +0 -0
  430. data/spec/dummy/public/assets/orcid-cb273c1ff10d304ce1b6108a172bfd1660561e7fd8133b083cd66ee0f4a0a944.png +0 -0
  431. data/spec/dummy/public/assets/progressbar-a45ab53b619988cefd45f49cfacc604dd499b93f53a96927cf7b2d965f421f48.gif +0 -0
  432. data/spec/dummy/public/assets/qa/application-f9e7c1541e1b8783561468c59162bd896007380f5a3799ef2169d3a3fdf40bed.css +14 -0
  433. data/spec/dummy/public/assets/qa/application-f9e7c1541e1b8783561468c59162bd896007380f5a3799ef2169d3a3fdf40bed.css.gz +0 -0
  434. data/spec/dummy/public/assets/qa/application-fed7594354f41c527f9e8dab7f766cd780129ed1fd04e8c0646a72b825ad8e8b.js +14 -0
  435. data/spec/dummy/public/assets/qa/application-fed7594354f41c527f9e8dab7f766cd780129ed1fd04e8c0646a72b825ad8e8b.js.gz +0 -0
  436. data/spec/dummy/public/assets/select2-d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8.png +0 -0
  437. data/spec/dummy/public/assets/select2-spinner-f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c.gif +0 -0
  438. data/spec/dummy/public/assets/select2x2-6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2.png +0 -0
  439. data/spec/dummy/public/assets/tinymce/jquery.tinymce-db2bc0a724d3123cc432dc4d9d8029736b4afc8c8502967e359dce2ed3170c16.js +1 -0
  440. data/spec/dummy/public/assets/tinymce/jquery.tinymce-db2bc0a724d3123cc432dc4d9d8029736b4afc8c8502967e359dce2ed3170c16.js.gz +0 -0
  441. data/spec/dummy/public/assets/tinymce/jquery.tinymce.js +1 -0
  442. data/spec/dummy/public/assets/tinymce/jquery.tinymce.js.gz +1 -0
  443. data/spec/dummy/public/assets/tinymce/langs/readme-5a8b6a04d57b5c88e3fb7f2a870b8e2d3a48ec03ce6474206c41df78c155b2de.md +3 -0
  444. data/spec/dummy/public/assets/tinymce/langs/readme.md +1 -0
  445. data/spec/dummy/public/assets/tinymce/license-47a9dcd2574891a5a465112fd9dfcebcc7e61844edec27fa936a64642008fe66.txt +504 -0
  446. data/spec/dummy/public/assets/tinymce/license-47a9dcd2574891a5a465112fd9dfcebcc7e61844edec27fa936a64642008fe66.txt.gz +0 -0
  447. data/spec/dummy/public/assets/tinymce/license.txt +1 -0
  448. data/spec/dummy/public/assets/tinymce/license.txt.gz +1 -0
  449. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin-7b5bed8c5b41dbabee490dca68a3fc215c6c2d08ad1174d20fd4ebc27feb9b18.js +1 -0
  450. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin-7b5bed8c5b41dbabee490dca68a3fc215c6c2d08ad1174d20fd4ebc27feb9b18.js.gz +0 -0
  451. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin.js +1 -0
  452. data/spec/dummy/public/assets/tinymce/plugins/advlist/plugin.js.gz +1 -0
  453. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin-8fc6aac86dcfda2df29f3e402541e9f5ed45743f0dce76b80bc4e3c6a16be585.js +1 -0
  454. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin-8fc6aac86dcfda2df29f3e402541e9f5ed45743f0dce76b80bc4e3c6a16be585.js.gz +0 -0
  455. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin.js +1 -0
  456. data/spec/dummy/public/assets/tinymce/plugins/anchor/plugin.js.gz +1 -0
  457. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin-aacef7388395131adb8a2d04e3d130c13150b04a39ba15bfebdd8b5673e74b56.js +1 -0
  458. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin-aacef7388395131adb8a2d04e3d130c13150b04a39ba15bfebdd8b5673e74b56.js.gz +0 -0
  459. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin.js +1 -0
  460. data/spec/dummy/public/assets/tinymce/plugins/autolink/plugin.js.gz +1 -0
  461. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin-79ff6671020ca454d50be43a8cd68e51bbbab80f6f11d3ef1afc29df593a9cc0.js +1 -0
  462. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin-79ff6671020ca454d50be43a8cd68e51bbbab80f6f11d3ef1afc29df593a9cc0.js.gz +0 -0
  463. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin.js +1 -0
  464. data/spec/dummy/public/assets/tinymce/plugins/autoresize/plugin.js.gz +1 -0
  465. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin-0d17bcbc8383db5d592ca5e213dd898106273274ff07ede506b8f8b6ff1f6ac0.js +1 -0
  466. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin-0d17bcbc8383db5d592ca5e213dd898106273274ff07ede506b8f8b6ff1f6ac0.js.gz +0 -0
  467. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin.js +1 -0
  468. data/spec/dummy/public/assets/tinymce/plugins/autosave/plugin.js.gz +1 -0
  469. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin-8acda51f6565daa44af5423768602b2296eff9cbc3b2355f82a1ae4490428833.js +1 -0
  470. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin-8acda51f6565daa44af5423768602b2296eff9cbc3b2355f82a1ae4490428833.js.gz +0 -0
  471. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin.js +1 -0
  472. data/spec/dummy/public/assets/tinymce/plugins/bbcode/plugin.js.gz +1 -0
  473. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin-f0d451ae7fcfa1f30f73c2d9185c58173e1a8e44d893d752778b226b665f020b.js +1 -0
  474. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin-f0d451ae7fcfa1f30f73c2d9185c58173e1a8e44d893d752778b226b665f020b.js.gz +0 -0
  475. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin.js +1 -0
  476. data/spec/dummy/public/assets/tinymce/plugins/charmap/plugin.js.gz +1 -0
  477. data/spec/dummy/public/assets/tinymce/plugins/code/plugin-46957c79ea5f5757444d628fdb90bac81f078d87bc9601df76cc087d4976564b.js +1 -0
  478. data/spec/dummy/public/assets/tinymce/plugins/code/plugin-46957c79ea5f5757444d628fdb90bac81f078d87bc9601df76cc087d4976564b.js.gz +0 -0
  479. data/spec/dummy/public/assets/tinymce/plugins/code/plugin.js +1 -0
  480. data/spec/dummy/public/assets/tinymce/plugins/code/plugin.js.gz +1 -0
  481. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism-29127f13286ec42e411a82279280ccbb6c62d70a68a388b42fa34d8929d87995.css +139 -0
  482. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism-29127f13286ec42e411a82279280ccbb6c62d70a68a388b42fa34d8929d87995.css.gz +0 -0
  483. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism.css +1 -0
  484. data/spec/dummy/public/assets/tinymce/plugins/codesample/css/prism.css.gz +1 -0
  485. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin-e477d85104bf7a6119ebe07bb02feb290325074ff222bf526a563151177d1b9d.js +1 -0
  486. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin-e477d85104bf7a6119ebe07bb02feb290325074ff222bf526a563151177d1b9d.js.gz +0 -0
  487. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin.js +1 -0
  488. data/spec/dummy/public/assets/tinymce/plugins/codesample/plugin.js.gz +1 -0
  489. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin-48d6719fa10b7bc1b3982d9d9f952d320ebba056102701e49e3945ce3bf8911d.js +1 -0
  490. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin-48d6719fa10b7bc1b3982d9d9f952d320ebba056102701e49e3945ce3bf8911d.js.gz +0 -0
  491. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin.js +1 -0
  492. data/spec/dummy/public/assets/tinymce/plugins/colorpicker/plugin.js.gz +1 -0
  493. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin-1b3d07a3487dbbf4eb7f0ce2252bdfc13cb849d1e8749b75c3523b22ea8f4761.js +1 -0
  494. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin-1b3d07a3487dbbf4eb7f0ce2252bdfc13cb849d1e8749b75c3523b22ea8f4761.js.gz +0 -0
  495. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin.js +1 -0
  496. data/spec/dummy/public/assets/tinymce/plugins/contextmenu/plugin.js.gz +1 -0
  497. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin-0893c42f76c330cbae77ee849d287028e03574dcf50b6a0770d4b771f7324f1c.js +1 -0
  498. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin-0893c42f76c330cbae77ee849d287028e03574dcf50b6a0770d4b771f7324f1c.js.gz +0 -0
  499. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin.js +1 -0
  500. data/spec/dummy/public/assets/tinymce/plugins/directionality/plugin.js.gz +1 -0
  501. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cool-bb0e93a050a32df7913e4026b3c88a176998e0e3e073ba06e9b73f6c24227c9c.gif +0 -0
  502. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cool.gif +1 -0
  503. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cry-a0c5f3e7a682449c973c9d9f7c46342081c46920686d2353f57aff91ab907f68.gif +0 -0
  504. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-cry.gif +1 -0
  505. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-embarassed-d3cafcb50b335672cb5e9f4600ea9ea261dac7828dd28844d4927c393a25618f.gif +0 -0
  506. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-embarassed.gif +1 -0
  507. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth-03fe04d3ed533423ac81f05146584b0c451be3d4a30e76687ceef283ed07071f.gif +0 -0
  508. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +1 -0
  509. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-frown-1b984bf98931dd1debb54461eb9d83e985f2b2999fe14bcb556d6c0921bc83b0.gif +0 -0
  510. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-frown.gif +1 -0
  511. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-innocent-8db353ef102196f2c6ddf5c4666446de955d7b14fc0957c806c9dbfb48fb0c29.gif +0 -0
  512. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-innocent.gif +1 -0
  513. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-kiss-3154c3665356c13ab10fefdbac1fe187fff978a0052037c99cdc4a97103413f2.gif +0 -0
  514. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-kiss.gif +1 -0
  515. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-laughing-8f6adedcd091975ffead171867a6304d908bb6541a6ccb4919286ec6b7d4551e.gif +0 -0
  516. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-laughing.gif +1 -0
  517. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-money-mouth-f0b9f4f22e237f5dbc851f900fed8d7eca4c954ae6fbc606c0cd8be431d0ac80.gif +0 -0
  518. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +1 -0
  519. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-sealed-9933b442636b6e537df7b564e2c3f7a2873526eea6b022a98eb1e468e5204c32.gif +0 -0
  520. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-sealed.gif +1 -0
  521. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-smile-fd89cd460ffcacb7e725e00c0275ef5b3924ce468248e5ff4fb43545571cfa65.gif +0 -0
  522. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-smile.gif +1 -0
  523. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-surprised-3871f356cb41976d7ae8a5f005e8739e4d014352a8adef9b33f773d81b6e6c01.gif +0 -0
  524. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-surprised.gif +1 -0
  525. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-tongue-out-5843c85667a8226dc43be83749fd9fbbc5d20b1577de2b763915d99815d37d47.gif +0 -0
  526. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +1 -0
  527. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-undecided-d8b9bcbb433951ff3c4ca8dd959ac3844239b98e6d52218833e1485a91f67347.gif +0 -0
  528. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-undecided.gif +1 -0
  529. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-wink-2af75ad7b1c08488505513503e34b15f40005e04a2a9568f698f0945d2d8ba1f.gif +0 -0
  530. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-wink.gif +1 -0
  531. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-yell-bba903fbcb46fce8c68b9e01863fd095b3b1d0e6aa72161f3a88d762a5f90a79.gif +0 -0
  532. data/spec/dummy/public/assets/tinymce/plugins/emoticons/img/smiley-yell.gif +1 -0
  533. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin-287cc5d2f0fba168841d0d0dab3c6f8f958fb0e80adada67cc1e64d88a69704e.js +1 -0
  534. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin-287cc5d2f0fba168841d0d0dab3c6f8f958fb0e80adada67cc1e64d88a69704e.js.gz +0 -0
  535. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin.js +1 -0
  536. data/spec/dummy/public/assets/tinymce/plugins/emoticons/plugin.js.gz +1 -0
  537. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin-0bd712ddf83de5ad37a6822dc4c5832d82a5e2cd1da918d5b0e41bd09f65e1f6.js +1 -0
  538. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin-0bd712ddf83de5ad37a6822dc4c5832d82a5e2cd1da918d5b0e41bd09f65e1f6.js.gz +0 -0
  539. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin.js +1 -0
  540. data/spec/dummy/public/assets/tinymce/plugins/fullpage/plugin.js.gz +1 -0
  541. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin-715b77a6ec2a2bade5ea0cc1658f4ab9fff89bd9a00619deb3e73145d0ada00e.js +1 -0
  542. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin-715b77a6ec2a2bade5ea0cc1658f4ab9fff89bd9a00619deb3e73145d0ada00e.js.gz +0 -0
  543. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin.js +1 -0
  544. data/spec/dummy/public/assets/tinymce/plugins/fullscreen/plugin.js.gz +1 -0
  545. data/spec/dummy/public/assets/tinymce/plugins/help/img/logo-95b06f8538b11c4c30170075a09f93cf5871f74dd2541e95ad3d9da31976fcac.png +0 -0
  546. data/spec/dummy/public/assets/tinymce/plugins/help/img/logo.png +1 -0
  547. data/spec/dummy/public/assets/tinymce/plugins/help/plugin-09c06aa8a6b13eb5aef6dfc2f25abb4b86f8c27accb396cee254b116cc99b6c7.js +1 -0
  548. data/spec/dummy/public/assets/tinymce/plugins/help/plugin-09c06aa8a6b13eb5aef6dfc2f25abb4b86f8c27accb396cee254b116cc99b6c7.js.gz +0 -0
  549. data/spec/dummy/public/assets/tinymce/plugins/help/plugin.js +1 -0
  550. data/spec/dummy/public/assets/tinymce/plugins/help/plugin.js.gz +1 -0
  551. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin-7efaeee8fa1f71745d5726205bbb4fd8c0f4eba1edf2baf5a31a3b59bb677622.js +1 -0
  552. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin-7efaeee8fa1f71745d5726205bbb4fd8c0f4eba1edf2baf5a31a3b59bb677622.js.gz +0 -0
  553. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin.js +1 -0
  554. data/spec/dummy/public/assets/tinymce/plugins/hr/plugin.js.gz +1 -0
  555. data/spec/dummy/public/assets/tinymce/plugins/image/plugin-f228bcf7f9653e4c6ff1aae2bd06faeb46fcabc598ce4bb27a77bc174ed68ff3.js +1 -0
  556. data/spec/dummy/public/assets/tinymce/plugins/image/plugin-f228bcf7f9653e4c6ff1aae2bd06faeb46fcabc598ce4bb27a77bc174ed68ff3.js.gz +0 -0
  557. data/spec/dummy/public/assets/tinymce/plugins/image/plugin.js +1 -0
  558. data/spec/dummy/public/assets/tinymce/plugins/image/plugin.js.gz +1 -0
  559. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin-c39a78da27870681a7187f91831de204769c4b64708d167164443769c8c8fcdf.js +1 -0
  560. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin-c39a78da27870681a7187f91831de204769c4b64708d167164443769c8c8fcdf.js.gz +0 -0
  561. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin.js +1 -0
  562. data/spec/dummy/public/assets/tinymce/plugins/imagetools/plugin.js.gz +1 -0
  563. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin-381b078db51fcc021a6220cf9f57609ed35ee67dd932669abafa5e5837460bbc.js +1 -0
  564. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin-381b078db51fcc021a6220cf9f57609ed35ee67dd932669abafa5e5837460bbc.js.gz +0 -0
  565. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin.js +1 -0
  566. data/spec/dummy/public/assets/tinymce/plugins/importcss/plugin.js.gz +1 -0
  567. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin-246b2dd91f69e2b7d268c35c6aaca0569b0366bc18e85c15eca000564683b71d.js +1 -0
  568. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin-246b2dd91f69e2b7d268c35c6aaca0569b0366bc18e85c15eca000564683b71d.js.gz +0 -0
  569. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin.js +1 -0
  570. data/spec/dummy/public/assets/tinymce/plugins/insertdatetime/plugin.js.gz +1 -0
  571. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin-e8c2876525a55671c4ee55a2c298d3ba0eff6a8307c057893e42558eba637652.js +1 -0
  572. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin-e8c2876525a55671c4ee55a2c298d3ba0eff6a8307c057893e42558eba637652.js.gz +0 -0
  573. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin.js +1 -0
  574. data/spec/dummy/public/assets/tinymce/plugins/legacyoutput/plugin.js.gz +1 -0
  575. data/spec/dummy/public/assets/tinymce/plugins/link/plugin-3429067e3c88378ddedc39f2bb42ea630e7ceb9dffa5f1a07d5b0e04180f94c4.js +1 -0
  576. data/spec/dummy/public/assets/tinymce/plugins/link/plugin-3429067e3c88378ddedc39f2bb42ea630e7ceb9dffa5f1a07d5b0e04180f94c4.js.gz +0 -0
  577. data/spec/dummy/public/assets/tinymce/plugins/link/plugin.js +1 -0
  578. data/spec/dummy/public/assets/tinymce/plugins/link/plugin.js.gz +1 -0
  579. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin-05b3aac526219ee583f49151d587f89a5002261d7dfb1663d5200c77894a48f9.js +1 -0
  580. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin-05b3aac526219ee583f49151d587f89a5002261d7dfb1663d5200c77894a48f9.js.gz +0 -0
  581. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin.js +1 -0
  582. data/spec/dummy/public/assets/tinymce/plugins/lists/plugin.js.gz +1 -0
  583. data/spec/dummy/public/assets/tinymce/plugins/media/plugin-570acbace4fda902012c1c0596a586b521dc75cc89a4742f1bb2ecb15680b809.js +1 -0
  584. data/spec/dummy/public/assets/tinymce/plugins/media/plugin-570acbace4fda902012c1c0596a586b521dc75cc89a4742f1bb2ecb15680b809.js.gz +0 -0
  585. data/spec/dummy/public/assets/tinymce/plugins/media/plugin.js +1 -0
  586. data/spec/dummy/public/assets/tinymce/plugins/media/plugin.js.gz +1 -0
  587. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin-6438a2f260ffa4724f0d13e99fe8fb1a85c00f16df416468ccd0bf6f722aaee6.js +1 -0
  588. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin-6438a2f260ffa4724f0d13e99fe8fb1a85c00f16df416468ccd0bf6f722aaee6.js.gz +0 -0
  589. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin.js +1 -0
  590. data/spec/dummy/public/assets/tinymce/plugins/nonbreaking/plugin.js.gz +1 -0
  591. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin-f3be489845e7a724465d7a2bcf8f033b8b91eda2c29193b354e634da697d2f27.js +1 -0
  592. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin-f3be489845e7a724465d7a2bcf8f033b8b91eda2c29193b354e634da697d2f27.js.gz +0 -0
  593. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin.js +1 -0
  594. data/spec/dummy/public/assets/tinymce/plugins/noneditable/plugin.js.gz +1 -0
  595. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin-f4c2fa4074a982fc576ea586ee09e99091bc52d14597223c533e0967188d3a2d.js +1 -0
  596. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin-f4c2fa4074a982fc576ea586ee09e99091bc52d14597223c533e0967188d3a2d.js.gz +0 -0
  597. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin.js +1 -0
  598. data/spec/dummy/public/assets/tinymce/plugins/pagebreak/plugin.js.gz +1 -0
  599. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin-e5d9b3d8e7d071e74b7cfc90c3b1c85e7ed5e4245d805194f9f79fb872d39d3d.js +1 -0
  600. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin-e5d9b3d8e7d071e74b7cfc90c3b1c85e7ed5e4245d805194f9f79fb872d39d3d.js.gz +0 -0
  601. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin.js +1 -0
  602. data/spec/dummy/public/assets/tinymce/plugins/paste/plugin.js.gz +1 -0
  603. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin-bdf1d10d1e637f00598d3f482895e276933c1e16b1b543d2120fb70c4fbf3d18.js +1 -0
  604. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin-bdf1d10d1e637f00598d3f482895e276933c1e16b1b543d2120fb70c4fbf3d18.js.gz +0 -0
  605. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin.js +1 -0
  606. data/spec/dummy/public/assets/tinymce/plugins/preview/plugin.js.gz +1 -0
  607. data/spec/dummy/public/assets/tinymce/plugins/print/plugin-1ba88c314fa4c0c47ab0af0aa908c03d7906a77fef6a319a302ffff44099fe26.js +1 -0
  608. data/spec/dummy/public/assets/tinymce/plugins/print/plugin-1ba88c314fa4c0c47ab0af0aa908c03d7906a77fef6a319a302ffff44099fe26.js.gz +0 -0
  609. data/spec/dummy/public/assets/tinymce/plugins/print/plugin.js +1 -0
  610. data/spec/dummy/public/assets/tinymce/plugins/print/plugin.js.gz +1 -0
  611. data/spec/dummy/public/assets/tinymce/plugins/save/plugin-a944096bba3f8519c898163008a334509d0f4efdbcd9500d752170fdbef570b3.js +1 -0
  612. data/spec/dummy/public/assets/tinymce/plugins/save/plugin-a944096bba3f8519c898163008a334509d0f4efdbcd9500d752170fdbef570b3.js.gz +0 -0
  613. data/spec/dummy/public/assets/tinymce/plugins/save/plugin.js +1 -0
  614. data/spec/dummy/public/assets/tinymce/plugins/save/plugin.js.gz +1 -0
  615. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin-f92c077beef380fec6358458a27442d22eaca83a81fb3c4d71d9103e2f8b9c7a.js +1 -0
  616. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin-f92c077beef380fec6358458a27442d22eaca83a81fb3c4d71d9103e2f8b9c7a.js.gz +0 -0
  617. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin.js +1 -0
  618. data/spec/dummy/public/assets/tinymce/plugins/searchreplace/plugin.js.gz +1 -0
  619. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin-2421bc7102c088705c6d524c402aa8091adced77d046c2e6a210a431314f9b39.js +1 -0
  620. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin-2421bc7102c088705c6d524c402aa8091adced77d046c2e6a210a431314f9b39.js.gz +0 -0
  621. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin.js +1 -0
  622. data/spec/dummy/public/assets/tinymce/plugins/spellchecker/plugin.js.gz +1 -0
  623. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin-8222fce64dd367dccf3262baa1b881f2664d17704cc77e7bea991f2a2ef277e5.js +1 -0
  624. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin-8222fce64dd367dccf3262baa1b881f2664d17704cc77e7bea991f2a2ef277e5.js.gz +0 -0
  625. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin.js +1 -0
  626. data/spec/dummy/public/assets/tinymce/plugins/tabfocus/plugin.js.gz +1 -0
  627. data/spec/dummy/public/assets/tinymce/plugins/table/plugin-9a47d6e1a247fa9d364bbbd3f4369c008a90b8dc3ca58dccc078d96e35c309ff.js +1 -0
  628. data/spec/dummy/public/assets/tinymce/plugins/table/plugin-9a47d6e1a247fa9d364bbbd3f4369c008a90b8dc3ca58dccc078d96e35c309ff.js.gz +0 -0
  629. data/spec/dummy/public/assets/tinymce/plugins/table/plugin.js +1 -0
  630. data/spec/dummy/public/assets/tinymce/plugins/table/plugin.js.gz +1 -0
  631. data/spec/dummy/public/assets/tinymce/plugins/template/plugin-c8d1a75d3ed920d3a8c5a1de1a154fde85dad3540521734f7226f8ab7fa9a83f.js +1 -0
  632. data/spec/dummy/public/assets/tinymce/plugins/template/plugin-c8d1a75d3ed920d3a8c5a1de1a154fde85dad3540521734f7226f8ab7fa9a83f.js.gz +0 -0
  633. data/spec/dummy/public/assets/tinymce/plugins/template/plugin.js +1 -0
  634. data/spec/dummy/public/assets/tinymce/plugins/template/plugin.js.gz +1 -0
  635. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin-ebf778e6028f2d073e3ff9219c8d49ae5f066d4819cfe7fd72bcf6be84e0f014.js +1 -0
  636. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin-ebf778e6028f2d073e3ff9219c8d49ae5f066d4819cfe7fd72bcf6be84e0f014.js.gz +0 -0
  637. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin.js +1 -0
  638. data/spec/dummy/public/assets/tinymce/plugins/textcolor/plugin.js.gz +1 -0
  639. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin-0e4e48f87210d9b6e23c4dc597d9eea97b6496c30cc5bcbddab76bb8c8bfc464.js +1 -0
  640. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin-0e4e48f87210d9b6e23c4dc597d9eea97b6496c30cc5bcbddab76bb8c8bfc464.js.gz +0 -0
  641. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin.js +1 -0
  642. data/spec/dummy/public/assets/tinymce/plugins/textpattern/plugin.js.gz +1 -0
  643. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin-a73e6c327940360e18736b041e3345c9b678ecf553c9a1540f1c6f5275589b34.js +1 -0
  644. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin-a73e6c327940360e18736b041e3345c9b678ecf553c9a1540f1c6f5275589b34.js.gz +0 -0
  645. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin.js +1 -0
  646. data/spec/dummy/public/assets/tinymce/plugins/toc/plugin.js.gz +1 -0
  647. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks-38af77cad34b0cc4beed256e10d7f2a6dfdde074c25d27d7e147505e5fd334ba.css +154 -0
  648. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks-38af77cad34b0cc4beed256e10d7f2a6dfdde074c25d27d7e147505e5fd334ba.css.gz +0 -0
  649. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks.css +1 -0
  650. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/css/visualblocks.css.gz +1 -0
  651. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin-0b55625bb357cb6113a43de563efa3b6142f7502534ebc705315ef785d052c44.js +1 -0
  652. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin-0b55625bb357cb6113a43de563efa3b6142f7502534ebc705315ef785d052c44.js.gz +0 -0
  653. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin.js +1 -0
  654. data/spec/dummy/public/assets/tinymce/plugins/visualblocks/plugin.js.gz +1 -0
  655. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin-ae2a936285b3d920eb3ff184d8502811cbfb59cf6b1c06c81343a57505fd9f84.js +1 -0
  656. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin-ae2a936285b3d920eb3ff184d8502811cbfb59cf6b1c06c81343a57505fd9f84.js.gz +0 -0
  657. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin.js +1 -0
  658. data/spec/dummy/public/assets/tinymce/plugins/visualchars/plugin.js.gz +1 -0
  659. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin-c1c8b0a36661e2d8ea847cefbaac2dfd95a16bea714c7dbd3d65f51e25311a65.js +1 -0
  660. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin-c1c8b0a36661e2d8ea847cefbaac2dfd95a16bea714c7dbd3d65f51e25311a65.js.gz +0 -0
  661. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin.js +1 -0
  662. data/spec/dummy/public/assets/tinymce/plugins/wordcount/plugin.js.gz +1 -0
  663. data/spec/dummy/public/assets/tinymce/preinit-84328a53e798df12f891eb49871773fd9f925439c8630e9e22423a82ef9e6f89.js +4 -0
  664. data/spec/dummy/public/assets/tinymce/preinit-84328a53e798df12f891eb49871773fd9f925439c8630e9e22423a82ef9e6f89.js.gz +0 -0
  665. data/spec/dummy/public/assets/tinymce/preinit.js +1 -0
  666. data/spec/dummy/public/assets/tinymce/preinit.js.gz +1 -0
  667. data/spec/dummy/public/assets/tinymce/rails-bf7fd5c952f25481010758dde6a2681498074f9509230f601b317356a6a54fca.js +52 -0
  668. data/spec/dummy/public/assets/tinymce/rails-bf7fd5c952f25481010758dde6a2681498074f9509230f601b317356a6a54fca.js.gz +0 -0
  669. data/spec/dummy/public/assets/tinymce/rails.js +1 -0
  670. data/spec/dummy/public/assets/tinymce/rails.js.gz +1 -0
  671. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min-b62ea4e65ad6c87cbfedf3897b59eb30ec3972c410070d8ee2c0f5bececc4cce.css +1 -0
  672. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min-b62ea4e65ad6c87cbfedf3897b59eb30ec3972c410070d8ee2c0f5bececc4cce.css.gz +0 -0
  673. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min.css +1 -0
  674. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.inline.min.css.gz +1 -0
  675. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min-d72493ca5cc1caca93db665b284fd12fe396a245c3e82cc2d6cf4fca83702cb9.css +1 -0
  676. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min-d72493ca5cc1caca93db665b284fd12fe396a245c3e82cc2d6cf4fca83702cb9.css.gz +0 -0
  677. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min.css +1 -0
  678. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.min.css.gz +1 -0
  679. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min-230c31f65356c7cb1799244a34f7a722c92a6d614e06e59d48db0ebccd7f2346.css +1 -0
  680. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min-230c31f65356c7cb1799244a34f7a722c92a6d614e06e59d48db0ebccd7f2346.css.gz +0 -0
  681. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min.css +1 -0
  682. data/spec/dummy/public/assets/tinymce/skins/lightgray/content.mobile.min.css.gz +1 -0
  683. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-84d35201689d08969a92a8ccdc5a0002da01eac30651fef23e79e1993ace2ebf.woff +0 -0
  684. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-8c8effbf1b373e7bd3f8f291264eaefeed933fea8fe91637d81f3fc9574c3592.ttf +0 -0
  685. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-8c8effbf1b373e7bd3f8f291264eaefeed933fea8fe91637d81f3fc9574c3592.ttf.gz +0 -0
  686. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-d7d36b21dc4b2dd2e4252b2b71f7b57d2d828359f2936af6e3fe8e2f913a0498.eot +0 -0
  687. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-d7d36b21dc4b2dd2e4252b2b71f7b57d2d828359f2936af6e3fe8e2f913a0498.eot.gz +0 -0
  688. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-e17f0683d5785645d10307971450b94e62b86f062e92fcea6a055c2443bdef5f.svg +132 -0
  689. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-e17f0683d5785645d10307971450b94e62b86f062e92fcea6a055c2443bdef5f.svg.gz +0 -0
  690. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-mobile-e64bf156a432d63f5b34b4567b513dc0d351b49161c7f608fb82574bfdd9d213.woff +0 -0
  691. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-mobile.woff +1 -0
  692. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-2f657502906d6f5c3fc8df3a82969114ebe030addfdc061c60c974b0f515fd09.ttf +0 -0
  693. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-2f657502906d6f5c3fc8df3a82969114ebe030addfdc061c60c974b0f515fd09.ttf.gz +0 -0
  694. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-a10fc4343d95b716c16d77463d475be5c079599ea67e1cd2bd3a94d5e7f508f9.eot +0 -0
  695. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-a10fc4343d95b716c16d77463d475be5c079599ea67e1cd2bd3a94d5e7f508f9.eot.gz +0 -0
  696. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-d3efbb678ca6de5632902bd93772746ba2f8e4e2322b953936e12694a183aa31.woff +0 -0
  697. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-e7773001446ab937e1d8d4bd5e8dbd9b31d112037353a14b319e36dd010ed8ee.svg +63 -0
  698. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small-e7773001446ab937e1d8d4bd5e8dbd9b31d112037353a14b319e36dd010ed8ee.svg.gz +0 -0
  699. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.eot +1 -0
  700. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.eot.gz +1 -0
  701. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.svg +1 -0
  702. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.svg.gz +1 -0
  703. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.ttf +1 -0
  704. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.ttf.gz +1 -0
  705. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce-small.woff +1 -0
  706. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.eot +1 -0
  707. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.eot.gz +1 -0
  708. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.svg +1 -0
  709. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.svg.gz +1 -0
  710. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.ttf +1 -0
  711. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.ttf.gz +1 -0
  712. data/spec/dummy/public/assets/tinymce/skins/lightgray/fonts/tinymce.woff +1 -0
  713. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/anchor-2861666fd107d278d4449970615136d06d7f746be9bb19072cf9c8f30e565e1e.gif +0 -0
  714. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/anchor.gif +1 -0
  715. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/loader-eb7cfd3d959b2e09c170f532e29f8b825f9bc770b2279fde58e595617753e244.gif +0 -0
  716. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/loader.gif +1 -0
  717. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/object-e6a15e52bc4a17b085073ba8debd4708ead6ae3d4cbeb3880c65cb7afc489777.gif +0 -0
  718. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/object.gif +1 -0
  719. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/trans-9cf020d7c3bba7f5ab10cda54aabef934f906d4f9a3acf99e9e7dc6c98579635.gif +0 -0
  720. data/spec/dummy/public/assets/tinymce/skins/lightgray/img/trans.gif +1 -0
  721. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min-a79be2481d2a4ff94eb1149ead0747a75242ac8aaea9fb04511983009979e999.css +1 -0
  722. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min-a79be2481d2a4ff94eb1149ead0747a75242ac8aaea9fb04511983009979e999.css.gz +0 -0
  723. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min.css +1 -0
  724. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.min.css.gz +1 -0
  725. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min-3bad5bf37eeca619d0f3250813b5489d7095b88f0cfe28bd1dc31b27f49b7d1c.css +2 -0
  726. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min-3bad5bf37eeca619d0f3250813b5489d7095b88f0cfe28bd1dc31b27f49b7d1c.css.gz +0 -0
  727. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min.css +1 -0
  728. data/spec/dummy/public/assets/tinymce/skins/lightgray/skin.mobile.min.css.gz +1 -0
  729. data/spec/dummy/public/assets/tinymce/themes/inlite/theme-9b7dacf28bd56f89d0484dc1026baf70b99b19ae6e6b73e05508617cab4ce9fd.js +1 -0
  730. data/spec/dummy/public/assets/tinymce/themes/inlite/theme-9b7dacf28bd56f89d0484dc1026baf70b99b19ae6e6b73e05508617cab4ce9fd.js.gz +0 -0
  731. data/spec/dummy/public/assets/tinymce/themes/inlite/theme.js +1 -0
  732. data/spec/dummy/public/assets/tinymce/themes/inlite/theme.js.gz +1 -0
  733. data/spec/dummy/public/assets/tinymce/themes/mobile/theme-b2dd6f36e4d9b3e1c7db2e6eeca066fafe23c83d4edcb864435e8db5c75693a2.js +1 -0
  734. data/spec/dummy/public/assets/tinymce/themes/mobile/theme-b2dd6f36e4d9b3e1c7db2e6eeca066fafe23c83d4edcb864435e8db5c75693a2.js.gz +0 -0
  735. data/spec/dummy/public/assets/tinymce/themes/mobile/theme.js +1 -0
  736. data/spec/dummy/public/assets/tinymce/themes/mobile/theme.js.gz +1 -0
  737. data/spec/dummy/public/assets/tinymce/themes/modern/theme-902ab1a0d92d3c98813a758b5f2f1fa256c1d0f4d272071db3dd25f198e726e1.js +1 -0
  738. data/spec/dummy/public/assets/tinymce/themes/modern/theme-902ab1a0d92d3c98813a758b5f2f1fa256c1d0f4d272071db3dd25f198e726e1.js.gz +0 -0
  739. data/spec/dummy/public/assets/tinymce/themes/modern/theme.js +1 -0
  740. data/spec/dummy/public/assets/tinymce/themes/modern/theme.js.gz +1 -0
  741. data/spec/dummy/public/assets/tinymce/tinymce-4bbe7bdb1002044cd23496cc97b23a2fe25aefe0f130c9d6508877ffb9fd862e.js +26829 -0
  742. data/spec/dummy/public/assets/tinymce/tinymce-4bbe7bdb1002044cd23496cc97b23a2fe25aefe0f130c9d6508877ffb9fd862e.js.gz +0 -0
  743. data/spec/dummy/public/assets/tinymce/tinymce.js +1 -0
  744. data/spec/dummy/public/assets/tinymce/tinymce.js.gz +1 -0
  745. data/spec/dummy/public/assets/tinymce-18aa7e0c99c3802cce9257c706c337e2bc8f998d1f8ebfd00309592dffdade05.js +26888 -0
  746. data/spec/dummy/public/assets/tinymce-18aa7e0c99c3802cce9257c706c337e2bc8f998d1f8ebfd00309592dffdade05.js.gz +0 -0
  747. data/spec/dummy/public/assets/unauthorized-f936e9c3ea7a38e2c2092099586a71380b11258697b37fb4df376704495a849a.png +0 -0
  748. data/spec/dummy/public/assets/us_404-97e5b45f27bdb92b864434b6bfe96c248456caea17e9a18b4b671c803ea7db4d.svg +91 -0
  749. data/spec/dummy/public/assets/us_404-97e5b45f27bdb92b864434b6bfe96c248456caea17e9a18b4b671c803ea7db4d.svg.gz +0 -0
  750. data/spec/dummy/public/assets/work-ff055336041c3f7d310ad69109eda4a887b16ec501f35afc0a547c4adb97ee72.png +0 -0
  751. data/spec/dummy/public/assets/zizia/application-506279a2a8261b6dfdd8753ef894af0a53a1a04c7a71036110ed2ba9f437da99.js +71 -0
  752. data/spec/dummy/public/assets/zizia/application-506279a2a8261b6dfdd8753ef894af0a53a1a04c7a71036110ed2ba9f437da99.js.gz +0 -0
  753. data/spec/dummy/public/assets/zizia/application-a61ffbc929539843842d2e6e212160fa843847f8ae69f706ca83535eddc24737.css +36 -0
  754. data/spec/dummy/public/assets/zizia/application-a61ffbc929539843842d2e6e212160fa843847f8ae69f706ca83535eddc24737.css.gz +0 -0
  755. data/spec/dummy/public/assets/zotero-d6a884dbda40a61ac3a10f27c39592de33ec305bdb035859db6fd5dd2f47fc73.png +0 -0
  756. data/spec/dummy/public/favicon.ico +0 -0
  757. data/spec/dummy/public/robots.txt +1 -0
  758. data/spec/dummy/solr/conf/_rest_managed.json +3 -0
  759. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  760. data/spec/dummy/solr/conf/elevate.xml +36 -0
  761. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  762. data/spec/dummy/solr/conf/protwords.txt +21 -0
  763. data/spec/dummy/solr/conf/schema.xml +629 -0
  764. data/spec/dummy/solr/conf/scripts.conf +24 -0
  765. data/spec/dummy/solr/conf/solrconfig.xml +411 -0
  766. data/spec/dummy/solr/conf/spellings.txt +2 -0
  767. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  768. data/spec/dummy/solr/conf/stopwords_en.txt +58 -0
  769. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  770. data/spec/dummy/solr/conf/xslt/example.xsl +132 -0
  771. data/spec/dummy/solr/conf/xslt/example_atom.xsl +67 -0
  772. data/spec/dummy/solr/conf/xslt/example_rss.xsl +66 -0
  773. data/spec/dummy/solr/conf/xslt/luke.xsl +337 -0
  774. data/spec/dummy/solr/config/_rest_managed.json +3 -0
  775. data/spec/dummy/solr/config/admin-extra.html +31 -0
  776. data/spec/dummy/solr/config/elevate.xml +36 -0
  777. data/spec/dummy/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  778. data/spec/dummy/solr/config/protwords.txt +21 -0
  779. data/spec/dummy/solr/config/schema.xml +366 -0
  780. data/spec/dummy/solr/config/scripts.conf +24 -0
  781. data/spec/dummy/solr/config/solrconfig.xml +322 -0
  782. data/spec/dummy/solr/config/spellings.txt +2 -0
  783. data/spec/dummy/solr/config/stopwords.txt +58 -0
  784. data/spec/dummy/solr/config/stopwords_en.txt +58 -0
  785. data/spec/dummy/solr/config/synonyms.txt +31 -0
  786. data/spec/dummy/solr/config/xslt/example.xsl +132 -0
  787. data/spec/dummy/solr/config/xslt/example_atom.xsl +67 -0
  788. data/spec/dummy/solr/config/xslt/example_rss.xsl +66 -0
  789. data/spec/dummy/solr/config/xslt/luke.xsl +337 -0
  790. data/spec/dummy/solr/sample_solr_documents.yml +2692 -0
  791. data/spec/dummy/spec/fixtures/csv_import/csv_files_with_problems/extra - headers.csv +4 -0
  792. data/spec/dummy/spec/fixtures/csv_import/csv_files_with_problems/missing_headers.csv +2 -0
  793. data/spec/dummy/spec/fixtures/csv_import/good/all_fields.csv +2 -0
  794. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_complete_update.csv +2 -0
  795. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_metadata_update.csv +2 -0
  796. data/spec/dummy/spec/fixtures/csv_import/good/all_fields_only_new.csv +3 -0
  797. data/spec/dummy/spec/fixtures/images/animals/cat.png +0 -0
  798. data/spec/dummy/spec/fixtures/images/birds.jpg +0 -0
  799. data/spec/dummy/spec/fixtures/images/cat.jpg +0 -0
  800. data/spec/dummy/spec/fixtures/images/dog.jpg +0 -0
  801. data/spec/dummy/spec/fixtures/images/zizia.png +0 -0
  802. data/spec/dummy/spec/integration/import_csv_spec.rb +24 -0
  803. data/spec/dummy/spec/models/collection_spec.rb +7 -0
  804. data/spec/dummy/spec/models/file_set_spec.rb +7 -0
  805. data/spec/dummy/spec/models/qa/local_authority_entry_spec.rb +5 -0
  806. data/spec/dummy/spec/models/qa/local_authority_spec.rb +5 -0
  807. data/spec/dummy/spec/rails_helper.rb +62 -0
  808. data/spec/dummy/spec/spec_helper.rb +96 -0
  809. data/spec/dummy/spec/system/import_csv_with_warnings_spec.rb +51 -0
  810. data/spec/dummy/spec/system/import_from_csv_spec.rb +242 -0
  811. data/spec/dummy/spec/system/import_from_csv_with_errors_spec.rb +35 -0
  812. data/spec/dummy/spec/system/import_with_no_collection_spec.rb +18 -0
  813. data/spec/dummy/spec/system/importer_documentation_spec.rb +17 -0
  814. data/spec/dummy/spec/system/view_hyrax_home_page_spec.rb +9 -0
  815. data/spec/dummy/storage/.keep +0 -0
  816. data/spec/dummy/test/application_system_test_case.rb +5 -0
  817. data/spec/dummy/test/controllers/.keep +0 -0
  818. data/spec/dummy/test/fixtures/.keep +0 -0
  819. data/spec/dummy/test/fixtures/files/.keep +0 -0
  820. data/spec/dummy/test/fixtures/users.yml +11 -0
  821. data/spec/dummy/test/helpers/.keep +0 -0
  822. data/spec/dummy/test/integration/.keep +0 -0
  823. data/spec/dummy/test/mailers/.keep +0 -0
  824. data/spec/dummy/test/models/.keep +0 -0
  825. data/spec/dummy/test/models/user_test.rb +7 -0
  826. data/spec/dummy/test/system/.keep +0 -0
  827. data/spec/dummy/test/test_helper.rb +9 -0
  828. data/spec/dummy/vendor/.keep +0 -0
  829. data/spec/factories/collection.rb +13 -0
  830. data/spec/factories/user.rb +34 -0
  831. data/spec/fixtures/bad_example.csv +2 -0
  832. data/spec/fixtures/csv_import/csv_files_with_problems/extra - headers.csv +4 -0
  833. data/spec/fixtures/csv_import/csv_files_with_problems/missing_headers.csv +2 -0
  834. data/spec/fixtures/csv_import/good/all_fields.csv +2 -0
  835. data/spec/fixtures/dog.jpg +0 -0
  836. data/spec/fixtures/example.csv +4 -0
  837. data/spec/fixtures/hyrax/example.csv +3 -0
  838. data/spec/fixtures/images/animals/cat.png +0 -0
  839. data/spec/fixtures/images/birds.jpg +0 -0
  840. data/spec/fixtures/images/cat.jpg +0 -0
  841. data/spec/fixtures/images/dog.jpg +0 -0
  842. data/spec/fixtures/images/zizia.png +0 -0
  843. data/spec/fixtures/zizia.png +0 -0
  844. data/spec/integration/csv_import_detail_spec.rb +48 -0
  845. data/spec/integration/import_hyrax_csv.rb +71 -0
  846. data/spec/models/csv_import_spec.rb +18 -0
  847. data/spec/rails_helper.rb +80 -0
  848. data/spec/spec_helper.rb +28 -0
  849. data/spec/support/capybara.rb +28 -0
  850. data/spec/support/hyrax/basic_metadata.rb +30 -0
  851. data/spec/support/hyrax/core_metadata.rb +15 -0
  852. data/spec/support/shared_contexts/with_work_type.rb +109 -0
  853. data/spec/uploaders/csv_manifest_uploader_spec.rb +30 -0
  854. data/spec/views/zizia/importer_documentation/guide.html.erb_spec.rb +13 -0
  855. data/spec/zizia/csv_format_validator_spec.rb +38 -0
  856. data/spec/zizia/csv_parser_spec.rb +73 -0
  857. data/spec/zizia/csv_template_spec.rb +15 -0
  858. data/spec/zizia/hash_mapper_spec.rb +8 -0
  859. data/spec/zizia/hyrax/hyrax_basic_metadata_mapper_spec.rb +191 -0
  860. data/spec/zizia/importer_spec.rb +46 -0
  861. data/spec/zizia/input_record_spec.rb +71 -0
  862. data/spec/zizia/record_importer_spec.rb +53 -0
  863. data/spec/zizia/title_validator_spec.rb +23 -0
  864. data/spec/zizia/validator_spec.rb +9 -0
  865. data/spec/zizia/version_spec.rb +7 -0
  866. data/spec/zizia_spec.rb +20 -0
  867. data/zizia.gemspec +62 -0
  868. metadata +868 -2
@@ -0,0 +1,5 @@
1
+ class AddCollectionIdToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :collection_id, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddBatchIdToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :batch_id, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddSuccessCountToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :success_count, :integer
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddFailureCountToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :failure_count, :integer
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddDeduplicationFieldToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :deduplication_field, :string
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddUpdateActorStackToCsvImportDetail < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :zizia_csv_import_details, :update_actor_stack, :string
4
+ end
5
+ end
data/docs/_config.yml ADDED
@@ -0,0 +1 @@
1
+ theme: jekyll-theme-minimal
@@ -0,0 +1,41 @@
1
+ # Customizing metadata import
2
+
3
+ Often the data you will want to import will not conform exactly to the fields you get from `Hyrax::BasicMetadata`, in which case you will need to make a custom mapper.
4
+
5
+ Again, let's start with making a test. Make a file called `spec/importers/custom_mapper.rb`. Let's start by describing the CSV we expect to import:
6
+
7
+ ```ruby
8
+ # frozen_string_literal: true
9
+
10
+ require 'rails_helper'
11
+
12
+ RSpec.describe CustomMapper do
13
+ subject(:mapper) { described_class.new }
14
+
15
+ let(:metadata) do
16
+ { "Name.architect" => "Imhotep", # architect
17
+ "Type.genre" => "Journalism" # genre
18
+ }
19
+
20
+ describe '#fields' do
21
+ it 'has expected fields' do
22
+ expect(mapper.fields).to include(
23
+ :architect,
24
+ :genre
25
+ )
26
+ end
27
+ end
28
+ ```
29
+ From this rspec test, I can conclude that I have two customized metadata fields, `architect` and `genre`. Actually adding custom metadata fields is covered elsewhere (See [this guide](https://samvera.github.io/customize-metadata-generate-work-type.html), for example), so here we are just going to assume that these fields exist already, and are defined as multi-valued strings.
30
+
31
+
32
+ * Put a file in `config/initializers/zizia.rb`
33
+
34
+ It should look like this:
35
+
36
+ ```ruby
37
+ Zizia.config do |config|
38
+ config.metadata_mapper_class = CustomMapper
39
+ end
40
+ ```
41
+ This tells zizia what class to use for metadata mappings. Output is logged to `Rails.logger` and all output is prefixed with `[zizia]` for easy log parsing.
data/docs/index.md ADDED
@@ -0,0 +1,113 @@
1
+ # Importing to Hyrax with Zizia
2
+
3
+ ## Getting Started
4
+ The simplest use case is importing content that matches [Hyrax's core and basic metadata fields](http://samvera.github.io/metadata_application_profile.html), plus a few extra fields that let Hyrax know how to display the content properly. At a very high level we're going to:
5
+ 1. Write a simple import test first
6
+ 1. Get the test passing
7
+ 1. Write a rake task to run your import with real data
8
+
9
+ **Note:** This guide assumes that you already have a working Hyrax instance with at least one work type. If you need help doing that, see [the Hyrax documentation](https://github.com/samvera/hyrax#creating-a-hyrax-based-app). This guide is going to assume we're using an `Image` work type and attaching image files, but should be applicable to any work type or kind of attachment.
10
+
11
+ ### 1. Write a simple import test
12
+ 1. Make a directory for your importer: `mkdir app/importers`
13
+ 1. Make a directory for your importer tests: `mkdir spec/importers`
14
+ 1. Make a directory for your fixture files: `mkdir spec/fixtures/images`
15
+ 1. Put three small images in `spec/fixtures/images` In this guide, we're using copyright free images from https://www.pexels.com/, `birds.jpg`, `cat.jpg`, and `dog.jpg`.
16
+ 1. Make a directory for your CSV fixture files: `mkdir spec/fixtures/csv_import`
17
+ 1. Put a file like this in `spec/fixtures/csv_import/zizia_basic.csv`:
18
+ ```
19
+ title,source,visibility
20
+ "A Cute Dog",https://www.pexels.com/photo/animal-blur-canine-close-up-551628/,open
21
+ "An Interesting Cat",https://www.pexels.com/photo/person-holding-white-cat-1383397/,open
22
+ "A Flock of Birds",https://www.pexels.com/photo/animal-avian-beak-birds-203088/,open
23
+ ```
24
+ 1. Make a file called `spec/importers/modular_importer_spec.rb` that contains this:
25
+ ```ruby
26
+ # frozen_string_literal: true
27
+
28
+ require 'rails_helper'
29
+
30
+ RSpec.describe ModularImporter do
31
+ let(:modular_csv) { 'spec/fixtures/csv_import/zizia_basic.csv' }
32
+ let(:user) { ::User.batch_user }
33
+
34
+ it "imports a csv" do
35
+ expect { ModularImporter.new(modular_csv).import }.to change { Work.count }.by 3
36
+ end
37
+ end
38
+ ```
39
+ 1. Make a file called `app/importers/modular_importer.rb` that contains just enough of an importer class that your test can run and give a meaningful error:
40
+ ```ruby
41
+ class ModularImporter
42
+ def initialize(csv_file)
43
+ @csv_file = csv_file
44
+ raise "Cannot find expected input file #{csv_file}" unless File.exist?(csv_file)
45
+ end
46
+
47
+ def import
48
+ end
49
+ end
50
+ ```
51
+ 1. Run your test:
52
+ ```
53
+ bundle exec rspec spec/importers/modular_importer_spec.rb
54
+ ```
55
+ It should fail with a message like
56
+ ```
57
+ expected `Work.count` to have changed by 3, but was changed by 0
58
+ ```
59
+
60
+ So, at this point, your test is running, but the importer isn't yet creating any records.
61
+
62
+ ### 2. Get the test passing
63
+ 1. Add the zizia gem to your `Gemfile` and run bundle update:
64
+ ```
65
+ gem `zizia`
66
+ ```
67
+ 2. Edit `app/importer/modular_importer.rb` so it looks like this:
68
+ ```ruby
69
+ require 'zizia'
70
+
71
+ class ModularImporter
72
+ def initialize(csv_file)
73
+ @csv_file = csv_file
74
+ raise "Cannot find expected input file #{csv_file}" unless File.exist?(csv_file)
75
+ end
76
+
77
+ def import
78
+ file = File.open(@csv_file)
79
+ Zizia::Importer.new(parser: Zizia::CsvParser.new(file: file), record_importer: Zizia::HyraxRecordImporter.new).import
80
+ file.close # Note that we must close any files we open.
81
+ end
82
+ end
83
+ ```
84
+ 3. Now your test should pass with output something like this:
85
+
86
+ ```
87
+ ModularImporter
88
+ Creating record: ["A Cute Dog"].Record created at: jw827b648Record created at: jw827b648Creating record: ["An Interesting Cat"].Record created at: 3n203z084Record created at: 3n203z084Creating record: ["A Flock of Birds"].Record created at: wm117n96bRecord created at: wm117n96b imports a csv
89
+
90
+ Finished in 7.56 seconds (files took 9.06 seconds to load)
91
+ 1 example, 0 failures
92
+ ```
93
+
94
+ ### 3. Import in development and production
95
+
96
+ A passing test tell us that records are being created, but it's only happening in our test environment right now. Let's write a rake task so we can make it happen in development or production and really see the records we made.
97
+
98
+ Make a file like this at `lib/tasks/import.rake`:
99
+
100
+ ```ruby
101
+ namespace :basic_import do
102
+ desc 'Ingest sample data'
103
+ task sample: [:environment] do
104
+ Rake::Task["hyrax:default_admin_set:create"].invoke
105
+ Rake::Task["hyrax:default_collection_types:create"].invoke
106
+ Rake::Task["hyrax:workflow:load"].invoke
107
+ csv_file = Rails.root.join('spec', 'fixtures', 'csv_import', 'zizia_basic.csv')
108
+ ModularImporter.new(csv_file).import
109
+ end
110
+ end
111
+ ```
112
+
113
+ Now you should be able to run `rake basic_import:sample` and see your records appear in Hyrax.
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zizia
4
+ ##
5
+ # A Validator that always gives an error named `:everytime`.
6
+ #
7
+ # @example
8
+ # validator = AlwaysInvalidValidator.new
9
+ # validator.validate(:anything, :at, :all) # => [Error<#...>]
10
+ class AlwaysInvalidValidator < Validator
11
+ ##
12
+ # @return [Array<Validator::Error>]
13
+ def validate(*)
14
+ [Error.new(self, :everytime)]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zizia
4
+ class CsvTemplate
5
+ def to_s
6
+ Zizia.config.metadata_mapper_class.new.fields.join(',')
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/all'
4
+ require 'carrierwave'
5
+ require 'carrierwave/orm/activerecord'
6
+ require 'redcarpet'
7
+ require 'devise'
8
+ require 'hyrax'
9
+ require 'riiif'
10
+ require 'hydra-role-management'
11
+
12
+ module Zizia
13
+ class Engine < ::Rails::Engine
14
+ isolate_namespace Zizia
15
+
16
+ config.generators do |g|
17
+ g.test_framework :rspec
18
+ end
19
+
20
+ initializer :zizia_assets_precompile do |app|
21
+ app.config.assets.precompile << %w[zizia/application.js zizia/application.css]
22
+ end
23
+
24
+ initializer :append_migrations do |app|
25
+ unless app.root.to_s.match root.to_s
26
+ config.paths['db/migrate'].expanded.each do |expanded_path|
27
+ app.config.paths['db/migrate'] << expanded_path
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zizia
4
+ ##
5
+ # A generic metadata mapper for input records
6
+ #
7
+ # Maps from hash accessor syntax (`['title']`) to method call dot syntax (`.title`)
8
+ #
9
+ # The fields provided by this mapper are dynamically determined by the fields
10
+ # available in the provided metadata hash.
11
+ #
12
+ # All field values are given as multi-valued arrays.
13
+ #
14
+ # @example
15
+ # mapper = HashMapper.new
16
+ # mapper.fields # => []
17
+ #
18
+ # mapper.metadata = { title: 'Comet in Moominland', author: 'Tove Jansson' }
19
+ # mapper.fields # => [:title, :author]
20
+ # mapper.title # => ['Comet in Moominland']
21
+ # mapper.author # => ['Tove Jansson']
22
+ #
23
+ class HashMapper < MetadataMapper
24
+ ##
25
+ # @param meta [#to_h]
26
+ # @return [Hash<String, String>]
27
+ def metadata=(meta)
28
+ @metadata = meta.to_h
29
+ end
30
+
31
+ ##
32
+ # @return [Enumerable<Symbol>] The fields the mapper can process
33
+ def fields
34
+ return [] if metadata.nil?
35
+ metadata.keys.map(&:to_sym)
36
+ end
37
+
38
+ ##
39
+ # @see MetadataMapper#map_field
40
+ def map_field(name)
41
+ Array(metadata[name.to_s])
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,149 @@
1
+ # frozen_string_literal: true
2
+ require 'uri'
3
+
4
+ module Zizia
5
+ ##
6
+ # A mapper for Hyrax metadata.
7
+ #
8
+ # Maps from hash accessor syntax (`['title']`) to method call dot syntax (`.title`).
9
+ #
10
+ # The fields provided by this mapper are the same as the properties defined in `Hyrax::CoreMetadata` and `Hyrax::BasicMetadata`.
11
+ #
12
+ # @note This mapper allows you to set values for all the Hyrax fields, but depending on how you create the records, some of the values might get clobbered. For example, if you use Hyrax's actor stack to create records, it might overwrite fields like `date_modified` or `depositor`.
13
+ #
14
+ # @see HashMapper Parent class for more info and examples.
15
+ class HyraxBasicMetadataMapper < HashMapper
16
+ # If your CSV headers don't exactly match the
17
+ # the method name for the property's setter
18
+ # method, add a mapping here.
19
+ # Example: the method name is work.resource_type,
20
+ # but in the CSV file, the header is
21
+ # 'resource type' (without the underscore).
22
+ CSV_HEADERS = {
23
+ resource_type: 'resource type',
24
+ description: 'abstract or summary',
25
+ rights_statement: 'rights statement',
26
+ date_created: 'date created',
27
+ based_near: 'location',
28
+ related_url: 'related url'
29
+ }.freeze
30
+
31
+ ##
32
+ # @return [Enumerable<Symbol>] The fields the mapper can process.
33
+ def fields
34
+ core_fields + basic_fields + [:visibility]
35
+ end
36
+
37
+ # Properties defined with `multiple: false` in
38
+ # Hyrax should return a single value instead of
39
+ # an Array of values.
40
+ def depositor
41
+ single_value('depositor')
42
+ end
43
+
44
+ def date_modified
45
+ single_value('date_modified')
46
+ end
47
+
48
+ def label
49
+ single_value('label')
50
+ end
51
+
52
+ def relative_path
53
+ single_value('relative_path')
54
+ end
55
+
56
+ def import_url
57
+ single_value('import_url')
58
+ end
59
+
60
+ # We should accept visibility values that match the UI and transform them into
61
+ # the controlled vocabulary term expected by Hyrax
62
+ def visibility
63
+ case metadata[matching_header('visibility')]&.downcase&.gsub(/\s+/, "")
64
+ when 'public'
65
+ 'open'
66
+ when 'open'
67
+ 'open'
68
+ when 'registered'
69
+ 'authenticated'
70
+ when "authenticated"
71
+ 'authenticated'
72
+ when ::Hyrax::Institution.name&.downcase&.gsub(/\s+/, "")
73
+ 'authenticated'
74
+ when ::Hyrax::Institution.name_full&.downcase&.gsub(/\s+/, "")
75
+ 'authenticated'
76
+ when 'private'
77
+ 'restricted'
78
+ when 'restricted'
79
+ 'restricted'
80
+ else
81
+ 'restricted' # This is the default if nothing else matches
82
+ end
83
+ end
84
+
85
+ def files
86
+ map_field('files')
87
+ end
88
+
89
+ ##
90
+ # @return [String] The delimiter that will be used to split a metadata field into separate values.
91
+ # @example
92
+ # mapper = HyraxBasicMetadataMapper.new
93
+ # mapper.metadata = { 'language' => 'English|~|French|~|Japanese' }
94
+ # mapper.language = ['English', 'French', 'Japanese']
95
+ #
96
+ def delimiter
97
+ @delimiter ||= '|~|'
98
+ end
99
+ attr_writer :delimiter
100
+
101
+ ##
102
+ # @see MetadataMapper#map_field
103
+ def map_field(name)
104
+ method_name = name.to_s
105
+ method_name = CSV_HEADERS[name] if CSV_HEADERS.keys.include?(name)
106
+ key = matching_header(method_name)
107
+ Array(metadata[key]&.split(delimiter))
108
+ end
109
+
110
+ protected
111
+
112
+ # Some fields should have single values instead
113
+ # of array values.
114
+ def single_value(field_name)
115
+ metadata[matching_header(field_name)]
116
+ end
117
+
118
+ # Lenient matching for headers.
119
+ # If the user has headers like:
120
+ # 'Title' or 'TITLE' or 'Title '
121
+ # it should match the :title field.
122
+ def matching_header(field_name)
123
+ metadata.keys.find do |key|
124
+ next unless key
125
+ key.downcase.strip == field_name
126
+ end
127
+ end
128
+
129
+ # Properties defined in Hyrax::CoreMetadata
130
+ # Note that date_uploaded is NOT set here, even though it is defined in
131
+ # Hyrax::CoreMetadata. Hyrax expects to set date_uploaded itself, and
132
+ # sending a metadata value for that field interferes with Hyrax expected
133
+ # behavior.
134
+ def core_fields
135
+ [:depositor, :title, :date_modified]
136
+ end
137
+
138
+ # Properties defined in Hyrax::BasicMetadata
139
+ def basic_fields
140
+ [:label, :relative_path, :import_url,
141
+ :resource_type, :creator, :contributor,
142
+ :description, :keyword, :license,
143
+ :rights_statement, :publisher, :date_created,
144
+ :subject, :language, :identifier,
145
+ :based_near, :related_url,
146
+ :bibliographic_citation, :source]
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class HyraxDefaultUpdater < HyraxMetadataOnlyUpdater
4
+ attr_reader :attrs
5
+
6
+ def actor_stack
7
+ terminator = Hyrax::Actors::Terminator.new
8
+ Hyrax::DefaultMiddlewareStack.build_stack.build(terminator)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class HyraxDeleteFilesUpdater < HyraxMetadataOnlyUpdater
4
+ attr_reader :attrs
5
+
6
+ def actor_stack
7
+ terminator = Hyrax::Actors::Terminator.new
8
+ Hyrax::DefaultMiddlewareStack.build_stack.build(terminator)
9
+ end
10
+
11
+ def update
12
+ existing_record.file_sets.map(&:destroy)
13
+ super
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+ module Zizia
3
+ class HyraxMetadataOnlyUpdater
4
+ attr_accessor :depositor,
5
+ :existing_record,
6
+ :update_record,
7
+ :based_near_attributes,
8
+ :csv_import_detail
9
+
10
+ def initialize(csv_import_detail:,
11
+ existing_record:,
12
+ update_record:,
13
+ attrs:)
14
+ @csv_import_detail = csv_import_detail
15
+ @depositor = ::User.find(csv_import_detail.depositor_id)
16
+ @update_record = update_record
17
+ @existing_record = existing_record
18
+ @attrs = attrs
19
+ end
20
+
21
+ def attrs
22
+ @attrs.reject { |k, _v| k == :uploaded_files }
23
+ end
24
+
25
+ def actor_stack
26
+ terminator = Hyrax::Actors::Terminator.new
27
+ Zizia::MetadataOnlyStack.build_stack.build(terminator)
28
+ end
29
+
30
+ def started
31
+ Rails.logger.info "[zizia] event: record_update_started, batch_id: #{csv_import_detail.batch_id}, collection_id: #{csv_import_detail.collection_id}, #{csv_import_detail.deduplication_field}: #{update_record.respond_to?(csv_import_detail.deduplication_field) ? update_record.send(csv_import_detail.deduplication_field.deduplication_field) : update_record}"
32
+ end
33
+
34
+ def succeeded
35
+ Rails.logger.info "[zizia] event: record_updated, batch_id: #{csv_import_detail.batch_id}, record_id: #{csv_import_detail.existing_record.id}, collection_id: #{csv_import_detail.collection_id}, #{csv_import_detail.deduplication_field}: #{existing_record.respond_to?(csv_import_detail.deduplication_field) ? existing_record.send(csv_import_detail.deduplication_field) : existing_record}"
36
+ end
37
+
38
+ def failed(attr)
39
+ Rails.logger.error "[zizia] event: validation_failed, batch_id: #{csv_import_detail.batch_id}, collection_id: #{csv_import_detail.collection_id}, attribute: #{attr.capitalize}, message: #{msg}, record_title: record_title: #{attrs[:title] ? attrs[:title] : attrs}"
40
+ end
41
+
42
+ def create_actor_env
43
+ Hyrax::Actors::Environment.new(existing_record, ::Ability.new(depositor), attrs)
44
+ end
45
+
46
+ def update
47
+ if actor_stack.update(create_actor_env)
48
+ csv_import_detail.success_count += 1
49
+ else
50
+ existing_record.errors.each_key do |attr, _msg|
51
+ failed(attr)
52
+ end
53
+ csv_import_detail.failure_count += 1
54
+ end
55
+ csv_import_detail.save
56
+ end
57
+ end
58
+ end