dog_biscuits 0.4.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 (272) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +115 -0
  3. data/.codeclimate.yml +52 -0
  4. data/.gitignore +24 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +45 -0
  7. data/.rubocop_todo.yml +92 -0
  8. data/.travis.yml +18 -0
  9. data/CODE_OF_CONDUCT.md +36 -0
  10. data/CONTRIBUTING.md +161 -0
  11. data/Gemfile +40 -0
  12. data/LICENSE +14 -0
  13. data/README.md +98 -0
  14. data/Rakefile +35 -0
  15. data/SUPPORT.md +5 -0
  16. data/bin/console +15 -0
  17. data/bin/setup +7 -0
  18. data/dog_biscuits.gemspec +38 -0
  19. data/lib/dog_biscuits.rb +352 -0
  20. data/lib/dog_biscuits/actors/apply_authorities.rb +32 -0
  21. data/lib/dog_biscuits/actors/singular_attributes.rb +17 -0
  22. data/lib/dog_biscuits/blacklight/commands.rb +118 -0
  23. data/lib/dog_biscuits/configuration.rb +506 -0
  24. data/lib/dog_biscuits/importers/authority.rb +65 -0
  25. data/lib/dog_biscuits/indexers/collection_indexer.rb +10 -0
  26. data/lib/dog_biscuits/indexers/concerns/indexes_common.rb +58 -0
  27. data/lib/dog_biscuits/indexers/conference_item_indexer.rb +17 -0
  28. data/lib/dog_biscuits/indexers/dataset_indexer.rb +25 -0
  29. data/lib/dog_biscuits/indexers/digital_archival_object_indexer.rb +19 -0
  30. data/lib/dog_biscuits/indexers/exam_paper_indexer.rb +10 -0
  31. data/lib/dog_biscuits/indexers/journal_article_indexer.rb +15 -0
  32. data/lib/dog_biscuits/indexers/package_indexer.rb +19 -0
  33. data/lib/dog_biscuits/indexers/published_work_indexer.rb +16 -0
  34. data/lib/dog_biscuits/indexers/thesis_indexer.rb +16 -0
  35. data/lib/dog_biscuits/models/authorities/agent.rb +78 -0
  36. data/lib/dog_biscuits/models/authorities/agents/group.rb +59 -0
  37. data/lib/dog_biscuits/models/authorities/agents/historic_person.rb +55 -0
  38. data/lib/dog_biscuits/models/authorities/agents/organisation.rb +56 -0
  39. data/lib/dog_biscuits/models/authorities/agents/person.rb +75 -0
  40. data/lib/dog_biscuits/models/authorities/concept.rb +91 -0
  41. data/lib/dog_biscuits/models/authorities/concept_scheme.rb +65 -0
  42. data/lib/dog_biscuits/models/authorities/event.rb +74 -0
  43. data/lib/dog_biscuits/models/authorities/place.rb +86 -0
  44. data/lib/dog_biscuits/models/authorities/project.rb +60 -0
  45. data/lib/dog_biscuits/models/authority.rb +42 -0
  46. data/lib/dog_biscuits/models/collections/collection.rb +32 -0
  47. data/lib/dog_biscuits/models/concerns/behaviours/pure_specific_behaviour.rb +17 -0
  48. data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_related.rb +12 -0
  49. data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_scheme.rb +16 -0
  50. data/lib/dog_biscuits/models/concerns/behaviours/validate_label.rb +12 -0
  51. data/lib/dog_biscuits/models/concerns/behaviours/validate_place.rb +12 -0
  52. data/lib/dog_biscuits/models/concerns/behaviours/work_behaviour.rb +21 -0
  53. data/lib/dog_biscuits/models/concerns/extended_solr_document.rb +147 -0
  54. data/lib/dog_biscuits/models/concerns/metadata_properties/archivematica/archivematica.rb +73 -0
  55. data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/access_provided_by.rb +14 -0
  56. data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/country_code.rb +15 -0
  57. data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/hub_dates.rb +17 -0
  58. data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/maintenance_agency_code.rb +15 -0
  59. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/awarding_institution.rb +13 -0
  60. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/edition.rb +13 -0
  61. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/identified_by.rb +14 -0
  62. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part.rb +13 -0
  63. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part_of.rb +14 -0
  64. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/series.rb +13 -0
  65. data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/subtitle.rb +14 -0
  66. data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/presented_at.rb +13 -0
  67. data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/publication_status.rb +13 -0
  68. data/lib/dog_biscuits/models/concerns/metadata_properties/datacite/resource_type_general.rb +13 -0
  69. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/abstract.rb +14 -0
  70. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/access_rights.rb +14 -0
  71. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/bibliographic_citation.rb +13 -0
  72. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/contributor.rb +14 -0
  73. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/creator.rb +14 -0
  74. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date.rb +13 -0
  75. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_accepted.rb +13 -0
  76. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_available.rb +14 -0
  77. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_copyrighted.rb +14 -0
  78. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_created.rb +13 -0
  79. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_issued.rb +14 -0
  80. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/description.rb +14 -0
  81. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/extent.rb +13 -0
  82. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/format.rb +13 -0
  83. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/identifier.rb +13 -0
  84. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/language.rb +17 -0
  85. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/publisher.rb +14 -0
  86. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/resource_type.rb +13 -0
  87. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights.rb +17 -0
  88. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights_holder.rb +14 -0
  89. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/simple_versions.rb +18 -0
  90. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/source.rb +13 -0
  91. data/lib/dog_biscuits/models/concerns/metadata_properties/dc/subject.rb +13 -0
  92. data/lib/dog_biscuits/models/concerns/metadata_properties/dwc/event_date.rb +14 -0
  93. data/lib/dog_biscuits/models/concerns/metadata_properties/edm/edm_rights.rb +13 -0
  94. data/lib/dog_biscuits/models/concerns/metadata_properties/fabio/date_collected.rb +15 -0
  95. data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/based_near.rb +12 -0
  96. data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/foaf_name.rb +16 -0
  97. data/lib/dog_biscuits/models/concerns/metadata_properties/frapo/output_of.rb +18 -0
  98. data/lib/dog_biscuits/models/concerns/metadata_properties/geo/geo.rb +27 -0
  99. data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/country_code.rb +15 -0
  100. data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/place_properties.rb +66 -0
  101. data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/doi.rb +13 -0
  102. data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/isbn.rb +13 -0
  103. data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/official_url.rb +13 -0
  104. data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/orcid.rb +13 -0
  105. data/lib/dog_biscuits/models/concerns/metadata_properties/local/for_indexing.rb +14 -0
  106. data/lib/dog_biscuits/models/concerns/metadata_properties/local/former_identifier.rb +13 -0
  107. data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_authority_terms.rb +22 -0
  108. data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_qualifier.rb +16 -0
  109. data/lib/dog_biscuits/models/concerns/metadata_properties/local/last_access.rb +15 -0
  110. data/lib/dog_biscuits/models/concerns/metadata_properties/local/main_file.rb +24 -0
  111. data/lib/dog_biscuits/models/concerns/metadata_properties/local/module_code.rb +13 -0
  112. data/lib/dog_biscuits/models/concerns/metadata_properties/local/number_of_downloads.rb +14 -0
  113. data/lib/dog_biscuits/models/concerns/metadata_properties/local/packaged_by.rb +13 -0
  114. data/lib/dog_biscuits/models/concerns/metadata_properties/local/readme_file.rb +26 -0
  115. data/lib/dog_biscuits/models/concerns/metadata_properties/local/requestor_email.rb +13 -0
  116. data/lib/dog_biscuits/models/concerns/metadata_properties/mads/related_authority.rb +14 -0
  117. data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/advisor.rb +14 -0
  118. data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/editor.rb +14 -0
  119. data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/funder.rb +13 -0
  120. data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/place_of_publication.rb +13 -0
  121. data/lib/dog_biscuits/models/concerns/metadata_properties/mods/date_valid.rb +14 -0
  122. data/lib/dog_biscuits/models/concerns/metadata_properties/owl/owl_same_as.rb +13 -0
  123. data/lib/dog_biscuits/models/concerns/metadata_properties/premis/has_restriction.rb +15 -0
  124. data/lib/dog_biscuits/models/concerns/metadata_properties/property_sets/person_properties.rb +92 -0
  125. data/lib/dog_biscuits/models/concerns/metadata_properties/pure/managing_organisation.rb +14 -0
  126. data/lib/dog_biscuits/models/concerns/metadata_properties/pure/pure.rb +28 -0
  127. data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdf_type.rb +12 -0
  128. data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdfs_label.rb +14 -0
  129. data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/related_url.rb +13 -0
  130. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/alternate_name.rb +13 -0
  131. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/content_version.rb +13 -0
  132. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_published.rb +13 -0
  133. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_updated.rb +13 -0
  134. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/department.rb +13 -0
  135. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/end_date.rb +13 -0
  136. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/issue_number.rb +13 -0
  137. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/keyword.rb +13 -0
  138. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/location.rb +13 -0
  139. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/pagination.rb +13 -0
  140. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/start_date.rb +13 -0
  141. data/lib/dog_biscuits/models/concerns/metadata_properties/schema/volume_number.rb +13 -0
  142. data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_labels.rb +18 -0
  143. data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_note.rb +13 -0
  144. data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_related.rb +13 -0
  145. data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/date_of_award.rb +13 -0
  146. data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/qualification.rb +17 -0
  147. data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/date_submitted.rb +14 -0
  148. data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/official_url.rb +13 -0
  149. data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/refereed.rb +13 -0
  150. data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_labels.rb +9 -0
  151. data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_metadata.rb +64 -0
  152. data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_rights.rb +10 -0
  153. data/lib/dog_biscuits/models/concerns/model_property_sets/conference_item_metadata.rb +24 -0
  154. data/lib/dog_biscuits/models/concerns/model_property_sets/dataset_metadata.rb +36 -0
  155. data/lib/dog_biscuits/models/concerns/model_property_sets/digital_archival_object_metadata.rb +13 -0
  156. data/lib/dog_biscuits/models/concerns/model_property_sets/exam_paper_metadata.rb +14 -0
  157. data/lib/dog_biscuits/models/concerns/model_property_sets/journal_article_metadata.rb +24 -0
  158. data/lib/dog_biscuits/models/concerns/model_property_sets/package_metadata.rb +13 -0
  159. data/lib/dog_biscuits/models/concerns/model_property_sets/published_work_metadata.rb +26 -0
  160. data/lib/dog_biscuits/models/concerns/model_property_sets/thesis_metadata.rb +17 -0
  161. data/lib/dog_biscuits/models/filesets/file_set.rb +30 -0
  162. data/lib/dog_biscuits/models/to_refactor_or_remove/canvas.rb +15 -0
  163. data/lib/dog_biscuits/models/to_refactor_or_remove/contained_file.rb +13 -0
  164. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_date_certainty.rb +5 -0
  165. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_editorial_note.rb +5 -0
  166. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry.rb +19 -0
  167. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_date.rb +10 -0
  168. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_type.rb +5 -0
  169. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_is_referenced_by.rb +5 -0
  170. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_language.rb +5 -0
  171. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_marginalium.rb +5 -0
  172. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_note.rb +5 -0
  173. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_as_written.rb +5 -0
  174. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor.rb +5 -0
  175. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor_as_written.rb +5 -0
  176. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_note.rb +5 -0
  177. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_person.rb +5 -0
  178. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_place.rb +5 -0
  179. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_role.rb +5 -0
  180. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_as_written.rb +5 -0
  181. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_note.rb +5 -0
  182. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_role.rb +5 -0
  183. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_type.rb +5 -0
  184. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_agent.rb +20 -0
  185. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_place.rb +13 -0
  186. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_section_type.rb +5 -0
  187. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_single_date.rb +10 -0
  188. data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_subject.rb +5 -0
  189. data/lib/dog_biscuits/models/to_refactor_or_remove/entry.rb +59 -0
  190. data/lib/dog_biscuits/models/to_refactor_or_remove/entry/entry_date.rb +17 -0
  191. data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_agent.rb +62 -0
  192. data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_place.rb +28 -0
  193. data/lib/dog_biscuits/models/to_refactor_or_remove/entry/single_date.rb +19 -0
  194. data/lib/dog_biscuits/models/to_refactor_or_remove/folio.rb +42 -0
  195. data/lib/dog_biscuits/models/to_refactor_or_remove/image.rb +25 -0
  196. data/lib/dog_biscuits/models/to_refactor_or_remove/manifest.rb +15 -0
  197. data/lib/dog_biscuits/models/to_refactor_or_remove/register.rb +21 -0
  198. data/lib/dog_biscuits/models/work.rb +37 -0
  199. data/lib/dog_biscuits/models/works/conference_item.rb +37 -0
  200. data/lib/dog_biscuits/models/works/dataset.rb +42 -0
  201. data/lib/dog_biscuits/models/works/digital_archival_object.rb +28 -0
  202. data/lib/dog_biscuits/models/works/exam_paper.rb +33 -0
  203. data/lib/dog_biscuits/models/works/journal_article.rb +37 -0
  204. data/lib/dog_biscuits/models/works/package.rb +47 -0
  205. data/lib/dog_biscuits/models/works/published_work.rb +38 -0
  206. data/lib/dog_biscuits/models/works/thesis.rb +34 -0
  207. data/lib/dog_biscuits/property_mappings/property_mappings.rb +585 -0
  208. data/lib/dog_biscuits/railtie.rb +13 -0
  209. data/lib/dog_biscuits/services/table_based_authority_extended.rb +10 -0
  210. data/lib/dog_biscuits/services/terms.rb +57 -0
  211. data/lib/dog_biscuits/services/terms_service.rb +162 -0
  212. data/lib/dog_biscuits/solr/index_types.rb +33 -0
  213. data/lib/dog_biscuits/validators/concept_related_validator.rb +13 -0
  214. data/lib/dog_biscuits/validators/concept_scheme_member_validator.rb +10 -0
  215. data/lib/dog_biscuits/validators/label_validator.rb +55 -0
  216. data/lib/dog_biscuits/validators/place_validator.rb +10 -0
  217. data/lib/dog_biscuits/version.rb +5 -0
  218. data/lib/dog_biscuits/vocab/borthwick_registers.rb +321 -0
  219. data/lib/dog_biscuits/vocab/generic.rb +204 -0
  220. data/lib/dog_biscuits/vocab/oais_archivematica.rb +116 -0
  221. data/lib/dog_biscuits/vocab/pure_terms.rb +65 -0
  222. data/lib/dog_biscuits/vocab/uketd.rb +45 -0
  223. data/lib/dog_biscuits/vocab/ulcc_terms.rb +55 -0
  224. data/lib/generators/dog_biscuits/USAGE +50 -0
  225. data/lib/generators/dog_biscuits/authority_generator.rb +55 -0
  226. data/lib/generators/dog_biscuits/catalog_generator.rb +18 -0
  227. data/lib/generators/dog_biscuits/dates_generator.rb +98 -0
  228. data/lib/generators/dog_biscuits/generate_all_generator.rb +29 -0
  229. data/lib/generators/dog_biscuits/imagify_generator.rb +67 -0
  230. data/lib/generators/dog_biscuits/install_generator.rb +82 -0
  231. data/lib/generators/dog_biscuits/locales_generator.rb +20 -0
  232. data/lib/generators/dog_biscuits/schema_org_generator.rb +20 -0
  233. data/lib/generators/dog_biscuits/templates/_date_template.html.erb +7 -0
  234. data/lib/generators/dog_biscuits/templates/app/controllers/catalog_controller.rb +133 -0
  235. data/lib/generators/dog_biscuits/templates/app/helpers/dog_biscuits_helper.rb +43 -0
  236. data/lib/generators/dog_biscuits/templates/app/renderers/package_ids_renderer.rb +13 -0
  237. data/lib/generators/dog_biscuits/templates/app/renderers/packaged_by_ids_renderer.rb +11 -0
  238. data/lib/generators/dog_biscuits/templates/app/renderers/publication_status_renderer.rb +16 -0
  239. data/lib/generators/dog_biscuits/templates/app/services/concerns/file_authority_concern.rb +14 -0
  240. data/lib/generators/dog_biscuits/templates/app/services/concerns/local_authority_concern.rb +18 -0
  241. data/lib/generators/dog_biscuits/templates/app/services/local_form_metadata_service.rb +15 -0
  242. data/lib/generators/dog_biscuits/templates/app/views/hyrax/base/_form_metadata.html.erb +23 -0
  243. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_abstract.html.erb +5 -0
  244. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_default.html.erb +6 -0
  245. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_funder.html.erb +8 -0
  246. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_note.html.erb +5 -0
  247. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_part_of.html.erb +17 -0
  248. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_publication_status.html.erb +6 -0
  249. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_refereed.html.erb +5 -0
  250. data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_resource_type_general.html.erb +2 -0
  251. data/lib/generators/dog_biscuits/templates/authority_service.rb.erb +25 -0
  252. data/lib/generators/dog_biscuits/templates/config/authorities/content_versions.yml +25 -0
  253. data/lib/generators/dog_biscuits/templates/config/authorities/publication_statuses.yml +19 -0
  254. data/lib/generators/dog_biscuits/templates/config/authorities/qualification_levels.yml +13 -0
  255. data/lib/generators/dog_biscuits/templates/config/authorities/qualification_names.yml +31 -0
  256. data/lib/generators/dog_biscuits/templates/config/authorities/resource_type_generals.yml +47 -0
  257. data/lib/generators/dog_biscuits/templates/config/dog_biscuits.yml +3 -0
  258. data/lib/generators/dog_biscuits/templates/config/initializers/catalog_search_builder_overrides.rb +18 -0
  259. data/lib/generators/dog_biscuits/templates/config/initializers/dog_biscuits.rb +144 -0
  260. data/lib/generators/dog_biscuits/templates/dog_biscuits.en.yml.erb +11 -0
  261. data/lib/generators/dog_biscuits/templates/schema_org.yml.erb +4 -0
  262. data/lib/generators/dog_biscuits/work/USAGE +35 -0
  263. data/lib/generators/dog_biscuits/work/templates/README +31 -0
  264. data/lib/generators/dog_biscuits/work/templates/_attribute_rows.html.erb +22 -0
  265. data/lib/generators/dog_biscuits/work/templates/actor.rb.erb +25 -0
  266. data/lib/generators/dog_biscuits/work/templates/form.rb.erb +18 -0
  267. data/lib/generators/dog_biscuits/work/templates/indexer.rb.erb +23 -0
  268. data/lib/generators/dog_biscuits/work/templates/model.rb.erb +16 -0
  269. data/lib/generators/dog_biscuits/work/templates/presenter.rb.erb +20 -0
  270. data/lib/generators/dog_biscuits/work/work_generator.rb +102 -0
  271. data/lib/tasks/authorities.rake +22 -0
  272. metadata +476 -0
