hyrax 3.0.0.pre.beta2 → 3.0.0.pre.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (441) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +118 -181
  3. data/.gitignore +3 -0
  4. data/.regen +1 -0
  5. data/.rubocop_fixme.yml +1 -1
  6. data/README.md +11 -15
  7. data/app/actors/hyrax/actors/active_fedora_to_valkyrie.rb +59 -0
  8. data/app/actors/hyrax/actors/add_to_work_actor.rb +28 -5
  9. data/app/actors/hyrax/actors/apply_order_actor.rb +2 -2
  10. data/app/actors/hyrax/actors/attach_members_actor.rb +50 -28
  11. data/app/actors/hyrax/actors/base_actor.rb +17 -2
  12. data/app/actors/hyrax/actors/cleanup_file_sets_actor.rb +1 -1
  13. data/app/actors/hyrax/actors/collections_membership_actor.rb +2 -8
  14. data/app/actors/hyrax/actors/create_with_files_actor.rb +16 -6
  15. data/app/actors/hyrax/actors/create_with_files_ordered_members_actor.rb +2 -2
  16. data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +2 -1
  17. data/app/actors/hyrax/actors/create_with_remote_files_ordered_members_actor.rb +8 -6
  18. data/app/actors/hyrax/actors/environment.rb +8 -16
  19. data/app/actors/hyrax/actors/file_actor.rb +75 -13
  20. data/app/actors/hyrax/actors/interpret_visibility_actor.rb +6 -8
  21. data/app/actors/hyrax/actors/valkyrie_to_active_fedora.rb +60 -0
  22. data/app/assets/javascripts/hyrax/collections.js +5 -4
  23. data/app/assets/javascripts/hyrax/nav_safety.js +4 -2
  24. data/app/assets/javascripts/hyrax/proxy_rights.js +8 -0
  25. data/app/assets/stylesheets/fileupload/jquery.fileupload-ui.scss +1 -15
  26. data/app/assets/stylesheets/hyrax/_collections.scss +1 -1
  27. data/app/assets/stylesheets/hyrax/_home-page.scss +6 -0
  28. data/app/assets/stylesheets/hyrax/_users.scss +11 -0
  29. data/app/assets/stylesheets/hyrax/_viewer.scss +14 -3
  30. data/app/controllers/concerns/hyrax/breadcrumbs.rb +2 -0
  31. data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +1 -1
  32. data/app/controllers/concerns/hyrax/embargoes_controller_behavior.rb +2 -1
  33. data/app/controllers/concerns/hyrax/leases_controller_behavior.rb +2 -1
  34. data/app/controllers/concerns/hyrax/local_file_downloads_controller_behavior.rb +2 -1
  35. data/app/controllers/hyrax/batch_edits_controller.rb +3 -3
  36. data/app/controllers/hyrax/dashboard/collections_controller.rb +16 -5
  37. data/app/controllers/hyrax/dashboard_controller.rb +9 -0
  38. data/app/controllers/hyrax/depositors_controller.rb +4 -6
  39. data/app/controllers/hyrax/downloads_controller.rb +1 -1
  40. data/app/controllers/hyrax/file_sets_controller.rb +3 -2
  41. data/app/controllers/hyrax/homepage_controller.rb +1 -1
  42. data/app/controllers/hyrax/my/works_controller.rb +2 -2
  43. data/app/controllers/hyrax/my_controller.rb +2 -2
  44. data/app/controllers/hyrax/permissions_controller.rb +1 -1
  45. data/app/controllers/hyrax/single_use_links_viewer_controller.rb +1 -1
  46. data/app/controllers/hyrax/workflow_actions_controller.rb +1 -1
  47. data/app/forms/hyrax/forms/admin_set_form.rb +8 -0
  48. data/app/forms/hyrax/forms/batch_edit_form.rb +1 -1
  49. data/app/forms/hyrax/forms/collection_form.rb +34 -3
  50. data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
  51. data/app/forms/hyrax/forms/work_form.rb +34 -7
  52. data/app/forms/hyrax/forms/workflow_responsibility_form.rb +0 -4
  53. data/app/helpers/hyrax/hyrax_helper_behavior.rb +3 -4
  54. data/app/helpers/hyrax/iiif_helper.rb +8 -0
  55. data/app/indexers/hyrax/admin_set_indexer.rb +1 -1
  56. data/app/indexers/hyrax/basic_metadata_indexer.rb +1 -1
  57. data/app/indexers/hyrax/collection_indexer.rb +2 -2
  58. data/app/indexers/hyrax/file_set_indexer.rb +7 -0
  59. data/app/indexers/hyrax/indexes_workflow.rb +3 -5
  60. data/app/indexers/hyrax/valkyrie_indexers/base_indexer.rb +19 -0
  61. data/app/indexers/hyrax/work_indexer.rb +1 -1
  62. data/app/jobs/attach_files_to_work_job.rb +9 -1
  63. data/app/jobs/characterize_job.rb +20 -5
  64. data/app/jobs/import_url_job.rb +9 -16
  65. data/app/jobs/ingest_local_file_job.rb +4 -0
  66. data/app/jobs/visibility_copy_job.rb +3 -17
  67. data/app/models/admin_set.rb +5 -0
  68. data/app/models/concerns/hyrax/ability.rb +3 -3
  69. data/app/models/concerns/hyrax/basic_metadata.rb +6 -2
  70. data/app/models/concerns/hyrax/collection_behavior.rb +22 -12
  71. data/app/models/concerns/hyrax/collection_nesting.rb +1 -1
  72. data/app/models/concerns/hyrax/file_set/characterization.rb +8 -1
  73. data/app/models/concerns/hyrax/file_set/querying.rb +1 -1
  74. data/app/models/concerns/hyrax/file_set_behavior.rb +1 -1
  75. data/app/models/concerns/hyrax/human_readable_type.rb +2 -2
  76. data/app/models/concerns/hyrax/solr_document/characterization.rb +27 -23
  77. data/app/models/concerns/hyrax/solr_document/metadata.rb +37 -39
  78. data/app/models/concerns/hyrax/solr_document_behavior.rb +4 -8
  79. data/app/models/concerns/hyrax/virus_check.rb +20 -0
  80. data/app/models/concerns/hyrax/work_behavior.rb +3 -1
  81. data/app/models/file_download_stat.rb +2 -1
  82. data/app/models/hyrax/active_job_proxy.rb +43 -0
  83. data/app/models/hyrax/embargo.rb +21 -0
  84. data/app/models/hyrax/file_metadata.rb +109 -0
  85. data/app/models/hyrax/lease.rb +21 -0
  86. data/app/models/hyrax/permission_template.rb +8 -8
  87. data/app/models/hyrax/resource.rb +31 -0
  88. data/app/models/hyrax/statistic.rb +5 -1
  89. data/app/models/hyrax/uploaded_file.rb +0 -2
  90. data/app/models/hyrax/virus_scanner.rb +56 -0
  91. data/app/models/job_io_wrapper.rb +24 -9
  92. data/app/models/proxy_deposit_request.rb +1 -1
  93. data/app/models/solr_hit.rb +23 -0
  94. data/app/presenters/hyrax/admin_set_presenter.rb +1 -1
  95. data/app/presenters/hyrax/characterization_behavior.rb +2 -2
  96. data/app/presenters/hyrax/displays_image.rb +25 -7
  97. data/app/presenters/hyrax/file_set_presenter.rb +3 -3
  98. data/app/presenters/hyrax/member_presenter_factory.rb +9 -9
  99. data/app/presenters/hyrax/presenter_factory.rb +1 -4
  100. data/app/presenters/hyrax/trophy_presenter.rb +1 -1
  101. data/app/presenters/hyrax/work_show_presenter.rb +3 -3
  102. data/app/renderers/hyrax/renderers/faceted_attribute_renderer.rb +1 -1
  103. data/app/search_builders/hyrax/catalog_search_builder.rb +1 -1
  104. data/app/search_builders/hyrax/collection_search_builder.rb +1 -1
  105. data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +2 -2
  106. data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
  107. data/app/search_builders/hyrax/my/find_works_search_builder.rb +5 -9
  108. data/app/search_builders/hyrax/my/highlights_search_builder.rb +1 -3
  109. data/app/search_builders/hyrax/nested_collections_parent_search_builder.rb +1 -1
  110. data/app/search_builders/hyrax/parent_collection_search_builder.rb +1 -1
  111. data/app/services/hyrax/adapters/nesting_index_adapter.rb +6 -6
  112. data/app/services/hyrax/admin_set_service.rb +3 -11
  113. data/app/services/hyrax/analytics.rb +6 -6
  114. data/app/services/hyrax/collection_types/permissions_service.rb +5 -5
  115. data/app/services/hyrax/collections/permissions_service.rb +2 -2
  116. data/app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb +39 -0
  117. data/app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb +39 -0
  118. data/app/services/hyrax/custom_queries/navigators/child_works_navigator.rb +39 -0
  119. data/app/services/hyrax/custom_queries/wings.rb +34 -0
  120. data/app/services/hyrax/database_migrator.rb +1 -0
  121. data/app/services/hyrax/derivative_path.rb +1 -1
  122. data/app/services/hyrax/embargo_manager.rb +100 -0
  123. data/app/services/hyrax/file_set_csv_service.rb +2 -0
  124. data/app/services/hyrax/file_set_visibility_propagator.rb +41 -0
  125. data/app/services/hyrax/graph_exporter.rb +1 -1
  126. data/app/services/hyrax/lease_manager.rb +71 -0
  127. data/app/services/hyrax/persist_directly_contained_output_file_service.rb +1 -1
  128. data/app/services/hyrax/query_service.rb +0 -0
  129. data/app/services/hyrax/resource_visibility_propagator.rb +50 -0
  130. data/app/services/hyrax/solr_query_builder_service.rb +71 -0
  131. data/app/services/hyrax/solr_service.rb +144 -0
  132. data/app/services/hyrax/statistics/file_sets/by_format.rb +1 -1
  133. data/app/services/hyrax/statistics/term_query.rb +7 -12
  134. data/app/services/hyrax/statistics/works/by_resource_type.rb +1 -1
  135. data/app/services/hyrax/thumbnail_path_service.rb +4 -3
  136. data/app/services/hyrax/versioning_service.rb +74 -19
  137. data/app/services/hyrax/virus_checker_service.rb +52 -0
  138. data/app/services/hyrax/visibility_intention_applicator.rb +43 -0
  139. data/app/services/hyrax/visibility_map.rb +65 -0
  140. data/app/services/hyrax/visibility_propagator.rb +19 -0
  141. data/app/services/hyrax/visibility_reader.rb +43 -0
  142. data/app/services/hyrax/visibility_writer.rb +43 -0
  143. data/app/services/hyrax/work_query_service.rb +3 -3
  144. data/app/services/hyrax/workflow/deposited_notification.rb +1 -1
  145. data/app/services/hyrax/works/migration_service.rb +33 -0
  146. data/app/views/hyrax/admin/admin_sets/_form.html.erb +6 -5
  147. data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +2 -1
  148. data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +1 -1
  149. data/app/views/hyrax/base/_attribute_rows.html.erb +2 -0
  150. data/app/views/hyrax/base/_attributes.html.erb +3 -3
  151. data/app/views/hyrax/base/_citations.html.erb +4 -4
  152. data/app/views/hyrax/base/_file_manager_actions.html.erb +2 -2
  153. data/app/views/hyrax/base/_file_manager_member_resource_options.html.erb +2 -2
  154. data/app/views/hyrax/base/_form_child_work_relationships.html.erb +1 -1
  155. data/app/views/hyrax/base/_form_files.html.erb +11 -9
  156. data/app/views/hyrax/base/_form_member_of_collections.html.erb +1 -1
  157. data/app/views/hyrax/base/_form_permission.html.erb +1 -2
  158. data/app/views/hyrax/base/_form_progress.html.erb +2 -2
  159. data/app/views/hyrax/base/_form_share.html.erb +8 -11
  160. data/app/views/hyrax/base/_show_actions.html.erb +3 -3
  161. data/app/views/hyrax/base/_social_media.html.erb +0 -13
  162. data/app/views/hyrax/base/_work_button_row.html.erb +7 -7
  163. data/app/views/hyrax/base/_workflow_actions.html.erb +4 -4
  164. data/app/views/hyrax/base/file_manager.html.erb +2 -2
  165. data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +5 -2
  166. data/app/views/hyrax/base/inspect_work.html.erb +13 -13
  167. data/app/views/hyrax/base/unauthorized.html.erb +4 -4
  168. data/app/views/hyrax/batch_edits/_check_all.html.erb +1 -1
  169. data/app/views/hyrax/batch_edits/_delete_selected.html.erb +1 -1
  170. data/app/views/hyrax/batch_edits/edit.html.erb +11 -11
  171. data/app/views/hyrax/citations/work.html.erb +1 -1
  172. data/app/views/hyrax/collections/_show_document_list.html.erb +1 -1
  173. data/app/views/hyrax/collections/_sort_and_per_page.html.erb +4 -4
  174. data/app/views/hyrax/dashboard/collections/_form.html.erb +6 -5
  175. data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +10 -10
  176. data/app/views/hyrax/dashboard/collections/_form_share.html.erb +5 -5
  177. data/app/views/hyrax/dashboard/collections/_show_descriptions.html.erb +1 -1
  178. data/app/views/hyrax/dashboard/collections/_show_document_list.html.erb +6 -6
  179. data/app/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb +1 -1
  180. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +3 -3
  181. data/app/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb +2 -3
  182. data/app/views/hyrax/dashboard/collections/_work_action_menu.html.erb +8 -8
  183. data/app/views/hyrax/dashboard/collections/edit.html.erb +2 -2
  184. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +8 -8
  185. data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +2 -0
  186. data/app/views/hyrax/dashboard/sidebar/_configuration.html.erb +4 -1
  187. data/app/views/hyrax/dashboard/sidebar/_menu_partials.html.erb +3 -0
  188. data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +2 -0
  189. data/app/views/hyrax/dashboard/sidebar/_tasks.html.erb +2 -0
  190. data/app/views/hyrax/dashboard/works/_default_group.html.erb +4 -4
  191. data/app/views/hyrax/dashboard/works/_list_works.html.erb +1 -1
  192. data/app/views/hyrax/depositors/_modal_proxy_deny.html.erb +14 -0
  193. data/app/views/hyrax/depositors/index.html.erb +3 -0
  194. data/app/views/hyrax/embargoes/_list_expired_active_embargoes.html.erb +1 -1
  195. data/app/views/hyrax/file_sets/_actions.html.erb +1 -1
  196. data/app/views/hyrax/file_sets/_asset_deleted_flash.html.erb +1 -1
  197. data/app/views/hyrax/file_sets/_asset_saved_flash.html.erb +5 -6
  198. data/app/views/hyrax/file_sets/_asset_updated_flash.html.erb +2 -1
  199. data/app/views/hyrax/file_sets/_descriptions.html.erb +2 -2
  200. data/app/views/hyrax/file_sets/_extra_fields_modal.html.erb +3 -3
  201. data/app/views/hyrax/file_sets/_form.html.erb +1 -1
  202. data/app/views/hyrax/file_sets/_permission.html.erb +2 -1
  203. data/app/views/hyrax/file_sets/_permission_form.html.erb +9 -9
  204. data/app/views/hyrax/file_sets/_show_actions.html.erb +4 -4
  205. data/app/views/hyrax/file_sets/_show_details.html.erb +7 -7
  206. data/app/views/hyrax/file_sets/_versioning.html.erb +3 -3
  207. data/app/views/hyrax/file_sets/edit.html.erb +4 -3
  208. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +2 -2
  209. data/app/views/hyrax/file_sets/media_display/_video.html.erb +2 -2
  210. data/app/views/hyrax/file_sets/proxy.html.erb +2 -2
  211. data/app/views/hyrax/my/_sort_and_per_page.html.erb +1 -1
  212. data/app/views/hyrax/my/collections/_modal_delete_selected_collections.html.erb +4 -1
  213. data/app/views/hyrax/my/collections/index.html.erb +1 -1
  214. data/app/views/hyrax/my/index.html.erb +1 -1
  215. data/app/views/hyrax/my/works/_default_group.html.erb +4 -4
  216. data/app/views/hyrax/my/works/_list_works.html.erb +3 -3
  217. data/app/views/hyrax/my/works/index.html.erb +1 -1
  218. data/app/views/hyrax/notifications/index.html.erb +1 -1
  219. data/app/views/hyrax/operations/index.html.erb +4 -4
  220. data/app/views/hyrax/pages/_form.html.erb +61 -60
  221. data/app/views/hyrax/permissions/confirm_access.html.erb +1 -1
  222. data/app/views/hyrax/single_use_links_viewer/single_use_error.html.erb +3 -7
  223. data/app/views/hyrax/static/mendeley.html.erb +2 -4
  224. data/app/views/hyrax/static/zotero.html.erb +2 -4
  225. data/app/views/hyrax/transfers/_received.html.erb +10 -10
  226. data/app/views/hyrax/transfers/_sent.html.erb +6 -6
  227. data/app/views/hyrax/uploads/_js_templates.html.erb +7 -7
  228. data/app/views/hyrax/uploads/_js_templates_branding.html.erb +8 -8
  229. data/app/views/hyrax/users/_activity_log.html.erb +25 -22
  230. data/app/views/hyrax/users/_left_sidebar.html.erb +1 -1
  231. data/app/views/hyrax/users/_proxies.html.erb +1 -1
  232. data/app/views/hyrax/users/_search_form.html.erb +3 -3
  233. data/app/views/hyrax/users/_vitals.html.erb +1 -1
  234. data/app/views/hyrax/users/index.html.erb +6 -6
  235. data/app/views/records/edit_fields/_abstract.html.erb +5 -0
  236. data/app/views/records/edit_fields/_access_right.html.erb +5 -0
  237. data/app/views/records/edit_fields/_alt_title.html.erb +3 -0
  238. data/app/views/records/edit_fields/_title.html.erb +1 -0
  239. data/app/views/records/show_fields/_based_near.html.erb +1 -1
  240. data/app/views/records/show_fields/_creator.html.erb +1 -1
  241. data/app/views/records/show_fields/_keyword.html.erb +1 -1
  242. data/app/views/records/show_fields/_language.html.erb +1 -1
  243. data/app/views/records/show_fields/_publisher.html.erb +1 -1
  244. data/app/views/records/show_fields/_resource_type.html.erb +1 -1
  245. data/app/views/records/show_fields/_subject.html.erb +1 -1
  246. data/config/initializers/indexing_adapter_initializer.rb +16 -0
  247. data/config/initializers/samvera-nesting_indexer_initializer.rb +3 -3
  248. data/config/locales/hyrax.de.yml +303 -24
  249. data/config/locales/hyrax.en.yml +279 -0
  250. data/config/locales/hyrax.es.yml +284 -5
  251. data/config/locales/hyrax.fr.yml +280 -1
  252. data/config/locales/hyrax.it.yml +279 -0
  253. data/config/locales/hyrax.pt-BR.yml +279 -0
  254. data/config/locales/hyrax.zh.yml +279 -0
  255. data/hyrax.gemspec +10 -11
  256. data/lib/generators/hyrax/config_generator.rb +6 -0
  257. data/lib/generators/hyrax/install_generator.rb +5 -0
  258. data/lib/generators/hyrax/riiif_generator.rb +2 -2
  259. data/lib/generators/hyrax/templates/catalog_controller.rb +71 -71
  260. data/lib/generators/hyrax/templates/config/analytics.yml +5 -5
  261. data/lib/generators/hyrax/templates/config/initializers/hyrax.rb +11 -1
  262. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +3 -3
  263. data/lib/generators/hyrax/templates/config/solr_wrapper_valkyrie_test.yml +7 -0
  264. data/lib/generators/hyrax/templates/config/valkyrie_index.yml +12 -0
  265. data/lib/generators/hyrax/templates/package.json +17 -0
  266. data/lib/generators/hyrax/templates/uv-config.json +3 -0
  267. data/lib/generators/hyrax/templates/uv.html +87 -0
  268. data/lib/generators/hyrax/work/templates/feature_spec.rb.erb +0 -1
  269. data/lib/hyrax.rb +17 -1
  270. data/lib/hyrax/configuration.rb +34 -20
  271. data/lib/hyrax/engine.rb +12 -10
  272. data/lib/hyrax/errors.rb +4 -0
  273. data/lib/hyrax/transactions/container.rb +13 -0
  274. data/lib/hyrax/transactions/create_work.rb +11 -0
  275. data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +32 -0
  276. data/lib/hyrax/transactions/steps/apply_permission_template.rb +2 -1
  277. data/lib/hyrax/transactions/steps/apply_visibility.rb +39 -0
  278. data/lib/hyrax/version.rb +1 -1
  279. data/lib/tasks/migrate.rake +6 -0
  280. data/lib/tasks/universal_viewer.rake +15 -0
  281. data/lib/valkyrie/indexing/solr/indexing_adapter.rb +102 -0
  282. data/lib/valkyrie/indexing_adapter.rb +29 -0
  283. data/lib/wings.rb +13 -4
  284. data/lib/wings/active_fedora_converter.rb +129 -15
  285. data/lib/wings/converter_value_mapper.rb +111 -0
  286. data/lib/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior.rb +27 -0
  287. data/lib/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior.rb +27 -0
  288. data/lib/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior.rb +172 -0
  289. data/lib/wings/hydra/works/models/concerns/collection_valkyrie_behavior.rb +30 -0
  290. data/lib/wings/hydra/works/models/concerns/file_set_valkyrie_behavior.rb +30 -0
  291. data/lib/wings/hydra/works/models/concerns/work_valkyrie_behavior.rb +59 -0
  292. data/lib/wings/hydra/works/services/add_file_metadata_to_file_set.rb +113 -0
  293. data/lib/wings/model_transformer.rb +172 -47
  294. data/lib/wings/models/concerns/collection_behavior.rb +38 -0
  295. data/lib/wings/models/multi_checksum.rb +18 -0
  296. data/lib/wings/services/file_metadata_builder.rb +81 -0
  297. data/lib/wings/services/id_converter_service.rb +14 -0
  298. data/lib/wings/{value_mapper.rb → transformer_value_mapper.rb} +24 -5
  299. data/lib/wings/valkyrie/persister.rb +47 -24
  300. data/lib/wings/valkyrie/query_service.rb +141 -6
  301. data/lib/wings/valkyrie/storage/active_fedora.rb +27 -0
  302. data/spec/abilities/proxies_and_transfer_abilities_spec.rb +50 -10
  303. data/spec/actors/hyrax/actors/active_fedora_to_valkyrie_spec.rb +70 -0
  304. data/spec/actors/hyrax/actors/attach_members_actor_spec.rb +55 -10
  305. data/spec/actors/hyrax/actors/create_with_remote_files_actor_spec.rb +14 -0
  306. data/spec/actors/hyrax/actors/create_with_remote_files_ordered_members_actor_spec.rb +22 -30
  307. data/spec/actors/hyrax/actors/file_actor_spec.rb +200 -84
  308. data/spec/actors/hyrax/actors/file_set_actor_spec.rb +1 -1
  309. data/spec/actors/hyrax/actors/generic_work_actor_spec.rb +2 -6
  310. data/spec/actors/hyrax/actors/interpret_visibility_actor_spec.rb +1 -1
  311. data/spec/actors/hyrax/actors/ordered_members_actor_spec.rb +1 -1
  312. data/spec/actors/hyrax/actors/valkyrie_to_active_fedora_spec.rb +70 -0
  313. data/spec/controllers/catalog_controller_spec.rb +2 -2
  314. data/spec/controllers/hyrax/api/items_controller_spec.rb +9 -15
  315. data/spec/controllers/hyrax/collections_controller_spec.rb +6 -2
  316. data/spec/controllers/hyrax/dashboard/collections_controller_spec.rb +53 -4
  317. data/spec/controllers/hyrax/depositors_controller_spec.rb +3 -3
  318. data/spec/controllers/hyrax/downloads_controller_spec.rb +11 -2
  319. data/spec/controllers/hyrax/file_sets_controller_spec.rb +40 -2
  320. data/spec/controllers/hyrax/generic_works_controller_spec.rb +13 -3
  321. data/spec/controllers/hyrax/homepage_controller_spec.rb +3 -3
  322. data/spec/controllers/hyrax/single_use_links_viewer_controller_spec.rb +1 -2
  323. data/spec/factories/admin_sets_lw.rb +1 -1
  324. data/spec/factories/collections.rb +1 -1
  325. data/spec/factories/hyrax_embargo.rb +16 -0
  326. data/spec/factories/hyrax_lease.rb +16 -0
  327. data/spec/factories/hyrax_resource.rb +16 -0
  328. data/spec/factory_tests/adminsets_factory_spec.rb +4 -4
  329. data/spec/factory_tests/collections_factory_spec.rb +3 -3
  330. data/spec/features/actor_stack_spec.rb +64 -0
  331. data/spec/features/batch_create_spec.rb +1 -2
  332. data/spec/features/collection_multi_membership_spec.rb +1 -0
  333. data/spec/features/collection_spec.rb +2 -2
  334. data/spec/features/collection_type_spec.rb +1 -0
  335. data/spec/features/create_work_spec.rb +15 -6
  336. data/spec/features/dashboard/collection_spec.rb +103 -14
  337. data/spec/features/edit_content_block_admin_spec.rb +3 -3
  338. data/spec/features/edit_pages_admin.spec.rb +62 -0
  339. data/spec/features/proxy_spec.rb +21 -0
  340. data/spec/features/static_pages_spec.rb +1 -1
  341. data/spec/features/work_show_spec.rb +7 -3
  342. data/spec/fixtures/sample-file.pdf +0 -0
  343. data/spec/fixtures/updated-file.txt +1 -0
  344. data/spec/forms/hyrax/forms/batch_upload_form_spec.rb +5 -2
  345. data/spec/forms/hyrax/forms/collection_form_spec.rb +5 -2
  346. data/spec/forms/hyrax/forms/work_form_spec.rb +18 -5
  347. data/spec/forms/hyrax/generic_work_form_spec.rb +4 -4
  348. data/spec/helpers/hyrax/collections_helper_spec.rb +8 -8
  349. data/spec/helpers/hyrax/dashboard_helper_behavior_spec.rb +7 -8
  350. data/spec/helpers/hyrax/iiif_helper_spec.rb +16 -0
  351. data/spec/helpers/hyrax_helper_spec.rb +4 -4
  352. data/spec/hyrax/transactions/create_work_spec.rb +68 -0
  353. data/spec/hyrax/transactions/steps/apply_collection_permission_template_spec.rb +59 -0
  354. data/spec/hyrax/transactions/steps/apply_visibility_spec.rb +82 -0
  355. data/spec/indexers/hyrax/admin_set_indexer_spec.rb +15 -0
  356. data/spec/indexers/hyrax/file_set_indexer_spec.rb +26 -1
  357. data/spec/indexers/hyrax/valkyrie_indexers/base_indexer_spec.rb +16 -0
  358. data/spec/jobs/import_url_job_spec.rb +49 -2
  359. data/spec/jobs/ingest_local_file_job_spec.rb +25 -1
  360. data/spec/jobs/visibility_copy_job_spec.rb +46 -0
  361. data/spec/lib/hyrax/configuration_spec.rb +17 -11
  362. data/spec/lib/hyrax/redis_event_store_spec.rb +1 -1
  363. data/spec/matcher_tests/match_valkyrie_ids_with_af_ids_spec.rb +40 -0
  364. data/spec/models/file_set_spec.rb +4 -3
  365. data/spec/models/hyrax/embargo_spec.rb +27 -0
  366. data/spec/models/hyrax/file_metadata_spec.rb +110 -0
  367. data/spec/models/hyrax/lease_spec.rb +25 -0
  368. data/spec/models/hyrax/permission_template_spec.rb +2 -2
  369. data/spec/models/hyrax/resource_spec.rb +60 -0
  370. data/spec/models/hyrax/virus_scanner_spec.rb +50 -0
  371. data/spec/models/job_io_wrapper_spec.rb +63 -0
  372. data/spec/models/solr_hit_spec.rb +9 -0
  373. data/spec/models/user_spec.rb +1 -1
  374. data/spec/presenters/hyrax/file_set_presenter_spec.rb +11 -7
  375. data/spec/presenters/hyrax/presenter_factory_spec.rb +2 -2
  376. data/spec/presenters/hyrax/work_show_presenter_spec.rb +1 -1
  377. data/spec/requests/riiif_spec.rb +2 -2
  378. data/spec/search_builders/hyrax/my/find_works_search_builder_spec.rb +3 -3
  379. data/spec/services/hyrax/adapters/nesting_index_adapter_spec.rb +5 -6
  380. data/spec/services/hyrax/admin_set_service_spec.rb +2 -2
  381. data/spec/services/hyrax/custom_queries/navigators/child_collections_navigator_spec.rb +41 -0
  382. data/spec/services/hyrax/custom_queries/navigators/child_filesets_navigator_spec.rb +41 -0
  383. data/spec/services/hyrax/custom_queries/navigators/child_works_navigator_spec.rb +79 -0
  384. data/spec/services/hyrax/custom_queries/wings.rb +52 -0
  385. data/spec/services/hyrax/embargo_manager_spec.rb +123 -0
  386. data/spec/services/hyrax/embargo_service_spec.rb +2 -2
  387. data/spec/services/hyrax/file_set_visibility_propagator_spec.rb +59 -0
  388. data/spec/services/hyrax/resource_visibility_propagator_spec.rb +71 -0
  389. data/spec/services/hyrax/solr_query_builder_service_spec.rb +17 -0
  390. data/spec/services/hyrax/solr_service_spec.rb +218 -0
  391. data/spec/services/hyrax/thumbnail_path_service_spec.rb +6 -0
  392. data/spec/services/hyrax/versioning_service_spec.rb +35 -15
  393. data/spec/services/hyrax/visibility_intention_applicator_spec.rb +69 -0
  394. data/spec/services/hyrax/visibility_reader_spec.rb +38 -0
  395. data/spec/services/hyrax/visibility_writer_spec.rb +47 -0
  396. data/spec/services/hyrax/workflow/status_list_service_spec.rb +1 -13
  397. data/spec/services/hyrax/works/migration_service_spec.rb +29 -0
  398. data/spec/spec_helper.rb +24 -23
  399. data/spec/support/clean_solr.rb +7 -0
  400. data/spec/support/create_for_repository.rb +25 -0
  401. data/spec/support/factory_helpers.rb +3 -1
  402. data/spec/support/fakes/fake_actor.rb +21 -0
  403. data/spec/support/matchers/embargo.rb +9 -0
  404. data/spec/support/matchers/lease.rb +9 -0
  405. data/spec/support/matchers/match_valkyrie_ids_with_af_ids.rb +11 -0
  406. data/spec/support/matchers/permission.rb +22 -0
  407. data/spec/support/valkyrie_indexing.rb +1 -0
  408. data/spec/test_app_templates/Gemfile.extra +0 -2
  409. data/spec/test_app_templates/lib/generators/test_app_generator.rb +5 -6
  410. data/spec/valkyrie/indexing/solr/indexing_adapter_spec.rb +41 -0
  411. data/spec/valkyrie/indexing_adapter_spec.rb +25 -0
  412. data/spec/views/hyrax/base/_attributes.html.erb_spec.rb +1 -1
  413. data/spec/views/hyrax/base/_social_media.html.erb_spec.rb +0 -1
  414. data/spec/views/hyrax/base/show.html.erb_spec.rb +2 -2
  415. data/spec/views/hyrax/collections/_sort_and_per_page.html.erb_spec.rb +1 -1
  416. data/spec/views/hyrax/dashboard/_sidebar.html.erb_spec.rb +39 -0
  417. data/spec/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb_spec.rb +1 -1
  418. data/spec/views/hyrax/file_sets/_versioning.html.erb_spec.rb +1 -0
  419. data/spec/views/hyrax/my/collections/_list_collections.html.erb_spec.rb +2 -2
  420. data/spec/views/records/edit_fields/_alt_title.html.erb_spec.rb +26 -0
  421. data/spec/views/records/edit_fields/_title.html.erb_spec.rb +24 -0
  422. data/spec/wings/active_fedora_converter_spec.rb +136 -1
  423. data/spec/wings/converter_value_mapper_spec.rb +23 -0
  424. data/spec/wings/hydra/pcdm/models/concerns/collection_valkyrie_behavior_spec.rb +41 -0
  425. data/spec/wings/hydra/pcdm/models/concerns/object_valkyrie_behavior_spec.rb +19 -0
  426. data/spec/wings/hydra/pcdm/models/concerns/pcdm_valkyrie_behavior_spec.rb +442 -0
  427. data/spec/wings/hydra/works/models/concerns/collection_valkyrie_behavior_spec.rb +22 -0
  428. data/spec/wings/hydra/works/models/concerns/file_set_valkyrie_behavior_spec.rb +90 -0
  429. data/spec/wings/hydra/works/models/concerns/work_valkyrie_behavior_spec.rb +218 -0
  430. data/spec/wings/model_transformer_spec.rb +167 -112
  431. data/spec/wings/models/concerns/collection_behavior_spec.rb +120 -0
  432. data/spec/wings/services/file_metadata_builder_spec.rb +39 -0
  433. data/spec/wings/services/id_converter_service_spec.rb +24 -0
  434. data/spec/wings/{value_mapper_spec.rb → transformer_value_mapper_spec.rb} +2 -2
  435. data/spec/wings/valkyrie/persister_spec.rb +544 -53
  436. data/spec/wings/valkyrie/query_service_spec.rb +381 -4
  437. data/spec/wings_helper.rb +4 -0
  438. data/template.rb +1 -1
  439. metadata +205 -49
  440. data/.travis.yml +0 -36
  441. data/lib/wings/resource_factory.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12ca8250128a0ea9333aacfe4a4b71832c0b1df954c5cd8299d2e8c9a897e097
