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.
- checksums.yaml +7 -0
- data/.circleci/config.yml +115 -0
- data/.codeclimate.yml +52 -0
- data/.gitignore +24 -0
- data/.rspec +3 -0
- data/.rubocop.yml +45 -0
- data/.rubocop_todo.yml +92 -0
- data/.travis.yml +18 -0
- data/CODE_OF_CONDUCT.md +36 -0
- data/CONTRIBUTING.md +161 -0
- data/Gemfile +40 -0
- data/LICENSE +14 -0
- data/README.md +98 -0
- data/Rakefile +35 -0
- data/SUPPORT.md +5 -0
- data/bin/console +15 -0
- data/bin/setup +7 -0
- data/dog_biscuits.gemspec +38 -0
- data/lib/dog_biscuits.rb +352 -0
- data/lib/dog_biscuits/actors/apply_authorities.rb +32 -0
- data/lib/dog_biscuits/actors/singular_attributes.rb +17 -0
- data/lib/dog_biscuits/blacklight/commands.rb +118 -0
- data/lib/dog_biscuits/configuration.rb +506 -0
- data/lib/dog_biscuits/importers/authority.rb +65 -0
- data/lib/dog_biscuits/indexers/collection_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/concerns/indexes_common.rb +58 -0
- data/lib/dog_biscuits/indexers/conference_item_indexer.rb +17 -0
- data/lib/dog_biscuits/indexers/dataset_indexer.rb +25 -0
- data/lib/dog_biscuits/indexers/digital_archival_object_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/exam_paper_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/journal_article_indexer.rb +15 -0
- data/lib/dog_biscuits/indexers/package_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/published_work_indexer.rb +16 -0
- data/lib/dog_biscuits/indexers/thesis_indexer.rb +16 -0
- data/lib/dog_biscuits/models/authorities/agent.rb +78 -0
- data/lib/dog_biscuits/models/authorities/agents/group.rb +59 -0
- data/lib/dog_biscuits/models/authorities/agents/historic_person.rb +55 -0
- data/lib/dog_biscuits/models/authorities/agents/organisation.rb +56 -0
- data/lib/dog_biscuits/models/authorities/agents/person.rb +75 -0
- data/lib/dog_biscuits/models/authorities/concept.rb +91 -0
- data/lib/dog_biscuits/models/authorities/concept_scheme.rb +65 -0
- data/lib/dog_biscuits/models/authorities/event.rb +74 -0
- data/lib/dog_biscuits/models/authorities/place.rb +86 -0
- data/lib/dog_biscuits/models/authorities/project.rb +60 -0
- data/lib/dog_biscuits/models/authority.rb +42 -0
- data/lib/dog_biscuits/models/collections/collection.rb +32 -0
- data/lib/dog_biscuits/models/concerns/behaviours/pure_specific_behaviour.rb +17 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_related.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_scheme.rb +16 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_label.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_place.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/work_behaviour.rb +21 -0
- data/lib/dog_biscuits/models/concerns/extended_solr_document.rb +147 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archivematica/archivematica.rb +73 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/access_provided_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/hub_dates.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/maintenance_agency_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/awarding_institution.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/edition.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/identified_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part_of.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/series.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/subtitle.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/presented_at.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/publication_status.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/datacite/resource_type_general.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/abstract.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/access_rights.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/bibliographic_citation.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/contributor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/creator.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_accepted.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_available.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_copyrighted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_created.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_issued.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/description.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/extent.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/format.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/language.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/publisher.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/resource_type.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights_holder.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/simple_versions.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/source.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/subject.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dwc/event_date.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/edm/edm_rights.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/fabio/date_collected.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/based_near.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/foaf_name.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/frapo/output_of.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geo/geo.rb +27 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/place_properties.rb +66 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/doi.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/isbn.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/orcid.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/for_indexing.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/former_identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_authority_terms.rb +22 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_qualifier.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/last_access.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/main_file.rb +24 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/module_code.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/number_of_downloads.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/packaged_by.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/readme_file.rb +26 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/requestor_email.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mads/related_authority.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/advisor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/editor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/funder.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/place_of_publication.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mods/date_valid.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/owl/owl_same_as.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/premis/has_restriction.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/property_sets/person_properties.rb +92 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/managing_organisation.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/pure.rb +28 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdf_type.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdfs_label.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/related_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/alternate_name.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/content_version.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_published.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_updated.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/department.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/end_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/issue_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/keyword.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/location.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/pagination.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/start_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/volume_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_labels.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_note.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_related.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/date_of_award.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/qualification.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/date_submitted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/refereed.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_labels.rb +9 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_metadata.rb +64 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_rights.rb +10 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/conference_item_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/dataset_metadata.rb +36 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/digital_archival_object_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/exam_paper_metadata.rb +14 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/journal_article_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/package_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/published_work_metadata.rb +26 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/thesis_metadata.rb +17 -0
- data/lib/dog_biscuits/models/filesets/file_set.rb +30 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/canvas.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/contained_file.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_date_certainty.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_editorial_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_is_referenced_by.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_language.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_marginalium.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_person.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_place.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_agent.rb +20 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_place.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_section_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_single_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_subject.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry.rb +59 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/entry_date.rb +17 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_agent.rb +62 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_place.rb +28 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/single_date.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/folio.rb +42 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/image.rb +25 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/manifest.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/register.rb +21 -0
- data/lib/dog_biscuits/models/work.rb +37 -0
- data/lib/dog_biscuits/models/works/conference_item.rb +37 -0
- data/lib/dog_biscuits/models/works/dataset.rb +42 -0
- data/lib/dog_biscuits/models/works/digital_archival_object.rb +28 -0
- data/lib/dog_biscuits/models/works/exam_paper.rb +33 -0
- data/lib/dog_biscuits/models/works/journal_article.rb +37 -0
- data/lib/dog_biscuits/models/works/package.rb +47 -0
- data/lib/dog_biscuits/models/works/published_work.rb +38 -0
- data/lib/dog_biscuits/models/works/thesis.rb +34 -0
- data/lib/dog_biscuits/property_mappings/property_mappings.rb +585 -0
- data/lib/dog_biscuits/railtie.rb +13 -0
- data/lib/dog_biscuits/services/table_based_authority_extended.rb +10 -0
- data/lib/dog_biscuits/services/terms.rb +57 -0
- data/lib/dog_biscuits/services/terms_service.rb +162 -0
- data/lib/dog_biscuits/solr/index_types.rb +33 -0
- data/lib/dog_biscuits/validators/concept_related_validator.rb +13 -0
- data/lib/dog_biscuits/validators/concept_scheme_member_validator.rb +10 -0
- data/lib/dog_biscuits/validators/label_validator.rb +55 -0
- data/lib/dog_biscuits/validators/place_validator.rb +10 -0
- data/lib/dog_biscuits/version.rb +5 -0
- data/lib/dog_biscuits/vocab/borthwick_registers.rb +321 -0
- data/lib/dog_biscuits/vocab/generic.rb +204 -0
- data/lib/dog_biscuits/vocab/oais_archivematica.rb +116 -0
- data/lib/dog_biscuits/vocab/pure_terms.rb +65 -0
- data/lib/dog_biscuits/vocab/uketd.rb +45 -0
- data/lib/dog_biscuits/vocab/ulcc_terms.rb +55 -0
- data/lib/generators/dog_biscuits/USAGE +50 -0
- data/lib/generators/dog_biscuits/authority_generator.rb +55 -0
- data/lib/generators/dog_biscuits/catalog_generator.rb +18 -0
- data/lib/generators/dog_biscuits/dates_generator.rb +98 -0
- data/lib/generators/dog_biscuits/generate_all_generator.rb +29 -0
- data/lib/generators/dog_biscuits/imagify_generator.rb +67 -0
- data/lib/generators/dog_biscuits/install_generator.rb +82 -0
- data/lib/generators/dog_biscuits/locales_generator.rb +20 -0
- data/lib/generators/dog_biscuits/schema_org_generator.rb +20 -0
- data/lib/generators/dog_biscuits/templates/_date_template.html.erb +7 -0
- data/lib/generators/dog_biscuits/templates/app/controllers/catalog_controller.rb +133 -0
- data/lib/generators/dog_biscuits/templates/app/helpers/dog_biscuits_helper.rb +43 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/package_ids_renderer.rb +13 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/packaged_by_ids_renderer.rb +11 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/publication_status_renderer.rb +16 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/file_authority_concern.rb +14 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/local_authority_concern.rb +18 -0
- data/lib/generators/dog_biscuits/templates/app/services/local_form_metadata_service.rb +15 -0
- data/lib/generators/dog_biscuits/templates/app/views/hyrax/base/_form_metadata.html.erb +23 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_abstract.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_default.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_funder.html.erb +8 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_note.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_part_of.html.erb +17 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_publication_status.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_refereed.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_resource_type_general.html.erb +2 -0
- data/lib/generators/dog_biscuits/templates/authority_service.rb.erb +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/content_versions.yml +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/publication_statuses.yml +19 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_levels.yml +13 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_names.yml +31 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/resource_type_generals.yml +47 -0
- data/lib/generators/dog_biscuits/templates/config/dog_biscuits.yml +3 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/catalog_search_builder_overrides.rb +18 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/dog_biscuits.rb +144 -0
- data/lib/generators/dog_biscuits/templates/dog_biscuits.en.yml.erb +11 -0
- data/lib/generators/dog_biscuits/templates/schema_org.yml.erb +4 -0
- data/lib/generators/dog_biscuits/work/USAGE +35 -0
- data/lib/generators/dog_biscuits/work/templates/README +31 -0
- data/lib/generators/dog_biscuits/work/templates/_attribute_rows.html.erb +22 -0
- data/lib/generators/dog_biscuits/work/templates/actor.rb.erb +25 -0
- data/lib/generators/dog_biscuits/work/templates/form.rb.erb +18 -0
- data/lib/generators/dog_biscuits/work/templates/indexer.rb.erb +23 -0
- data/lib/generators/dog_biscuits/work/templates/model.rb.erb +16 -0
- data/lib/generators/dog_biscuits/work/templates/presenter.rb.erb +20 -0
- data/lib/generators/dog_biscuits/work/work_generator.rb +102 -0
- data/lib/tasks/authorities.rake +22 -0
- metadata +476 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Install Generator
|
|
3
|
+
This generator makes the following changes to your application:
|
|
4
|
+
1. Adds dog_biscuits initializer and config
|
|
5
|
+
2. Includes DogBiscuits::ExtendedSolrDocument in the SolrDocument
|
|
6
|
+
3. Runs the authorities, locales and schema_org generators
|
|
7
|
+
4. Adds various new files into app/
|
|
8
|
+
5. Runs the dates generator if date_picker or date_range are true
|
|
9
|
+
|
|
10
|
+
Generate All Generator
|
|
11
|
+
This generator makes the following changes to your application:
|
|
12
|
+
1. Runs the work generator for all selected models
|
|
13
|
+
2. Runs the locales generator
|
|
14
|
+
3. Runs the schema_org generator
|
|
15
|
+
|
|
16
|
+
Authority Generator:
|
|
17
|
+
This generator makes the following changes to your application:
|
|
18
|
+
1. Copies authorities into config/authorities.
|
|
19
|
+
2. Registers all subauthorities in config/intitializers/dog_biscuits.rb
|
|
20
|
+
3. Sets up references to the authority concept_schemes in config/dog_biscuits.yml
|
|
21
|
+
4. Copies the authority services into app/services/
|
|
22
|
+
|
|
23
|
+
Catalog Generator
|
|
24
|
+
This generator makes the following changes to your application:
|
|
25
|
+
1. Adds a new app/controllers/catalog_controller.rb
|
|
26
|
+
|
|
27
|
+
Schema Org Generator
|
|
28
|
+
This generator makes the following changes to your application:
|
|
29
|
+
1. Creates a schema_org.yml file in ./config
|
|
30
|
+
using information configured in property_mappings
|
|
31
|
+
|
|
32
|
+
Locales Generator
|
|
33
|
+
This generator makes the following changes to your application
|
|
34
|
+
1. Creates a dog_biscuits.en.yml file in ./config/locales
|
|
35
|
+
using information configured in property_mappings
|
|
36
|
+
|
|
37
|
+
Imagify Generator
|
|
38
|
+
This generator can be run for an existing Model, or for All models (with All).
|
|
39
|
+
This generator makes the following changes to your application:
|
|
40
|
+
1. If this is a Hyku application, enables UV / IIIF
|
|
41
|
+
|
|
42
|
+
Examples:
|
|
43
|
+
rails generate dog_biscuits:install
|
|
44
|
+
rails generate dog_biscuits:authority
|
|
45
|
+
rails generate dog_biscuits:schema_org
|
|
46
|
+
rails generate dog_biscuits:locales
|
|
47
|
+
rails generate dog_biscuits:catalog
|
|
48
|
+
|
|
49
|
+
rails generate dog_biscuits:attribute_rows All
|
|
50
|
+
rails generate dog_biscuits:attribute_rows ConferenceItem
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::AuthorityGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator makes the following changes to your application:
|
|
8
|
+
1. Copies authorities into config/authorities.
|
|
9
|
+
2. Registers all subauthorities in config/intitializers/dog_biscuits.rb
|
|
10
|
+
3. Sets up references to the authority concept_schemes in config/dog_biscuits.yml
|
|
11
|
+
4. Copies the authority services into app/services/
|
|
12
|
+
'
|
|
13
|
+
|
|
14
|
+
def copy_authorities
|
|
15
|
+
directory 'config/authorities', 'config/authorities'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create_dog_biscuits
|
|
19
|
+
init_path = 'config/initializers/dog_biscuits.rb'
|
|
20
|
+
yml_path = 'config/dog_biscuits.yml'
|
|
21
|
+
|
|
22
|
+
copy_file 'config/dog_biscuits.yml', yml_path unless File.exist?(yml_path)
|
|
23
|
+
copy_file 'config/initializers/dog_biscuits.rb', init_path unless File.exist?(init_path)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def inject_into_dog_biscuits
|
|
27
|
+
init_path = 'config/initializers/dog_biscuits.rb'
|
|
28
|
+
yml_path = 'config/dog_biscuits.yml'
|
|
29
|
+
|
|
30
|
+
init_content = File.read(init_path)
|
|
31
|
+
yml_content = File.read(yml_path)
|
|
32
|
+
|
|
33
|
+
::DogBiscuits::Terms.constants.each do |term|
|
|
34
|
+
t = term.to_s
|
|
35
|
+
term_string = "Qa::Authorities::Local.register_subauthority('#{t.gsub('Terms', '').underscore.downcase}', 'DogBiscuits::Terms::#{t}')"
|
|
36
|
+
unless init_content.include? term_string
|
|
37
|
+
inject_into_file init_path, after: '# include Terms' do
|
|
38
|
+
"\n#{term_string}"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
next if yml_content.include? t
|
|
42
|
+
inject_into_file yml_path, after: '# authorities' do
|
|
43
|
+
"\n#{t.gsub('Terms', '').underscore.pluralize}: \"\""
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def authority_service
|
|
49
|
+
template('authority_service.rb.erb', 'app/services/authority_service.rb')
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def copy_concerns
|
|
53
|
+
directory 'app/services/concerns', 'app/services/concerns'
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::CatalogGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator makes the following changes to your application:
|
|
8
|
+
1. Adds a new catalog_controller.rb
|
|
9
|
+
'
|
|
10
|
+
|
|
11
|
+
def banner
|
|
12
|
+
say_status("info", "Generating catalog_controller.rb", :blue)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def create_catalog
|
|
16
|
+
copy_file 'app/controllers/catalog_controller.rb', 'app/controllers/catalog_controller.rb'
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::DatesGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator .
|
|
8
|
+
1. configures the date_picker, if config.date_picker is true;
|
|
9
|
+
it adds a form partial for all dates listed in config.date_picker_dates.
|
|
10
|
+
2. Configures the date_range in blacklight, if config.date_range is true.
|
|
11
|
+
'
|
|
12
|
+
|
|
13
|
+
def banner
|
|
14
|
+
say_status("info", "Configuring the date_picker and date_range", :blue)
|
|
15
|
+
say_status("info", "date_picker is disabled and will not be installed", :blue) unless DogBiscuits.config.date_picker
|
|
16
|
+
say_status("info", "date_range is disabled and will not be installed", :blue) unless DogBiscuits.config.date_range
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# rubocop:disable Style/GuardClause
|
|
20
|
+
def date_picker
|
|
21
|
+
if DogBiscuits.config.date_picker
|
|
22
|
+
|
|
23
|
+
gem 'bootstrap-datepicker-rails'
|
|
24
|
+
|
|
25
|
+
Bundler.with_clean_env do
|
|
26
|
+
run "bundle install"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# insert into application.css
|
|
30
|
+
css = '*= require bootstrap-datepicker'
|
|
31
|
+
unless File.read('app/assets/stylesheets/application.css').include? css
|
|
32
|
+
inject_into_file 'app/assets/stylesheets/application.css', before: "*= require_self" do
|
|
33
|
+
"#{css}\n"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# insert into application.js
|
|
38
|
+
js = '//= require bootstrap-datepicker'
|
|
39
|
+
unless File.read('app/assets/javascripts/application.js').include? js
|
|
40
|
+
inject_into_file 'app/assets/javascripts/application.js', after: "//= require_tree ." do
|
|
41
|
+
"\n #{js}"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
DogBiscuits.config.date_picker_dates.each do |date|
|
|
46
|
+
copy_file '_date_template.html.erb', "app/views/records/edit_fields/_#{date}.html.erb"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def date_range
|
|
52
|
+
if DogBiscuits.config.date_range
|
|
53
|
+
|
|
54
|
+
gem "blacklight_range_limit"
|
|
55
|
+
|
|
56
|
+
Bundler.with_clean_env do
|
|
57
|
+
run "bundle install"
|
|
58
|
+
end
|
|
59
|
+
generate 'blacklight_range_limit:install'
|
|
60
|
+
copy_file 'config/initializers/catalog_search_builder_overrides.rb', 'config/initializers/catalog_search_builder_overrides.rb'
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
# In Hyku, the blacklight_range_limit javascript inserts jquery, this causes other js to fail cos of multiple loads
|
|
66
|
+
# (eg. add work modal doesn't work)
|
|
67
|
+
# To fix this, remove the standard insert from blacklight_range_limit to remove jquery
|
|
68
|
+
# and add the require statements individually
|
|
69
|
+
# do this earlier in the file because in production, the blacklight_range_limit js doesn't work if it's at the bottom
|
|
70
|
+
# This is a bit ugly and fragile.
|
|
71
|
+
def date_range_js
|
|
72
|
+
if File.exist?('config/initializers/version.rb') && File.read('config/initializers/version.rb').include?('Hyku')
|
|
73
|
+
unless File.read('app/assets/javascripts/application.js').include? "//= require 'blacklight_range_limit'\n// Moved the Hyku JS *above* the Hyrax JS"
|
|
74
|
+
rangejs = "// For blacklight_range_limit built-in JS, if you don't want it you don't need\n"
|
|
75
|
+
rangejs += "// this:\n"
|
|
76
|
+
rangejs += "//= require 'blacklight_range_limit'"
|
|
77
|
+
|
|
78
|
+
rangejs_altered = "// For blacklight_range_limit built-in JS, if you don't want it you don't need\n"
|
|
79
|
+
rangejs_altered += "// this:\n"
|
|
80
|
+
rangejs_altered += "// require 'blacklight_range_limit'\n"
|
|
81
|
+
|
|
82
|
+
rangejs_new = "\n//= require 'flot/jquery.flot.js'\n"
|
|
83
|
+
rangejs_new += "//= require 'flot/jquery.flot.selection.js'\n"
|
|
84
|
+
rangejs_new += "//= require 'bootstrap-slider'\n"
|
|
85
|
+
rangejs_new += "//= require 'blacklight_range_limit/range_limit_distro_facets.js'\n"
|
|
86
|
+
rangejs_new += "//= require 'blacklight_range_limit/range_limit_shared.js'\n"
|
|
87
|
+
rangejs_new += "//= require 'blacklight_range_limit/range_limit_slider.js'\n\n"
|
|
88
|
+
|
|
89
|
+
gsub_file 'app/assets/javascripts/application.js', rangejs, rangejs_altered
|
|
90
|
+
|
|
91
|
+
inject_into_file 'app/assets/javascripts/application.js', before: "// Moved the Hyku JS *above* the Hyrax JS" do
|
|
92
|
+
rangejs_new
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
# rubocop:enable Style/GuardClause
|
|
98
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::GenerateAllGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator makes the following changes to your application:
|
|
8
|
+
1. Runs the work generator for selected models configured in `config/initializers/dog_biscuits.rb`
|
|
9
|
+
2. Runs the catalog_controller generator
|
|
10
|
+
3. Runs the locales generator
|
|
11
|
+
4. Runs the schema_org generator
|
|
12
|
+
'
|
|
13
|
+
|
|
14
|
+
class_option :skipmodel, type: :boolean, default: false
|
|
15
|
+
|
|
16
|
+
def banner
|
|
17
|
+
say_status("info", "Re-generating catalog_controller, locales, attribute_rows and schema_org", :blue)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def generate_works
|
|
21
|
+
DogBiscuits.config.selected_models.each do |model|
|
|
22
|
+
if options[:skipmodel]
|
|
23
|
+
generate 'dog_biscuits:work', "#{model} --skipmodel -f"
|
|
24
|
+
else
|
|
25
|
+
generate 'dog_biscuits:work', "#{model} -f"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rails/generators'
|
|
4
|
+
require 'rails/generators/model_helpers'
|
|
5
|
+
|
|
6
|
+
class DogBiscuits::ImagifyGenerator < Rails::Generators::NamedBase
|
|
7
|
+
include Rails::Generators::ModelHelpers
|
|
8
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
9
|
+
|
|
10
|
+
class_option :skipmodel, type: :boolean, default: false
|
|
11
|
+
|
|
12
|
+
desc '
|
|
13
|
+
This generator makes the following changes to your application:
|
|
14
|
+
1. If this is a Hyku application, enables UV / IIIF
|
|
15
|
+
'
|
|
16
|
+
|
|
17
|
+
def banner
|
|
18
|
+
say_status("info", "Enabling UV / IIIF support for #{class_name}", :blue)
|
|
19
|
+
|
|
20
|
+
if class_name == 'All'
|
|
21
|
+
@models = DogBiscuits.config.selected_models.map(&:underscore)
|
|
22
|
+
else
|
|
23
|
+
if DogBiscuits.config.selected_models.include? class_name
|
|
24
|
+
@models = [class_name.underscore]
|
|
25
|
+
else
|
|
26
|
+
say_status("error", "UNSUPPORTED MODEL. SUPPORTED MODELS ARE: #{DogBiscuits.config.available_models.collect { |m| m }.join(', ')}", :red)
|
|
27
|
+
exit 0
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# If this is a Hyku app, enable IIIF / UV rendering
|
|
33
|
+
def image_ify_hyku
|
|
34
|
+
@models.each do |model|
|
|
35
|
+
next unless File.exist?('config/initializers/version.rb') && File.read('config/initializers/version.rb').include?('Hyku')
|
|
36
|
+
model_injection = " include HasRendering"
|
|
37
|
+
unless File.read("app/models/#{model}.rb").include? model_injection
|
|
38
|
+
inject_into_file "app/models/#{model}.rb", after: 'WorkBehavior' do
|
|
39
|
+
"\n#{model_injection}"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# add 'rendering_ids' to the form
|
|
44
|
+
form_injection = "self.terms += [:rendering_ids]"
|
|
45
|
+
form_injection += "\n\n def secondary_terms"
|
|
46
|
+
form_injection += "\n super - [:rendering_ids]"
|
|
47
|
+
form_injection += "\n end"
|
|
48
|
+
gsub_file "app/forms/hyrax/#{model}_form.rb", /self\.terms \+\= \[\]/, form_injection
|
|
49
|
+
|
|
50
|
+
# change from WorkShowPresenter to ManifestEnabledWorkShowPresente
|
|
51
|
+
presenter_injection = "Hyku::ManifestEnabledWorkShowPresenter"
|
|
52
|
+
gsub_file "app/presenters/hyrax/#{model}_presenter.rb", /Hyrax::WorkShowPresenter/, presenter_injection
|
|
53
|
+
|
|
54
|
+
# add Hyku::IIIFManifest to the controllers
|
|
55
|
+
controller_injection = "\n\n include Hyku::IIIFManifest"
|
|
56
|
+
unless File.read("app/controllers/hyrax/#{model.pluralize}_controller.rb").include? controller_injection
|
|
57
|
+
inject_into_file "app/controllers/hyrax/#{model.pluralize}_controller.rb", after: "::#{class_name}\n" do
|
|
58
|
+
controller_injection
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# add all properties to the delegates block of Hyku::ManifestEnabledWorkShowPresenter
|
|
63
|
+
delegates = DogBiscuits.config.all_properties - DogBiscuits.config.base_properties
|
|
64
|
+
gsub_file 'app/presenters/hyku/manifest_enabled_work_show_presenter.rb', /delegate :extent/, "delegate :#{delegates.join(', :')}, :extent"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::InstallGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator makes the following changes to your application:
|
|
8
|
+
1. Adds dog_biscuits initializer and config
|
|
9
|
+
2. Includes DogBiscuits::ExtendedSolrDocument in the SolrDocument
|
|
10
|
+
3. Runs the authorities, locales and schema_org generators
|
|
11
|
+
4. Adds various new files into app/
|
|
12
|
+
5. Runs the dates generator if date_picker or date_range are true
|
|
13
|
+
'
|
|
14
|
+
|
|
15
|
+
def banner
|
|
16
|
+
say_status("info", "Generating DogBiscuits installation", :blue)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def create_dog_biscuits
|
|
20
|
+
init_path = 'config/initializers/dog_biscuits.rb'
|
|
21
|
+
yml_path = 'config/dog_biscuits.yml'
|
|
22
|
+
|
|
23
|
+
copy_file 'config/dog_biscuits.yml', yml_path unless File.exist?(yml_path) && !options[:force]
|
|
24
|
+
copy_file 'config/initializers/dog_biscuits.rb', init_path unless File.exist?(init_path) && !options[:force]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# copy all new files in app
|
|
28
|
+
def create_app
|
|
29
|
+
directory 'app', 'app'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def update_initializer
|
|
33
|
+
gsub_file 'config/initializers/dog_biscuits.rb', /# Available models are:/, "# Available models are: #{DogBiscuits.config.available_models.join(', ')}"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def update_solr_document
|
|
37
|
+
solr_doc = 'app/models/solr_document.rb'
|
|
38
|
+
unless solr_doc.include? 'DogBiscuits::ExtendedSolrDocument'
|
|
39
|
+
inject_into_file solr_doc, after: 'include Hyrax::SolrDocumentBehavior' do
|
|
40
|
+
"\n include DogBiscuits::ExtendedSolrDocument"
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def create_authorities
|
|
46
|
+
generate 'dog_biscuits:authority'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def create_helpers
|
|
50
|
+
db_injection = ' include ::DogBiscuitsHelper'
|
|
51
|
+
unless File.read('app/helpers/hyrax_helper.rb').include? db_injection
|
|
52
|
+
inject_into_file 'app/helpers/hyrax_helper.rb', after: "Hyrax::HyraxHelperBehavior\n" do
|
|
53
|
+
"#{db_injection}\n"
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Make sure range is in place, if we're running install again, it could remove it
|
|
59
|
+
def generate_dates
|
|
60
|
+
if DogBiscuits.config.date_range || DogBiscuits.config.date_picker
|
|
61
|
+
generate('dog_biscuits:dates')
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Remove all blacklight labels from hyrax locales; we're going to re-add them below
|
|
66
|
+
def wipe_hyrax_locales
|
|
67
|
+
Dir.entries('config/locales').select { |file| file.start_with?('hyrax.') }.each do |locale|
|
|
68
|
+
gsub_file "config/locales/#{locale}", / index:(.*) show:/m, " index:\n show:"
|
|
69
|
+
gsub_file "config/locales/#{locale}", / facet:(.*) index:/m, " facet:\n index:"
|
|
70
|
+
gsub_file "config/locales/#{locale}", / show:(.*) hyrax:/m, " show:\n hyrax:"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def generate_locales
|
|
75
|
+
generate 'dog_biscuits:locales'
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def create_schema_org
|
|
79
|
+
generate 'dog_biscuits:schema_org'
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::LocalesGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator can be run for an existing Model, or for All models (with All).
|
|
8
|
+
This generator makes the following changes to your application
|
|
9
|
+
where information is available in property_mappings:
|
|
10
|
+
1. Injects labels and help_text into the en locales.
|
|
11
|
+
'
|
|
12
|
+
|
|
13
|
+
def banner
|
|
14
|
+
say_status("info", "Generating locales", :blue)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create_dog_biscuits_locale
|
|
18
|
+
template('dog_biscuits.en.yml.erb', 'config/locales/dog_biscuits.en.yml')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class DogBiscuits::SchemaOrgGenerator < Rails::Generators::Base
|
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
5
|
+
|
|
6
|
+
desc '
|
|
7
|
+
This generator makes the following changes to your application:
|
|
8
|
+
1. Creates a schema_org.yml file in ./config
|
|
9
|
+
2. Injects schema_org metadata for all properties
|
|
10
|
+
where this information is configured in property_mappings
|
|
11
|
+
'
|
|
12
|
+
|
|
13
|
+
def banner
|
|
14
|
+
say_status("info", "Generating schema_org.yml", :blue)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create_schema_org
|
|
18
|
+
template('schema_org.yml.erb', 'config/schema_org.yml')
|
|
19
|
+
end
|
|
20
|
+
end
|