data/Gemfile ADDED
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in dog_biscuits.gemspec
6
+ gemspec
7
+ # BEGIN ENGINE_CART BLOCK
8
+ # engine_cart: 1.1.0
9
+ # engine_cart stanza: 0.10.0
10
+ # the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
11
+ file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
12
+ if File.exist?(file)
13
+ begin
14
+ eval_gemfile file
15
+ rescue Bundler::GemfileError => e
16
+ Bundler.ui.warn '[EngineCart] Skipping Rails application dependencies:'
17
+ Bundler.ui.warn e.message
18
+ end
19
+ else
20
+ Bundler.ui.warn "[EngineCart] Unable to find test application dependencies in #{file}, using placeholder dependencies"
21
+
22
+ if ENV['RAILS_VERSION']
23
+ if ENV['RAILS_VERSION'] == 'edge'
24
+ gem 'rails', github: 'rails/rails'
25
+ ENV['ENGINE_CART_RAILS_OPTIONS'] = '--edge --skip-turbolinks'
26
+ else
27
+ gem 'rails', ENV['RAILS_VERSION']
28
+ end
29
+ end
30
+
31
+ case ENV['RAILS_VERSION']
32
+ when /^4.2/
33
+ gem 'coffee-rails', '~> 4.1.0'
34
+ gem 'responders', '~> 2.0'
35
+ gem 'sassc'
36
+ when /^4.[01]/
37
+ gem 'sass-rails', '< 5.0'
38
+ end
39
+ end
40
+ # END ENGINE_CART BLOCK
data/LICENSE ADDED
@@ -0,0 +1,14 @@
1
+ Copyright 2017 University of London and University of York
2
+ Additional copyright may be held by others, as reflected in the commit history.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
data/README.md ADDED
@@ -0,0 +1,98 @@
1
+ # DogBiscuits
2
+
3
+ Code: [![Build Status](https://travis-ci.org/samvera-labs/dog_biscuits.svg?branch=cleanup)](https://travis-ci.org/samvera-labs/dog_biscuits)
4
+ [![Coverage Status](https://coveralls.io/repos/github/samvera-labs/dog_biscuits/badge.svg?branch=master)](https://coveralls.io/github/samvera-labs/dog_biscuits?branch=master)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/10912dcb2451a6c4490c/maintainability)](https://codeclimate.com/github/samvera-labs/dog_biscuits/maintainability)
6
+ [![Inline docs](http://inch-ci.org/github/samvera-labs/dog_biscuits.svg?branch=master)](http://inch-ci.org/github/samvera-labs/dog_biscuits)
7
+ [![Gem Version](https://badge.fury.io/rb/dog_biscuits.svg)](https://badge.fury.io/rb/dog_biscuits)
8
+
9
+ Docs:
10
+ [![Documentation](http://img.shields.io/badge/DOCUMENTATION-wiki-blue.svg)](https://github.com/samvera-labs/dog_biscuits/wiki)
11
+ [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
12
+ [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE)
13
+
14
+ Models, vocabularies and behaviours for Hyrax applications :dog: :cookie:
15
+
16
+ ## Product Owner
17
+
18
+ Julie Allinson [geekscruff](https://github.com/geekscruff)
19
+
20
+ ## Installation
21
+
22
+ For use within [Hyrax 2](https://github.com/samvera/hyrax) applications.
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'dog_biscuits', :git => 'git://github.com/geekscruff/dog_biscuits.git'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ $ bundle install
33
+
34
+ Or install it yourself as:
35
+
36
+ $ gem install dog_biscuits
37
+
38
+ Run the generator
39
+
40
+ $ rails generate dog_biscuits:install
41
+
42
+ The installer adds some new field templates in `views/hyrax/records/edit_fields`:
43
+
44
+ * abstract - show as a paragraph
45
+ * funder - use the crossref fundref autosuggest service
46
+ * note - show as a paragraph
47
+ * part_of - for JournalArticle use the crossref journals autosuggest service
48
+ * publication_status - use a file_based authority (from config/authorities)
49
+ * refereeed - show radio buttons for Yes and No
50
+ * resource_type_general - use a file_based authority (from config/authorities)
51
+
52
+ Removing these will default back to standard text field display
53
+
54
+ ## Generate Works
55
+
56
+ Run the work generator
57
+
58
+ $ rails generate dog_biscuits:work WorkName
59
+
60
+ If the work is not supported, the generator will give you a list of supported models.
61
+
62
+ Add the --skipmodel flag leave the model and indexer unchanged (eg. when you have custom properties in the model and/or custom indexing).
63
+
64
+ ## Configure Works
65
+
66
+ Edit `config/initializers/dog_biscuits.rb` to configure the properties used by your work - see the comments in that file for details.
67
+
68
+ ## Dates
69
+
70
+ ### Date slider in search results
71
+
72
+ Add `blacklight_range_limit` by setting the following flag in `config/initializers/dog_biscuits.rb`:
73
+
74
+ ```
75
+ config.date_range = true
76
+ ```
77
+
78
+ Then run:
79
+
80
+ $ rails generate dog_biscuits:dates
81
+
82
+ ### Date picker in edit form
83
+
84
+ Control date fields with a date picker by setting the following flag in `config/initializers/dog_biscuits.rb`:
85
+
86
+ ```
87
+ config.date_picker = true
88
+ ```
89
+
90
+ Change which fields are controlled by the picker by changing `config.date_properties` in `config/initializers/dog_biscuits.rb`. The default is all date fields.
91
+
92
+ Then run:
93
+
94
+ $ rails generate dog_biscuits:dates
95
+
96
+ ## Documentation
97
+
98
+ Further documentation is available in the [wiki](https://github.com/samvera-labs/dog_biscuits/wiki).
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
5
+ require 'solr_wrapper' # necessary for rake_support to work
6
+ require 'fcrepo_wrapper' # necessary for rake_support to work
7
+ require 'engine_cart/rake_task'
8
+ require 'rubocop/rake_task'
9
+ require 'active_fedora/rake_support'
10
+
11
+ Bundler::GemHelper.install_tasks
12
+
13
+ desc 'Run style checker'
14
+ RuboCop::RakeTask.new(:rubocop) do |task|
15
+ task.fail_on_error = true
16
+ end
17
+
18
+ RSpec::Core::RakeTask.new(:spec)
19
+
20
+ desc 'Spin up test servers and run specs'
21
+ task :spec_with_app_load do
22
+ with_test_server do
23
+ Rake::Task['spec'].invoke
24
+ end
25
+ end
26
+
27
+ desc 'Generate the engine_cart, spin up test servers and run specs'
28
+ task ci: ['rubocop', 'engine_cart:generate'] do
29
+ puts 'running continuous integration'
30
+ Rake::Task['spec_with_app_load'].invoke
31
+ end
32
+
33
+ Dir.glob('lib/tasks/*.rake').each { |r| import r }
34
+
35
+ task default: :ci
data/SUPPORT.md ADDED
@@ -0,0 +1,5 @@
1
+ If you would like to report an issue, first search [the list of issues](https://github.com/samvera/questioning_authority/issues/) to see if someone else has already reported it, and then feel free to [create a new issue](https://github.com/samvera/questioning_authority/issues/new).
2
+
3
+ If you have questions or need help, please email [the Samvera community tech list](https://groups.google.com/forum/#!forum/samvera-tech) or stop by the #dev channel in [the Samvera community Slack team](https://wiki.duraspace.org/pages/viewpage.action?pageId=87460391#Getintouch!-Slack).
4
+
5
+ You can learn more about the various Samvera communication channels on the [Get in touch!](https://wiki.duraspace.org/pages/viewpage.action?pageId=87460391) wiki page.
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler/setup'
5
+ require 'dog_biscuits'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require 'irb'
15
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
+
7
+ require 'dog_biscuits/version'
8
+
9
+ Gem::Specification.new do |spec|
10
+ spec.name = 'dog_biscuits'
11
+ spec.version = DogBiscuits::VERSION
12
+ spec.authors = ['Julie Allinson']
13
+ spec.email = ['julie.allinson@london.ac.uk']
14
+
15
+ spec.summary = 'DogBiscuits provides re-usable models, vocabularies and other services for Hyrax applications.'
16
+ spec.description = 'DogBiscuits provides re-usable models, vocabularies and other services for Hyrax applications.'
17
+ spec.homepage = 'https://github.com/samvera-labs/dog_biscuits'
18
+ spec.license = 'APACHE2'
19
+
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
+ spec.bindir = 'exe'
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ['lib']
25
+
26
+ spec.add_dependency 'hyrax', '>= 2', '< 3'
27
+
28
+ spec.add_development_dependency 'bixby'
29
+ spec.add_development_dependency 'coveralls'
30
+ spec.add_development_dependency 'engine_cart'
31
+ spec.add_development_dependency 'factory_bot_rails', '~> 4.11'
32
+ spec.add_development_dependency 'fcrepo_wrapper'
33
+ spec.add_development_dependency 'rspec'
34
+ spec.add_development_dependency 'rspec-rails'
35
+ spec.add_development_dependency 'simplecov'
36
+ spec.add_development_dependency 'solr_wrapper'
37
+ spec.add_development_dependency 'webmock'
38
+ end
@@ -0,0 +1,352 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DogBiscuits
4
+ extend ActiveSupport::Autoload
5
+ require 'dog_biscuits/railtie' if defined?(Rails)
6
+
7
+ eager_autoload do
8
+ autoload :Configuration
9
+ end
10
+
11
+ module Actors
12
+ extend ActiveSupport::Autoload
13
+ eager_autoload do
14
+ autoload :ApplyAuthorities
15
+ autoload :SingularAttributes
16
+ end
17
+ end
18
+
19
+ module Blacklight
20
+ extend ActiveSupport::Autoload
21
+ eager_autoload do
22
+ autoload :Commands
23
+ end
24
+ end
25
+
26
+ module Importers
27
+ extend ActiveSupport::Autoload
28
+ eager_autoload do
29
+ autoload :Authority
30
+ end
31
+ end
32
+
33
+ module Solr
34
+ extend ActiveSupport::Autoload
35
+ eager_autoload do
36
+ autoload :IndexTypes
37
+ end
38
+ end
39
+
40
+ module Vocab
41
+ extend ActiveSupport::Autoload
42
+ eager_autoload do
43
+ autoload :Generic
44
+ autoload :BorthwickRegisters
45
+ autoload :OaisArchivematica
46
+ autoload :PureTerms
47
+ autoload :Uketd
48
+ autoload :LocalResourceTerms
49
+ autoload :UlccTerms
50
+ end
51
+ end
52
+
53
+ autoload_under 'property_mappings' do
54
+ autoload :PropertyMappings
55
+ end
56
+
57
+ autoload_under 'services' do
58
+ autoload :Terms
59
+ autoload :TermsService
60
+ autoload :TableBasedAuthorityExtended
61
+ end
62
+
63
+ autoload_under 'models' do
64
+ autoload :Work
65
+ autoload :Authority
66
+ end
67
+
68
+ autoload_under 'models/authorities' do
69
+ autoload :Concept
70
+ autoload :ConceptScheme
71
+ autoload :Event
72
+ autoload :Place
73
+ autoload :Agent
74
+ autoload :Project
75
+ end
76
+ autoload_under 'models/authorities/agents' do
77
+ autoload :Group
78
+ autoload :HistoricPerson
79
+ autoload :Organisation
80
+ autoload :Person
81
+ end
82
+
83
+ autoload_under 'models/collections' do
84
+ autoload :Collection
85
+ end
86
+ autoload_under 'models/filesets' do
87
+ autoload :FileSet
88
+ end
89
+ autoload_under 'models/works' do
90
+ autoload :ConferenceItem
91
+ autoload :Dataset
92
+ autoload :DigitalArchivalObject
93
+ autoload :ExamPaper
94
+ autoload :JournalArticle
95
+ autoload :Package
96
+ autoload :PublishedWork
97
+ autoload :Thesis
98
+ end
99
+
100
+ autoload_under 'models/concerns' do
101
+ autoload :ExtendedSolrDocument
102
+ end
103
+
104
+ autoload_under 'models/concerns/model_property_sets' do
105
+ autoload :AgentMetadata
106
+ autoload :ConferenceItemMetadata
107
+ autoload :DatasetMetadata
108
+ autoload :DigitalArchivalObjectMetadata
109
+ autoload :ExamPaperMetadata
110
+ autoload :JournalArticleMetadata
111
+ autoload :PackageMetadata
112
+ autoload :PublishedWorkMetadata
113
+ autoload :ThesisMetadata
114
+ end
115
+
116
+ autoload_under 'models/concerns/model_property_sets/common' do
117
+ autoload :CommonLabels
118
+ autoload :CommonMetadata
119
+ autoload :CommonRights
120
+ end
121
+
122
+ autoload_under 'models/concerns/metadata_properties/archivematica' do
123
+ autoload :Archivematica
124
+ end
125
+
126
+ autoload_under 'models/concerns/metadata_properties/archives_hub' do
127
+ autoload :AccessProvidedBy
128
+ autoload :MaintenanceAgencyCode
129
+ autoload :HubDates
130
+ end
131
+
132
+ autoload_under 'models/concerns/metadata_properties/bibframe' do
133
+ autoload :AwardingInstitution
134
+ autoload :DateValid
135
+ autoload :Edition
136
+ autoload :IdentifiedBy
137
+ autoload :InJournal
138
+ autoload :OriginDate
139
+ autoload :Part
140
+ autoload :PartOf
141
+ autoload :Series
142
+ autoload :Subtitle
143
+ end
144
+
145
+ autoload_under 'models/concerns/metadata_properties/bibo' do
146
+ autoload :PresentedAt
147
+ autoload :PublicationStatus
148
+ end
149
+
150
+ autoload_under 'models/concerns/metadata_properties/datacite' do
151
+ autoload :ResourceTypeGeneral
152
+ end
153
+
154
+ autoload_under 'models/concerns/metadata_properties/dc' do
155
+ autoload :Abstract
156
+ autoload :AccessRights
157
+ autoload :BibliographicCitation
158
+ autoload :Creator
159
+ autoload :Contributor
160
+ autoload :Date
161
+ autoload :DateAccepted
162
+ autoload :DateAvailable
163
+ autoload :DateCopyrighted
164
+ autoload :DateCreated
165
+ autoload :DateIssued
166
+ autoload :Description
167
+ autoload :Extent
168
+ autoload :Format
169
+ autoload :Identifier
170
+ autoload :Language
171
+ autoload :Publisher
172
+ autoload :ResourceType
173
+ autoload :Rights
174
+ autoload :RightsHolder
175
+ autoload :Source
176
+ autoload :Subject
177
+ # autoload :Title # part of CoreMetadata
178
+ autoload :SimpleVersions
179
+ end
180
+
181
+ autoload_under 'models/concerns/metadata_properties/dwc' do
182
+ autoload :EventDate
183
+ end
184
+
185
+ autoload_under 'models/concerns/metadata_properties/local' do
186
+ autoload :ForIndexing
187
+ autoload :FormerIdentifier
188
+ autoload :GenericAuthorityTerms
189
+ autoload :ModuleCode
190
+ autoload :GenericQualifier
191
+ autoload :LastAccess
192
+ autoload :MainFile
193
+ autoload :NumberOfDownloads
194
+ autoload :PackagedBy
195
+ autoload :ReadmeFile
196
+ autoload :RequestorEmail
197
+ end
198
+
199
+ autoload_under 'models/concerns/metadata_properties/edm' do
200
+ autoload :EdmRights
201
+ end
202
+
203
+ autoload_under 'models/concerns/metadata_properties/fabio' do
204
+ autoload :DateCollected
205
+ end
206
+
207
+ autoload_under 'models/concerns/metadata_properties/foaf' do
208
+ autoload :BasedNear
209
+ autoload :FoafName
210
+ end
211
+
212
+ autoload_under 'models/concerns/metadata_properties/frapo' do
213
+ autoload :OutputOf
214
+ end
215
+
216
+ autoload_under 'models/concerns/metadata_properties/geo' do
217
+ autoload :Geo
218
+ end
219
+
220
+ autoload_under 'models/concerns/metadata_properties/geonames' do
221
+ autoload :CountryCode
222
+ autoload :PlaceProperties
223
+ end
224
+
225
+ autoload_under 'models/concerns/metadata_properties/lc_identifiers' do
226
+ autoload :Doi
227
+ autoload :Isbn
228
+ autoload :OfficialUrl
229
+ autoload :Orcid
230
+ end
231
+
232
+ autoload_under 'models/concerns/metadata_properties/mads' do
233
+ autoload :RelatedAuthority
234
+ end
235
+
236
+ autoload_under 'models/concerns/metadata_properties/mods' do
237
+ autoload :DateValid
238
+ end
239
+
240
+ autoload_under 'models/concerns/metadata_properties/marc_relators' do
241
+ autoload :Advisor
242
+ autoload :Funder
243
+ autoload :Editor
244
+ autoload :PlaceOfPublication
245
+ end
246
+
247
+ autoload_under 'models/concerns/metadata_properties/owl' do
248
+ autoload :OwlSameAs
249
+ end
250
+
251
+ autoload_under 'models/concerns/metadata_properties/premis' do
252
+ autoload :HasRestriction
253
+ end
254
+
255
+ autoload_under 'models/concerns/metadata_properties/property_sets' do
256
+ autoload :PersonProperties
257
+ end
258
+
259
+ autoload_under 'models/concerns/metadata_properties/pure' do
260
+ autoload :Pure
261
+ autoload :ManagingOrganisation
262
+ end
263
+
264
+ autoload_under 'models/concerns/metadata_properties/rdf' do
265
+ autoload :RdfType
266
+ autoload :RelatedUrl
267
+ autoload :RdfsLabel
268
+ end
269
+
270
+ autoload_under 'models/concerns/metadata_properties/schema' do
271
+ autoload :ContentVersion
272
+ autoload :DateUpdated
273
+ autoload :DatePublished
274
+ autoload :Department
275
+ autoload :EndDate
276
+ autoload :IssueNumber
277
+ autoload :Location
278
+ autoload :Keyword
279
+ autoload :Pagination
280
+ autoload :StartDate
281
+ autoload :VolumeNumber
282
+ autoload :AlternateName
283
+ end
284
+
285
+ autoload_under 'models/concerns/metadata_properties/skos' do
286
+ autoload :SkosLabels
287
+ autoload :SkosNote
288
+ autoload :SkosRelated
289
+ end
290
+
291
+ autoload_under 'models/concerns/metadata_properties/vivo' do
292
+ end
293
+
294
+ autoload_under 'models/concerns/metadata_properties/uketd' do
295
+ autoload :DateOfAward
296
+ autoload :Qualification
297
+ end
298
+
299
+ autoload_under 'models/concerns/metadata_properties/ulcc' do
300
+ autoload :DateSubmitted
301
+ autoload :Refereed
302
+ end
303
+
304
+ autoload_under 'models/concerns/behaviours' do
305
+ # Behaviour
306
+ autoload :WorkBehaviour
307
+ autoload :PureSpecificBehaviour
308
+ # Validations
309
+ autoload :ValidateConceptScheme
310
+ autoload :ValidateConceptRelated
311
+ autoload :ValidateLabel
312
+ autoload :ValidatePlace
313
+ end
314
+
315
+ autoload_under 'indexers' do
316
+ # Indexer classes
317
+ autoload :ConferenceItemIndexer
318
+ autoload :DatasetIndexer
319
+ autoload :DigitalArchivalObjectIndexer
320
+ autoload :ExamPaperIndexer
321
+ autoload :JournalArticleIndexer
322
+ autoload :PackageIndexer
323
+ autoload :PublishedWorkIndexer
324
+ autoload :ThesisIndexer
325
+ end
326
+ autoload_under 'indexers/concerns' do
327
+ # Indexer modules
328
+ autoload :IndexesCommon
329
+ end
330
+
331
+ autoload_under 'validators' do
332
+ autoload :LabelValidator
333
+ autoload :PlaceValidator
334
+ autoload :ConceptSchemeMemberValidator
335
+ autoload :ConceptRelatedValidator
336
+ end
337
+
338
+ # @api public
339
+ #
340
+ # Exposes the DogBiscuits configuration
341
+ #
342
+ # @yield [DogBiscuits::Configuration] if a block is passed
343
+ # @return [DogBiscuits::Configuration]
344
+ # @see DogBiscuits::Configuration for configuration options
345
+ def self.config(&block)
346
+ @config ||= DogBiscuits::Configuration.new
347
+
348
+ yield @config if block
349
+
350
+ @config
351
+ end
352
+ end