4
- data.tar.gz: ab169cfb14af7a7139e84070f1dce85532241b05654e20de78538799fbe6827a
3
+ metadata.gz: b731a39b621101c817e7f42e64698267274fd77331d2c121b9ac9a08260c50f1
4
+ data.tar.gz: d10cebe341c9acc25e99f1c41c4114aab2e2538270683ce926a8f55112cfaeda
5
5
  SHA512:
6
- metadata.gz: 3568d5aa17c020e9baafd2e450fe2aeb7748c7a0e32a9e921d774607e9a9dbd9a042edd04c19e7b023578c9dc50f4f43c2f3379d9eb73d61552c610adfb2eaee
7
- data.tar.gz: 00d6e736c3741544c4b627b7746ebc8e50cadfaadea9bc362c3b159c2ba5f57cc23fe2756423a29b48bf7ad7533c25922865a091940882734f5253b266674ed7
6
+ metadata.gz: 77dd20a9f9ded4e4d8dd1ae72b97f757a24a4a30b9a0f8ca5b2439f9d2d97e8c56685bad7aed892d48785cce0a72b9291d979f7009187a08b6578500ff357876
7
+ data.tar.gz: 48addfcb3e6657c6835c9f5ac215f8fd7164573334159e564a6689cb2adadd002ecb0418d391ca990df0b41d6588be3b1def3cf2163f54477c28d5ef88ac0be1
data/.circleci/config.yml CHANGED
@@ -1,213 +1,150 @@
1
- # Ruby CircleCI 2.0 configuration file
2
- #
3
- # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
- #
5
1
  version: 2.1
