newspaper_works 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. checksums.yaml +7 -0
  2. data/.fcrepo_wrapper +4 -0
  3. data/.gitignore +43 -0
  4. data/.rubocop.yml +143 -0
  5. data/.solr_wrapper +8 -0
  6. data/.travis.yml +50 -0
  7. data/Gemfile +47 -0
  8. data/LICENSE +203 -0
  9. data/README.md +159 -0
  10. data/Rakefile +38 -0
  11. data/app/actors/hyrax/actors/newspaper_article_actor.rb +8 -0
  12. data/app/actors/hyrax/actors/newspaper_container_actor.rb +8 -0
  13. data/app/actors/hyrax/actors/newspaper_issue_actor.rb +8 -0
  14. data/app/actors/hyrax/actors/newspaper_page_actor.rb +8 -0
  15. data/app/actors/hyrax/actors/newspaper_title_actor.rb +8 -0
  16. data/app/actors/newspaper_works/actors/newspaper_works_upload_actor.rb +88 -0
  17. data/app/assets/config/newspaper_works_manifest.js +2 -0
  18. data/app/assets/images/newspaper_works/.keep +0 -0
  19. data/app/assets/javascripts/newspaper_works/autocomplete_fix.js +33 -0
  20. data/app/assets/javascripts/newspaper_works/ocr_search.js.erb +6 -0
  21. data/app/assets/javascripts/newspaper_works/thumbnail_highlights.js.erb +102 -0
  22. data/app/assets/javascripts/newspaper_works.js +4 -0
  23. data/app/assets/stylesheets/newspaper_works/_issue_search.scss +13 -0
  24. data/app/assets/stylesheets/newspaper_works/_issues_calendar.scss +18 -0
  25. data/app/assets/stylesheets/newspaper_works/_newspaper_works.scss +4 -0
  26. data/app/assets/stylesheets/newspaper_works/_newspapers_search.scss +38 -0
  27. data/app/assets/stylesheets/newspaper_works/_search_results.scss +12 -0
  28. data/app/controllers/hyrax/newspaper_articles_controller.rb +14 -0
  29. data/app/controllers/hyrax/newspaper_containers_controller.rb +14 -0
  30. data/app/controllers/hyrax/newspaper_issues_controller.rb +14 -0
  31. data/app/controllers/hyrax/newspaper_pages_controller.rb +14 -0
  32. data/app/controllers/hyrax/newspaper_titles_controller.rb +13 -0
  33. data/app/controllers/newspaper_works/newspapers_controller.rb +117 -0
  34. data/app/controllers/newspaper_works/newspapers_search_controller.rb +26 -0
  35. data/app/forms/hyrax/newspaper_article_form.rb +11 -0
  36. data/app/forms/hyrax/newspaper_container_form.rb +11 -0
  37. data/app/forms/hyrax/newspaper_issue_form.rb +11 -0
  38. data/app/forms/hyrax/newspaper_page_form.rb +15 -0
  39. data/app/forms/hyrax/newspaper_title_form.rb +12 -0
  40. data/app/forms/newspaper_works/newspaper_core_form_data.rb +17 -0
  41. data/app/helpers/hyrax/newspaper_articles_helper.rb +5 -0
  42. data/app/helpers/hyrax/newspaper_containers_helper.rb +5 -0
  43. data/app/helpers/hyrax/newspaper_issues_helper.rb +5 -0
  44. data/app/helpers/hyrax/newspaper_pages_helper.rb +5 -0
  45. data/app/helpers/newspaper_works/application_helper.rb +5 -0
  46. data/app/helpers/newspaper_works/breadcrumb_helper.rb +92 -0
  47. data/app/helpers/newspaper_works/newspaper_works_helper_behavior.rb +103 -0
  48. data/app/helpers/newspaper_works/newspapers_helper.rb +5 -0
  49. data/app/indexers/concerns/newspaper_works/indexes_full_text.rb +17 -0
  50. data/app/indexers/concerns/newspaper_works/indexes_place_of_publication.rb +67 -0
  51. data/app/indexers/concerns/newspaper_works/indexes_publication_date_range.rb +35 -0
  52. data/app/indexers/concerns/newspaper_works/indexes_relationships.rb +125 -0
  53. data/app/indexers/newspaper_article_indexer.rb +16 -0
  54. data/app/indexers/newspaper_container_indexer.rb +18 -0
  55. data/app/indexers/newspaper_issue_indexer.rb +26 -0
  56. data/app/indexers/newspaper_page_indexer.rb +9 -0
  57. data/app/indexers/newspaper_title_indexer.rb +19 -0
  58. data/app/indexers/newspaper_works/newspaper_core_indexer.rb +21 -0
  59. data/app/jobs/newspaper_works/application_job.rb +4 -0
  60. data/app/jobs/newspaper_works/compose_issue_pdf_job.rb +13 -0
  61. data/app/jobs/newspaper_works/create_issue_pages_job.rb +19 -0
  62. data/app/mailers/newspaper_works/application_mailer.rb +8 -0
  63. data/app/models/concerns/newspaper_works/blacklight_iiif_search/annotation_behavior.rb +82 -0
  64. data/app/models/concerns/newspaper_works/blacklight_iiif_search/search_behavior.rb +27 -0
  65. data/app/models/concerns/newspaper_works/newspaper_core_metadata.rb +67 -0
  66. data/app/models/concerns/newspaper_works/place_of_publication_behavior.rb +15 -0
  67. data/app/models/concerns/newspaper_works/scanned_media_metadata.rb +43 -0
  68. data/app/models/concerns/newspaper_works/solr/document.rb +25 -0
  69. data/app/models/file_set.rb +10 -0
  70. data/app/models/newspaper_article.rb +158 -0
  71. data/app/models/newspaper_container.rb +86 -0
  72. data/app/models/newspaper_issue.rb +115 -0
  73. data/app/models/newspaper_page.rb +70 -0
  74. data/app/models/newspaper_title.rb +111 -0
  75. data/app/models/newspaper_works/application_record.rb +6 -0
  76. data/app/models/newspaper_works/derivative_attachment.rb +8 -0
  77. data/app/models/newspaper_works/ingest_file_relation.rb +14 -0
  78. data/app/presenters/hyrax/newspaper_article_presenter.rb +38 -0
  79. data/app/presenters/hyrax/newspaper_container_presenter.rb +11 -0
  80. data/app/presenters/hyrax/newspaper_issue_presenter.rb +62 -0
  81. data/app/presenters/hyrax/newspaper_page_presenter.rb +72 -0
  82. data/app/presenters/hyrax/newspaper_title_presenter.rb +86 -0
  83. data/app/presenters/newspaper_works/iiif_manifest_presenter_behavior.rb +29 -0
  84. data/app/presenters/newspaper_works/issue_info_presenter.rb +29 -0
  85. data/app/presenters/newspaper_works/newspaper_core_presenter.rb +9 -0
  86. data/app/presenters/newspaper_works/persistent_url_presenter_behavior.rb +16 -0
  87. data/app/presenters/newspaper_works/place_of_publication_presenter_behavior.rb +8 -0
  88. data/app/presenters/newspaper_works/scanned_media_presenter.rb +7 -0
  89. data/app/presenters/newspaper_works/title_info_presenter.rb +13 -0
  90. data/app/search_builders/concerns/newspaper_works/exclude_models.rb +16 -0
  91. data/app/search_builders/concerns/newspaper_works/highlight_search_params.rb +14 -0
  92. data/app/search_builders/newspaper_works/newspapers_search_builder.rb +26 -0
  93. data/app/services/hyrax/article_genre_service.rb +9 -0
  94. data/app/services/newspaper_works/jp2_derivative_service.rb +120 -0
  95. data/app/services/newspaper_works/newspaper_page_derivative_service.rb +91 -0
  96. data/app/services/newspaper_works/pdf_derivative_service.rb +45 -0
  97. data/app/services/newspaper_works/pluggable_derivative_service.rb +114 -0
  98. data/app/services/newspaper_works/text_extraction_derivative_service.rb +56 -0
  99. data/app/services/newspaper_works/text_formats_from_alto_service.rb +77 -0
  100. data/app/services/newspaper_works/tiff_derivative_service.rb +54 -0
  101. data/app/validators/newspaper_works/publication_date_start_end_validator.rb +48 -0
  102. data/app/validators/newspaper_works/publication_date_validator.rb +16 -0
  103. data/app/views/catalog/_index_gallery_newspaper_article_wrapper.html.erb +9 -0
  104. data/app/views/catalog/_index_gallery_newspaper_page_wrapper.html.erb +9 -0
  105. data/app/views/catalog/_index_header_gallery_newspaper_article.html.erb +23 -0
  106. data/app/views/catalog/_index_header_gallery_newspaper_page.html.erb +23 -0
  107. data/app/views/catalog/_index_header_list_newspaper_article.html.erb +7 -0
  108. data/app/views/catalog/_index_header_list_newspaper_page.html.erb +7 -0
  109. data/app/views/catalog/_snippets_more.html.erb +16 -0
  110. data/app/views/catalog/_thumbnail_list_newspaper_article.html.erb +6 -0
  111. data/app/views/catalog/_thumbnail_list_newspaper_page.html.erb +6 -0
  112. data/app/views/hyrax/file_sets/_actions.html.erb +45 -0
  113. data/app/views/hyrax/newspaper_articles/_newspaper_article.html.erb +2 -0
  114. data/app/views/hyrax/newspaper_articles/show.html.erb +1 -0
  115. data/app/views/hyrax/newspaper_containers/_newspaper_container.html.erb +2 -0
  116. data/app/views/hyrax/newspaper_containers/show.html.erb +1 -0
  117. data/app/views/hyrax/newspaper_issues/_newspaper_issue.html.erb +2 -0
  118. data/app/views/hyrax/newspaper_issues/show.html.erb +1 -0
  119. data/app/views/hyrax/newspaper_pages/_newspaper_page.html.erb +2 -0
  120. data/app/views/hyrax/newspaper_pages/show.html.erb +1 -0
  121. data/app/views/hyrax/newspaper_titles/_all_front_pages_form.html.erb +5 -0
  122. data/app/views/hyrax/newspaper_titles/_issue_search_form.html.erb +33 -0
  123. data/app/views/hyrax/newspaper_titles/_issues_calendar.html.erb +63 -0
  124. data/app/views/hyrax/newspaper_titles/_newspaper_title.html.erb +2 -0
  125. data/app/views/hyrax/newspaper_titles/show.html.erb +54 -0
  126. data/app/views/newspaper_works/base/_attribute_rows.html.erb +42 -0
  127. data/app/views/newspaper_works/base/_attributes.html.erb +16 -0
  128. data/app/views/newspaper_works/base/_metadata.html.erb +6 -0
  129. data/app/views/newspaper_works/base/_newspaper_hierarchy.html.erb +14 -0
  130. data/app/views/newspaper_works/base/_persistent_url.html.erb +1 -0
  131. data/app/views/newspaper_works/base/_show.html.erb +45 -0
  132. data/app/views/newspaper_works/newspapers_search/_date_fields.html.erb +29 -0
  133. data/app/views/newspaper_works/newspapers_search/_facet_layout.html.erb +8 -0
  134. data/app/views/newspaper_works/newspapers_search/_facet_limit.html.erb +17 -0
  135. data/app/views/newspaper_works/newspapers_search/_front_pages_input.html.erb +5 -0
  136. data/app/views/newspaper_works/newspapers_search/_keyword_input.html.erb +18 -0
  137. data/app/views/newspaper_works/newspapers_search/_newspapers_facets.html.erb +5 -0
  138. data/app/views/newspaper_works/newspapers_search/_newspapers_search_form.html.erb +13 -0
  139. data/app/views/newspaper_works/newspapers_search/_newspapers_search_help.html.erb +8 -0
  140. data/app/views/newspaper_works/newspapers_search/search.html.erb +13 -0
  141. data/app/views/records/edit_fields/_alternate_title.html.erb +4 -0
  142. data/app/views/records/edit_fields/_genre.html.erb +4 -0
  143. data/app/views/records/edit_fields/_place_of_publication.html.erb +14 -0
  144. data/app/views/records/edit_fields/_subtitle.html.erb +4 -0
  145. data/bin/rails +13 -0
  146. data/config/fcrepo_wrapper_test.yml +5 -0
  147. data/config/initializers/assets.rb +2 -0
  148. data/config/locales/newspaper_article.de.yml +12 -0
  149. data/config/locales/newspaper_article.en.yml +12 -0
  150. data/config/locales/newspaper_article.es.yml +12 -0
  151. data/config/locales/newspaper_article.fr.yml +12 -0
  152. data/config/locales/newspaper_article.it.yml +12 -0
  153. data/config/locales/newspaper_article.pt-BR.yml +12 -0
  154. data/config/locales/newspaper_article.zh.yml +12 -0
  155. data/config/locales/newspaper_container.de.yml +8 -0
  156. data/config/locales/newspaper_container.en.yml +8 -0
  157. data/config/locales/newspaper_container.es.yml +8 -0
  158. data/config/locales/newspaper_container.fr.yml +8 -0
  159. data/config/locales/newspaper_container.it.yml +8 -0
  160. data/config/locales/newspaper_container.pt-BR.yml +8 -0
  161. data/config/locales/newspaper_container.zh.yml +8 -0
  162. data/config/locales/newspaper_issue.de.yml +8 -0
  163. data/config/locales/newspaper_issue.en.yml +8 -0
  164. data/config/locales/newspaper_issue.es.yml +8 -0
  165. data/config/locales/newspaper_issue.fr.yml +8 -0
  166. data/config/locales/newspaper_issue.it.yml +8 -0
  167. data/config/locales/newspaper_issue.pt-BR.yml +8 -0
  168. data/config/locales/newspaper_issue.zh.yml +8 -0
  169. data/config/locales/newspaper_page.de.yml +15 -0
  170. data/config/locales/newspaper_page.en.yml +15 -0
  171. data/config/locales/newspaper_page.es.yml +15 -0
  172. data/config/locales/newspaper_page.fr.yml +15 -0
  173. data/config/locales/newspaper_page.it.yml +15 -0
  174. data/config/locales/newspaper_page.pt-BR.yml +15 -0
  175. data/config/locales/newspaper_page.zh.yml +15 -0
  176. data/config/locales/newspaper_title.de.yml +8 -0
  177. data/config/locales/newspaper_title.en.yml +8 -0
  178. data/config/locales/newspaper_title.es.yml +8 -0
  179. data/config/locales/newspaper_title.fr.yml +8 -0
  180. data/config/locales/newspaper_title.it.yml +8 -0
  181. data/config/locales/newspaper_title.pt-BR.yml +8 -0
  182. data/config/locales/newspaper_title.zh.yml +8 -0
  183. data/config/locales/newspaper_works.de.yml +50 -0
  184. data/config/locales/newspaper_works.en.yml +52 -0
  185. data/config/locales/newspaper_works.es.yml +52 -0
  186. data/config/locales/newspaper_works.fr.yml +52 -0
  187. data/config/locales/newspaper_works.it.yml +52 -0
  188. data/config/locales/newspaper_works.pt-BR.yml +52 -0
  189. data/config/locales/newspaper_works.zh.yml +52 -0
  190. data/config/routes.rb +9 -0
  191. data/config/solr_wrapper_test.yml +9 -0
  192. data/config/test-fixture/solr-config/_rest_managed.json +3 -0
  193. data/config/test-fixture/solr-config/admin-extra.html +31 -0
  194. data/config/test-fixture/solr-config/elevate.xml +36 -0
  195. data/config/test-fixture/solr-config/mapping-ISOLatin1Accent.txt +246 -0
  196. data/config/test-fixture/solr-config/protwords.txt +21 -0
  197. data/config/test-fixture/solr-config/schema.xml +366 -0
  198. data/config/test-fixture/solr-config/scripts.conf +24 -0
  199. data/config/test-fixture/solr-config/solrconfig.xml +322 -0
  200. data/config/test-fixture/solr-config/spellings.txt +2 -0
  201. data/config/test-fixture/solr-config/stopwords.txt +58 -0
  202. data/config/test-fixture/solr-config/stopwords_en.txt +58 -0
  203. data/config/test-fixture/solr-config/synonyms.txt +31 -0
  204. data/config/test-fixture/solr-config/xslt/example.xsl +132 -0
  205. data/config/test-fixture/solr-config/xslt/example_atom.xsl +67 -0
  206. data/config/test-fixture/solr-config/xslt/example_rss.xsl +66 -0
  207. data/config/test-fixture/solr-config/xslt/luke.xsl +337 -0
  208. data/config/vendor/imagemagick-6-policy.xml +76 -0
  209. data/db/migrate/20181214181358_create_newspaper_works_derivative_attachments.rb +12 -0
  210. data/db/migrate/20190107165909_create_newspaper_works_ingest_file_relations.rb +11 -0
  211. data/lib/generators/newspaper_works/assets_generator.rb +29 -0
  212. data/lib/generators/newspaper_works/blacklight_advanced_search_generator.rb +44 -0
  213. data/lib/generators/newspaper_works/blacklight_iiif_search_generator.rb +41 -0
  214. data/lib/generators/newspaper_works/catalog_controller_generator.rb +60 -0
  215. data/lib/generators/newspaper_works/install_generator.rb +97 -0
  216. data/lib/generators/newspaper_works/templates/annotation_behavior.rb +6 -0
  217. data/lib/generators/newspaper_works/templates/config/authorities/newspaper_article_genres.yml +86 -0
  218. data/lib/generators/newspaper_works/templates/config/initializers/newspaper_works.rb +12 -0
  219. data/lib/generators/newspaper_works/templates/config/initializers/patch_blacklight_advanced_search.rb +74 -0
  220. data/lib/generators/newspaper_works/templates/custom_search_builder.rb +23 -0
  221. data/lib/generators/newspaper_works/templates/newspaper_works.scss +1 -0
  222. data/lib/generators/newspaper_works/templates/newspaper_works_helper.rb +3 -0
  223. data/lib/generators/newspaper_works/templates/search_behavior.rb +6 -0
  224. data/lib/newspaper_works/configuration.rb +14 -0
  225. data/lib/newspaper_works/data/fileset_helper.rb +25 -0
  226. data/lib/newspaper_works/data/path_helper.rb +40 -0
  227. data/lib/newspaper_works/data/work_derivatives.rb +314 -0
  228. data/lib/newspaper_works/data/work_file.rb +92 -0
  229. data/lib/newspaper_works/data/work_files.rb +181 -0
  230. data/lib/newspaper_works/data.rb +35 -0
  231. data/lib/newspaper_works/engine.rb +42 -0
  232. data/lib/newspaper_works/errors.rb +14 -0
  233. data/lib/newspaper_works/ingest/base_ingest.rb +69 -0
  234. data/lib/newspaper_works/ingest/base_publication_info.rb +35 -0
  235. data/lib/newspaper_works/ingest/batch_ingest_helper.rb +44 -0
  236. data/lib/newspaper_works/ingest/batch_issue_ingester.rb +129 -0
  237. data/lib/newspaper_works/ingest/chronam_publication_info.rb +133 -0
  238. data/lib/newspaper_works/ingest/from_command.rb +52 -0
  239. data/lib/newspaper_works/ingest/image_ingest_issues.rb +43 -0
  240. data/lib/newspaper_works/ingest/issue_images.rb +51 -0
  241. data/lib/newspaper_works/ingest/lc_publication_info.rb +144 -0
  242. data/lib/newspaper_works/ingest/named_issue_metadata.rb +60 -0
  243. data/lib/newspaper_works/ingest/ndnp/batch_ingester.rb +64 -0
  244. data/lib/newspaper_works/ingest/ndnp/batch_xml_ingest.rb +72 -0
  245. data/lib/newspaper_works/ingest/ndnp/container_ingest.rb +99 -0
  246. data/lib/newspaper_works/ingest/ndnp/container_ingester.rb +84 -0
  247. data/lib/newspaper_works/ingest/ndnp/container_metadata.rb +87 -0
  248. data/lib/newspaper_works/ingest/ndnp/issue_ingest.rb +81 -0
  249. data/lib/newspaper_works/ingest/ndnp/issue_ingester.rb +101 -0
  250. data/lib/newspaper_works/ingest/ndnp/issue_metadata.rb +96 -0
  251. data/lib/newspaper_works/ingest/ndnp/ndnp_asset_helper.rb +20 -0
  252. data/lib/newspaper_works/ingest/ndnp/ndnp_mets_helper.rb +70 -0
  253. data/lib/newspaper_works/ingest/ndnp/page_ingest.rb +47 -0
  254. data/lib/newspaper_works/ingest/ndnp/page_ingester.rb +157 -0
  255. data/lib/newspaper_works/ingest/ndnp/page_metadata.rb +112 -0
  256. data/lib/newspaper_works/ingest/ndnp.rb +21 -0
  257. data/lib/newspaper_works/ingest/newspaper_issue_ingest.rb +56 -0
  258. data/lib/newspaper_works/ingest/newspaper_page_ingest.rb +6 -0
  259. data/lib/newspaper_works/ingest/page_image.rb +52 -0
  260. data/lib/newspaper_works/ingest/path_enumeration.rb +52 -0
  261. data/lib/newspaper_works/ingest/pdf_images.rb +85 -0
  262. data/lib/newspaper_works/ingest/pdf_issue.rb +20 -0
  263. data/lib/newspaper_works/ingest/pdf_issues.rb +39 -0
  264. data/lib/newspaper_works/ingest/pdf_pages.rb +114 -0
  265. data/lib/newspaper_works/ingest/pub_finder.rb +89 -0
  266. data/lib/newspaper_works/ingest/publication_info.rb +44 -0
  267. data/lib/newspaper_works/ingest.rb +90 -0
  268. data/lib/newspaper_works/issue_pdf_composer.rb +111 -0
  269. data/lib/newspaper_works/logging.rb +54 -0
  270. data/lib/newspaper_works/page_finder.rb +62 -0
  271. data/lib/newspaper_works/resource_fetcher.rb +78 -0
  272. data/lib/newspaper_works/text_extraction/alto_reader.rb +122 -0
  273. data/lib/newspaper_works/text_extraction/page_ocr.rb +100 -0
  274. data/lib/newspaper_works/text_extraction/render_alto.rb +84 -0
  275. data/lib/newspaper_works/text_extraction/word_coords_builder.rb +30 -0
  276. data/lib/newspaper_works/text_extraction.rb +10 -0
  277. data/lib/newspaper_works/version.rb +3 -0
  278. data/lib/newspaper_works.rb +19 -0
  279. data/lib/tasks/newspaper_works_tasks.rake +39 -0
  280. data/newspaper_works.gemspec +49 -0
  281. data/spec/.keep.txt +1 -0
  282. data/spec/actors/newspaper_works/actors/newspaper_works_upload_actor_spec.rb +69 -0
  283. data/spec/controllers/catalog_controller_spec.rb +63 -0
  284. data/spec/controllers/newspaper_works/newspapers_controller_spec.rb +114 -0
  285. data/spec/controllers/newspaper_works/newspapers_search_controller_spec.rb +21 -0
  286. data/spec/factories/ability.rb +6 -0
  287. data/spec/factories/newspaper_issue.rb +7 -0
  288. data/spec/factories/newspaper_issue_ingest.rb +6 -0
  289. data/spec/factories/newspaper_page.rb +7 -0
  290. data/spec/factories/newspaper_page_ingest.rb +6 -0
  291. data/spec/factories/newspaper_page_solr_document.rb +12 -0
  292. data/spec/factories/newspaper_title.rb +8 -0
  293. data/spec/factories/uploaded_pdf_file.rb +9 -0
  294. data/spec/factories/user.rb +13 -0
  295. data/spec/features/front_pages_for_title_spec.rb +19 -0
  296. data/spec/features/newspaper_title_search_spec.rb +30 -0
  297. data/spec/features/newspapers_search_spec.rb +49 -0
  298. data/spec/features/search_results_thumbnail_highlights_spec.rb +33 -0
  299. data/spec/features_shared.rb +71 -0
  300. data/spec/fixtures/files/4.1.07.jp2 +0 -0
  301. data/spec/fixtures/files/4.1.07.tiff +0 -0
  302. data/spec/fixtures/files/README.md +7 -0
  303. data/spec/fixtures/files/alto-2-0.xsd +714 -0
  304. data/spec/fixtures/files/broken-truncated.pdf +0 -0
  305. data/spec/fixtures/files/credits.md +16 -0
  306. data/spec/fixtures/files/lowres-gray-via-ndnp-sample.tiff +0 -0
  307. data/spec/fixtures/files/minimal-1-page.pdf +0 -0
  308. data/spec/fixtures/files/minimal-2-page.pdf +0 -0
  309. data/spec/fixtures/files/minimal-alto.xml +31 -0
  310. data/spec/fixtures/files/ndnp-alto-sample.xml +24 -0
  311. data/spec/fixtures/files/ndnp-sample1-json.json +1 -0
  312. data/spec/fixtures/files/ndnp-sample1-txt.txt +1 -0
  313. data/spec/fixtures/files/ndnp-sample1.pdf +0 -0
  314. data/spec/fixtures/files/ocr_alto.xml +202 -0
  315. data/spec/fixtures/files/ocr_alto_scaled_4pts_per_px.xml +202 -0
  316. data/spec/fixtures/files/ocr_color.tiff +0 -0
  317. data/spec/fixtures/files/ocr_gray.jp2 +0 -0
  318. data/spec/fixtures/files/ocr_gray.tiff +0 -0
  319. data/spec/fixtures/files/ocr_mono.tiff +0 -0
  320. data/spec/fixtures/files/page1.tiff +0 -0
  321. data/spec/fixtures/files/resource_mocks/chronam/http404-expected +0 -0
  322. data/spec/fixtures/files/resource_mocks/chronam/sn84038814.rdf +1028 -0
  323. data/spec/fixtures/files/resource_mocks/chronam/sn93059126.rdf +36 -0
  324. data/spec/fixtures/files/resource_mocks/chronam/sn94051019.rdf +37 -0
  325. data/spec/fixtures/files/resource_mocks/geonames/Chicopee +1104 -0
  326. data/spec/fixtures/files/resource_mocks/geonames/Denver +1104 -0
  327. data/spec/fixtures/files/resource_mocks/geonames/Marysville +279 -0
  328. data/spec/fixtures/files/resource_mocks/geonames/Marysville2 +279 -0
  329. data/spec/fixtures/files/resource_mocks/geonames/SLC +1104 -0
  330. data/spec/fixtures/files/resource_mocks/lccn/sn2099999999 +1 -0
  331. data/spec/fixtures/files/resource_mocks/lccn/sn82014496 +2 -0
  332. data/spec/fixtures/files/resource_mocks/lccn/sn83020109 +1 -0
  333. data/spec/fixtures/files/resource_mocks/lccn/sn83021453 +2 -0
  334. data/spec/fixtures/files/resource_mocks/lccn/sn83045396 +2 -0
  335. data/spec/fixtures/files/resource_mocks/lccn/sn84038814 +2 -0
  336. data/spec/fixtures/files/resource_mocks/lccn/sn93059126 +1 -0
  337. data/spec/fixtures/files/resource_mocks/lccn/sn94051019 +1 -0
  338. data/spec/fixtures/files/resource_mocks/lccn/sn99999999 +1 -0
  339. data/spec/fixtures/files/resource_mocks/urls.json +82 -0
  340. data/spec/fixtures/files/sample-4page-issue.pdf +0 -0
  341. data/spec/fixtures/files/sample-color-newsletter.pdf +0 -0
  342. data/spec/fixtures/files/thumbnail.jpg +0 -0
  343. data/spec/forms/hyrax/newspaper_article_form_spec.rb +33 -0
  344. data/spec/forms/hyrax/newspaper_container_form_spec.rb +30 -0
  345. data/spec/forms/hyrax/newspaper_issue_form_spec.rb +31 -0
  346. data/spec/forms/hyrax/newspaper_page_form_spec.rb +28 -0
  347. data/spec/forms/hyrax/newspaper_title_form_spec.rb +31 -0
  348. data/spec/forms/newspaper_works/newspaper_core_form_data_spec.rb +12 -0
  349. data/spec/helpers/newspaper_works/breadcrumb_helper_spec.rb +82 -0
  350. data/spec/helpers/newspaper_works_helper_spec.rb +57 -0
  351. data/spec/indexers/concerns/newspaper_works/indexes_full_text_spec.rb +31 -0
  352. data/spec/indexers/concerns/newspaper_works/indexes_place_of_publication_spec.rb +53 -0
  353. data/spec/indexers/concerns/newspaper_works/indexes_publication_date_range_spec.rb +39 -0
  354. data/spec/indexers/concerns/newspaper_works/indexes_relationships_spec.rb +86 -0
  355. data/spec/indexers/newspaper_article_indexer_spec.rb +29 -0
  356. data/spec/indexers/newspaper_issue_indexer_spec.rb +19 -0
  357. data/spec/indexers/newspaper_title_indexer_spec.rb +22 -0
  358. data/spec/indexers/newspaper_works/newspaper_core_indexer_spec.rb +23 -0
  359. data/spec/lib/newspaper_works/configuration_spec.rb +18 -0
  360. data/spec/lib/newspaper_works/data/work_derivatives_spec.rb +245 -0
  361. data/spec/lib/newspaper_works/data/work_file_spec.rb +99 -0
  362. data/spec/lib/newspaper_works/data/work_files_spec.rb +224 -0
  363. data/spec/lib/newspaper_works/ingest/batch_issue_ingester_spec.rb +158 -0
  364. data/spec/lib/newspaper_works/ingest/chronam_publication_info_spec.rb +35 -0
  365. data/spec/lib/newspaper_works/ingest/from_command_spec.rb +75 -0
  366. data/spec/lib/newspaper_works/ingest/image_ingest_issues_spec.rb +62 -0
  367. data/spec/lib/newspaper_works/ingest/ingest_shared.rb +75 -0
  368. data/spec/lib/newspaper_works/ingest/issue_images_spec.rb +65 -0
  369. data/spec/lib/newspaper_works/ingest/lc_publication_info_spec.rb +34 -0
  370. data/spec/lib/newspaper_works/ingest/ndnp/batch_ingester_spec.rb +131 -0
  371. data/spec/lib/newspaper_works/ingest/ndnp/batch_xml_ingest_spec.rb +64 -0
  372. data/spec/lib/newspaper_works/ingest/ndnp/container_ingest_spec.rb +44 -0
  373. data/spec/lib/newspaper_works/ingest/ndnp/container_ingester_spec.rb +126 -0
  374. data/spec/lib/newspaper_works/ingest/ndnp/container_metadata_spec.rb +36 -0
  375. data/spec/lib/newspaper_works/ingest/ndnp/issue_ingest_spec.rb +108 -0
  376. data/spec/lib/newspaper_works/ingest/ndnp/issue_ingester_spec.rb +155 -0
  377. data/spec/lib/newspaper_works/ingest/ndnp/issue_metadata_spec.rb +84 -0
  378. data/spec/lib/newspaper_works/ingest/ndnp/page_ingest_spec.rb +79 -0
  379. data/spec/lib/newspaper_works/ingest/ndnp/page_ingester_spec.rb +184 -0
  380. data/spec/lib/newspaper_works/ingest/ndnp/page_metadata_spec.rb +85 -0
  381. data/spec/lib/newspaper_works/ingest/newspaper_issue_ingest_spec.rb +83 -0
  382. data/spec/lib/newspaper_works/ingest/newspaper_page_ingest_spec.rb +77 -0
  383. data/spec/lib/newspaper_works/ingest/page_image_spec.rb +29 -0
  384. data/spec/lib/newspaper_works/ingest/pdf_images_spec.rb +32 -0
  385. data/spec/lib/newspaper_works/ingest/pdf_issue_spec.rb +29 -0
  386. data/spec/lib/newspaper_works/ingest/pdf_issues_spec.rb +62 -0
  387. data/spec/lib/newspaper_works/ingest/pdf_pages_spec.rb +110 -0
  388. data/spec/lib/newspaper_works/ingest/pub_finder_spec.rb +58 -0
  389. data/spec/lib/newspaper_works/ingest/publication_info_spec.rb +61 -0
  390. data/spec/lib/newspaper_works/ingest_spec.rb +45 -0
  391. data/spec/lib/newspaper_works/issue_pdf_composer_spec.rb +101 -0
  392. data/spec/lib/newspaper_works/logging_spec.rb +53 -0
  393. data/spec/lib/newspaper_works/page_finder_spec.rb +53 -0
  394. data/spec/lib/newspaper_works/resource_fetcher_spec.rb +65 -0
  395. data/spec/lib/newspaper_works/text_extraction/alto_reader_spec.rb +49 -0
  396. data/spec/lib/newspaper_works/text_extraction/page_ocr_spec.rb +84 -0
  397. data/spec/lib/newspaper_works/text_extraction/render_alto_spec.rb +54 -0
  398. data/spec/lib/newspaper_works/text_extraction/word_coords_builder_spec.rb +30 -0
  399. data/spec/lib/tasks/newspaper_works_rake_spec.rb +124 -0
  400. data/spec/misc_shared.rb +109 -0
  401. data/spec/model_shared.rb +134 -0
  402. data/spec/models/concerns/newspaper_works/blacklight_iiif_search/annotation_behavior_spec.rb +45 -0
  403. data/spec/models/concerns/newspaper_works/blacklight_iiif_search/search_behavior_spec.rb +27 -0
  404. data/spec/models/concerns/newspaper_works/newspaper_core_metadata_spec.rb +45 -0
  405. data/spec/models/concerns/newspaper_works/place_of_publication_behavior_spec.rb +17 -0
  406. data/spec/models/concerns/newspaper_works/scanned_media_metadata_spec.rb +35 -0
  407. data/spec/models/newspaper_article_spec.rb +73 -0
  408. data/spec/models/newspaper_container_spec.rb +111 -0
  409. data/spec/models/newspaper_issue_spec.rb +91 -0
  410. data/spec/models/newspaper_page_spec.rb +44 -0
  411. data/spec/models/newspaper_title_spec.rb +116 -0
  412. data/spec/models/newspaper_works/derivative_attachment_spec.rb +37 -0
  413. data/spec/models/newspaper_works/ingest_file_relation_spec.rb +56 -0
  414. data/spec/models/solr_document_spec.rb +14 -0
  415. data/spec/ndnp_shared.rb +48 -0
  416. data/spec/presenters/hyrax/newspaper_article_presenter_spec.rb +53 -0
  417. data/spec/presenters/hyrax/newspaper_container_presenter_spec.rb +20 -0
  418. data/spec/presenters/hyrax/newspaper_issue_presenter_spec.rb +65 -0
  419. data/spec/presenters/hyrax/newspaper_page_presenter_spec.rb +75 -0
  420. data/spec/presenters/hyrax/newspaper_title_presenter_spec.rb +153 -0
  421. data/spec/presenters/newspaper_works/iiif_manifest_presenter_behavior_spec.rb +32 -0
  422. data/spec/presenters/newspaper_works/issue_info_presenter_spec.rb +51 -0
  423. data/spec/presenters/newspaper_works/newspaper_core_presenter_spec.rb +22 -0
  424. data/spec/presenters/newspaper_works/persistent_url_presenter_behavior_spec.rb +24 -0
  425. data/spec/presenters/newspaper_works/place_of_publication_presenter_behavior_spec.rb +17 -0
  426. data/spec/presenters/newspaper_works/scanned_media_presenter_spec.rb +18 -0
  427. data/spec/presenters/newspaper_works/title_info_presenter_spec.rb +23 -0
  428. data/spec/routing/route_spec.rb +52 -0
  429. data/spec/search_builders/custom_search_builder_spec.rb +34 -0
  430. data/spec/search_builders/newspaper_works/newspapers_search_builder_spec.rb +33 -0
  431. data/spec/services/hyrax/article_genre_service_spec.rb +12 -0
  432. data/spec/services/hyrax/resource_types_service_spec.rb +12 -0
  433. data/spec/services/newspaper_works/jp2_derivative_service_spec.rb +62 -0
  434. data/spec/services/newspaper_works/newspaper_page_derivative_service_spec.rb +125 -0
  435. data/spec/services/newspaper_works/pdf_derivative_service_spec.rb +62 -0
  436. data/spec/services/newspaper_works/pluggable_derivative_service_spec.rb +204 -0
  437. data/spec/services/newspaper_works/text_extraction_derivative_service_spec.rb +82 -0
  438. data/spec/services/newspaper_works/text_formats_from_alto_service_spec.rb +129 -0
  439. data/spec/services/newspaper_works/tiff_derivative_service_spec.rb +58 -0
  440. data/spec/spec_helper.rb +261 -0
  441. data/spec/support/controller_level_helpers.rb +28 -0
  442. data/spec/test_app_templates/lib/generators/test_app_generator.rb +22 -0
  443. data/spec/views/catalog/_index_gallery_newspaper_page_wrapper.html.erb_spec.rb +36 -0
  444. data/spec/views/catalog/_index_header_list_newspaper_page.html.erb_spec.rb +26 -0
  445. data/spec/views/catalog/_thumbnail_list_newspaper_page.html.erb_spec.rb +35 -0
  446. data/spec/views/hyrax/newspaper_titles/_all_front_pages_form.html.erb_spec.rb +16 -0
  447. data/spec/views/hyrax/newspaper_titles/_issue_search_form.html.erb_spec.rb +33 -0
  448. data/spec/views/hyrax/newspaper_titles/_issues_calendar.html.erb_spec.rb +37 -0
  449. data/spec/views/hyrax/newspaper_titles/show.html.erb_spec.rb +87 -0
  450. data/spec/views/newspaper_works/base/_attribute_rows.html.erb_spec.rb +60 -0
  451. data/spec/views/newspaper_works/base/_newspaper_hierarchy.html.erb_spec.rb +80 -0
  452. data/spec/views/newspaper_works/base/_show.html.erb_spec.rb +78 -0
  453. data/spec/views/newspaper_works/newspapers_search/search.html.erb_spec.rb +54 -0
  454. data/spec/views/records/edit_fields/_place_of_publication.html.erb_spec.rb +26 -0
  455. data/tasks/newspaperworks_dev.rake +26 -0
  456. data/test/integration/navigation_test.rb +7 -0
  457. data/test/lib/generators/newspaper_works/install_generator_test.rb +16 -0
  458. data/test/newspaper_works_test.rb +7 -0
  459. data/test/test_helper.rb +17 -0
  460. data/tmp/.keep +0 -0
  461. metadata +1037 -0
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"/>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"><titleInfo><title>Rocky Mountain news</title></titleInfo><titleInfo type="alternative" displayLabel="Saturday issues for Apr. 7, 2001- called:"><title>Weekend Rocky Mountain news &amp; The Denver post</title></titleInfo><titleInfo type="uniform"><title>Rocky Mountain news (Denver, Colo. : 1937)</title></titleInfo><typeOfResource>text</typeOfResource><genre authority="marcgt">newspaper</genre><genre authority="rdacontent">text</genre><genre authority="fast">Newspapers.</genre><originInfo><place><placeTerm type="code" authority="marccountry">cou</placeTerm></place><place><placeTerm type="text">Denver, Colo</placeTerm></place><publisher>Denver Pub. Co.</publisher><dateIssued>[1937-2009]</dateIssued><dateIssued point="start" encoding="marc">1937</dateIssued><dateIssued point="end" encoding="marc">2009</dateIssued><issuance>serial</issuance><frequency>Daily</frequency><frequency authority="marcfrequency">Daily</frequency></originInfo><language><languageTerm type="code" authority="iso639-2b">eng</languageTerm></language><physicalDescription><form authority="marcform">print</form><extent>volumes</extent><form type="media" authority="rdamedia">unmediated</form><form type="carrier" authority="rdacarrier">volume</form></physicalDescription><note type="date/sequential designation">Vol. 78, no. 213 (Aug. 1, 1937)-v. 80, no. 130 (May 10, 1939); 80th year, no. 131 (May 11, 1939)-Feb. 27, 2009.</note><note>Apr. 23, 1959 issue called also "Centennial edition."</note><note>Feb. 27, 2009 issue also called "Final edition."</note><note type="additional physical form">Available on microfilm through Dec. 31, 1974 from the Colorado Historical Society.</note><note type="additional physical form">Also issued on microfilm from University Microfilms International, and Library of Congress Photoduplication Service.</note><note>Weekend issues for Apr. 7, 2001- published jointly with: Denver post (Denver, Colo. : 1901).</note><subject><geographicCode authority="marcgac">n-us-co</geographicCode></subject><subject authority="lcsh"><geographic>Denver (Colo.)</geographic><genre>Newspapers</genre></subject><subject authority="fast"><geographic>Colorado</geographic><geographic>Denver</geographic></subject><subject><hierarchicalGeographic><country>United States</country><state>Colorado</state><county>Denver</county><city>Denver</city></hierarchicalGeographic></subject><classification authority="lcc">Newspaper 7221</classification><classification authority="lcc">AN2.D4 R63</classification><classification authority="lcc">AN</classification><relatedItem type="preceding"><titleInfo><title>Denver Rocky Mountain news</title></titleInfo><identifier type="local">(DLC)sn 83016742</identifier><identifier type="local">(OCoLC)10089245</identifier></relatedItem><identifier type="lccn">sn 82014496</identifier><identifier type="oclc">ocm03946163</identifier><identifier type="stock number">400 West Colfax Ave., Denver, C0 80204</identifier><recordInfo><descriptionStandard>aacr</descriptionStandard><recordContentSource authority="marcorg">COA</recordContentSource><recordCreationDate encoding="marc">780602</recordCreationDate><recordChangeDate encoding="iso8601">20181129155918.0</recordChangeDate><recordIdentifier>11256230</recordIdentifier><recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl
2
+ (Revision 1.119 2018/06/21)</recordOrigin><languageOfCataloging><languageTerm type="code" authority="iso639-2b">eng</languageTerm></languageOfCataloging></recordInfo></mods>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"/>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"><titleInfo><nonSort xml:space="preserve">The </nonSort><title>Salt Lake daily tribune</title></titleInfo><titleInfo type="alternative"><title>Daily tribune</title></titleInfo><typeOfResource>text</typeOfResource><genre authority="marcgt">newspaper</genre><genre authority="rdacontent">text</genre><genre authority="fast">Newspapers.</genre><originInfo><place><placeTerm type="code" authority="marccountry">utu</placeTerm></place><place><placeTerm type="text">Salt Lake City, U.T. [i.e. Utah]</placeTerm></place><publisher>Tribune Pub. Co.</publisher><dateIssued>1872-1890</dateIssued><dateIssued point="start" encoding="marc">1872</dateIssued><dateIssued point="end" encoding="marc">1890</dateIssued><issuance>serial</issuance><frequency>Daily (except Monday), July 27, 1873-Feb. 23, 1890</frequency><frequency>Daily (except Sunday), Apr. 15, 1872-July 26, 1873</frequency><frequency authority="marcfrequency">Daily</frequency></originInfo><language><languageTerm type="code" authority="iso639-2b">eng</languageTerm></language><physicalDescription><form authority="marcform">print</form><extent>36 volumes</extent><form type="media" authority="rdamedia">unmediated</form><form type="carrier" authority="rdacarrier">volume</form></physicalDescription><note type="date/sequential designation">Vol. 3, no. 2 (Apr. 15, 1872)-v. 38, no. 114 (Feb. 23, 1890).</note><note type="numbering">Continues the numbering of: Salt Lake daily tribune and Utah mining gazette.</note><note type="numbering">None published Jan. 2 and Dec. 26.</note><note type="additional physical form">Also issued on microfilm from Universal Microfilming Corp.</note><note type="language">Some 1874 issues contain items in Danish.</note><note>Weekly editions: Weekly Salt Lake tribune 1872-1873; Salt Lake leader (Salt Lake City, Utah : 1873), 1873; Salt Lake tribune (Salt Lake City, Utah : 1873), 1873-1874; Salt Lake weekly tribune (Salt Lake City, Utah : 1874), 1874-1890.</note><subject><geographicCode authority="marcgac">n-us-ut</geographicCode></subject><subject authority="lcsh"><geographic>Salt Lake City (Utah)</geographic><genre>Newspapers</genre></subject><subject authority="fast"><geographic>Utah</geographic><geographic>Salt Lake City</geographic></subject><subject><hierarchicalGeographic><country>United States</country><state>Utah</state><county>Salt Lake</county><city>Salt Lake City</city></hierarchicalGeographic></subject><classification authority="lcc">Newspaper</classification><classification authority="lcc">AN</classification><relatedItem type="otherVersion"><titleInfo><title>Weekly Salt Lake tribune</title></titleInfo><identifier type="local">(DLC)sn 86071525</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake leader (Salt Lake City, Utah : 1873)</title></titleInfo><identifier type="local">(DLC)sn 85058151</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake tribune (Salt Lake City, Utah : 1873)</title></titleInfo><identifier type="local">(DLC)sn 83021454</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake weekly tribune (Salt Lake City, Utah : 1874)</title></titleInfo><identifier type="local">(DLC)sn 85058152</identifier></relatedItem><relatedItem type="preceding"><titleInfo><title>Salt Lake daily tribune and Utah mining gazette</title></titleInfo><identifier type="local">(DLC)sn 85058026</identifier><identifier type="local">(OCoLC)11735155</identifier></relatedItem><relatedItem type="succeeding"><titleInfo><title>Salt Lake tribune (Salt Lake City, Utah : 1890)</title></titleInfo><identifier type="local">(DLC)sn 83045396</identifier><identifier type="local">(OCoLC)8086936</identifier></relatedItem><identifier type="lccn">sn 83021453</identifier><identifier type="oclc">ocm10170377</identifier><recordInfo><descriptionStandard>aacr</descriptionStandard><recordContentSource authority="marcorg">NPX</recordContentSource><recordCreationDate encoding="marc">831129</recordCreationDate><recordChangeDate encoding="iso8601">20181124092151.0</recordChangeDate><recordIdentifier>11268324</recordIdentifier><recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl
2
+ (Revision 1.119 2018/06/21)</recordOrigin><languageOfCataloging><languageTerm type="code" authority="iso639-2b">eng</languageTerm></languageOfCataloging></recordInfo></mods>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"><titleInfo><nonSort xml:space="preserve">The </nonSort><title>Salt Lake tribune</title></titleInfo><titleInfo type="uniform"><title>Salt Lake tribune (Salt Lake City, Utah : 1890)</title></titleInfo><typeOfResource>text</typeOfResource><genre authority="marcgt">newspaper</genre><genre authority="rdacontent">text</genre><genre authority="fast">Newspapers.</genre><originInfo><place><placeTerm type="code" authority="marccountry">utu</placeTerm></place><place><placeTerm type="text">Salt Lake City, Utah</placeTerm></place><publisher>Tribune Pub. Co.</publisher><dateIssued>1890-</dateIssued><dateIssued point="start" encoding="marc">1890</dateIssued><dateIssued point="end" encoding="marc">9999</dateIssued><issuance>serial</issuance><frequency>Daily</frequency><frequency authority="marcfrequency">Daily</frequency></originInfo><language><languageTerm type="code" authority="iso639-2b">eng</languageTerm></language><physicalDescription><form authority="marcform">print</form><extent>volumes : illustrations ; 54-57 cm</extent><form type="media" authority="rdamedia">unmediated</form><form type="carrier" authority="rdacarrier">volume</form></physicalDescription><note type="date/sequential designation">Vol. 38, no. 115 (Feb. 25, 1890)-</note><note>Publisher varies.</note><note type="numbering">Continues the numbering of: Salt Lake daily tribune.</note><note type="additional physical form">Archived issues are available in digital format as part of the Library of Congress Chronicling America online collection.</note><note>Semiweekly ed.: Salt Lake semi-weekly tribune, 1894-1902.</note><note>Weekly ed.: Salt Lake weekly tribune (Salt Lake City, Utah : 1902), 1902-&lt;&gt;.</note><note>Other eds.: Salt Lake tribune (Salt Lake City, Utah : Idaho ed.), 1954-1973, and: Salt Lake tribune (Salt Lake City, Utah : Metropolitan ed.), 1960-1972, and: Salt Lake tribune (Salt Lake City, Utah : State ed.), 1954-1974.</note><subject><geographicCode authority="marcgac">n-us-ut</geographicCode></subject><subject authority="lcsh"><geographic>Salt Lake City (Utah)</geographic><genre>Newspapers</genre></subject><subject authority="fast"><geographic>Utah</geographic><geographic>Salt Lake City</geographic></subject><subject><hierarchicalGeographic><country>United States</country><state>Utah</state><county>Salt Lake</county><city>Salt Lake City</city></hierarchicalGeographic></subject><classification authority="lcc">Newspaper</classification><classification authority="ddc" edition="14">071</classification><relatedItem type="otherVersion"><titleInfo><title>Salt Lake semi-weekly tribune</title></titleInfo><identifier type="local">(DLC)sn 84024748</identifier><identifier type="local">(OCoLC)11095194</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake weekly tribune (Salt Lake City, Utah : 1902)</title></titleInfo><identifier type="local">(DLC)sn 84024749</identifier><identifier type="local">(OCoLC)11095188</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake tribune (Salt Lake City, Utah : Idaho ed.)</title></titleInfo><identifier type="local">(DLC)sn 85058248</identifier><identifier type="local">(OCoLC)12686122</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake tribune (Salt Lake City, Utah : Metropolitan ed.)</title></titleInfo><identifier type="local">(DLC)sn 85058249</identifier><identifier type="local">(OCoLC)12686195</identifier></relatedItem><relatedItem type="otherVersion"><titleInfo><title>Salt Lake tribune (Salt Lake City, Utah : State ed.)</title></titleInfo><identifier type="local">(DLC)sn 85058250</identifier><identifier type="local">(OCoLC)12686023</identifier></relatedItem><relatedItem type="preceding"><titleInfo><title>Salt Lake daily tribune</title></titleInfo><identifier type="local">(DLC)sn 83021453</identifier><identifier type="local">(OCoLC)10170377</identifier></relatedItem><identifier type="issn">0746-3502</identifier><identifier type="issn-l">0746-3502</identifier><identifier type="lccn">sn 83045396</identifier><identifier type="oclc">ocm08086936</identifier><identifier type="stock number">The Salt Lake Tribune, 143 S. Main, Salt Lake City, UT 84111</identifier><recordInfo><descriptionStandard>aacr</descriptionStandard><recordContentSource authority="marcorg">TXG</recordContentSource><recordCreationDate encoding="marc">820122</recordCreationDate><recordChangeDate encoding="iso8601">20190309090740.0</recordChangeDate><recordIdentifier>11269806</recordIdentifier><recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl
2
+ (Revision 1.119 2018/06/21)</recordOrigin><languageOfCataloging><languageTerm type="code" authority="iso639-2b">eng</languageTerm></languageOfCataloging></recordInfo></mods>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"><titleInfo><title>Daily national Democrat</title></titleInfo><titleInfo type="uniform"><title>Daily national Democrat (Marysville, Calif.)</title></titleInfo><typeOfResource>text</typeOfResource><genre authority="marcgt">newspaper</genre><genre authority="rdacontent">text</genre><genre authority="fast">Newspapers.</genre><originInfo><place><placeTerm type="code" authority="marccountry">cau</placeTerm></place><place><placeTerm type="text">Marysville, Calif</placeTerm></place><publisher>A.S. Randall &amp; Co.</publisher><dateIssued>-1861</dateIssued><dateIssued point="start" encoding="marc">1858</dateIssued><dateIssued point="end" encoding="marc">1861</dateIssued><issuance>serial</issuance><frequency>Daily</frequency><frequency authority="marcfrequency">Daily</frequency></originInfo><language><languageTerm type="code" authority="iso639-2b">eng</languageTerm></language><physicalDescription><form authority="marcform">print</form><extent>volumes</extent><form type="media" authority="rdamedia">unmediated</form><form type="carrier" authority="rdacarrier">volume</form></physicalDescription><note type="date/sequential designation">Began in 1858.</note><note type="date/sequential designation">-v. 7, no. 65 (Oct. 27, 1861).</note><note>Editor: John R. Ridge, &lt;1859&gt;.</note><note xmlns:xlink="http://www.w3.org/1999/xlink" type="additional physical form" xlink:href="http://cbsr.ucr.edu">Master negatives are available for duplication from: California Newspaper Microfilm Archive; positive copies may be purchased by the reel; for further information consult the CNMA at:</note><note type="additional physical form">Archived issues are available in digital format from the Library of Congress Chronicling America online collection.</note><subject><geographicCode authority="marcgac">n-us-ca</geographicCode></subject><subject authority="lcsh"><geographic>Marysville (Calif.)</geographic><genre>Newspapers</genre></subject><subject authority="fast"><geographic>California</geographic><geographic>Marysville</geographic></subject><subject><hierarchicalGeographic><country>United States</country><state>California</state><county>Yuba</county><city>Marysville</city></hierarchicalGeographic></subject><classification authority="lcc">Newspaper</classification><classification authority="lcc">AP2 .M39453</classification><classification authority="ddc" edition="23">071.3</classification><relatedItem type="otherVersion"><titleInfo><title>Weekly national Democrat (Marysville, Calif.)</title></titleInfo><identifier type="local">(DLC)sn 95068828</identifier><identifier type="local">(OCoLC)33807781</identifier></relatedItem><relatedItem type="otherFormat" otherType="Online version:" displayLabel="Online version:"><titleInfo><title>Daily national Democrat (Marysville, Calif.)</title></titleInfo><identifier type="issn">2642-0759</identifier><identifier type="local">(DLC) 2019271599</identifier><identifier type="local">(OCoLC)1091589397</identifier></relatedItem><relatedItem type="preceding"><titleInfo><title>Marysville daily news</title></titleInfo><identifier type="local">(DLC)sn 94051019</identifier><identifier type="local">(OCoLC)30043558</identifier></relatedItem><relatedItem type="succeeding"><titleInfo><title>Marysville daily appeal</title></titleInfo><identifier type="local">(DLC)sn 84027437</identifier><identifier type="local">(OCoLC)11148970</identifier></relatedItem><identifier type="issn">2642-0740</identifier><identifier type="lccn">sn 84038814</identifier><identifier type="oclc">ocm11534817</identifier><recordInfo><descriptionStandard>aacr</descriptionStandard><recordContentSource authority="marcorg">NPX</recordContentSource><recordCreationDate encoding="marc">841231</recordCreationDate><recordChangeDate encoding="iso8601">20190406075829.0</recordChangeDate><recordIdentifier>20917217</recordIdentifier><recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl
2
+ (Revision 1.119 2018/06/21)</recordOrigin><languageOfCataloging><languageTerm type="code" authority="iso639-2b">eng</languageTerm></languageOfCataloging></recordInfo></mods>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"/>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"/>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><mods xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd" version="3.6"/>
@@ -0,0 +1,82 @@
1
+ {
2
+ "urls" : [
3
+ {
4
+ "url": "https://lccn.loc.gov/sn93059126/mods",
5
+ "local": "lccn/sn93059126"
6
+ },
7
+ {
8
+ "url": "https://lccn.loc.gov/sn83045396/mods",
9
+ "local": "lccn/sn83045396"
10
+ },
11
+ {
12
+ "url": "https://lccn.loc.gov/sn83020109/mods",
13
+ "local": "lccn/sn83020109"
14
+ },
15
+ {
16
+ "url": "https://lccn.loc.gov/sn83021453/mods",
17
+ "local": "lccn/sn83021453"
18
+ },
19
+ {
20
+ "url": "https://lccn.loc.gov/sn94051019/mods",
21
+ "local": "lccn/sn94051019"
22
+ },
23
+ {
24
+ "url": "https://lccn.loc.gov/sn99999999/mods",
25
+ "local": "lccn/sn99999999"
26
+ },
27
+ {
28
+ "url": "https://lccn.loc.gov/sn2099999999/mods",
29
+ "local": "lccn/sn2099999999"
30
+ },
31
+ {
32
+ "url": "https://lccn.loc.gov/sn82014496/mods",
33
+ "local": "lccn/sn82014496"
34
+ },
35
+ {
36
+ "url": "https://lccn.loc.gov/sn84038814/mods",
37
+ "local": "lccn/sn84038814"
38
+ },
39
+ {
40
+ "url": "http://api.geonames.org/search?q=Chicopee&username=newspaper_works",
41
+ "local": "geonames/Chicopee"
42
+ },
43
+ {
44
+ "url": "http://api.geonames.org/search?q=Salt%20Lake%20City,%20Utah&username=newspaper_works",
45
+ "local": "geonames/SLC"
46
+ },
47
+ {
48
+ "url": "http://api.geonames.org/search?q=Marysville,%20Calif&username=newspaper_works",
49
+ "local": "geonames/Marysville"
50
+ },
51
+ {
52
+ "url": "http://api.geonames.org/search?q=Denver,%20Colorado&username=newspaper_works",
53
+ "local": "geonames/Denver"
54
+ },
55
+ {
56
+ "url": "http://api.geonames.org/search?q=Marysville,%20California&username=newspaper_works",
57
+ "local": "geonames/Marysville2"
58
+ },
59
+ {
60
+ "url": "https://chroniclingamerica.loc.gov/lccn/sn84038814.rdf",
61
+ "local": "chronam/sn84038814.rdf"
62
+ },
63
+ {
64
+ "url": "https://chroniclingamerica.loc.gov/lccn/sn93059126.rdf",
65
+ "local": "chronam/sn93059126.rdf"
66
+ },
67
+ {
68
+ "url": "https://chroniclingamerica.loc.gov/lccn/sn94051019.rdf",
69
+ "local": "chronam/sn94051019.rdf"
70
+ },
71
+ {
72
+ "url": "https://chroniclingamerica.loc.gov/lccn/sn99999999.rdf",
73
+ "local": "chronam/http404-expected",
74
+ "status": 404
75
+ },
76
+ {
77
+ "url": "https://chroniclingamerica.loc.gov/lccn/sn2099999999.rdf",
78
+ "local": "chronam/http404-expected",
79
+ "status": 404
80
+ }
81
+ ]
82
+ }
Binary file
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'model_shared'
3
+
4
+ RSpec.describe Hyrax::NewspaperArticleForm do
5
+ let(:work) { NewspaperArticle.new }
6
+ let(:form) { described_class.new(work, nil, nil) }
7
+
8
+ describe "#required_fields" do
9
+ subject { form.required_fields }
10
+
11
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
12
+ end
13
+
14
+ describe "#primary_terms" do
15
+ subject { form.primary_terms }
16
+
17
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
18
+ end
19
+
20
+ describe "#secondary_terms" do
21
+ subject { form.secondary_terms }
22
+
23
+ it do
24
+ is_expected.to eq [:creator, :contributor, :description, :license,
25
+ :rights_statement, :publisher, :subject, :identifier,
26
+ :place_of_publication, :issn, :lccn, :oclcnum,
27
+ :alternative_title, :genre, :author, :photographer,
28
+ :publication_date, :volume, :edition_number,
29
+ :edition_name, :issue_number, :geographic_coverage,
30
+ :extent, :page_number, :section]
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'model_shared'
3
+
4
+ RSpec.describe Hyrax::NewspaperContainerForm do
5
+ let(:work) { NewspaperContainer.new }
6
+ let(:form) { described_class.new(work, nil, nil) }
7
+
8
+ describe "#required_fields" do
9
+ subject { form.required_fields }
10
+
11
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
12
+ end
13
+
14
+ describe "#primary_terms" do
15
+ subject { form.primary_terms }
16
+
17
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
18
+ end
19
+
20
+ describe "#secondary_terms" do
21
+ subject { form.secondary_terms }
22
+
23
+ it do
24
+ is_expected.to eq [:license, :rights_statement, :publisher, :identifier,
25
+ :place_of_publication, :issn, :lccn, :oclcnum,
26
+ :alternative_title, :extent,
27
+ :publication_date_start, :publication_date_end]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ require 'model_shared'
3
+
4
+ RSpec.describe Hyrax::NewspaperIssueForm do
5
+ let(:work) { NewspaperIssue.new }
6
+ let(:form) { described_class.new(work, nil, nil) }
7
+
8
+ describe "#required_fields" do
9
+ subject { form.required_fields }
10
+
11
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
12
+ end
13
+
14
+ describe "#primary_terms" do
15
+ subject { form.primary_terms }
16
+
17
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
18
+ end
19
+
20
+ describe "#secondary_terms" do
21
+ subject { form.secondary_terms }
22
+
23
+ it do
24
+ is_expected.to eq [:license, :rights_statement, :publisher, :identifier,
25
+ :place_of_publication, :issn, :lccn, :oclcnum,
26
+ :alternative_title, :volume, :edition_number,
27
+ :edition_name, :issue_number, :extent,
28
+ :publication_date]
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'model_shared'
3
+
4
+ RSpec.describe Hyrax::NewspaperPageForm do
5
+ let(:work) { NewspaperPage.new }
6
+ let(:form) { described_class.new(work, nil, nil) }
7
+
8
+ describe "#required_fields" do
9
+ subject { form.required_fields }
10
+
11
+ it { is_expected.to eq [:title] }
12
+ end
13
+
14
+ describe "#primary_terms" do
15
+ subject { form.primary_terms }
16
+
17
+ it { is_expected.to eq [:title] }
18
+ end
19
+
20
+ describe "#secondary_terms" do
21
+ subject { form.secondary_terms }
22
+
23
+ it do
24
+ is_expected.to eq [:identifier, :height, :width, :text_direction,
25
+ :page_number, :section]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ require 'model_shared'
3
+
4
+ RSpec.describe Hyrax::NewspaperTitleForm do
5
+ let(:work) { NewspaperTitle.new }
6
+ let(:form) { described_class.new(work, nil, nil) }
7
+
8
+ describe "#required_fields" do
9
+ subject { form.required_fields }
10
+
11
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
12
+ end
13
+
14
+ describe "#primary_terms" do
15
+ subject { form.primary_terms }
16
+
17
+ it { is_expected.to eq [:title, :resource_type, :language, :held_by] }
18
+ end
19
+
20
+ describe "#secondary_terms" do
21
+ subject { form.secondary_terms }
22
+
23
+ it do
24
+ is_expected.to eq [:license, :rights_statement, :publisher, :identifier,
25
+ :place_of_publication, :issn, :lccn, :oclcnum,
26
+ :alternative_title, :edition_name, :frequency,
27
+ :preceded_by, :succeeded_by,
28
+ :publication_date_start, :publication_date_end]
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe NewspaperWorks::NewspaperCoreFormData do
4
+ before do
5
+ allow(described_class).to receive(:model_class).and_return(NewspaperArticle)
6
+ end
7
+
8
+ describe '.build_permitted_params' do
9
+ subject { described_class.build_permitted_params }
10
+ it { is_expected.to include(place_of_publication_attributes: [:id, :_destroy]) }
11
+ end
12
+ end
@@ -0,0 +1,82 @@
1
+ require 'spec_helper'
2
+ RSpec.describe NewspaperWorks::BreadcrumbHelper do
3
+ let(:solr_document) { SolrDocument.new(attributes) }
4
+ let(:attributes) do
5
+ {
6
+ 'publication_id_ssi' => 'foo',
7
+ 'publication_title_ssi' => 'bar',
8
+ 'issue_id_ssi' => 'baz',
9
+ 'issue_title_ssi' => 'quux',
10
+ 'is_following_page_of_ssi' => 'one',
11
+ 'is_preceding_page_of_ssi' => 'three'
12
+ }
13
+ end
14
+ let(:presenter) { Hyrax::NewspaperPagePresenter.new(solr_document, nil) }
15
+ let(:object_type) { :issue }
16
+
17
+ describe '#newspaper_breadcrumbs' do
18
+ it 'returns an array of links' do
19
+ allow(presenter).to receive(:title).and_return(["2018-05-08: Page 1"])
20
+ breadcrumbs = helper.newspaper_breadcrumbs(presenter)
21
+ expect(breadcrumbs.length).to eq 3
22
+ expect(breadcrumbs[0]).to include('href="/concern/newspaper_titles/foo"')
23
+ expect(breadcrumbs[1]).to include('href="/concern/newspaper_issues/baz"')
24
+ end
25
+
26
+ it 'returns a filtered version of a newspaper page title' do
27
+ allow(presenter).to receive(:title).and_return(["2018-05-08: Page 1"])
28
+ breadcrumbs = helper.newspaper_breadcrumbs(presenter)
29
+ expect(breadcrumbs[-1]).to eq("Page 1")
30
+ end
31
+
32
+ it 'returns a filtered version of the newspaper issue title' do
33
+ allow(presenter).to receive(:title).and_return(["2018-05-18"])
34
+ breadcrumbs = helper.newspaper_breadcrumbs(presenter)
35
+ expect(breadcrumbs[-1]).to eq("May 18, 2018")
36
+ end
37
+ end
38
+
39
+ describe '#create_breadcrumb_link' do
40
+ it 'returns an array of links' do
41
+ array_for_spec = helper.create_breadcrumb_link(object_type, presenter)
42
+ expect(array_for_spec.class).to eq Array
43
+ expect(array_for_spec.first).to include('href="/concern/newspaper_issues/baz"')
44
+ end
45
+ end
46
+
47
+ describe '#breadcrumb_object_link' do
48
+ it 'returns a link a newspaper object' do
49
+ link_for_spec = helper.breadcrumb_object_link(object_type, 'foo', 'bar')
50
+ expect(link_for_spec).to include('href="/concern/newspaper_issues/foo"')
51
+ end
52
+ end
53
+
54
+ describe 'breadcrumb_object_title' do
55
+ it 'returns the page number portion of a string if a page number is included' do
56
+ title_for_spec = helper.breadcrumb_object_title("2018-05-08: Page 1")
57
+ expect(title_for_spec).to eq('Page 1')
58
+ end
59
+
60
+ it 'returns a formatted date if a date is passed without a page number' do
61
+ title_for_spec = helper.breadcrumb_object_title("2018-05-18")
62
+ expect(title_for_spec).to eq("May 18, 2018")
63
+ end
64
+
65
+ it 'returns the original string if neither a page number or date is passed' do
66
+ title_for_spec = helper.breadcrumb_object_title("Foo")
67
+ expect(title_for_spec).to eq("Foo")
68
+ end
69
+ end
70
+
71
+ describe '#previous_page_link' do
72
+ it 'returns a link to the previous page' do
73
+ expect(helper.previous_page_link(presenter)).to include('href="/concern/newspaper_pages/one"')
74
+ end
75
+ end
76
+
77
+ describe '#next_page_link' do
78
+ it 'returns a link to the next page' do
79
+ expect(helper.next_page_link(presenter)).to include('href="/concern/newspaper_pages/three')
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe NewspaperWorksHelper do
4
+ let(:query_term) { 'suffrage' }
5
+ let(:query_params_hash) { { q: query_term } }
6
+ let(:document) { build(:newspaper_page_solr_document) }
7
+
8
+ describe '#iiif_search_anchor' do
9
+ it 'returns the correct string' do
10
+ expect(helper.iiif_search_anchor({})).to eq nil
11
+ expect(helper.iiif_search_anchor(query_params_hash)).to eq("?h=#{query_term}")
12
+ end
13
+ end
14
+
15
+ describe '#search_query' do
16
+ it 'returns the correct string' do
17
+ expect(helper.search_query({})).to eq nil
18
+ expect(helper.search_query(query_params_hash)).to eq(query_term)
19
+ end
20
+ end
21
+
22
+ describe '#render_newspaper_thumbnail_tag' do
23
+ it 'returns a thumbnail link with image and iiif search anchor' do
24
+ result = helper.render_newspaper_thumbnail_tag(document, query_params_hash)
25
+ expect(result).to include "concern/newspaper_pages/#{document[:id]}#?h=#{query_term}"
26
+ end
27
+ end
28
+
29
+ describe '#newspaper_thumbnail_tag' do
30
+ it 'returns a thumbnail' do
31
+ result = helper.newspaper_thumbnail_tag(document)
32
+ expect(result).to include "img src=\"#{document[:thumbnail_path_ss]}"
33
+ end
34
+ end
35
+
36
+ describe '#highlight_matches' do
37
+ let(:hl_fl) { 'all_text_tsimv' }
38
+
39
+ describe 'when highlighting is present in Solr response' do
40
+ before do
41
+ allow(document).to receive(:highlight_field).with(hl_fl).and_return(['foo <em>bar</em> baz'.html_safe])
42
+ end
43
+ it 'returns the matching terms when highlighting present' do
44
+ expect(helper.highlight_matches(document, hl_fl, 'em')).to eq 'bar'
45
+ end
46
+ end
47
+
48
+ describe 'when highlighting is not present' do
49
+ before do
50
+ allow(document).to receive(:highlight_field).with(hl_fl).and_return([])
51
+ end
52
+ it 'returns the matching terms when highlighting present' do
53
+ expect(helper.highlight_matches(document, hl_fl, 'em')).to eq nil
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ require 'misc_shared'
3
+
4
+ RSpec.describe NewspaperWorks::IndexesFullText do
5
+ include_context "shared setup"
6
+
7
+ let(:indexer) { NewspaperPageIndexer.new(sample_work) }
8
+ let(:solr_document) { indexer.generate_solr_document }
9
+ let(:work) { sample_work }
10
+
11
+ before { mk_txt_derivative(work) }
12
+
13
+ describe "#index_full_text" do
14
+ before { indexer.index_full_text(work, solr_document) }
15
+ it "makes a solr_document with full text to index" do
16
+ expect(solr_document.keys).to include 'all_text_timv'
17
+ expect(solr_document.keys).to include 'all_text_tsimv'
18
+ expect(solr_document['all_text_tsimv']).to eq sample_text
19
+ end
20
+ end
21
+
22
+ describe "fulltext discoverability" do
23
+ it "returns the solr_document matching a query" do
24
+ # save will trigger indexing
25
+ expect(work.save).to be true
26
+ # ...and we expect full text to be indexed:
27
+ result = NewspaperPage.where(all_text_timv: 'enigmas')
28
+ expect(result).to include work
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe NewspaperWorks::IndexesPlaceOfPublication do
4
+ let(:ntitle) { NewspaperTitle.new }
5
+ let(:test_indexer) { NewspaperTitleIndexer.new(ntitle) }
6
+ let(:geonames_id) { '4950065' }
7
+ let(:geonames_uri) { "http://sws.geonames.org/#{geonames_id}/" }
8
+ let(:pop) { Hyrax::ControlledVocabularies::Location.new(geonames_uri) }
9
+ # stub this, so we don't make repeated calls to GeoNames API
10
+ let(:geodata) { test_indexer.get_geodata(geonames_id) }
11
+
12
+ describe '#index_pop' do
13
+ let(:solr_doc) { {} }
14
+ before do
15
+ allow(test_indexer).to receive(:get_geodata).and_return(geodata)
16
+ ntitle.place_of_publication = pop
17
+ test_indexer.index_pop(ntitle, solr_doc)
18
+ end
19
+ it 'sets the geodata fields correctly' do
20
+ expect(solr_doc['place_of_publication_state_sim'].first).not_to be_falsey
21
+ expect(solr_doc['place_of_publication_llsim'].first).not_to be_falsey
22
+ end
23
+ end
24
+
25
+ describe '#add_geodata_fields' do
26
+ let(:solr_doc) { {} }
27
+ before { test_indexer.add_geodata_fields(solr_doc) }
28
+ it 'adds the geodata fields' do
29
+ expect(solr_doc['place_of_publication_county_sim'].class).to eq(Array)
30
+ expect(solr_doc['place_of_publication_label_tesim'].class).to eq(Array)
31
+ end
32
+ end
33
+
34
+ describe '#index_pop_geodata' do
35
+ let(:solr_doc) { {} }
36
+ before do
37
+ test_indexer.add_geodata_fields(solr_doc)
38
+ test_indexer.index_pop_geodata(geodata, solr_doc)
39
+ end
40
+ it 'parses the geodata correctly' do
41
+ expect(solr_doc['place_of_publication_city_sim']).to include('Salem')
42
+ expect(solr_doc['place_of_publication_llsim']).to include('42.51954,-70.89672')
43
+ end
44
+ end
45
+
46
+ describe '#get_geodata' do
47
+ it 'returns a hash of structured geodata' do
48
+ expect(geodata.class).to eq(Hash)
49
+ expect(geodata['name']).not_to be_falsey
50
+ expect(geodata['lat']).not_to be_falsey
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe NewspaperWorks::IndexesPublicationDateRange do
4
+ let(:ntitle) { NewspaperTitle.new }
5
+ let(:test_indexer) { NewspaperTitleIndexer.new(ntitle) }
6
+ let(:solr_doc) { {} }
7
+ let(:year) { '1975' }
8
+ let(:year_month) { '1975-05' }
9
+
10
+ describe '#index_pubdate_start' do
11
+ describe 'with year only' do
12
+ before { test_indexer.index_pubdate_start(year, solr_doc) }
13
+ it 'formats YYYY start dates correctly' do
14
+ expect(solr_doc['publication_date_start_dtsi']).to eq("#{year}-01-01T00:00:00Z")
15
+ end
16
+ end
17
+ describe 'with year and month' do
18
+ before { test_indexer.index_pubdate_start(year_month, solr_doc) }
19
+ it 'formats YYYY-MM start dates correctly' do
20
+ expect(solr_doc['publication_date_start_dtsi']).to eq("#{year_month}-01T00:00:00Z")
21
+ end
22
+ end
23
+ end
24
+
25
+ describe '#index_pubdate_end' do
26
+ describe 'with year only' do
27
+ before { test_indexer.index_pubdate_end(year, solr_doc) }
28
+ it 'formats YYYY end dates correctly' do
29
+ expect(solr_doc['publication_date_end_dtsi']).to eq("#{year}-12-31T23:59:59Z")
30
+ end
31
+ end
32
+ describe 'with year and month' do
33
+ before { test_indexer.index_pubdate_end(year_month, solr_doc) }
34
+ it 'formats YYYY-MM end dates correctly' do
35
+ expect(solr_doc['publication_date_end_dtsi']).to eq("#{year_month}-31T23:59:59Z")
36
+ end
37
+ end
38
+ end
39
+ end