enju_biblio 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +46 -0
- data/app/controllers/carrier_types_controller.rb +13 -0
- data/app/controllers/content_types_controller.rb +17 -0
- data/app/controllers/countries_controller.rb +17 -0
- data/app/controllers/create_types_controller.rb +13 -0
- data/app/controllers/creates_controller.rb +118 -0
- data/app/controllers/donates_controller.rb +79 -0
- data/app/controllers/exemplifies_controller.rb +103 -0
- data/app/controllers/extents_controller.rb +17 -0
- data/app/controllers/form_of_works_controller.rb +13 -0
- data/app/controllers/frequencies_controller.rb +13 -0
- data/app/controllers/import_requests_controller.rb +92 -0
- data/app/controllers/items_controller.rb +245 -0
- data/app/controllers/languages_controller.rb +17 -0
- data/app/controllers/licenses_controller.rb +17 -0
- data/app/controllers/manifestation_relationship_types_controller.rb +13 -0
- data/app/controllers/manifestation_relationships_controller.rb +23 -0
- data/app/controllers/manifestations_controller.rb +727 -0
- data/app/controllers/medium_of_performances_controller.rb +17 -0
- data/app/controllers/owns_controller.rb +108 -0
- data/app/controllers/patron_import_files_controller.rb +93 -0
- data/app/controllers/patron_import_results_controller.rb +15 -0
- data/app/controllers/patron_relationship_types_controller.rb +13 -0
- data/app/controllers/patron_relationships_controller.rb +23 -0
- data/app/controllers/patron_types_controller.rb +17 -0
- data/app/controllers/patrons_controller.rb +211 -0
- data/app/controllers/picture_files_controller.rb +169 -0
- data/app/controllers/produce_types_controller.rb +13 -0
- data/app/controllers/produces_controller.rb +122 -0
- data/app/controllers/realize_types_controller.rb +13 -0
- data/app/controllers/realizes_controller.rb +118 -0
- data/app/controllers/resource_import_files_controller.rb +93 -0
- data/app/controllers/resource_import_results_controller.rb +19 -0
- data/app/controllers/series_has_manifestations_controller.rb +95 -0
- data/app/controllers/series_statements_controller.rb +125 -0
- data/app/helpers/manifestations_helper.rb +160 -0
- data/app/helpers/owns_helper.rb +3 -0
- data/app/helpers/patrons_helper.rb +16 -0
- data/app/helpers/picture_files_helper.rb +15 -0
- data/app/helpers/series_statements_helper.rb +3 -0
- data/app/models/carrier_type.rb +34 -0
- data/app/models/content_type.rb +20 -0
- data/app/models/country.rb +45 -0
- data/app/models/create.rb +38 -0
- data/app/models/create_type.rb +19 -0
- data/app/models/donate.rb +23 -0
- data/app/models/exemplify.rb +46 -0
- data/app/models/extent.rb +20 -0
- data/app/models/form_of_work.rb +20 -0
- data/app/models/frequency.rb +20 -0
- data/app/models/import_request.rb +72 -0
- data/app/models/item.rb +277 -0
- data/app/models/item_sweeper.rb +19 -0
- data/app/models/language.rb +48 -0
- data/app/models/license.rb +19 -0
- data/app/models/manifestation.rb +642 -0
- data/app/models/manifestation_relationship.rb +30 -0
- data/app/models/manifestation_relationship_type.rb +20 -0
- data/app/models/manifestation_sweeper.rb +24 -0
- data/app/models/medium_of_performance.rb +20 -0
- data/app/models/own.rb +36 -0
- data/app/models/page_sweeper.rb +40 -0
- data/app/models/patron.rb +308 -0
- data/app/models/patron_import_file.rb +285 -0
- data/app/models/patron_import_result.rb +26 -0
- data/app/models/patron_relationship.rb +27 -0
- data/app/models/patron_relationship_type.rb +20 -0
- data/app/models/patron_sweeper.rb +30 -0
- data/app/models/patron_type.rb +20 -0
- data/app/models/picture_file.rb +48 -0
- data/app/models/produce.rb +39 -0
- data/app/models/produce_type.rb +19 -0
- data/app/models/realize.rb +38 -0
- data/app/models/realize_type.rb +19 -0
- data/app/models/resource_import_file.rb +585 -0
- data/app/models/resource_import_result.rb +26 -0
- data/app/models/series_has_manifestation.rb +38 -0
- data/app/models/series_statement.rb +105 -0
- data/app/views/carrier_types/_form.html.erb +19 -0
- data/app/views/carrier_types/edit.html.erb +13 -0
- data/app/views/carrier_types/index.html.erb +45 -0
- data/app/views/carrier_types/new.html.erb +12 -0
- data/app/views/carrier_types/show.html.erb +24 -0
- data/app/views/content_types/_form.html.erb +22 -0
- data/app/views/content_types/edit.html.erb +13 -0
- data/app/views/content_types/index.html.erb +45 -0
- data/app/views/content_types/new.html.erb +12 -0
- data/app/views/content_types/show.html.erb +24 -0
- data/app/views/countries/_form.html.erb +22 -0
- data/app/views/countries/edit.html.erb +13 -0
- data/app/views/countries/index.html.erb +43 -0
- data/app/views/countries/new.html.erb +12 -0
- data/app/views/countries/show.html.erb +24 -0
- data/app/views/create_types/_form.html.erb +19 -0
- data/app/views/create_types/edit.html.erb +13 -0
- data/app/views/create_types/index.html.erb +43 -0
- data/app/views/create_types/new.html.erb +12 -0
- data/app/views/create_types/show.html.erb +29 -0
- data/app/views/creates/_form.html.erb +32 -0
- data/app/views/creates/_index.html.erb +36 -0
- data/app/views/creates/_index_patron.html.erb +48 -0
- data/app/views/creates/_index_work.html.erb +48 -0
- data/app/views/creates/edit.html.erb +13 -0
- data/app/views/creates/index.html.erb +7 -0
- data/app/views/creates/new.html.erb +17 -0
- data/app/views/creates/show.html.erb +24 -0
- data/app/views/donates/edit.html.erb +30 -0
- data/app/views/donates/index.html.erb +45 -0
- data/app/views/donates/new.html.erb +29 -0
- data/app/views/donates/show.html.erb +25 -0
- data/app/views/exemplifies/_form.html.erb +27 -0
- data/app/views/exemplifies/edit.html.erb +13 -0
- data/app/views/exemplifies/index.html.erb +38 -0
- data/app/views/exemplifies/new.html.erb +12 -0
- data/app/views/exemplifies/show.html.erb +24 -0
- data/app/views/extents/_form.html.erb +19 -0
- data/app/views/extents/edit.html.erb +13 -0
- data/app/views/extents/index.html.erb +47 -0
- data/app/views/extents/new.html.erb +12 -0
- data/app/views/extents/show.html.erb +29 -0
- data/app/views/form_of_works/_form.html.erb +19 -0
- data/app/views/form_of_works/edit.html.erb +13 -0
- data/app/views/form_of_works/index.html.erb +45 -0
- data/app/views/form_of_works/new.html.erb +12 -0
- data/app/views/form_of_works/show.html.erb +29 -0
- data/app/views/frequencies/_form.html.erb +19 -0
- data/app/views/frequencies/edit.html.erb +13 -0
- data/app/views/frequencies/index.html.erb +43 -0
- data/app/views/frequencies/new.html.erb +12 -0
- data/app/views/frequencies/show.html.erb +24 -0
- data/app/views/import_requests/_form.html.erb +32 -0
- data/app/views/import_requests/edit.html.erb +24 -0
- data/app/views/import_requests/index.html.erb +41 -0
- data/app/views/import_requests/new.html.erb +27 -0
- data/app/views/import_requests/show.html.erb +43 -0
- data/app/views/items/_form.html.erb +86 -0
- data/app/views/items/_observe_field.html.erb +7 -0
- data/app/views/items/_qtip.html.erb +25 -0
- data/app/views/items/_shelf_picture.html.erb +8 -0
- data/app/views/items/_shelf_picture.mobile.erb +8 -0
- data/app/views/items/edit.html.erb +18 -0
- data/app/views/items/index.csv.erb +4 -0
- data/app/views/items/index.html.erb +74 -0
- data/app/views/items/index.mobile.erb +53 -0
- data/app/views/items/new.html.erb +21 -0
- data/app/views/items/show.html.erb +160 -0
- data/app/views/items/show.mobile.erb +88 -0
- data/app/views/languages/_form.html.erb +27 -0
- data/app/views/languages/edit.html.erb +13 -0
- data/app/views/languages/index.html.erb +49 -0
- data/app/views/languages/new.html.erb +12 -0
- data/app/views/languages/show.html.erb +34 -0
- data/app/views/licenses/_form.html.erb +19 -0
- data/app/views/licenses/edit.html.erb +13 -0
- data/app/views/licenses/index.html.erb +46 -0
- data/app/views/licenses/new.html.erb +12 -0
- data/app/views/licenses/show.html.erb +29 -0
- data/app/views/manifestation_relationship_types/_form.html.erb +19 -0
- data/app/views/manifestation_relationship_types/edit.html.erb +13 -0
- data/app/views/manifestation_relationship_types/index.html.erb +43 -0
- data/app/views/manifestation_relationship_types/new.html.erb +12 -0
- data/app/views/manifestation_relationship_types/show.html.erb +29 -0
- data/app/views/manifestation_relationships/_form.html.erb +31 -0
- data/app/views/manifestation_relationships/edit.html.erb +13 -0
- data/app/views/manifestation_relationships/index.html.erb +34 -0
- data/app/views/manifestation_relationships/new.html.erb +12 -0
- data/app/views/manifestation_relationships/show.html.erb +24 -0
- data/app/views/manifestations/_all_facet.html.erb +7 -0
- data/app/views/manifestations/_attachment_file.html.erb +6 -0
- data/app/views/manifestations/_book_jacket.html.erb +5 -0
- data/app/views/manifestations/_call_number.html.erb +25 -0
- data/app/views/manifestations/_carrier_type_facet.html.erb +9 -0
- data/app/views/manifestations/_edition_and_number.html.erb +22 -0
- data/app/views/manifestations/_form.html.erb +154 -0
- data/app/views/manifestations/_form.html.erb.osakac +153 -0
- data/app/views/manifestations/_history_list.html.erb +12 -0
- data/app/views/manifestations/_holding.html.erb +3 -0
- data/app/views/manifestations/_index_form.html.erb +12 -0
- data/app/views/manifestations/_index_form_contributor.html.erb +15 -0
- data/app/views/manifestations/_index_form_creator.html.erb +15 -0
- data/app/views/manifestations/_index_form_item.html.erb +14 -0
- data/app/views/manifestations/_index_form_manifestation.html.erb +13 -0
- data/app/views/manifestations/_index_form_publisher.html.erb +15 -0
- data/app/views/manifestations/_index_form_series_statement.html.erb +20 -0
- data/app/views/manifestations/_language_facet.html.erb +16 -0
- data/app/views/manifestations/_library_facet.html.erb +16 -0
- data/app/views/manifestations/_list.html.erb +21 -0
- data/app/views/manifestations/_manifestation.html.erb +69 -0
- data/app/views/manifestations/_manifestation_list.html.erb +32 -0
- data/app/views/manifestations/_not_found.html.erb +7 -0
- data/app/views/manifestations/_paginate_id_link.html.erb +10 -0
- data/app/views/manifestations/_pickup.html.erb +30 -0
- data/app/views/manifestations/_pubdate_facet.html.erb +9 -0
- data/app/views/manifestations/_question_list.html.erb +13 -0
- data/app/views/manifestations/_reservable_facet.html.erb +14 -0
- data/app/views/manifestations/_search_engine.html.erb +16 -0
- data/app/views/manifestations/_serial_form.html.erb +14 -0
- data/app/views/manifestations/_show.mods.builder +86 -0
- data/app/views/manifestations/_show.rdf.builder +63 -0
- data/app/views/manifestations/_show_creators.html.erb +17 -0
- data/app/views/manifestations/_show_creators.mobile.erb +17 -0
- data/app/views/manifestations/_show_detail_librarian.html.erb +136 -0
- data/app/views/manifestations/_show_detail_user.html.erb +131 -0
- data/app/views/manifestations/_show_group.html.erb +2 -0
- data/app/views/manifestations/_show_holding.html.erb +62 -0
- data/app/views/manifestations/_show_holding.mobile.erb +38 -0
- data/app/views/manifestations/_show_index.html.erb +15 -0
- data/app/views/manifestations/_show_index.mobile.erb +14 -0
- data/app/views/manifestations/_show_periodical_master.html.erb +40 -0
- data/app/views/manifestations/_tab_list.html.erb +11 -0
- data/app/views/manifestations/_tab_menu.html.erb +14 -0
- data/app/views/manifestations/_title.html.erb +27 -0
- data/app/views/manifestations/_title.mobile.erb +27 -0
- data/app/views/manifestations/edit.html.erb +21 -0
- data/app/views/manifestations/error.xml +7 -0
- data/app/views/manifestations/explain.sru +9 -0
- data/app/views/manifestations/index.atom.builder +19 -0
- data/app/views/manifestations/index.csv.erb +4 -0
- data/app/views/manifestations/index.html.erb +101 -0
- data/app/views/manifestations/index.mobile.erb +21 -0
- data/app/views/manifestations/index.mods.builder +8 -0
- data/app/views/manifestations/index.rdf.builder +28 -0
- data/app/views/manifestations/index.rss.builder +43 -0
- data/app/views/manifestations/index.sru.builder +101 -0
- data/app/views/manifestations/new.html.erb +16 -0
- data/app/views/manifestations/show.html.erb +108 -0
- data/app/views/manifestations/show.mobile.erb +20 -0
- data/app/views/manifestations/show.mods.builder +6 -0
- data/app/views/manifestations/show.rdf.builder +11 -0
- data/app/views/medium_of_performances/_form.html.erb +19 -0
- data/app/views/medium_of_performances/edit.html.erb +13 -0
- data/app/views/medium_of_performances/index.html.erb +44 -0
- data/app/views/medium_of_performances/new.html.erb +12 -0
- data/app/views/medium_of_performances/show.html.erb +29 -0
- data/app/views/owns/_form.html.erb +17 -0
- data/app/views/owns/edit.html.erb +13 -0
- data/app/views/owns/index.html.erb +46 -0
- data/app/views/owns/new.html.erb +12 -0
- data/app/views/owns/show.html.erb +25 -0
- data/app/views/patron_import_files/edit.html.erb +25 -0
- data/app/views/patron_import_files/index.html.erb +40 -0
- data/app/views/patron_import_files/new.html.erb +35 -0
- data/app/views/patron_import_files/show.html.erb +69 -0
- data/app/views/patron_import_results/index.csv.erb +3 -0
- data/app/views/patron_import_results/index.html.erb +52 -0
- data/app/views/patron_import_results/show.html.erb +38 -0
- data/app/views/patron_relationship_types/_form.html.erb +19 -0
- data/app/views/patron_relationship_types/edit.html.erb +13 -0
- data/app/views/patron_relationship_types/index.html.erb +43 -0
- data/app/views/patron_relationship_types/new.html.erb +12 -0
- data/app/views/patron_relationship_types/show.html.erb +29 -0
- data/app/views/patron_relationships/_form.html.erb +31 -0
- data/app/views/patron_relationships/edit.html.erb +13 -0
- data/app/views/patron_relationships/index.html.erb +34 -0
- data/app/views/patron_relationships/new.html.erb +12 -0
- data/app/views/patron_relationships/show.html.erb +24 -0
- data/app/views/patron_types/_form.html.erb +19 -0
- data/app/views/patron_types/edit.html.erb +13 -0
- data/app/views/patron_types/index.html.erb +43 -0
- data/app/views/patron_types/new.html.erb +12 -0
- data/app/views/patron_types/show.html.erb +29 -0
- data/app/views/patrons/_expression_list.html.erb +20 -0
- data/app/views/patrons/_form.html.erb +153 -0
- data/app/views/patrons/_form_family_name_first.html.erb +8 -0
- data/app/views/patrons/_form_family_name_last.html.erb +8 -0
- data/app/views/patrons/_history_list.html.erb +12 -0
- data/app/views/patrons/_index.html.erb +38 -0
- data/app/views/patrons/_index_expression.html.erb +58 -0
- data/app/views/patrons/_index_manifestation.html.erb +58 -0
- data/app/views/patrons/_index_patron.html.erb +71 -0
- data/app/views/patrons/_index_patron_merge_list.html.erb +53 -0
- data/app/views/patrons/_index_work.html.erb +63 -0
- data/app/views/patrons/_manifestation_list.html.erb +19 -0
- data/app/views/patrons/_patron.html.erb +17 -0
- data/app/views/patrons/_patron_list.html.erb +18 -0
- data/app/views/patrons/_work_list.html.erb +14 -0
- data/app/views/patrons/edit.html.erb +16 -0
- data/app/views/patrons/index.atom.builder +10 -0
- data/app/views/patrons/index.html.erb +14 -0
- data/app/views/patrons/index.mobile.erb +23 -0
- data/app/views/patrons/index.rss.builder +34 -0
- data/app/views/patrons/new.html.erb +12 -0
- data/app/views/patrons/show.html.erb +204 -0
- data/app/views/patrons/show.js.erb +3 -0
- data/app/views/patrons/show.mobile.erb +121 -0
- data/app/views/picture_files/_index.html.erb +52 -0
- data/app/views/picture_files/_index_event.html.erb +53 -0
- data/app/views/picture_files/_index_manifestation.html.erb +55 -0
- data/app/views/picture_files/_index_patron.html.erb +55 -0
- data/app/views/picture_files/_index_shelf.html.erb +53 -0
- data/app/views/picture_files/_link.html.erb +3 -0
- data/app/views/picture_files/edit.html.erb +56 -0
- data/app/views/picture_files/index.html.erb +11 -0
- data/app/views/picture_files/new.html.erb +33 -0
- data/app/views/picture_files/show.html.erb +67 -0
- data/app/views/produce_types/_form.html.erb +19 -0
- data/app/views/produce_types/edit.html.erb +13 -0
- data/app/views/produce_types/index.html.erb +43 -0
- data/app/views/produce_types/new.html.erb +12 -0
- data/app/views/produce_types/show.html.erb +29 -0
- data/app/views/produces/_form.html.erb +32 -0
- data/app/views/produces/_index.html.erb +36 -0
- data/app/views/produces/_index_manifestation.html.erb +49 -0
- data/app/views/produces/_index_patron.html.erb +40 -0
- data/app/views/produces/edit.html.erb +13 -0
- data/app/views/produces/index.html.erb +7 -0
- data/app/views/produces/new.html.erb +17 -0
- data/app/views/produces/show.html.erb +24 -0
- data/app/views/realize_types/_form.html.erb +19 -0
- data/app/views/realize_types/edit.html.erb +13 -0
- data/app/views/realize_types/index.html.erb +43 -0
- data/app/views/realize_types/new.html.erb +12 -0
- data/app/views/realize_types/show.html.erb +29 -0
- data/app/views/realizes/_form.html.erb +32 -0
- data/app/views/realizes/_index.html.erb +36 -0
- data/app/views/realizes/_index_expression.html.erb +49 -0
- data/app/views/realizes/_index_patron.html.erb +40 -0
- data/app/views/realizes/edit.html.erb +13 -0
- data/app/views/realizes/index.html.erb +7 -0
- data/app/views/realizes/new.html.erb +17 -0
- data/app/views/realizes/show.html.erb +24 -0
- data/app/views/resource_import_files/_show_object_list.html.erb +26 -0
- data/app/views/resource_import_files/edit.html.erb +25 -0
- data/app/views/resource_import_files/index.html.erb +40 -0
- data/app/views/resource_import_files/new.html.erb +37 -0
- data/app/views/resource_import_files/show.html.erb +69 -0
- data/app/views/resource_import_results/index.csv.erb +4 -0
- data/app/views/resource_import_results/index.html.erb +52 -0
- data/app/views/resource_import_results/show.html.erb +38 -0
- data/app/views/series_has_manifestations/_form.html.erb +27 -0
- data/app/views/series_has_manifestations/edit.html.erb +15 -0
- data/app/views/series_has_manifestations/index.html.erb +34 -0
- data/app/views/series_has_manifestations/new.html.erb +14 -0
- data/app/views/series_has_manifestations/show.html.erb +23 -0
- data/app/views/series_statements/_form.html.erb +57 -0
- data/app/views/series_statements/_index.html.erb +55 -0
- data/app/views/series_statements/_index_manifestation.html.erb +59 -0
- data/app/views/series_statements/_index_series_statement_merge_list.html.erb +53 -0
- data/app/views/series_statements/_manifestation_list.html.erb +17 -0
- data/app/views/series_statements/_merge.html.erb +27 -0
- data/app/views/series_statements/_refine_search_form.html.erb +9 -0
- data/app/views/series_statements/_tab_menu.html.erb +3 -0
- data/app/views/series_statements/edit.html.erb +13 -0
- data/app/views/series_statements/index.html.erb +7 -0
- data/app/views/series_statements/new.html.erb +12 -0
- data/app/views/series_statements/show.html.erb +65 -0
- data/app/views/series_statements/show.js.erb +1 -0
- data/config/locales/translation_en.yml +5 -0
- data/config/locales/translation_ja.yml +5 -0
- data/config/routes.rb +100 -0
- data/db/migrate/001_create_patrons.rb +53 -0
- data/db/migrate/005_create_manifestations.rb +56 -0
- data/db/migrate/006_create_items.rb +28 -0
- data/db/migrate/012_create_owns.rb +12 -0
- data/db/migrate/015_create_creates.rb +12 -0
- data/db/migrate/047_create_produces.rb +12 -0
- data/db/migrate/073_create_carrier_types.rb +11 -0
- data/db/migrate/112_create_frequencies.rb +12 -0
- data/db/migrate/117_create_form_of_works.rb +12 -0
- data/db/migrate/125_create_donates.rb +12 -0
- data/db/migrate/20080830154109_create_realizes.rb +13 -0
- data/db/migrate/20080830172106_create_exemplifies.rb +13 -0
- data/db/migrate/20080905191442_create_patron_types.rb +12 -0
- data/db/migrate/20081025083323_create_countries.rb +28 -0
- data/db/migrate/20081025083905_create_languages.rb +23 -0
- data/db/migrate/20081027150907_create_picture_files.rb +15 -0
- data/db/migrate/20081028083142_create_patron_import_files.rb +22 -0
- data/db/migrate/20081028083208_create_resource_import_files.rb +22 -0
- data/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +15 -0
- data/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +15 -0
- data/db/migrate/20090719201843_create_extents.rb +12 -0
- data/db/migrate/20090720091106_create_medium_of_performances.rb +12 -0
- data/db/migrate/20090720091429_create_content_types.rb +12 -0
- data/db/migrate/20090812151902_create_patron_relationship_types.rb +12 -0
- data/db/migrate/20091012101112_add_dcndl_schema.rb +27 -0
- data/db/migrate/20091025080447_create_licenses.rb +12 -0
- data/db/migrate/20091214131723_create_series_statements.rb +13 -0
- data/db/migrate/20100129142347_create_import_requests.rb +15 -0
- data/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +13 -0
- data/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +10 -0
- data/db/migrate/20100525124311_create_manifestation_relationships.rb +13 -0
- data/db/migrate/20100606073747_create_patron_relationships.rb +13 -0
- data/db/migrate/20100607044753_create_manifestation_relationship_types.rb +12 -0
- data/db/migrate/20100814091104_add_position_to_patron_relationship.rb +11 -0
- data/db/migrate/20100925043847_create_resource_import_results.rb +15 -0
- data/db/migrate/20100925074559_create_patron_import_results.rb +12 -0
- data/db/migrate/20101212070145_add_acquired_at_to_item.rb +9 -0
- data/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +9 -0
- data/db/migrate/20110301121550_add_birth_date_and_death_date_to_patron.rb +11 -0
- data/db/migrate/20110425133109_add_issn_to_series_statement.rb +9 -0
- data/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +9 -0
- data/db/migrate/20110618091240_add_periodical_to_series_statement.rb +9 -0
- data/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +9 -0
- data/db/migrate/20110620173525_add_bookstore_id_to_item.rb +11 -0
- data/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
- data/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
- data/db/migrate/20110820131417_create_series_has_manifestations.rb +13 -0
- data/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +13 -0
- data/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +13 -0
- data/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +10 -0
- data/db/migrate/20110918161853_rename_series_statement_manifestation_id_to_root_manifestation_id.rb +13 -0
- data/db/migrate/20110918162329_add_note_to_series_statement.rb +9 -0
- data/db/migrate/20111009183423_add_ndc_to_manifestation.rb +9 -0
- data/db/migrate/20111124110059_create_create_types.rb +12 -0
- data/db/migrate/20111124110319_create_realize_types.rb +12 -0
- data/db/migrate/20111124110355_create_produce_types.rb +12 -0
- data/db/migrate/20111124112131_add_create_type_to_create.rb +7 -0
- data/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +6 -0
- data/db/migrate/20120129020544_add_budget_type_id_to_item.rb +6 -0
- data/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +6 -0
- data/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +5 -0
- data/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +5 -0
- data/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +5 -0
- data/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +5 -0
- data/db/migrate/20120413161403_add_fingerprint_to_patron_import_file.rb +5 -0
- data/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +5 -0
- data/db/migrate/20120413170720_add_error_message_to_patron_import_file.rb +5 -0
- data/db/migrate/20120415060308_rename_resource_import_file_imported_at_to_executed_at.rb +9 -0
- data/db/migrate/20120415060323_rename_patron_import_file_imported_at_to_executed_at.rb +9 -0
- data/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +5 -0
- data/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +5 -0
- data/db/migrate/20120602141129_add_edit_mode_to_patron_import_file.rb +5 -0
- data/lib/enju_biblio/engine.rb +23 -0
- data/lib/enju_biblio/expire_editable_fragment.rb +30 -0
- data/lib/enju_biblio/expire_fragment_cache.rb +17 -0
- data/lib/enju_biblio/import_file.rb +13 -0
- data/lib/enju_biblio/master_model.rb +19 -0
- data/lib/enju_biblio/url_validator.rb +10 -0
- data/lib/enju_biblio/version.rb +3 -0
- data/lib/enju_biblio.rb +57 -0
- data/lib/tasks/enju_biblio_tasks.rake +4 -0
- data/spec/cassette_library/enju_ndl/manifestation.yml +523 -0
- data/spec/cassette_library/enju_ndl/ndl_search.yml +1140 -0
- data/spec/controllers/content_types_controller_spec.rb +445 -0
- data/spec/controllers/countries_controller_spec.rb +454 -0
- data/spec/controllers/create_types_controller_spec.rb +167 -0
- data/spec/controllers/creates_controller_spec.rb +450 -0
- data/spec/controllers/donates_controller_spec.rb +439 -0
- data/spec/controllers/exemplifies_controller_spec.rb +446 -0
- data/spec/controllers/extents_controller_spec.rb +445 -0
- data/spec/controllers/form_of_works_controller_spec.rb +445 -0
- data/spec/controllers/frequencies_controller_spec.rb +445 -0
- data/spec/controllers/import_requests_controller_spec.rb +448 -0
- data/spec/controllers/items_controller_spec.rb +549 -0
- data/spec/controllers/languages_controller_spec.rb +316 -0
- data/spec/controllers/licenses_controller_spec.rb +445 -0
- data/spec/controllers/manifestation_relationship_types_controller_spec.rb +445 -0
- data/spec/controllers/manifestation_relationships_controller_spec.rb +446 -0
- data/spec/controllers/manifestations_controller_spec.rb +722 -0
- data/spec/controllers/medium_of_performances_controller_spec.rb +445 -0
- data/spec/controllers/owns_controller_spec.rb +446 -0
- data/spec/controllers/patron_relationship_types_controller_spec.rb +445 -0
- data/spec/controllers/patron_relationships_controller_spec.rb +446 -0
- data/spec/controllers/patron_types_controller_spec.rb +447 -0
- data/spec/controllers/patrons_controller_spec.rb +636 -0
- data/spec/controllers/picture_files_controller_spec.rb +442 -0
- data/spec/controllers/produce_types_controller_spec.rb +166 -0
- data/spec/controllers/produces_controller_spec.rb +446 -0
- data/spec/controllers/realize_types_controller_spec.rb +166 -0
- data/spec/controllers/realizes_controller_spec.rb +447 -0
- data/spec/controllers/resource_import_files_controller_spec.rb +292 -0
- data/spec/controllers/resource_import_results_controller_spec.rb +137 -0
- data/spec/controllers/series_has_manifestations_controller_spec.rb +443 -0
- data/spec/controllers/series_statements_controller_spec.rb +441 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +176 -0
- data/spec/dummy/app/helpers/application_helper.rb +227 -0
- data/spec/dummy/app/mailers/notifier.rb +36 -0
- data/spec/dummy/app/models/ability.rb +184 -0
- data/spec/dummy/app/models/library_group.rb +86 -0
- data/spec/dummy/app/models/role.rb +46 -0
- data/spec/dummy/app/models/user.rb +94 -0
- data/spec/dummy/app/models/user_group.rb +40 -0
- data/spec/dummy/app/models/user_has_role.rb +5 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/page/403.html.erb +9 -0
- data/spec/dummy/app/views/page/403.mobile.erb +5 -0
- data/spec/dummy/app/views/page/403.xml.erb +4 -0
- data/spec/dummy/app/views/page/404.html.erb +9 -0
- data/spec/dummy/app/views/page/404.mobile.erb +5 -0
- data/spec/dummy/app/views/page/404.xml.erb +4 -0
- data/spec/dummy/config/application.rb +57 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/configatron/defaults.rb +28 -0
- data/spec/dummy/config/configatron/development.rb +4 -0
- data/spec/dummy/config/configatron/production.rb +12 -0
- data/spec/dummy/config/configatron/production.rb.sample +12 -0
- data/spec/dummy/config/configatron/test.rb +7 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/configatron.rb +2 -0
- data/spec/dummy/config/initializers/devise.rb +205 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +10 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/active_support_en.yml +36 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/locales/ja.yml +149 -0
- data/spec/dummy/config/routes.rb +60 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/032_create_checkins.rb +17 -0
- data/spec/dummy/db/migrate/033_create_checkouts.rb +25 -0
- data/spec/dummy/db/migrate/035_create_reserves.rb +27 -0
- data/spec/dummy/db/migrate/055_create_bookmarks.rb +22 -0
- data/spec/dummy/db/migrate/059_create_libraries.rb +28 -0
- data/spec/dummy/db/migrate/069_create_shelves.rb +15 -0
- data/spec/dummy/db/migrate/077_create_user_groups.rb +16 -0
- data/spec/dummy/db/migrate/080_create_library_groups.rb +20 -0
- data/spec/dummy/db/migrate/113_create_events.rb +23 -0
- data/spec/dummy/db/migrate/114_create_event_categories.rb +16 -0
- data/spec/dummy/db/migrate/120_create_baskets.rb +12 -0
- data/spec/dummy/db/migrate/121_create_checked_items.rb +17 -0
- data/spec/dummy/db/migrate/124_create_bookstores.rb +17 -0
- data/spec/dummy/db/migrate/127_create_use_restrictions.rb +16 -0
- data/spec/dummy/db/migrate/129_create_item_has_use_restrictions.rb +16 -0
- data/spec/dummy/db/migrate/130_create_request_status_types.rb +12 -0
- data/spec/dummy/db/migrate/131_create_request_types.rb +12 -0
- data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +16 -0
- data/spec/dummy/db/migrate/149_create_message_templates.rb +18 -0
- data/spec/dummy/db/migrate/154_create_messages.rb +24 -0
- data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +20 -0
- data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +17 -0
- data/spec/dummy/db/migrate/20081028093607_create_event_import_files.rb +27 -0
- data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +17 -0
- data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +25 -0
- data/spec/dummy/db/migrate/20081030023615_create_carrier_type_has_checkout_types.rb +18 -0
- data/spec/dummy/db/migrate/20081117143156_create_inventory_files.rb +18 -0
- data/spec/dummy/db/migrate/20081117143455_create_inventories.rb +17 -0
- data/spec/dummy/db/migrate/20081212075554_create_checkout_stat_has_manifestations.rb +17 -0
- data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +16 -0
- data/spec/dummy/db/migrate/20081212151614_create_bookmark_stats.rb +16 -0
- data/spec/dummy/db/migrate/20081212151820_create_bookmark_stat_has_manifestations.rb +13 -0
- data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +16 -0
- data/spec/dummy/db/migrate/20081215094955_create_checkout_stat_has_users.rb +17 -0
- data/spec/dummy/db/migrate/20081216190517_create_reserve_stat_has_manifestations.rb +17 -0
- data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +16 -0
- data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +16 -0
- data/spec/dummy/db/migrate/20081220034117_create_reserve_stat_has_users.rb +17 -0
- data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +27 -0
- data/spec/dummy/db/migrate/20090519203307_create_participates.rb +17 -0
- data/spec/dummy/db/migrate/20090706125521_add_attachments_inventory_to_inventory_file.rb +15 -0
- data/spec/dummy/db/migrate/20090831220301_create_lending_policies.rb +21 -0
- data/spec/dummy/db/migrate/20091202124834_create_versions.rb +18 -0
- data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +9 -0
- data/spec/dummy/db/migrate/20100525171356_acts_as_taggable_on_migration.rb +30 -0
- data/spec/dummy/db/migrate/20100527113752_create_delayed_jobs.rb +21 -0
- data/spec/dummy/db/migrate/20100925074639_create_event_import_results.rb +15 -0
- data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
- data/spec/dummy/db/migrate/20110301134521_add_expire_date_to_reserve.rb +9 -0
- data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +13 -0
- data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +9 -0
- data/spec/dummy/db/migrate/20110621093332_remove_expire_date_from_reserve.rb +9 -0
- data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +13 -0
- data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
- data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
- data/spec/dummy/db/migrate/20111201155456_create_users.rb +16 -0
- data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +44 -0
- data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
- data/spec/dummy/db/migrate/20111217234412_add_save_checkout_history_to_user.rb +5 -0
- data/spec/dummy/db/migrate/20111218002349_add_checkout_icalendar_token_to_user.rb +6 -0
- data/spec/dummy/db/migrate/20111231145823_add_share_bookmarks_to_user.rb +5 -0
- data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +5 -0
- data/spec/dummy/db/migrate/20120105101944_add_queue_to_delayed_jobs.rb +9 -0
- data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
- data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +12 -0
- data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +14 -0
- data/spec/dummy/db/migrate/20120413051535_add_event_import_fingerprint_to_event_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20120413100431_add_fingerprint_to_inventory_file.rb +5 -0
- data/spec/dummy/db/migrate/20120413170734_add_error_message_to_event_import_file.rb +5 -0
- data/spec/dummy/db/migrate/20120415060342_rename_event_import_file_imported_at_to_executed_at.rb +9 -0
- data/spec/dummy/db/migrate/20120424103932_add_librarian_id_to_checked_item.rb +5 -0
- data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +5 -0
- data/spec/dummy/db/schema.rb +1240 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/lib/enju_leaf/calculate_stat.rb +30 -0
- data/spec/dummy/lib/enju_leaf/localized_name.rb +15 -0
- data/spec/dummy/lib/enju_leaf/openurl.rb +156 -0
- data/spec/dummy/lib/enju_leaf/porta_cql.rb +283 -0
- data/spec/dummy/lib/enju_leaf/sru.rb +84 -0
- data/spec/dummy/lib/enju_leaf.rb +12 -0
- data/spec/dummy/lib/plugins/ext/event-calendar.rb +38 -0
- data/spec/dummy/lib/plugins/ext/sunspot/abstract_search.rb +12 -0
- data/spec/dummy/lib/plugins/ext/sunspot/dismax.rb +41 -0
- data/spec/dummy/lib/plugins/ext/sunspot/start_record.rb +55 -0
- data/spec/dummy/lib/plugins/ext/sunspot.rb +3 -0
- data/spec/dummy/lib/plugins/ext/will_paginate.rb +64 -0
- data/spec/dummy/lib/plugins/ext.rb +3 -0
- data/spec/dummy/lib/plugins.rb +2 -0
- data/spec/dummy/private/system/patron_import_files/patron_imports/000/000/004/original/patron_delete_file.tsv +8 -0
- data/spec/dummy/private/system/patron_import_files/patron_imports/000/000/004/original/patron_import_file_sample1.tsv +5 -0
- data/spec/dummy/private/system/patron_import_files/patron_imports/000/000/004/original/patron_import_file_sample3.tsv +5 -0
- data/spec/dummy/private/system/patron_import_files/patron_imports/000/000/004/original/patron_update_file.tsv +3 -0
- data/spec/dummy/private/system/picture_files/pictures/000/000/005/medium/spinner.gif +0 -0
- data/spec/dummy/private/system/picture_files/pictures/000/000/005/original/spinner.gif +0 -0
- data/spec/dummy/private/system/picture_files/pictures/000/000/005/thumb/spinner.gif +0 -0
- data/spec/dummy/private/system/resource_import_files/resource_imports/000/000/004/original/isbn_sample.txt +3 -0
- data/spec/dummy/private/system/resource_import_files/resource_imports/000/000/004/original/item_delete_file.tsv +11 -0
- data/spec/dummy/private/system/resource_import_files/resource_imports/000/000/004/original/item_update_file.tsv +4 -0
- data/spec/dummy/private/system/resource_import_files/resource_imports/000/000/004/original/resource_import_file_sample1.tsv +19 -0
- data/spec/dummy/private/system/resource_import_files/resource_imports/000/000/004/original/resource_import_file_sample2.tsv +19 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/solr/conf/admin-extra.html +31 -0
- data/spec/dummy/solr/conf/elevate.xml +36 -0
- data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/spec/dummy/solr/conf/protwords.txt +21 -0
- data/spec/dummy/solr/conf/schema.xml +244 -0
- data/spec/dummy/solr/conf/scripts.conf +24 -0
- data/spec/dummy/solr/conf/solrconfig.xml +934 -0
- data/spec/dummy/solr/conf/spellings.txt +2 -0
- data/spec/dummy/solr/conf/stopwords.txt +58 -0
- data/spec/dummy/solr/conf/synonyms.txt +31 -0
- data/spec/dummy/solr/data/test/index/_0.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_0.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_0.fnm +7 -0
- data/spec/dummy/solr/data/test/index/_0.frq +0 -0
- data/spec/dummy/solr/data/test/index/_0.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_0.prx +0 -0
- data/spec/dummy/solr/data/test/index/_0.tii +0 -0
- data/spec/dummy/solr/data/test/index/_0.tis +0 -0
- data/spec/dummy/solr/data/test/index/_1.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_1.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_1.fnm +7 -0
- data/spec/dummy/solr/data/test/index/_1.frq +0 -0
- data/spec/dummy/solr/data/test/index/_1.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_1.prx +0 -0
- data/spec/dummy/solr/data/test/index/_1.tii +0 -0
- data/spec/dummy/solr/data/test/index/_1.tis +0 -0
- data/spec/dummy/solr/data/test/index/_2.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_2.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_2.fnm +7 -0
- data/spec/dummy/solr/data/test/index/_2.frq +0 -0
- data/spec/dummy/solr/data/test/index/_2.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_2.prx +0 -0
- data/spec/dummy/solr/data/test/index/_2.tii +0 -0
- data/spec/dummy/solr/data/test/index/_2.tis +0 -0
- data/spec/dummy/solr/data/test/index/_3.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_3.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_3.fnm +8 -0
- data/spec/dummy/solr/data/test/index/_3.frq +0 -0
- data/spec/dummy/solr/data/test/index/_3.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_3.prx +0 -0
- data/spec/dummy/solr/data/test/index/_3.tii +0 -0
- data/spec/dummy/solr/data/test/index/_3.tis +0 -0
- data/spec/dummy/solr/data/test/index/_4.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_4.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_4.fnm +9 -0
- data/spec/dummy/solr/data/test/index/_4.frq +0 -0
- data/spec/dummy/solr/data/test/index/_4.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_4.prx +0 -0
- data/spec/dummy/solr/data/test/index/_4.tii +0 -0
- data/spec/dummy/solr/data/test/index/_4.tis +0 -0
- data/spec/dummy/solr/data/test/index/_6.fdt +0 -0
- data/spec/dummy/solr/data/test/index/_6.fdx +0 -0
- data/spec/dummy/solr/data/test/index/_6.fnm +10 -0
- data/spec/dummy/solr/data/test/index/_6.frq +0 -0
- data/spec/dummy/solr/data/test/index/_6.nrm +1 -0
- data/spec/dummy/solr/data/test/index/_6.prx +0 -0
- data/spec/dummy/solr/data/test/index/_6.tii +0 -0
- data/spec/dummy/solr/data/test/index/_6.tis +0 -0
- data/spec/dummy/solr/data/test/index/_6_1.del +0 -0
- data/spec/dummy/solr/data/test/index/segments.gen +0 -0
- data/spec/dummy/solr/data/test/index/segments_8 +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
- data/spec/dummy/tmp/cache/4F7/F90/default_role +0 -0
- data/spec/dummy/tmp/cache/6E4/420/search_engine_all +0 -0
- data/spec/factories/carrier_type.rb +5 -0
- data/spec/factories/content_type.rb +5 -0
- data/spec/factories/country.rb +8 -0
- data/spec/factories/create.rb +6 -0
- data/spec/factories/create_types.rb +9 -0
- data/spec/factories/donate.rb +6 -0
- data/spec/factories/exemplify.rb +6 -0
- data/spec/factories/extent.rb +5 -0
- data/spec/factories/form_of_work.rb +5 -0
- data/spec/factories/frequency.rb +5 -0
- data/spec/factories/import_request.rb +5 -0
- data/spec/factories/item.rb +7 -0
- data/spec/factories/language.rb +8 -0
- data/spec/factories/license.rb +5 -0
- data/spec/factories/manifestation.rb +6 -0
- data/spec/factories/manifestation_relationship.rb +6 -0
- data/spec/factories/manifestation_relationship_type.rb +5 -0
- data/spec/factories/medium_of_performance.rb +5 -0
- data/spec/factories/own.rb +6 -0
- data/spec/factories/patron.rb +13 -0
- data/spec/factories/patron_relationship.rb +6 -0
- data/spec/factories/patron_relationship_type.rb +5 -0
- data/spec/factories/patron_type.rb +5 -0
- data/spec/factories/produce.rb +6 -0
- data/spec/factories/produce_types.rb +9 -0
- data/spec/factories/realize.rb +6 -0
- data/spec/factories/realize_types.rb +9 -0
- data/spec/factories/series_has_manifestation.rb +6 -0
- data/spec/factories/series_statement.rb +5 -0
- data/spec/factories/user.rb +37 -0
- data/spec/fixtures/baskets.yml +80 -0
- data/spec/fixtures/bookstores.yml +107 -0
- data/spec/fixtures/budget_types.yml +29 -0
- data/spec/fixtures/carrier_type_has_checkout_types.yml +31 -0
- data/spec/fixtures/carrier_types.yml +51 -0
- data/spec/fixtures/checked_items.yml +35 -0
- data/spec/fixtures/checkins.yml +48 -0
- data/spec/fixtures/checkout_stat_has_manifestations.yml +24 -0
- data/spec/fixtures/checkout_stat_has_users.yml +24 -0
- data/spec/fixtures/checkout_types.yml +34 -0
- data/spec/fixtures/checkouts.yml +162 -0
- data/spec/fixtures/circulation_statuses.yml +136 -0
- data/spec/fixtures/content_types.yml +36 -0
- data/spec/fixtures/countries.yml +2059 -0
- data/spec/fixtures/create_types.yml +47 -0
- data/spec/fixtures/creates.yml +65 -0
- data/spec/fixtures/donates.yml +31 -0
- data/spec/fixtures/event_categories.yml +55 -0
- data/spec/fixtures/events.yml +142 -0
- data/spec/fixtures/exemplifies.yml +155 -0
- data/spec/fixtures/extents.yml +29 -0
- data/spec/fixtures/form_of_works.yml +39 -0
- data/spec/fixtures/frequencies.yml +85 -0
- data/spec/fixtures/import_requests.yml +27 -0
- data/spec/fixtures/inventory_files.yml +40 -0
- data/spec/fixtures/item_has_use_restrictions.yml +61 -0
- data/spec/fixtures/items.yml +257 -0
- data/spec/fixtures/languages.yml +1901 -0
- data/spec/fixtures/lending_policies.yml +92 -0
- data/spec/fixtures/libraries.yml +102 -0
- data/spec/fixtures/library_groups.yml +33 -0
- data/spec/fixtures/licenses.yml +29 -0
- data/spec/fixtures/manifestation_checkout_stats.yml +31 -0
- data/spec/fixtures/manifestation_relationship_types.yml +29 -0
- data/spec/fixtures/manifestation_relationships.yml +30 -0
- data/spec/fixtures/manifestation_reserve_stats.yml +31 -0
- data/spec/fixtures/manifestations.yml +2020 -0
- data/spec/fixtures/medium_of_performances.yml +29 -0
- data/spec/fixtures/message_requests.yml +30 -0
- data/spec/fixtures/message_templates.yml +70 -0
- data/spec/fixtures/messages.yml +62 -0
- data/spec/fixtures/owns.yml +26 -0
- data/spec/fixtures/patron_import_files.yml +47 -0
- data/spec/fixtures/patron_import_results.yml +29 -0
- data/spec/fixtures/patron_relationship_types.yml +34 -0
- data/spec/fixtures/patron_relationships.yml +25 -0
- data/spec/fixtures/patron_types.yml +35 -0
- data/spec/fixtures/patrons.yml +338 -0
- data/spec/fixtures/picture_files.yml +63 -0
- data/spec/fixtures/produce_types.yml +31 -0
- data/spec/fixtures/produces.yml +149 -0
- data/spec/fixtures/realize_types.yml +39 -0
- data/spec/fixtures/realizes.yml +86 -0
- data/spec/fixtures/request_status_types.yml +63 -0
- data/spec/fixtures/request_types.yml +55 -0
- data/spec/fixtures/reserve_stat_has_manifestations.yml +24 -0
- data/spec/fixtures/reserve_stat_has_users.yml +24 -0
- data/spec/fixtures/reserves.yml +158 -0
- data/spec/fixtures/resource_import_files.yml +47 -0
- data/spec/fixtures/resource_import_results.yml +29 -0
- data/spec/fixtures/roles.yml +21 -0
- data/spec/fixtures/series_has_manifestations.yml +35 -0
- data/spec/fixtures/series_statements.yml +45 -0
- data/spec/fixtures/shelves.yml +47 -0
- data/spec/fixtures/use_restrictions.yml +93 -0
- data/spec/fixtures/user_checkout_stats.yml +30 -0
- data/spec/fixtures/user_group_has_checkout_types.yml +111 -0
- data/spec/fixtures/user_groups.yml +51 -0
- data/spec/fixtures/user_has_roles.yml +41 -0
- data/spec/fixtures/user_reserve_stats.yml +30 -0
- data/spec/fixtures/users.yml +106 -0
- data/spec/models/carrier_type_spec.rb +25 -0
- data/spec/models/content_type_spec.rb +21 -0
- data/spec/models/country_spec.rb +22 -0
- data/spec/models/create_spec.rb +22 -0
- data/spec/models/create_type_spec.rb +21 -0
- data/spec/models/donate_spec.rb +19 -0
- data/spec/models/exemplify_spec.rb +29 -0
- data/spec/models/extent_spec.rb +21 -0
- data/spec/models/form_of_work_spec.rb +21 -0
- data/spec/models/frequency_spec.rb +24 -0
- data/spec/models/import_request_spec.rb +21 -0
- data/spec/models/item_spec.rb +70 -0
- data/spec/models/language_spec.rb +23 -0
- data/spec/models/license_spec.rb +21 -0
- data/spec/models/manifestation_relationship_spec.rb +21 -0
- data/spec/models/manifestation_relationship_type_spec.rb +21 -0
- data/spec/models/manifestation_spec.rb +292 -0
- data/spec/models/medium_of_performance_spec.rb +21 -0
- data/spec/models/own_spec.rb +20 -0
- data/spec/models/patron_import_file_spec.rb +96 -0
- data/spec/models/patron_import_result_spec.rb +21 -0
- data/spec/models/patron_relationship_spec.rb +21 -0
- data/spec/models/patron_relationship_type_spec.rb +21 -0
- data/spec/models/patron_spec.rb +103 -0
- data/spec/models/patron_type_spec.rb +21 -0
- data/spec/models/picture_file_spec.rb +29 -0
- data/spec/models/produce_spec.rb +22 -0
- data/spec/models/produce_type_spec.rb +21 -0
- data/spec/models/realize_spec.rb +22 -0
- data/spec/models/realize_type_spec.rb +21 -0
- data/spec/models/resource_import_file_spec.rb +166 -0
- data/spec/models/resource_import_result_spec.rb +21 -0
- data/spec/models/series_has_manifestation_spec.rb +21 -0
- data/spec/models/series_statement_spec.rb +38 -0
- data/spec/requests/create_types_spec.rb +11 -0
- data/spec/requests/items_spec.rb +9 -0
- data/spec/requests/manifestations_spec.rb +9 -0
- data/spec/requests/patrons_spec.rb +9 -0
- data/spec/requests/produce_types_spec.rb +11 -0
- data/spec/requests/realize_types_spec.rb +11 -0
- data/spec/routing/content_types_routing_spec.rb +35 -0
- data/spec/routing/create_types_routing_spec.rb +35 -0
- data/spec/routing/creates_routing_spec.rb +35 -0
- data/spec/routing/items_routing_spec.rb +35 -0
- data/spec/routing/licenses_routing_spec.rb +35 -0
- data/spec/routing/manifestation_relationship_types_routing_spec.rb +35 -0
- data/spec/routing/manifestation_relationships_routing_spec.rb +35 -0
- data/spec/routing/manifestations_routing_spec.rb +39 -0
- data/spec/routing/patron_relationship_types_routing_spec.rb +35 -0
- data/spec/routing/patron_relationships_routing_spec.rb +35 -0
- data/spec/routing/patrons_routing_spec.rb +35 -0
- data/spec/routing/produce_types_routing_spec.rb +35 -0
- data/spec/routing/realize_types_routing_spec.rb +35 -0
- data/spec/routing/realizes_routing_spec.rb +35 -0
- data/spec/routing/series_has_manifestations_routing_spec.rb +35 -0
- data/spec/spec_helper.rb +54 -0
- data/spec/support/controller_macros.rb +46 -0
- data/spec/support/devise.rb +4 -0
- data/spec/support/vcr.rb +9 -0
- data/spec/views/create_types/edit.html.erb_spec.rb +23 -0
- data/spec/views/create_types/index.html.erb_spec.rb +31 -0
- data/spec/views/create_types/new.html.erb_spec.rb +23 -0
- data/spec/views/create_types/show.html.erb_spec.rb +24 -0
- data/spec/views/creates/edit.html.erb_spec.rb +25 -0
- data/spec/views/creates/index.html.erb_spec.rb +25 -0
- data/spec/views/creates/new.html.erb_spec.rb +25 -0
- data/spec/views/creates/show.html.erb_spec.rb +19 -0
- data/spec/views/exemplifies/edit.html.erb_spec.rb +22 -0
- data/spec/views/exemplifies/index.html.erb_spec.rb +25 -0
- data/spec/views/exemplifies/new.html.erb_spec.rb +22 -0
- data/spec/views/exemplifies/show.html.erb_spec.rb +19 -0
- data/spec/views/manifestations/show.html.erb_spec.rb +16 -0
- data/spec/views/owns/edit.html.erb_spec.rb +22 -0
- data/spec/views/owns/index.html.erb_spec.rb +25 -0
- data/spec/views/owns/new.html.erb_spec.rb +22 -0
- data/spec/views/owns/show.html.erb_spec.rb +19 -0
- data/spec/views/produce_types/edit.html.erb_spec.rb +23 -0
- data/spec/views/produce_types/index.html.erb_spec.rb +31 -0
- data/spec/views/produce_types/new.html.erb_spec.rb +23 -0
- data/spec/views/produce_types/show.html.erb_spec.rb +24 -0
- data/spec/views/produces/edit.html.erb_spec.rb +26 -0
- data/spec/views/produces/index.html.erb_spec.rb +25 -0
- data/spec/views/produces/new.html.erb_spec.rb +26 -0
- data/spec/views/produces/show.html.erb_spec.rb +19 -0
- data/spec/views/realize_types/edit.html.erb_spec.rb +23 -0
- data/spec/views/realize_types/index.html.erb_spec.rb +31 -0
- data/spec/views/realize_types/new.html.erb_spec.rb +23 -0
- data/spec/views/realize_types/show.html.erb_spec.rb +24 -0
- data/spec/views/realizes/edit.html.erb_spec.rb +26 -0
- data/spec/views/realizes/index.html.erb_spec.rb +25 -0
- data/spec/views/realizes/new.html.erb_spec.rb +26 -0
- data/spec/views/realizes/show.html.erb_spec.rb +19 -0
- data/spec/views/series_has_manifestations/edit.html.erb_spec.rb +21 -0
- data/spec/views/series_has_manifestations/index.html.erb_spec.rb +31 -0
- data/spec/views/series_has_manifestations/new.html.erb_spec.rb +21 -0
- data/spec/views/series_has_manifestations/show.html.erb_spec.rb +21 -0
- metadata +1930 -0
Binary file
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module CalculateStat
|
2
|
+
|
3
|
+
def self.included(base)
|
4
|
+
base.extend ClassMethods
|
5
|
+
base.send :include, InstanceMethods
|
6
|
+
base.class_eval do
|
7
|
+
validates_presence_of :start_date, :end_date
|
8
|
+
validate :check_date
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module ClassMethods
|
13
|
+
def calculate_stat
|
14
|
+
self.not_calculated.each do |stat|
|
15
|
+
stat.calculate!
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module InstanceMethods
|
21
|
+
def check_date
|
22
|
+
if self.start_date and self.end_date
|
23
|
+
if self.start_date >= self.end_date
|
24
|
+
errors.add(:start_date)
|
25
|
+
errors.add(:end_date)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module LocalizedName
|
2
|
+
def localize(locale = I18n.locale)
|
3
|
+
string = YAML.load(self)
|
4
|
+
if string.is_a?(Hash) and string[locale.to_s]
|
5
|
+
return string[locale.to_s]
|
6
|
+
end
|
7
|
+
self
|
8
|
+
rescue NoMethodError
|
9
|
+
self
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class String
|
14
|
+
include LocalizedName
|
15
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#-------------------------------------------
|
3
|
+
# OpenurlQuerySyntaxErrorクラス
|
4
|
+
# 文法上の誤りをエラーとする
|
5
|
+
#-------------------------------------------
|
6
|
+
class OpenurlQuerySyntaxError < RuntimeError; end
|
7
|
+
#-------------------------------------------
|
8
|
+
# Openurlクラス
|
9
|
+
#-------------------------------------------
|
10
|
+
class Openurl
|
11
|
+
# 一致条件ごとの分類
|
12
|
+
MATCH_EXACT = [:ndl_dpid] # 完全一致
|
13
|
+
MATCH_PART = [:aulast, :aufirst, :au, :title, :atitle, :jtitle, :btitle, :pub] # 部分一致
|
14
|
+
MATCH_AHEAD = [:issn, :isbn, :ndl_jpno] # 前方一致
|
15
|
+
|
16
|
+
# ある項目に対して複数語指定時の検索方法ごとの分類
|
17
|
+
LOGIC_MULTI_AND = [:au, :title, :atitle, :jtitle, :btitle, :pub] # AND検索
|
18
|
+
LOGIC_MULTI_OR = [:ndl_dpid] # OR検索
|
19
|
+
|
20
|
+
# 桁チェックが必要な項目
|
21
|
+
NUM_CHECK = {:issn => 8, :isbn => 13}
|
22
|
+
|
23
|
+
# 集約される項目
|
24
|
+
SYNONYMS = [:title, :aulast, :aufirst]
|
25
|
+
|
26
|
+
# enjuのフィールド名(検索用)管理
|
27
|
+
ENJU_FIELD = {:aulast => 'au_text', # aulast=au
|
28
|
+
:aufirst => 'au_text', # aufirst=au
|
29
|
+
:au => 'au_text',
|
30
|
+
:title => 'btitle_text', # title=btitle
|
31
|
+
:atitle => 'atitle_text',
|
32
|
+
:btitle => 'btitle_text',
|
33
|
+
:jtitle => 'jtitle_text',
|
34
|
+
:pub => 'publisher_text',
|
35
|
+
:issn => 'issn_sm',
|
36
|
+
:isbn => 'isbn_sm',
|
37
|
+
:ndl_jpno => 'ndl_jpno_text', # TODO:現在対応項目はないので保留。
|
38
|
+
:ndl_dpid => 'ndl_dpid_sm', # TODO:現在対応項目はないので保留。これのみ完全一致であることに注意。
|
39
|
+
:associate => '' # TODO:フィールド名ではないので削除?
|
40
|
+
}
|
41
|
+
|
42
|
+
def initialize(params)
|
43
|
+
# @openurl_queryに検索項目ごとの検索文を格納
|
44
|
+
if params.has_key?(:any) then
|
45
|
+
# anyの場合は他に条件が指定されていても無視
|
46
|
+
@openurl_query = [params[:any].strip]
|
47
|
+
else
|
48
|
+
@openurl_query = to_sunspot(params)
|
49
|
+
end
|
50
|
+
@manifestations = []
|
51
|
+
end
|
52
|
+
|
53
|
+
attr_reader :openurl_query, :manifestations, :query_text
|
54
|
+
|
55
|
+
# 検索
|
56
|
+
def search
|
57
|
+
search = Sunspot.new_search(Manifestation)
|
58
|
+
@query_text = build_query
|
59
|
+
query = @query_text
|
60
|
+
search.build{ fulltext query }
|
61
|
+
search.execute!.results
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
# 検索文を結合,
|
66
|
+
def build_query
|
67
|
+
@openurl_query.join(" AND ")
|
68
|
+
end
|
69
|
+
|
70
|
+
# params OpenURLのリクエストのパラメータ
|
71
|
+
# 個々のパラメータに合わせて検索文を組立てメソッドを呼ぶ。この時、引数は、enjuのフィールド名と値。
|
72
|
+
def to_sunspot(params)
|
73
|
+
query = []
|
74
|
+
params.each_key do |key|
|
75
|
+
key = key.to_sym
|
76
|
+
if MATCH_EXACT.include?(key) then # 完全一致
|
77
|
+
query << to_sunspot_match_exact(ENJU_FIELD[key], params[key].strip)
|
78
|
+
elsif MATCH_PART.include?(key) then # 部分一致
|
79
|
+
query << to_sunspot_match_part(key, ENJU_FIELD[key], params[key].strip)
|
80
|
+
elsif MATCH_AHEAD.include?(key) then # 前方一致
|
81
|
+
query << to_sunspot_match_ahead(key, ENJU_FIELD[key], params[key].strip)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
# queryにあるau_textの統合
|
85
|
+
@openurl_query = unite_au_query(query)
|
86
|
+
end
|
87
|
+
|
88
|
+
# 完全一致の項目の検索文組立て
|
89
|
+
# TODO 完全一致の項目はndl_dpidだけで、これはデータプロバイダについて議論中なので保留する
|
90
|
+
def to_sunspot_match_exact(field, val)
|
91
|
+
# 途中に空白がある場合は複数語が指定されているとみなし、ORでつなぐ。
|
92
|
+
if /\s+/ =~ val
|
93
|
+
"%s:%s" % [field, val.gsub(/\s+/, ' OR ')]
|
94
|
+
else
|
95
|
+
"%s:%s" % [field, val]
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# 部分一致の項目の検索文組立て
|
100
|
+
# key パラメータのキー(複数指定の検索方法判断に使う)
|
101
|
+
# field 項目名
|
102
|
+
# val 値
|
103
|
+
def to_sunspot_match_part(key, field, val)
|
104
|
+
# 途中に空白がある場合は複数語が指定されているとみなし、ANDでつなぐ。
|
105
|
+
if /\s+/ =~ val
|
106
|
+
if LOGIC_MULTI_AND.include?(key) then
|
107
|
+
"%s:(%s)" % [field, val.gsub(/\s+/, ' AND ')]
|
108
|
+
else
|
109
|
+
raise OpenurlQuerySyntaxError, "the key \"#{key}\" not allow multi words"
|
110
|
+
end
|
111
|
+
else
|
112
|
+
"%s:%s" % [field, val] # fieldに対して語が1つならばこれ
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# 前方一致の項目の検索文組立て
|
117
|
+
def to_sunspot_match_ahead(key, field, val)
|
118
|
+
# 既定の桁より大きい場合、または、数値でない文字列の場合エラー
|
119
|
+
# 数値でない文字列には空白がある場合も含むので複数指定はエラーとなる
|
120
|
+
# このチェックはANY検索の時外す
|
121
|
+
if NUM_CHECK.include?(key) then
|
122
|
+
if [:issn, :isbn].include?(key.to_sym)
|
123
|
+
val.gsub!('-', '')
|
124
|
+
end
|
125
|
+
raise OpenurlQuerySyntaxError unless /\A\d{1,#{NUM_CHECK[key]}}X?\Z/i =~ val
|
126
|
+
end
|
127
|
+
"%s:%s*" % [field, val]
|
128
|
+
end
|
129
|
+
|
130
|
+
# au項目の統合
|
131
|
+
# au、aufirst、aulastはau_textに統合する
|
132
|
+
def unite_au_query(query)
|
133
|
+
new_query = []
|
134
|
+
au_item = []
|
135
|
+
str = "au_text:"
|
136
|
+
au_flg = false
|
137
|
+
reg = Regexp.compile(/\A#{str}/)
|
138
|
+
query.each do |q|
|
139
|
+
if reg =~ q then
|
140
|
+
au_flg = true
|
141
|
+
au_item.push(q[str.length..q.length])
|
142
|
+
else
|
143
|
+
new_query.push(q)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
if au_flg then
|
147
|
+
if au_item.size > 1 then
|
148
|
+
str = str + "(%s)" % [au_item.join(' AND ')]
|
149
|
+
else
|
150
|
+
str = str + au_item[0]
|
151
|
+
end
|
152
|
+
new_query.push(str)
|
153
|
+
end
|
154
|
+
return new_query
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,283 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'strscan'
|
3
|
+
|
4
|
+
class QueryError < RuntimeError; end
|
5
|
+
class QuerySyntaxError < QueryError; end
|
6
|
+
|
7
|
+
class Cql
|
8
|
+
def initialize(line)
|
9
|
+
@logic = nil
|
10
|
+
@query = split_clause_text(line).collect{|txt| Clause.new(txt)}
|
11
|
+
|
12
|
+
from_day, @query = extract_with_index(@query, /from/io)
|
13
|
+
@from = comp_date(from_day)
|
14
|
+
until_day, @query = extract_with_index(@query, /until/io)
|
15
|
+
@until = comp_date(until_day)
|
16
|
+
sort_by, @query = extract_with_index(@query, /sortBy/io)
|
17
|
+
@sort_by = sort_by ? sort_by.terms.first : ''
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :query, :from, :until, :sort_by, :logic
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
instance_variables.all? do |val|
|
24
|
+
instance_variable_get(val) == other.instance_variable_get(val)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_sunspot
|
29
|
+
(@query.collect{|c| c.to_sunspot} + date_range(@from, @until)).join(" #{@logic} ")
|
30
|
+
end
|
31
|
+
|
32
|
+
def split_clause_text(line)
|
33
|
+
clauses = []
|
34
|
+
|
35
|
+
s = StringScanner.new(line)
|
36
|
+
text = ''
|
37
|
+
while s.rest?
|
38
|
+
case
|
39
|
+
when s.scan(/\s+/)
|
40
|
+
text << s.matched
|
41
|
+
when s.scan(/"(?:[^"\\]|\\.)*"/)
|
42
|
+
text << s.matched
|
43
|
+
when s.scan(/(AND|OR)/i)
|
44
|
+
logic = s.matched.upcase
|
45
|
+
if @logic
|
46
|
+
raise QuerySyntaxError unless @logic == logic
|
47
|
+
else
|
48
|
+
@logic = logic
|
49
|
+
end
|
50
|
+
clauses << text.strip
|
51
|
+
text = ''
|
52
|
+
when s.scan(/\S*/)
|
53
|
+
text << s.matched
|
54
|
+
end
|
55
|
+
end
|
56
|
+
clauses << text.strip
|
57
|
+
clauses.collect{|txt| txt.gsub(/(\A\(|\)\Z)/, '')}
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
def extract_with_index(arr, reg)
|
62
|
+
element, rest = arr.partition{|c| reg =~ c.index }
|
63
|
+
[element.last, rest]
|
64
|
+
end
|
65
|
+
|
66
|
+
def date_range(from_date, until_date)
|
67
|
+
unless from_date == '*' and until_date == '*'
|
68
|
+
["date_of_publication_d:[#{from_date} TO #{until_date}]"]
|
69
|
+
else
|
70
|
+
[]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def comp_date(date)
|
75
|
+
if date
|
76
|
+
text = date.terms[0]
|
77
|
+
date_text = case text
|
78
|
+
when /\A\d{4}-\d{2}-\d{2}\Z/
|
79
|
+
text
|
80
|
+
when /\A\d{4}-\d{2}\Z/
|
81
|
+
(text + '-01')
|
82
|
+
when /\A\d{4}\Z/
|
83
|
+
(text + '-01-01')
|
84
|
+
else
|
85
|
+
raise QuerySyntaxError, "#{text}"
|
86
|
+
end
|
87
|
+
begin
|
88
|
+
Time.zone.parse(date_text).utc.iso8601.to_s
|
89
|
+
rescue
|
90
|
+
raise QuerySyntaxError, "#{date}"
|
91
|
+
end
|
92
|
+
else
|
93
|
+
'*'
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
class ScannerError < QuerySyntaxError; end
|
99
|
+
class AdapterError < QuerySyntaxError; end
|
100
|
+
|
101
|
+
class Clause
|
102
|
+
INDEX = /(dpid|dpgroupid|title|creator|publisher|ndc|description|subject|isbn|issn|jpno|from|until|anywhere|porta_type|digitalize_type|webget_type|payment_type|ndl_agent_type|ndlc|itemno)/io
|
103
|
+
SORT_BY = /sortBy/io
|
104
|
+
RELATION = /(=|exact|\^|any|all)/io
|
105
|
+
|
106
|
+
MATCH_ALL = %w[title creator publisher]
|
107
|
+
MATCH_EXACT = %w[dpid dpgroupid isbn issn jpno porta_type digitalize_type webget_type payment_type ndl_agent_type itemno]
|
108
|
+
MATCH_PART = %w[description subject]
|
109
|
+
MATCH_AHEAD = %w[ndc ndlc]
|
110
|
+
MATCH_DATE = %w[from until]
|
111
|
+
MATCH_ANYWHERE = %w[anywhere]
|
112
|
+
LOGIC_ALL = %w[title creator publisher description subject anywhere]
|
113
|
+
LOGIC_ANY = %w[dpid ndl_agent_type]
|
114
|
+
LOGIC_EQUAL = %w[dpgroupid ndc isbn issn jpno from until porta_type digitalize_type webget_type payment_type ndlc itemno]
|
115
|
+
MULTIPLE = %w[dpid title creator publisher description subject anywhere ndl_agent_type]
|
116
|
+
|
117
|
+
def initialize(text)
|
118
|
+
unless text.empty?
|
119
|
+
@index, @relation, @terms = scan(text)
|
120
|
+
porta_adapter
|
121
|
+
@field = @index
|
122
|
+
else
|
123
|
+
@index = ''
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
attr_reader :index, :relation, :terms
|
128
|
+
|
129
|
+
def ==(other)
|
130
|
+
instance_variables.all? do |val|
|
131
|
+
instance_variable_get(val) == other.instance_variable_get(val)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def scan(text)
|
136
|
+
ss = StringScanner.new(text)
|
137
|
+
index = ''
|
138
|
+
relation = ''
|
139
|
+
terms = []
|
140
|
+
|
141
|
+
if ss.scan(INDEX) or ss.scan(SORT_BY)
|
142
|
+
index = ss[0]
|
143
|
+
end
|
144
|
+
#else
|
145
|
+
# raise ScannerError, "index or the sortBy is requested in '#{text}'"
|
146
|
+
#end
|
147
|
+
ss.scan(/\s+/)
|
148
|
+
if ss.scan(RELATION)
|
149
|
+
relation = ss[0].upcase
|
150
|
+
end
|
151
|
+
#else
|
152
|
+
# raise ScannerError, "relation is requested in '#{text}'"
|
153
|
+
#end
|
154
|
+
ss.scan(/\s+/)
|
155
|
+
if ss.scan(/.+/)
|
156
|
+
terms = ss[0].gsub(/(\A\"|\"\Z)/, '').split
|
157
|
+
else
|
158
|
+
raise ScannerError, "search term(s) is requested in '#{text}'"
|
159
|
+
end
|
160
|
+
|
161
|
+
[index, relation, terms]
|
162
|
+
end
|
163
|
+
|
164
|
+
def porta_adapter
|
165
|
+
logic_adapter
|
166
|
+
multiple_adapter
|
167
|
+
end
|
168
|
+
|
169
|
+
def logic_adapter
|
170
|
+
case
|
171
|
+
when LOGIC_ALL.include?(@index)
|
172
|
+
raise AdapterError unless %w[ALL ANY = EXACT ^].include?(@relation)
|
173
|
+
when LOGIC_ANY.include?(@index)
|
174
|
+
raise AdapterError unless %w[ANY =].include?(@relation)
|
175
|
+
when LOGIC_EQUAL.include?(@index)
|
176
|
+
raise AdapterError unless %w[=].include?(@relation)
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
def multiple_adapter
|
181
|
+
unless MULTIPLE.include?(@index)
|
182
|
+
raise AdapterError if @terms.size > 1
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
def to_sunspot
|
187
|
+
case
|
188
|
+
when MATCH_ALL.include?(@index)
|
189
|
+
to_sunspot_match_all
|
190
|
+
when MATCH_EXACT.include?(@index)
|
191
|
+
to_sunspot_match_exact
|
192
|
+
when MATCH_PART.include?(@index)
|
193
|
+
to_sunspot_match_part
|
194
|
+
when MATCH_AHEAD.include?(@index)
|
195
|
+
to_sunspot_match_ahead
|
196
|
+
when MATCH_ANYWHERE.include?(@index)
|
197
|
+
to_sunspot_match_anywhere
|
198
|
+
when @index.empty?
|
199
|
+
@terms.join(' ')
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
def to_sunspot_match_all
|
204
|
+
term = @terms.join(' ')
|
205
|
+
case @relation
|
206
|
+
when /\A=\Z/
|
207
|
+
unless /\A\^(.+)/ =~ term
|
208
|
+
"%s_%s:(%s)" % [@field, :text, term]
|
209
|
+
else
|
210
|
+
ahead_tarm = $1.gsub("\s", '').downcase
|
211
|
+
"connect_%s_%s:(%s*)" % [@field, :s, ahead_tarm]
|
212
|
+
end
|
213
|
+
when /\AEXACT\Z/
|
214
|
+
"%s_%s:(%s)" % [@field, :sm, term.gsub(' ', '')]
|
215
|
+
when /\AANY\Z/
|
216
|
+
"%s_%s:(%s)" % [@field, :text, multiple_to_sunspot(@terms, :any)]
|
217
|
+
when /\AALL\Z/
|
218
|
+
"%s_%s:(%s)" % [@field, :text, multiple_to_sunspot(@terms, :all)]
|
219
|
+
else
|
220
|
+
raise QuerySyntaxError
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
def to_sunspot_match_exact
|
225
|
+
case @relation
|
226
|
+
when /\A=\Z/
|
227
|
+
term = @terms.join(' ')
|
228
|
+
type = @field != 'issn' ? :sm : :s
|
229
|
+
"%s_%s:(%s)" % [@field, type, term]
|
230
|
+
when /\AANY\Z/
|
231
|
+
"%s_%s:(%s)" % [@field, :sm, multiple_to_sunspot(@terms, :any)]
|
232
|
+
else
|
233
|
+
raise QuerySyntaxError
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
def to_sunspot_match_part
|
238
|
+
case @relation
|
239
|
+
when /\A=\Z/
|
240
|
+
term = @terms.join(' ')
|
241
|
+
"%s_%s:(%s)" % [@field, :text, trim_ahead(term)]
|
242
|
+
when /\AANY\Z/
|
243
|
+
"%s_%s:(%s)" % [@field, :text, multiple_to_sunspot(@terms, :any)]
|
244
|
+
when /\AALL\Z/
|
245
|
+
"%s_%s:(%s)" % [@field, :text, multiple_to_sunspot(@terms, :all)]
|
246
|
+
else
|
247
|
+
raise QuerySyntaxError
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
def to_sunspot_match_ahead
|
252
|
+
"%s_%s:(%s*)" % [@field, :s, @terms.first]
|
253
|
+
end
|
254
|
+
|
255
|
+
def to_sunspot_match_anywhere
|
256
|
+
case @relation
|
257
|
+
when /\A=\Z/
|
258
|
+
term = @terms.join(' ')
|
259
|
+
"(%s)" % [trim_ahead(term)]
|
260
|
+
when /\AANY\Z/
|
261
|
+
"(%s)" % [multiple_to_sunspot(@terms, :any)]
|
262
|
+
when /\AALL\Z/
|
263
|
+
"(%s)" % [multiple_to_sunspot(@terms, :all)]
|
264
|
+
else
|
265
|
+
raise QuerySyntaxError
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
|
270
|
+
private
|
271
|
+
def multiple_to_sunspot(terms, relation)
|
272
|
+
boolean = relation == :any ? ' OR ' : ' AND '
|
273
|
+
"#{terms.map{|t| trim_ahead(t)}.join(boolean)}"
|
274
|
+
end
|
275
|
+
|
276
|
+
def trim_ahead(term)
|
277
|
+
term.sub(/\A\^+/,'')
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
if $PROGRAM_NAME == __FILE__
|
282
|
+
require 'porta_cql_test'
|
283
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'enju_leaf/porta_cql'
|
3
|
+
|
4
|
+
class QueryArgumentError < QueryError; end
|
5
|
+
|
6
|
+
class Sru
|
7
|
+
ASC_KEYS = %w(title creator) unless Object.const_defined?(:ASC_KEYS)
|
8
|
+
DESC_KEYS = %w(created_at updated_at date_of_publication) unless Object.const_defined?(:DESC_KEYS)
|
9
|
+
SORT_KEYS = ASC_KEYS + DESC_KEYS unless Object.const_defined?(:SORY_KEYS)
|
10
|
+
MULTI_KEY_MAP = {'title' => 'sort_title'} unless Object.const_defined?(:MULTI_KEY_MAP)
|
11
|
+
def initialize(params)
|
12
|
+
raise QueryArgumentError, 'sru :query is required item.' unless params.has_key?(:query)
|
13
|
+
|
14
|
+
@cql = Cql.new(params[:query])
|
15
|
+
@version = params.has_key?(:version) ? params[:version] : '1.2'
|
16
|
+
@start = params.has_key?(:startRecord) ? params[:startRecord].to_i : 1
|
17
|
+
@maximum = params.has_key?(:maximumRecords) ? params[:maximumRecords].to_i : 200
|
18
|
+
@maximum = 1000 if 1000 < @maximum
|
19
|
+
@packing = params.has_key?(:recordPacking) ? params[:recordPacking] : 'string'
|
20
|
+
@schema = params.has_key?(:recordSchema) ? params[:recordSchema] : 'dc'
|
21
|
+
@sort_key = params[:sortKeys]
|
22
|
+
|
23
|
+
@manifestations = []
|
24
|
+
@extra_response_data = {}
|
25
|
+
end
|
26
|
+
|
27
|
+
attr_reader :version, :cql, :start, :maximum, :packing, :schema, :path, :ascending
|
28
|
+
attr_reader :manifestations, :extra_response_data, :number_of_records, :next_record_position
|
29
|
+
|
30
|
+
def sort_by
|
31
|
+
sort = {:sort_by => 'created_at', :order => 'desc'}
|
32
|
+
unless '1.1' == @version
|
33
|
+
@path, @ascending = @cql.sort_by.split('/')
|
34
|
+
else
|
35
|
+
@path, @ascending = @sort_key.split(',') if @sort_key
|
36
|
+
end
|
37
|
+
#TODO ソート基準が入手しやすさの場合の処理
|
38
|
+
if SORT_KEYS.include?(@path)
|
39
|
+
if MULTI_KEY_MAP.keys.include?(@path)
|
40
|
+
sort[:sort_by] = MULTI_KEY_MAP[@path]
|
41
|
+
else
|
42
|
+
sort[:sort_by] = @path
|
43
|
+
end
|
44
|
+
sort[:order] = 'asc' if ASC_KEYS.include?(@path)
|
45
|
+
case @ascending
|
46
|
+
when /\A(1|ascending)\Z/
|
47
|
+
sort[:order] = 'asc'
|
48
|
+
when /\A(0|descending)\Z/
|
49
|
+
sort[:order] = 'desc'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
sort
|
53
|
+
end
|
54
|
+
|
55
|
+
def search
|
56
|
+
sunspot_query = @cql.to_sunspot
|
57
|
+
search = Sunspot.new_search(Manifestation)
|
58
|
+
search.build do
|
59
|
+
fulltext sunspot_query
|
60
|
+
paginate :page => 1, :per_page => 10000
|
61
|
+
end
|
62
|
+
@manifestations = search.execute!.results
|
63
|
+
@extra_response_data = get_extra_response_data
|
64
|
+
@number_of_records, @next_record_position = get_number_of_records
|
65
|
+
|
66
|
+
@manifestations
|
67
|
+
end
|
68
|
+
|
69
|
+
def get_extra_response_data
|
70
|
+
#TODO: NDL で必要な項目が決定し、更に enju にそのフィールドが設けられた後で正式な実装を行なう。
|
71
|
+
if @search.respond_to?(:erd)
|
72
|
+
@schema == 'dc' ? @search.erd : {}
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def get_number_of_records
|
77
|
+
#TODO: sunspot での取得方法が分かり次第、正式な実装を行なう。
|
78
|
+
@schema == 'dc' ? [1405, 1406] : [40,11]
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
if $PROGRAM_NAME == __FILE__
|
83
|
+
require 'sru_test'
|
84
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'plugins'
|
2
|
+
require 'enju_leaf/sru'
|
3
|
+
require 'enju_leaf/openurl'
|
4
|
+
require 'enju_leaf/calculate_stat'
|
5
|
+
require 'enju_leaf/localized_name'
|
6
|
+
require 'enju_library'
|
7
|
+
require 'enju_circulation'
|
8
|
+
require 'enju_inventory'
|
9
|
+
require 'enju_bookmark'
|
10
|
+
require 'enju_event'
|
11
|
+
require 'enju_manifestation_viewer'
|
12
|
+
require 'enju_book_jacket'
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module EventCalendar
|
2
|
+
module CalendarHelper
|
3
|
+
private
|
4
|
+
|
5
|
+
# calculate the height of each row
|
6
|
+
# by default, it will be the height option minus the day names height,
|
7
|
+
# divided by the total number of calendar rows
|
8
|
+
# this gets tricky, however, if there are too many event rows to fit into the row's height
|
9
|
+
# then we need to add additional height
|
10
|
+
def cal_row_heights(options)
|
11
|
+
# number of rows is the number of days in the event strips divided by 7
|
12
|
+
num_cal_rows = (options[:event_strips].first.size / 7).to_i
|
13
|
+
# the row will be at least this big
|
14
|
+
min_height = ((options[:height] - options[:day_names_height]) / num_cal_rows).to_i
|
15
|
+
row_heights = []
|
16
|
+
num_event_rows = 0
|
17
|
+
# for every day in the event strip...
|
18
|
+
1.upto(options[:event_strips].first.size+1) do |index|
|
19
|
+
num_events = 0
|
20
|
+
# get the largest event strip that has an event on this day
|
21
|
+
options[:event_strips].each_with_index do |strip, strip_num|
|
22
|
+
num_events = strip_num + 1 unless strip[index-1].blank?
|
23
|
+
end
|
24
|
+
# get the most event rows for this week
|
25
|
+
num_event_rows = [num_event_rows, num_events].max
|
26
|
+
# if we reached the end of the week, calculate this row's height
|
27
|
+
if index % 7 == 0
|
28
|
+
total_event_height = options[:event_height] + options[:event_margin]
|
29
|
+
calc_row_height = (num_event_rows * total_event_height) + options[:day_nums_height] + options[:event_margin]
|
30
|
+
row_height = [min_height, calc_row_height].max
|
31
|
+
row_heights << row_height
|
32
|
+
num_event_rows = 0
|
33
|
+
end
|
34
|
+
end
|
35
|
+
row_heights
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Sunspot
|
2
|
+
module Search #:nodoc:
|
3
|
+
class AbstractSearch
|
4
|
+
def execute
|
5
|
+
reset
|
6
|
+
params = @query.to_params
|
7
|
+
@solr_result = @connection.post "#{request_handler}", :data => params, :headers => {'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8'}
|
8
|
+
self
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Sunspot
|
2
|
+
module Query
|
3
|
+
class Dismax
|
4
|
+
def to_params
|
5
|
+
params = { :q => @keywords }
|
6
|
+
params[:fl] = '* score'
|
7
|
+
params[:qf] = @fulltext_fields.values.map { |field| field.to_boosted_field }.join(' ')
|
8
|
+
params[:defType] = 'edismax'
|
9
|
+
if @phrase_fields
|
10
|
+
params[:pf] = @phrase_fields.map { |field| field.to_boosted_field }.join(' ')
|
11
|
+
end
|
12
|
+
unless @boost_queries.empty?
|
13
|
+
params[:bq] = @boost_queries.map do |boost_query|
|
14
|
+
boost_query.to_boolean_phrase
|
15
|
+
end
|
16
|
+
end
|
17
|
+
unless @boost_functions.empty?
|
18
|
+
params[:bf] = @boost_functions.map do |boost_function|
|
19
|
+
boost_function.to_s
|
20
|
+
end
|
21
|
+
end
|
22
|
+
if @minimum_match
|
23
|
+
params[:mm] = @minimum_match
|
24
|
+
end
|
25
|
+
if @phrase_slop
|
26
|
+
params[:ps] = @phrase_slop
|
27
|
+
end
|
28
|
+
if @query_phrase_slop
|
29
|
+
params[:qs] = @query_phrase_slop
|
30
|
+
end
|
31
|
+
if @tie
|
32
|
+
params[:tie] = @tie
|
33
|
+
end
|
34
|
+
@highlights.each do |highlight|
|
35
|
+
Sunspot::Util.deep_merge!(params, highlight.to_params)
|
36
|
+
end
|
37
|
+
params
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|