6
- executors:
7
- ruby:
8
- docker:
9
- - image: circleci/ruby:2.5.3
10
- working_directory: ~/hyrax
11
- environment:
12
- BUNDLE_PATH: vendor/bundle
13
- BUNDLE_JOBS: 4
14
- BUNDLE_RETRY: 3
15
-
2
+ orbs:
3
+ samvera: samvera/circleci-orb@0
16
4
  jobs:
17
5
  bundle:
18
- executor: ruby
6
+ parameters:
7
+ ruby_version:
8
+ type: string
9
+ default: 2.5.5
10
+ bundler_version:
11
+ type: string
12
+ default: 1.17.3
13
+ rails_version:
14
+ type: string
15
+ default: '5.2.2'
16
+ executor:
17
+ name: 'samvera/ruby'
18
+ ruby_version: << parameters.ruby_version >>
19
+ resource_class: medium+
20
+ environment:
21
+ RAILS_VERSION: << parameters.rails_version >>
22
+ NOKOGIRI_USE_SYSTEM_LIBRARIES: true
19
23
  steps:
20
- - restore_cache:
21
- keys:
22
- - v1-source-{{ .Branch }}-{{ .Revision }}
23
- - v1-source-{{ .Branch }}-
24
- - v1-source-
25
-
26
- - checkout
27
-
28
- - save_cache:
29
- key: v1-source-{{ .Branch }}-{{ .Revision }}
30
- paths:
31
- - ".git"
32
-
33
- - restore_cache:
34
- keys:
35
- - v1-bundle-{{ checksum "Gemfile" }}--{{ checksum "hyrax.gemspec" }}
36
- - v1-bundle
37
-
38
- - run:
39
- name: Install dependencies
40
- command: bundle check || bundle install
41
-
42
- - save_cache:
43
- key: v1-bundle-{{ checksum "Gemfile.lock" }}--{{ checksum "hyrax.gemspec" }}
44
- paths:
45
- - ~/hyrax/vendor/bundle
46
-
47
- - persist_to_workspace:
48
- root: ~/
49
- paths:
50
- - hyrax/*
51
- - hyrax/**/*
24
+ - samvera/cached_checkout
25
+ - samvera/bundle_for_gem:
26
+ ruby_version: << parameters.ruby_version >>
27
+ bundler_version: << parameters.bundler_version >>
28
+ project: hyrax
29
+ - persist_to_workspace:
30
+ root: ~/
31
+ paths:
32
+ - project/*
33
+ - project/**/*
52
34
 
53
35
  lint:
54
- executor: ruby
36
+ parameters:
37
+ ruby_version:
38
+ type: string
39
+ default: 2.5.5
40
+ executor:
41
+ name: 'samvera/ruby'
42
+ ruby_version: << parameters.ruby_version >>
43
+ resource_class: medium+
55
44
  steps:
56
- - attach_workspace:
57
- at: ~/
58
-
59
- - run:
60
- name: Call Rubocop
61
- command: bundle exec rubocop
45
+ - attach_workspace:
46
+ at: ~/
47
+ - samvera/rubocop
62
48
 
63
49
  build:
64
- docker:
65
- - image: circleci/ruby:2.5.3-node
66
-
67
- working_directory: ~/hyrax
68
-
50
+ parameters:
51
+ ruby_version:
52
+ type: string
53
+ default: 2.5.5
54
+ bundler_version:
55
+ type: string
56
+ default: 1.17.3
57
+ rails_version:
58
+ type: string
59
+ default: '5.2.2'
60
+ executor:
61
+ name: 'samvera/ruby'
62
+ ruby_version: << parameters.ruby_version >>
63
+ resource_class: medium+
69
64
  environment:
70
- BUNDLE_PATH: vendor/bundle
71
- BUNDLE_JOBS: 4
72
- BUNDLE_RETRY: 3
73
- RAILS_ENV: test
74
- RACK_ENV: test
75
- FCREPO_TEST_PORT: 8080/fcrepo
65
+ RAILS_VERSION: << parameters.rails_version >>
76
66
  NOKOGIRI_USE_SYSTEM_LIBRARIES: true
77
67
  ENGINE_CART_RAILS_OPTIONS: --skip-git --skip-bundle --skip-listen --skip-spring --skip-yarn --skip-keeps --skip-action-cable --skip-coffee --skip-puma --skip-test
78
- SPEC_OPTS: --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec.xml --format progress
79
- COVERALLS_PARALLEL: true
80
-
81
68
  steps:
82
- - attach_workspace:
83
- at: ~/
84
- # Update to the latest release of Chrome
85
- - run: wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
86
- - run: sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
87
- - run: sudo apt-get update
88
- - run: sudo apt-get -y install google-chrome-stable
89
- - restore_cache:
90
- keys:
91
- - v1-test-app-{{ checksum "template.rb" }}--{{ checksum "Gemfile.lock" }}
92
-
93
- - run:
94
- name: Check dependencies
95
- command: bundle check || bundle install
96
-
97
- - run:
98
- name: Generate test app
99
- command: (git diff --name-only master | grep -qG 'generators\/hyrax') || bundle exec rake engine_cart:generate
100
-
101
- - run:
102
- name: Ensure test app dependencies are installed
103
- command: |
104
- cd .internal_test_app
105
- bundle check || bundle install
106
-
107
- - save_cache:
108
- key: v1-test-app-{{ checksum "template.rb" }}--{{ checksum "Gemfile.lock" }}
109
- paths:
110
- - ".internal_test_app"
111
-
112
- - persist_to_workspace:
113
- root: ~/
114
- paths:
115
- - hyrax/*
116
- - hyrax/**/*
69
+ - attach_workspace:
70
+ at: ~/
71
+ - samvera/engine_cart_generate:
72
+ cache_key: v1-internal-test-app-{{ checksum "hyrax.gemspec" }}-{{ checksum ".regen" }}-<< parameters.rails_version >>-<< parameters.ruby_version >>
73
+ - samvera/bundle_for_gem:
74
+ ruby_version: << parameters.ruby_version >>
75
+ bundler_version: << parameters.bundler_version >>
76
+ project: hyrax
77
+ - persist_to_workspace:
78
+ root: ~/
79
+ paths:
80
+ - project/*
81
+ - project/**/*
117
82
 
118
83
  test:
119
- docker:
120
- - image: circleci/ruby:2.6.0-node-browsers-legacy
121
- - image: circleci/redis:4
122
- - image: ualbertalib/docker-fcrepo4:4.7
123
- environment:
124
- CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
125
- - image: solr:7-alpine
126
- command: bin/solr -cloud -noprompt -f -p 8985
127
-
128
- working_directory: ~/hyrax
129
- parallelism: 2
130
-
131
- environment: &spec_env
132
- BUNDLE_PATH: vendor/bundle
133
- BUNDLE_JOBS: 4
134
- BUNDLE_RETRY: 3
135
- RAILS_ENV: test
136
- RACK_ENV: test
137
- FCREPO_TEST_PORT: 8080/fcrepo
138
- NOKOGIRI_USE_SYSTEM_LIBRARIES: true
139
- ENGINE_CART_RAILS_OPTIONS: --skip-git --skip-bundle --skip-listen --skip-spring --skip-yarn --skip-keeps --skip-action-cable --skip-coffee --skip-puma --skip-test
140
- SPEC_OPTS: --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec.xml --format progress
84
+ parameters:
85
+ ruby_version:
86
+ type: string
87
+ default: 2.5.5
88
+ bundler_version:
89
+ type: string
90
+ default: 1.17.3
91
+ executor:
92
+ name: 'samvera/ruby_fcrepo_solr_redis'
93
+ ruby_version: << parameters.ruby_version >>
94
+ resource_class: medium+
95
+ parallelism: 10
96
+ environment:
141
97
  COVERALLS_PARALLEL: true
142
-
143
- steps: &run_specs
144
- - attach_workspace:
145
- at: ~/
146
-
147
- - run:
148
- name: Ensure top-level Gemfile.lock is valid
149
- command: bundle check || bundle install
150
-
151
- - run:
152
- name: Uninstall chromedriver Gems
153
- command: gem uninstall -ax chromedriver-helper
154
-
155
- - run:
156
- name: Install chromedriver Gems
157
- command: gem install chromedriver-helper
158
-
159
- - run:
160
- name: Load config into solr
161
- command: |
162
- cd .internal_test_app/solr/config
163
- zip -1 -r solr_hyrax_config.zip ./*
164
- curl -H "Content-type:application/octet-stream" --data-binary @solr_hyrax_config.zip "http://localhost:8985/solr/admin/configs?action=UPLOAD&name=hyrax"
165
- curl -H 'Content-type: application/json' http://localhost:8985/api/collections/ -d '{create: {name: hydra-test, config: hyrax, numShards: 1}}'
166
-
167
- - run:
168
- name: Run rspec in parallel
169
- command: |
170
- mkdir /tmp/test-results
171
- bundle exec rspec $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
172
-
173
- # collect reports
174
- - store_test_results:
175
- path: /tmp/test-results
176
- - store_artifacts:
177
- path: /tmp/test-results
178
- destination: test-results
179
-
180
- test-ruby-2-5:
181
- docker:
182
- - image: circleci/ruby:2.5.3-node-browsers-legacy
183
- - image: circleci/redis:4
184
- - image: ualbertalib/docker-fcrepo4:4.7
185
- environment:
186
- CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
187
- - image: solr:7-alpine
188
- command: bin/solr -cloud -noprompt -f -p 8985
189
-
190
- working_directory: ~/hyrax
191
- parallelism: 2
192
- environment: *spec_env
193
- steps: *run_specs
98
+ VALKYRIE_SOLR_PORT: 8985
99
+ steps:
100
+ - attach_workspace:
101
+ at: ~/
102
+ - samvera/install_solr_core:
103
+ solr_config_path: .internal_test_app/solr/conf
104
+ - samvera/install_solr_core:
105
+ solr_config_path: .internal_test_app/solr/conf
106
+ core_name: hyrax-valkyrie-test
107
+ # Rerun bundler in case this is a different ruby version than bundle and build steps
108
+ - samvera/bundle_for_gem:
109
+ ruby_version: << parameters.ruby_version >>
110
+ bundler_version: << parameters.bundler_version >>
111
+ project: hyrax
112
+ - samvera/parallel_rspec
194
113
 
195
114
  workflows:
196
115
  version: 2
197
- ci:
116
+ ruby2-5-5:
198
117
  jobs:
199
- - bundle
118
+ - bundle:
119
+ ruby_version: "2.5.5"
120
+ rails_version: "5.2.3"
200
121
  - lint:
122
+ ruby_version: "2.5.5"
201
123
  requires:
202
124
  - bundle
203
125
  - build:
126
+ ruby_version: "2.5.5"
127
+ rails_version: "5.2.3"
204
128
  requires:
205
129
  - bundle
206
130
  - test:
131
+ name: "ruby2-5-5"
132
+ ruby_version: "2.5.5"
207
133
  requires:
208
134
  - build
209
135
  - lint
210
- - test-ruby-2-5:
136
+ ruby2-6-2:
137
+ jobs:
138
+ - bundle:
139
+ ruby_version: "2.6.2"
140
+ rails_version: "5.2.3"
141
+ - build:
142
+ ruby_version: "2.6.2"
143
+ rails_version: "5.2.3"
144
+ requires:
145
+ - bundle
146
+ - test:
147
+ name: "ruby2-6-2"
148
+ ruby_version: "2.6.2"
211
149
  requires:
212
150
  - build
213
- - lint
data/.gitignore CHANGED
@@ -25,6 +25,9 @@ tmtags
25
25
  ## VIM
26
26
  *.sw[pon]
27
27
 
28
+ ## VSCode
29
+ .vscode
30
+
28
31
  ## OSX
29
32
  .DS_Store
30
33
  nohup.out
data/.regen ADDED
@@ -0,0 +1 @@
1
+ 1
data/.rubocop_fixme.yml CHANGED
@@ -129,7 +129,7 @@ RSpec/ExampleLength:
129
129
  - 'spec/services/hyrax/workflow/state_machine_generator_spec.rb'
130
130
  - 'spec/services/hyrax/workflow/workflow_importer_spec.rb'
131
131
  - 'spec/views/**/*'
132
-
132
+ - 'spec/wings/valkyrie/persister_spec.rb'
133
133
  RSpec/VerifiedDoubles:
134
134
  Enabled: false
135
135
 
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  ![Logo](https://raw.githubusercontent.com/samvera/hyrax/gh-pages/assets/images/hyrax_logo_horizontal_white_background.png)
2
2
 
3
3
  Code: [![Version](https://badge.fury.io/rb/hyrax.png)](http://badge.fury.io/rb/hyrax)
4
- [![Build Status](https://travis-ci.org/samvera/hyrax.png?branch=master)](https://travis-ci.org/samvera/hyrax)
5
4
  [![CircleCI](https://circleci.com/gh/samvera/hyrax.svg?style=svg)](https://circleci.com/gh/samvera/hyrax)
6
5
  [![Coverage Status](https://coveralls.io/repos/github/samvera/hyrax/badge.svg?branch=master)](https://coveralls.io/github/samvera/hyrax?branch=master)
7
6
  [![Code Climate](https://codeclimate.com/github/samvera/hyrax/badges/gpa.svg)](https://codeclimate.com/github/samvera/hyrax)
@@ -51,11 +50,12 @@ Jump in: [![Slack Status](http://slack.samvera.org/badge.svg)](http://slack.samv
51
50
 
52
51
  Hyrax is a front-end based on the robust [Samvera](http://samvera.org) framework, providing a user interface for common repository features. Hyrax offers the ability to create repository object types on demand, to deposit content via multiple configurable workflows, and to describe content with flexible metadata. Numerous optional features may be turned on in the administrative dashboard or added through plugins. It is implemented as a Rails engine, so it may be the base of, or added to, a Rails application. Hyrax is the consolidation of Sufia and the CurationConcerns gems and behaves in much the same way.
53
52
 
54
- ## Feature list
53
+ # Feature Documentation
55
54
 
56
- Hyrax has many features. [Read more about what they are and how to turn them on](https://github.com/samvera/hyrax/wiki/Feature-matrix). See the [Hyrax Management Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Management-Guide) to learn more.
57
-
58
- For non-technical documentation about Hyrax, see the Hyrax [documentation site](http://hyr.ax/).
55
+ * List of features: [Feature Matrix](https://github.com/samvera/hyrax/wiki/Feature-matrix)
56
+ * Configuration and enabling features: [Hyrax Management Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Management-Guide)
57
+ * Walk-through on using features: [Hyrax Feature Guides](https://samvera.github.io/intro-to.html)
58
+ * For general information about Hyrax: [Hyrax Site](https://hyrax.samvera.org/)
59
59
 
60
60
  # Help
61
61
 
@@ -64,14 +64,10 @@ The Samvera community is here to help. Please see our [support guide](./.github/
64
64
  # Getting started
65
65
 
66
66
  This document contains instructions specific to setting up an app with __Hyrax
67
- v3.0.0-beta2__. If you are looking for instructions on installing a different
67
+ v3.0.0-beta3__. If you are looking for instructions on installing a different
68
68
  version, be sure to select the appropriate branch or tag from the drop-down
69
69
  menu above.
70
70
 
71
- ## Quickstart
72
-
73
- If you're looking to spin up a vanilla Hyrax application very quickly for demonstration purposes, you may be interested in [the samvera-vagrant project](https://github.com/samvera-labs/samvera-vagrant) which may be used to "kick the tires" of Hyrax and [Hyku](https://github.com/samvera-labs/hyku). It requires VirtualBox and Vagrant.
74
-
75
71
  ## Prerequisites
76
72
 
77
73
  Prerequisites are required for both creating a Hyrax\-based app and contributing new features to Hyrax. After installing the prerequisites...
@@ -119,7 +115,7 @@ Hyrax includes support for transcoding audio and video files with ffmpeg > 1.0 i
119
115
 
120
116
  On OSX, you can use Homebrew to install ffmpeg:
121
117
 
122
- `brew install ffmpeg --with-fdk-aac --with-libvpx --with-libvorbis`
118
+ `brew install libvpx ffmpeg`
123
119
 
124
120
  Otherwise, to compile ffmpeg yourself, see the [ffmpeg compilation guide](https://trac.ffmpeg.org/wiki/CompilationGuide).
125
121
 
@@ -143,11 +139,11 @@ Starting up Redis will depend on your operating system, and may in fact already
143
139
 
144
140
  ## Rails
145
141
 
146
- Hyrax requires Rails 5. We recommend the latest Rails 5.1 release.
142
+ Hyrax requires Rails 5. We recommend the latest Rails 5.2 release.
147
143
 
148
144
  ```
149
145
  # If you don't already have Rails at your disposal...
150
- gem install rails -v 5.1.6
146
+ gem install rails -v 5.2.3
151
147
  ```
152
148
 
153
149
  ### JavaScript runtime
@@ -163,7 +159,7 @@ NOTE: The steps need to be done in order to create a new Hyrax based app.
163
159
  Generate a new Rails application using the template.
164
160
 
165
161
  ```
166
- rails _5.1.6_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.0-beta2/template.rb
162
+ rails _5.2.3_ new my_app -m https://raw.githubusercontent.com/samvera/hyrax/v3.0.0.pre.beta3/template.rb
167
163
  ```
168
164
 
169
165
  Generating a new Rails application using Hyrax's template above takes cares of a number of steps for you, including:
@@ -326,7 +322,7 @@ If you'd like to help the development effort and you're not sure where to get st
326
322
 
327
323
  # Development
328
324
 
329
- The [Hyrax Development Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide) is for people who want to modify Hyrax itself, not an application that uses Hyrax.
325
+ The [Hyrax Development Guide](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide) is for people who want to modify Hyrax itself, not an application that uses Hyrax. See especially the [Quick Start](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide#quick-start-for-hyrax-development) guide and instructions for running the [Hyrax test suite](https://github.com/samvera/hyrax/wiki/Hyrax-Development-Guide#run-the-test-suite).
330
326
 
331
327
  ## Reporting Security Issues
332
328
 
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Hyrax
4
+ module Actors
5
+ ##
6
+ # Casts `env.curation_concern` from a `ActiveFedora::Base` model to a
7
+ # `Valkyrie::Resource` resource.
8
+ #
9
+ # If the curation concern is not an `ActiveFedora::Base` this is a
10
+ # no-op.
11
+ #
12
+ # This can be used in conjunction with `ValkyrieToActiveFedora` to create a
13
+ # vertical boundary in the actor stack between actors that deal with
14
+ # `ActiveFedora` models and those that work on `Valkyrie::Resource` objects.
15
+ #
16
+ # @example defining a stack using both ActiveFedora and Valkyrie actors
17
+ # stack = ActionDispatch::MiddlewareStack.new.tap do |middleware|
18
+ # middleware.use ActorThatUsesActiveFedora
19
+ # middleware.use AnotherActorThatUsesActiveFedora
20
+ # middleware.use ValkyrieToActiveFedora # casts on the way up
21
+ # middleware.use ActiveFedoraToValkyrie # casts on the way down
22
+ # middleware.use ActorThatUsesValkyrie
23
+ # middleware.use AnotherActorThatUsesValkyrie
24
+ # end
25
+ #
26
+ # actor = stack.build(Hyrax::Actors::Terminator.new)
27
+ #
28
+ # @see ValkyrieToActiveFedora
29
+ class ActiveFedoraToValkyrie < AbstractActor
30
+ # @param [Hyrax::Actors::Environment] env
31
+ # @return [Boolean] true
32
+ def create(env)
33
+ cast(env) && next_actor.create(env)
34
+ end
35
+
36
+ # @param [Hyrax::Actors::Environment] env
37
+ # @return [Boolean] true
38
+ def update(env)
39
+ cast(env) && next_actor.update(env)
40
+ end
41
+
42
+ # @param [Hyrax::Actors::Environment] env
43
+ # @return [Boolean] true
44
+ def destroy(env)
45
+ cast(env) && next_actor.destroy(env)
46
+ end
47
+
48
+ private
49
+
50
+ def cast(env)
51
+ return true unless env.curation_concern.is_a? ActiveFedora::Base
52
+
53
+ env.curation_concern = env.curation_concern.valkyrie_resource
54
+
55
+ true
56
+ end
57
+ end
58
+ end
59
+ end