krikri 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (332) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/krikri/harvesters/oai_harvester.rb~ +10 -0
  3. data/app/models/krikri/original_record_desc.rb~ +6 -0
  4. data/app/models/krikri/original_record_metadata.rb~ +9 -0
  5. data/app/models/krikri/parser.rb~ +5 -0
  6. data/app/models/krikri/parsers/xml_parser.rb~ +5 -0
  7. data/config/initializers/config.rb~ +19 -0
  8. data/config/settings/test.yml~ +3 -0
  9. data/lib/aggregation.rb~ +4 -0
  10. data/lib/blacklight.rb~ +8 -0
  11. data/lib/krikri/engine.rb +29 -2
  12. data/lib/krikri/enrichment.rb~ +5 -0
  13. data/lib/krikri/enrichment_agent.rb~ +11 -0
  14. data/lib/krikri/enrichment_agent_spec.rb~ +2 -0
  15. data/lib/krikri/enrichment_job.rb~ +13 -0
  16. data/lib/krikri/enrichments.rb~ +4 -0
  17. data/lib/krikri/enrichments/capitalize.rb~ +24 -0
  18. data/lib/krikri/enrichments/deduplication.rb~ +10 -0
  19. data/lib/krikri/enrichments/genre_filter.rb~ +9 -0
  20. data/lib/krikri/enrichments/iso_enrcich.rb~ +8 -0
  21. data/lib/krikri/enrichments/iso_enrich.rb~ +13 -0
  22. data/lib/krikri/enrichments/parse_date.rb~ +10 -0
  23. data/lib/krikri/enrichments/strip_html.rb~ +16 -0
  24. data/lib/krikri/enrichments/timespan.rb~ +6 -0
  25. data/lib/krikri/enrichments/timespan_split.rb~ +83 -0
  26. data/lib/krikri/field_enrichment.rb~ +3 -0
  27. data/lib/krikri/harvester.rb +19 -7
  28. data/lib/krikri/harvesters/basic_save_behavior.rb +9 -0
  29. data/lib/krikri/harvesters/basic_save_behavior.rb~ +1 -0
  30. data/lib/krikri/harvesters/harvest_behavior.rb +40 -0
  31. data/lib/krikri/harvesters/harvest_behavior.rb~ +14 -0
  32. data/lib/krikri/harvesters/oai_harvester.rb +110 -12
  33. data/lib/krikri/harvesters/oai_skip_deleted_behavior.rb +20 -0
  34. data/lib/krikri/harvesters/oai_skip_deleted_behavior.rb~ +17 -0
  35. data/lib/krikri/id_minter.rb~ +8 -0
  36. data/lib/krikri/id_service.rb~ +4 -0
  37. data/lib/krikri/index_service.rb +40 -24
  38. data/lib/krikri/ldp/container.rb~ +22 -0
  39. data/lib/krikri/ldp/nr_source.rb~ +4 -0
  40. data/lib/krikri/ldp/rdf_source.rb~ +24 -0
  41. data/lib/krikri/ldp/resource.rb~ +49 -0
  42. data/lib/krikri/mapping_dsl.rb~ +4 -0
  43. data/lib/krikri/mapping_dsl/parser_methods.rb +13 -9
  44. data/lib/krikri/mapping_job.rb~ +13 -0
  45. data/lib/krikri/md5_minter.rb~ +8 -0
  46. data/lib/krikri/parsers/json_parser.rb~ +17 -0
  47. data/lib/krikri/parsers/mods_parser.rb +2 -0
  48. data/lib/krikri/parsers/oai_headers.rb~ +4 -0
  49. data/lib/krikri/parsers/oai_parser.rb~ +2 -0
  50. data/lib/krikri/parsers/oai_parser_headers.rb~ +4 -0
  51. data/lib/krikri/parsers/qdc_parser.rb +2 -0
  52. data/lib/krikri/parsers/xml_parser.rb~ +61 -0
  53. data/lib/krikri/provenance_query.rb~ +4 -0
  54. data/lib/krikri/provenance_query_client.rb~ +11 -0
  55. data/lib/krikri/util/edtf_converter.rb~ +26 -0
  56. data/lib/krikri/util/extended_date_parser.rb~ +70 -0
  57. data/lib/krikri/version.rb +1 -1
  58. data/lib/tasks/jetty.rake +1 -1
  59. data/lib/tasks/jetty.rake~ +12 -0
  60. data/lib/tasks/krikri.rake +13 -10
  61. data/lib/tasks/krikri.rake~ +20 -0
  62. data/spec/factories/krikri_original_record.rb +22 -0
  63. data/spec/factories/krikri_original_record.rb~ +5 -0
  64. data/spec/internal/Gemfile +3 -2
  65. data/spec/internal/Gemfile.lock +39 -41
  66. data/spec/internal/config/initializers/blacklight_initializer.rb +1 -1
  67. data/spec/internal/config/initializers/devise.rb +2 -2
  68. data/spec/internal/config/secrets.yml +2 -2
  69. data/spec/internal/db/development.sqlite3 +0 -0
  70. data/spec/internal/db/migrate/{20150224000601_devise_create_users.rb → 20150305160911_devise_create_users.rb} +0 -0
  71. data/spec/internal/db/migrate/{20150224000620_create_searches.blacklight.rb → 20150305160928_create_searches.blacklight.rb} +0 -0
  72. data/spec/internal/db/migrate/{20150224000621_create_bookmarks.blacklight.rb → 20150305160929_create_bookmarks.blacklight.rb} +0 -0
  73. data/spec/internal/db/migrate/{20150224000622_add_polymorphic_type_to_bookmarks.blacklight.rb → 20150305160930_add_polymorphic_type_to_bookmarks.blacklight.rb} +0 -0
  74. data/spec/internal/db/schema.rb +1 -1
  75. data/spec/internal/db/test.sqlite3 +0 -0
  76. data/spec/internal/lib/generators/test_app_generator.rb~ +14 -0
  77. data/spec/internal/log/development.log +67 -67
  78. data/spec/internal/log/test.log +60918 -3966
  79. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_alerts.scssc +0 -0
  80. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_background-variant.scssc +0 -0
  81. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_border-radius.scssc +0 -0
  82. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_buttons.scssc +0 -0
  83. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_center-block.scssc +0 -0
  84. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_clearfix.scssc +0 -0
  85. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_forms.scssc +0 -0
  86. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_gradients.scssc +0 -0
  87. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_grid-framework.scssc +0 -0
  88. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_grid.scssc +0 -0
  89. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_hide-text.scssc +0 -0
  90. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_image.scssc +0 -0
  91. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_labels.scssc +0 -0
  92. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_list-group.scssc +0 -0
  93. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_nav-divider.scssc +0 -0
  94. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_nav-vertical-align.scssc +0 -0
  95. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_opacity.scssc +0 -0
  96. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_pagination.scssc +0 -0
  97. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_panels.scssc +0 -0
  98. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_progress-bar.scssc +0 -0
  99. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_reset-filter.scssc +0 -0
  100. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_resize.scssc +0 -0
  101. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_responsive-visibility.scssc +0 -0
  102. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_size.scssc +0 -0
  103. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_tab-focus.scssc +0 -0
  104. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_table-row.scssc +0 -0
  105. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_text-emphasis.scssc +0 -0
  106. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_text-overflow.scssc +0 -0
  107. data/spec/internal/tmp/cache/assets/test/sass/{b0e4dc91d58228c3adf15cb753bdeb4e4010a333 → 6150801e42e33a1ef8211bc5bd57210113efb322}/_vendor-prefixes.scssc +0 -0
  108. data/spec/internal/tmp/cache/assets/test/sass/{71fba6bdfa89d88fe8a72b36eafd3b91cf10a6d0 → 93e201cf4a11978a1f491a057a3bd569c3825210}/blacklight.css.scssc +0 -0
  109. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_blacklight_base.scssc +0 -0
  110. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_bookmark.scssc +0 -0
  111. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_catalog.scssc +0 -0
  112. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_facets.scssc +0 -0
  113. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_group.scssc +0 -0
  114. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_header.scssc +0 -0
  115. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_layout.scssc +0 -0
  116. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_modal.scssc +0 -0
  117. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/_search_history.scssc +0 -0
  118. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/blacklight.scssc +0 -0
  119. data/spec/internal/tmp/cache/assets/test/sass/{78e0580c292179fc5fdd7b74b703dad1702b4176 → ca8c12d03785e0d6cd4554f4d3939e7836d38282}/blacklight_defaults.scssc +0 -0
  120. data/spec/internal/tmp/cache/assets/test/sass/{e2a3786e4ebe66d44f7faa2a5c1fde6ac88e9913 → f4c2e42bd47363124f382d6b3accf5b68bede368}/_bootstrap-sprockets.scssc +0 -0
  121. data/spec/internal/tmp/cache/assets/test/sass/{e2a3786e4ebe66d44f7faa2a5c1fde6ac88e9913 → f4c2e42bd47363124f382d6b3accf5b68bede368}/_bootstrap.scssc +0 -0
  122. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_alerts.scssc +0 -0
  123. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_badges.scssc +0 -0
  124. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_breadcrumbs.scssc +0 -0
  125. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_button-groups.scssc +0 -0
  126. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_buttons.scssc +0 -0
  127. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_carousel.scssc +0 -0
  128. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_close.scssc +0 -0
  129. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_code.scssc +0 -0
  130. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_component-animations.scssc +0 -0
  131. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_dropdowns.scssc +0 -0
  132. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_forms.scssc +0 -0
  133. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_glyphicons.scssc +0 -0
  134. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_grid.scssc +0 -0
  135. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_input-groups.scssc +0 -0
  136. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_jumbotron.scssc +0 -0
  137. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_labels.scssc +0 -0
  138. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_list-group.scssc +0 -0
  139. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_media.scssc +0 -0
  140. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_mixins.scssc +0 -0
  141. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_modals.scssc +0 -0
  142. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_navbar.scssc +0 -0
  143. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_navs.scssc +0 -0
  144. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_normalize.scssc +0 -0
  145. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_pager.scssc +0 -0
  146. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_pagination.scssc +0 -0
  147. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_panels.scssc +0 -0
  148. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_popovers.scssc +0 -0
  149. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_print.scssc +0 -0
  150. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_progress-bars.scssc +0 -0
  151. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_responsive-embed.scssc +0 -0
  152. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_responsive-utilities.scssc +0 -0
  153. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_scaffolding.scssc +0 -0
  154. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_tables.scssc +0 -0
  155. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_thumbnails.scssc +0 -0
  156. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_tooltip.scssc +0 -0
  157. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_type.scssc +0 -0
  158. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_utilities.scssc +0 -0
  159. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_variables.scssc +0 -0
  160. data/spec/internal/tmp/cache/assets/test/sass/{86c40011646adf02115c5f9a86cbbbe78771a7f9 → f65d96a170ed1d9ac890c97fabbd2605e6dd83f7}/_wells.scssc +0 -0
  161. data/spec/internal/tmp/cache/assets/test/sprockets/{8ef9e7d38c0b792a85f86f7b5e764d33 → 02bee7ecb2697ab24c566acc29e23717} +0 -0
  162. data/spec/internal/tmp/cache/assets/test/sprockets/03126075e92026e5dd05f2c577bd4730 +0 -0
  163. data/spec/internal/tmp/cache/assets/test/sprockets/04a0815eb41346be1a815741677d9d46 +0 -0
  164. data/spec/internal/tmp/cache/assets/test/sprockets/059eceaa18e2eaee3d5168f3949f4957 +0 -0
  165. data/spec/internal/tmp/cache/assets/test/sprockets/093d898bf3f20b26b13c82714a77c040 +0 -0
  166. data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  167. data/spec/internal/tmp/cache/assets/test/sprockets/{8c1af1f5b9a42448f4b8ff3dc1c1b81b → 24c91d512c7cc64c22aeb15a7e6cb7a2} +0 -0
  168. data/spec/internal/tmp/cache/assets/test/sprockets/2665fe64198bd4c9fec4c5ab52bea19e +0 -0
  169. data/spec/internal/tmp/cache/assets/test/sprockets/2bea755b15e0adfa7c25ed3d0ede78ae +0 -0
  170. data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  171. data/spec/internal/tmp/cache/assets/test/sprockets/{4873ea32d49c588483b701fcd571786b → 308dc75487b2e4133c218761921cbba0} +0 -0
  172. data/spec/internal/tmp/cache/assets/test/sprockets/{7f804c48c333d9758fa49ff9331b78e2 → 350a65d446eb7398f96d102f7a1a6d69} +0 -0
  173. data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  174. data/spec/internal/tmp/cache/assets/test/sprockets/37ad484f356c918e56ba82f60caf9521 +0 -0
  175. data/spec/internal/tmp/cache/assets/test/sprockets/{e451ef2f153fc084065cf4f66d62a912 → 3ca413a5a67acfa5c4adb491faec270e} +0 -0
  176. data/spec/internal/tmp/cache/assets/test/sprockets/{39329b3558b9f58b0d4e43621aeaa8c2 → 3cc20a63495e66e9251101ccfb0d389c} +0 -0
  177. data/spec/internal/tmp/cache/assets/test/sprockets/41b62fb10530766b5b9fef3338f5f30b +0 -0
  178. data/spec/internal/tmp/cache/assets/test/sprockets/421c89c58d3e76046a0294dae1f731ff +0 -0
  179. data/spec/internal/tmp/cache/assets/test/sprockets/43da966542fafc2a4c768be78527391c +0 -0
  180. data/spec/internal/tmp/cache/assets/test/sprockets/496a0d7dce1ff6bf4a9c3a089ea3a635 +0 -0
  181. data/spec/internal/tmp/cache/assets/test/sprockets/{ecb21744c6c865116bfaa342d4cc373d → 4ed1f0897f5818a8af48b809981f38f2} +0 -0
  182. data/spec/internal/tmp/cache/assets/test/sprockets/5d9772b2d3ee4527f6669b3187f91bf2 +0 -0
  183. data/spec/internal/tmp/cache/assets/test/sprockets/{a66ba1ae2ecf53099b8c240249aaccaa → 6ca71451ade728977ed02cea06e07914} +0 -0
  184. data/spec/internal/tmp/cache/assets/test/sprockets/6df5b5c0a8e6d87ced9504a460df875e +0 -0
  185. data/spec/internal/tmp/cache/assets/test/sprockets/6eefd2765a716d66ff857cfcda69a119 +0 -0
  186. data/spec/internal/tmp/cache/assets/test/sprockets/{c19459bc1eff0b0133093c0473f47c04 → 75da31aa64ac2526ffbe396852663999} +0 -0
  187. data/spec/internal/tmp/cache/assets/test/sprockets/{cb74a43b2a6abc262abfed639df77470 → 7a841c591675a2dafb8b859ca4014f1c} +0 -0
  188. data/spec/internal/tmp/cache/assets/test/sprockets/{853ad370adfaa0da7ec26f51b89421f1 → 813e23719129cf9f19349f720bebdf70} +0 -0
  189. data/spec/internal/tmp/cache/assets/test/sprockets/8297d7100b7c4e6115a7e6408f2fced5 +0 -0
  190. data/spec/internal/tmp/cache/assets/test/sprockets/86b7795bee54d7ffa2ff30e867aff344 +0 -0
  191. data/spec/internal/tmp/cache/assets/test/sprockets/88ded10f28177bec1bddb0d72d6b1cd2 +0 -0
  192. data/spec/internal/tmp/cache/assets/test/sprockets/{93c6b8da8f3373c42510a25694457483 → 8ad5c3dc0f5fcc5d7a775d6294dda9f5} +0 -0
  193. data/spec/internal/tmp/cache/assets/test/sprockets/93aaa9231a32901266b05632f3d35ecd +0 -0
  194. data/spec/internal/tmp/cache/assets/test/sprockets/{4a9e62d054a09c7c8e486f73bd032bdc → 9f68eb44ffcb9dd95623c179300414fd} +0 -0
  195. data/spec/internal/tmp/cache/assets/test/sprockets/{11b7eeb5da37de1c315d886349adbc98 → ab2a05b91d7d316d4ceb47ce067006fb} +0 -0
  196. data/spec/internal/tmp/cache/assets/test/sprockets/ad4a54c43c2a4c3874bfde1c9f08c248 +0 -0
  197. data/spec/internal/tmp/cache/assets/test/sprockets/b0423ae95a661f086b7766d7573885f9 +0 -0
  198. data/spec/internal/tmp/cache/assets/test/sprockets/{f7a87683461c3a58ee9b6e9546473c4e → b1a42de74c934edd0e5eed0f98a23597} +0 -0
  199. data/spec/internal/tmp/cache/assets/test/sprockets/b1c03c36188b4f58f819510adb9a7e9c +0 -0
  200. data/spec/internal/tmp/cache/assets/test/sprockets/{cd59839c2fc0d494ffa76ef4c4dbfa42 → b225d67626669cb154cbe08a3c439d48} +0 -0
  201. data/spec/internal/tmp/cache/assets/test/sprockets/b42c247628daaf44109584724682a6ad +0 -0
  202. data/spec/internal/tmp/cache/assets/test/sprockets/{92c82efebbff4c3a9f96e08b308e92dd → b660ec1ede271559cfd0259eed96ae9c} +0 -0
  203. data/spec/internal/tmp/cache/assets/test/sprockets/bb1a549778011fb037836e1fa6a80ba6 +0 -0
  204. data/spec/internal/tmp/cache/assets/test/sprockets/be8a6d8dc481c07c86bdf541e15c4634 +0 -0
  205. data/spec/internal/tmp/cache/assets/test/sprockets/{6b20592285155ef367334915b33781ea → c5b703cc22fc68aa8cf29fb7af16cf71} +0 -0
  206. data/spec/internal/tmp/cache/assets/test/sprockets/c644ecad928e076f999e9c9a3bc350c9 +0 -0
  207. data/spec/internal/tmp/cache/assets/test/sprockets/c78dd20a0df27e9394a413bf2e4abf92 +0 -0
  208. data/spec/internal/tmp/cache/assets/test/sprockets/{59b1fd64c6fc18a82465ad6fdc7094fa → c9efce42580b0ad0374a052aa61f2a07} +0 -0
  209. data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  210. data/spec/internal/tmp/cache/assets/test/sprockets/{47defd1245e87ed8558af57fa5f03bef → d0862d2af3fe93a869e9ecfdb9d89e23} +0 -0
  211. data/spec/internal/tmp/cache/assets/test/sprockets/d24a7c4b8ac71a90e809881a64970898 +0 -0
  212. data/spec/internal/tmp/cache/assets/test/sprockets/d5415d1f2b4a2672355dd988eb332d0b +0 -0
  213. data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  214. data/spec/internal/tmp/cache/assets/test/sprockets/dbba4bbc32c17ade3d618c5d0baeb371 +0 -0
  215. data/spec/internal/tmp/cache/assets/test/sprockets/dfdda7a36a1428f72947384938d105a2 +0 -0
  216. data/spec/internal/tmp/cache/assets/test/sprockets/e40f087f7b8b59f85a4811f715e5e35a +0 -0
  217. data/spec/internal/tmp/cache/assets/test/sprockets/e8276b98892dcac8285a592bb63fe75b +0 -0
  218. data/spec/internal/tmp/cache/assets/test/sprockets/{d7bf17ad1471147b5314b4dda0bad9fe → ecfc314951b349e27742c1b26880619e} +0 -0
  219. data/spec/internal/tmp/cache/assets/test/sprockets/eddae0741d973a8ab3df27c1ea5b635e +0 -0
  220. data/spec/internal/tmp/cache/assets/test/sprockets/{53329c49c9b4ba25d31c73c9b98260b0 → f3935581a84aba9a499005ed6a8e18be} +0 -0
  221. data/spec/internal/tmp/cache/assets/test/sprockets/{82dd05a187bccd30f62fabb16491fe03 → f3e7729c53b8a2c408086a61b58922ae} +0 -0
  222. data/spec/internal/tmp/cache/assets/test/sprockets/f45dfdb34e84d3c72a3319399a7316a3 +0 -0
  223. data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  224. data/spec/internal/tmp/cache/assets/test/sprockets/{8ea9ff17090b736331312d04c8036810 → fa11f1beb15b0f04503ce1f06701a8bf} +0 -0
  225. data/spec/internal/tmp/cache/assets/test/sprockets/faac2909046aa87e1f1f08b2bf0ad2b2 +0 -0
  226. data/spec/internal/tmp/cache/assets/test/sprockets/faef697283f2f0627727a5f856242651 +0 -0
  227. data/spec/krikri_spec.rb +15 -0
  228. data/spec/krikri_spec.rb~ +30 -0
  229. data/spec/ldp/active_triples_spec.rb~ +15 -0
  230. data/spec/ldp/at_resource_spec.rb~ +41 -0
  231. data/spec/ldp/nr_source_spec.rb~ +3 -0
  232. data/spec/ldp/rdf_source_spec.rb~ +4 -0
  233. data/spec/ldp/resource_spec.rb~ +49 -0
  234. data/spec/lib/krikri/enrichment_agent_spec.rb~ +4 -0
  235. data/spec/lib/krikri/enrichments/capitalize_spec.rb~ +24 -0
  236. data/spec/lib/krikri/enrichments/deduplication_spec.rb~ +5 -0
  237. data/spec/lib/krikri/enrichments/genre_filter_spec.rb~ +19 -0
  238. data/spec/lib/krikri/enrichments/iso_enrich_spec.rb~ +5 -0
  239. data/spec/lib/krikri/enrichments/parse_date_spec.rb~ +16 -0
  240. data/spec/lib/krikri/enrichments/timespan_spec.rb~ +10 -0
  241. data/spec/lib/krikri/enrichments/timespan_split_spec.rb~ +59 -0
  242. data/spec/lib/krikri/harvester_spec.rb +38 -2
  243. data/spec/lib/krikri/harvesters/basic_save_behavior_spec.rb +16 -0
  244. data/spec/lib/krikri/harvesters/basic_save_behavior_spec.rb~ +12 -0
  245. data/spec/lib/krikri/harvesters/harvest_behavior_spec.rb +5 -0
  246. data/spec/lib/krikri/harvesters/harvest_behavior_spec.rb~ +5 -0
  247. data/spec/lib/krikri/harvesters/oai_harvester_spec.rb +170 -2
  248. data/spec/lib/krikri/harvesters/oai_skip_deleted_behavior.rb~ +7 -0
  249. data/spec/lib/krikri/harvesters/oai_skip_deleted_behavior_spec.rb +25 -0
  250. data/spec/lib/krikri/harvesters/oai_skip_deleted_behavior_spec.rb~ +15 -0
  251. data/spec/lib/krikri/id_service_spec.rb~ +3 -0
  252. data/spec/lib/krikri/index_service_spec.rb +25 -14
  253. data/spec/lib/krikri/job_spec.rb~ +13 -0
  254. data/spec/lib/krikri/mapper_agent_spec.rb~ +64 -0
  255. data/spec/lib/krikri/mapper_spec.rb +12 -0
  256. data/spec/lib/krikri/mapper_spec.rb~ +5 -0
  257. data/spec/lib/krikri/mapping_dsl/parser_methods_spec.rb +38 -14
  258. data/spec/lib/krikri/mapping_dsl/parser_methods_spec.rb~ +65 -0
  259. data/spec/lib/krikri/mapping_dsl/property_declaration_spec.rb~ +87 -0
  260. data/spec/lib/krikri/mapping_dsl/rdf_subjects_spec.rb~ +16 -0
  261. data/spec/lib/krikri/mapping_dsl_spec.rb~ +10 -0
  262. data/spec/lib/krikri/mapping_job.rb~ +12 -0
  263. data/spec/lib/krikri/mapping_job_spec.rb~ +11 -0
  264. data/spec/lib/krikri/mapping_spec.rb~ +5 -0
  265. data/spec/lib/krikri/md5_minter_spec.rb~ +5 -0
  266. data/spec/lib/krikri/parser_value_array.rb~ +5 -0
  267. data/spec/lib/krikri/parsers/json_parser_spec.rb~ +17 -0
  268. data/spec/lib/krikri/parsers/mods_parser_spec.rb +1 -0
  269. data/spec/lib/krikri/parsers/qdc_parser_spec.rb +1 -0
  270. data/spec/lib/krikri/parsers/xml_parser_spec.rb~ +21 -0
  271. data/spec/lib/krikri/provenance_query_client.rb~ +5 -0
  272. data/spec/lib/krikri/provenance_query_client_spec.rb~ +8 -0
  273. data/spec/lib/krikri/util/edtf_converter_spec.rb~ +17 -0
  274. data/spec/lib/krikri/util/extended_date_parser_spec.rb~ +102 -0
  275. data/spec/models/activity_spec.rb~ +41 -0
  276. data/spec/models/dpla/map/aggregation_spec.rb~ +67 -0
  277. data/spec/models/harvesters/oai_harvester_spec.rb~ +15 -0
  278. data/spec/models/mapper_spec.rb~ +5 -0
  279. data/spec/models/original_record_metadata_spec.rb~ +5 -0
  280. data/spec/models/original_record_spec.rb~ +5 -0
  281. data/spec/support/shared_contexts/mapping_dsl.rb~ +12 -0
  282. data/spec/support/shared_contexts/provenance_query_client.rb~ +6 -0
  283. data/spec/support/shared_examples/enrichment.rb~ +5 -0
  284. data/spec/support/shared_examples/harvest_behavior.rb +21 -0
  285. data/spec/support/shared_examples/harvest_behavior.rb~ +13 -0
  286. data/spec/support/shared_examples/harvester.rb +5 -3
  287. data/spec/support/shared_examples/job.rb~ +20 -0
  288. data/spec/support/shared_examples/ldp_resource.rb~ +4 -0
  289. data/spec/support/shared_examples/oai_parser_headers.rb~ +12 -0
  290. data/spec/support/shared_examples/rdf_source.rb~ +1 -0
  291. data/spec/support/shared_examples/software_agent.rb~ +5 -0
  292. data/spec/support/shared_examples/string_enrichment.rb~ +12 -0
  293. data/spec/test_app_templates/lib/generators/test_app_generator.rb~ +14 -0
  294. data/spec/webmocks/oai.rb~ +13 -0
  295. metadata +566 -400
  296. data/spec/dummy/db/development.sqlite3 +0 -0
  297. data/spec/dummy/db/test.sqlite3 +0 -0
  298. data/spec/dummy/log/development.log +0 -207
  299. data/spec/internal/tmp/cache/assets/test/sprockets/0b3850cd2568d76d8583e8e6bffa44d9 +0 -0
  300. data/spec/internal/tmp/cache/assets/test/sprockets/0dffbe192bade10cf2b568c73695e96e +0 -0
  301. data/spec/internal/tmp/cache/assets/test/sprockets/12fe6051fca3506bae2d3a3452d89b8a +0 -0
  302. data/spec/internal/tmp/cache/assets/test/sprockets/16648e86ab6ef2950f3630ff0d566409 +0 -0
  303. data/spec/internal/tmp/cache/assets/test/sprockets/1877c8233ee501d08788d7324a70bd70 +0 -0
  304. data/spec/internal/tmp/cache/assets/test/sprockets/2338a6f943deb78d21f2acca84ab4f2b +0 -0
  305. data/spec/internal/tmp/cache/assets/test/sprockets/2c58fb6a2406edc8067b46ee33af7262 +0 -0
  306. data/spec/internal/tmp/cache/assets/test/sprockets/2d0220441d85355dcd9ade523f95c048 +0 -0
  307. data/spec/internal/tmp/cache/assets/test/sprockets/339e294297aa1a0070e702f9b1d6a138 +0 -0
  308. data/spec/internal/tmp/cache/assets/test/sprockets/39ed74e4d194593ec48c481d0fd76007 +0 -0
  309. data/spec/internal/tmp/cache/assets/test/sprockets/3cdc19003f073eb3b9f3a080ffdcba4b +0 -0
  310. data/spec/internal/tmp/cache/assets/test/sprockets/40271adcb3c4654dcb20b55abc2505c9 +0 -0
  311. data/spec/internal/tmp/cache/assets/test/sprockets/43f0a87eb2c9be2e37129f0a869756fa +0 -0
  312. data/spec/internal/tmp/cache/assets/test/sprockets/46ec3d34d3576e4452b0a95b87176996 +0 -0
  313. data/spec/internal/tmp/cache/assets/test/sprockets/52ce034583a746333fd7b8aa3916b8e1 +0 -0
  314. data/spec/internal/tmp/cache/assets/test/sprockets/677fd27eda24da657f51d725742582f3 +0 -0
  315. data/spec/internal/tmp/cache/assets/test/sprockets/735621cd88de5e37980cced4fb13ded9 +0 -0
  316. data/spec/internal/tmp/cache/assets/test/sprockets/7de1f4ba8418fc9219f44e125c429b39 +0 -0
  317. data/spec/internal/tmp/cache/assets/test/sprockets/7e4f29f7a7327f10677cd047be78cf8a +0 -0
  318. data/spec/internal/tmp/cache/assets/test/sprockets/806c560c2f6e89ba0ad39561804ff79c +0 -0
  319. data/spec/internal/tmp/cache/assets/test/sprockets/9443255223294f7ad9ad6daba446afc3 +0 -0
  320. data/spec/internal/tmp/cache/assets/test/sprockets/9aae694d5c7713a4666814ecfd04bc8e +0 -0
  321. data/spec/internal/tmp/cache/assets/test/sprockets/9ca9885875e2e0ab4e531cba60aa03e5 +0 -0
  322. data/spec/internal/tmp/cache/assets/test/sprockets/9e91dee79db70af8ab4149b9698a12a5 +0 -0
  323. data/spec/internal/tmp/cache/assets/test/sprockets/a13d3a27038cf6570d22b54c54442642 +0 -0
  324. data/spec/internal/tmp/cache/assets/test/sprockets/a62c05e92bbbd1d49540b17c1a17982f +0 -0
  325. data/spec/internal/tmp/cache/assets/test/sprockets/acc90134230a954a6983332d94303e66 +0 -0
  326. data/spec/internal/tmp/cache/assets/test/sprockets/b2b550f46801c5fb416302ef0737a62d +0 -0
  327. data/spec/internal/tmp/cache/assets/test/sprockets/b37776526b5809e55fbb0add6d059127 +0 -0
  328. data/spec/internal/tmp/cache/assets/test/sprockets/b7136d57967d58d8247f9168a681ce01 +0 -0
  329. data/spec/internal/tmp/cache/assets/test/sprockets/d6995317fba3b6344c75db70b8c997e2 +0 -0
  330. data/spec/internal/tmp/cache/assets/test/sprockets/e3f7abb4568acd320b05e7765b31412f +0 -0
  331. data/spec/internal/tmp/cache/assets/test/sprockets/e802e3ce42ea0c2e35ccfd33f3b8caad +0 -0
  332. data/spec/internal/tmp/cache/assets/test/sprockets/ef1d076b51c3ce03aa1e754fb8f0457e +0 -0
@@ -0,0 +1,7 @@
1
+ module Krikri::Harvesters
2
+ class BasicSaveBehavior < HarvestBehavior
3
+ def process_record
4
+ record.save(activity_uri)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::Harvesters::OAISkipDeletedBehavior do
4
+ it_behaves_like 'a harvest behavior'
5
+
6
+ subject { described_class.new(record, activity_uri) }
7
+ let(:record) { build(:oai_dc_record) }
8
+ let(:activity_uri) { double('activity URI') }
9
+
10
+ describe '#process_record' do
11
+ context 'with deleted record' do
12
+ let(:record) { build(:oai_deleted_record) }
13
+
14
+ it 'skips record' do
15
+ expect(record).not_to receive(:save)
16
+ subject.process_record
17
+ end
18
+ end
19
+
20
+ it 'saves record' do
21
+ expect(record).to receive(:save).with(activity_uri)
22
+ subject.process_record
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::Harvesters::OAISkipDeletedBehavior do
4
+ it_behaves_like 'a harvest behavior'
5
+
6
+ subject { described_class.new(record, activity_uri) }
7
+ let(:record) { double('record') }
8
+ let(:activity_uri) { double('activity URI') }
9
+
10
+ describe '#process_record' do
11
+ it 'calls save when record is not deleted' do
12
+ expect(record).to receive(:save).with(activity_uri)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::IdService do
@@ -1,14 +1,28 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Krikri::IndexService do
4
-
5
- subject { Krikri::IndexService }
6
4
  let(:solr) { RSolr.connect }
7
5
 
8
- describe '#solr_doc' do
6
+ describe '#initialize' do
7
+ context 'with args' do
8
+ subject { described_class.new(opts) }
9
+ let(:opts) { { url: 'http://my-client-uri/' } }
9
10
 
10
- context 'without models' do
11
+ it 'passes options to RSolr client' do
12
+ expect(subject.solr.uri.to_s).to eq opts[:url]
13
+ end
14
+ end
11
15
 
16
+ it 'defaults to Krikri::Settings.solr' do
17
+ uri = 'http://moomin.org/'
18
+ allow(Krikri::Settings)
19
+ .to receive(:solr).and_return(url: uri)
20
+ expect(subject.solr.uri.to_s).to eq uri
21
+ end
22
+ end
23
+
24
+ describe '#solr_doc' do
25
+ context 'without models' do
12
26
  before :each do
13
27
  fake_schema_keys = ['a', 'b', 'c', 'b_c', 'b_d']
14
28
  allow(subject).to receive(:schema_keys).and_return(fake_schema_keys)
@@ -17,8 +31,7 @@ describe Krikri::IndexService do
17
31
  it 'converts JSON into Solr-compatible hash' do
18
32
  json = { 'a' => '1', 'b' => { 'c' => '2', 'd' => '3' } }.to_json
19
33
  flat_hash = { 'a' => '1', 'b_c' => '2', 'b_d' => '3' }
20
- result = subject.class_eval { solr_doc(json) }
21
- expect(result).to eq flat_hash
34
+ expect(subject.solr_doc(json)).to eq flat_hash
22
35
  end
23
36
 
24
37
  it 'removes special character strings from keys' do
@@ -28,15 +41,13 @@ describe Krikri::IndexService do
28
41
  '@c' => '3'
29
42
  }.to_json
30
43
  flat_hash = { 'a' => '1', 'b' => '2', 'c' => '3' }
31
- result = subject.class_eval { solr_doc(json) }
32
- expect(result).to eq flat_hash
44
+ expect(subject.solr_doc(json)).to eq flat_hash
33
45
  end
34
46
 
35
47
  it 'removes keys that are not in solr schema' do
36
48
  json = { 'a' => '1', 'invalid_key' => '0' }.to_json
37
49
  valid_hash = { 'a' => '1' }
38
- result = subject.class_eval { solr_doc(json) }
39
- expect(result).to eq valid_hash
50
+ expect(subject.solr_doc(json)).to eq valid_hash
40
51
  end
41
52
  end
42
53
 
@@ -45,14 +56,14 @@ describe Krikri::IndexService do
45
56
 
46
57
  before do
47
58
  aggregation.set_subject!('http://api.dp.la/item/123')
48
- Krikri::IndexService.add aggregation.to_jsonld['@graph'][0].to_json
49
- Krikri::IndexService.commit
59
+ subject.add aggregation.to_jsonld['@graph'][0].to_json
60
+ subject.commit
50
61
  end
51
62
 
52
63
  after do
53
64
  q = 'id:*'
54
- Krikri::IndexService.delete_by_query(q)
55
- Krikri::IndexService.commit
65
+ subject.delete_by_query(q)
66
+ subject.commit
56
67
  end
57
68
 
58
69
  it 'posts DPLA MAP JSON to solr' do
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::Job do
4
+ describe '.perform' do
5
+ it 'calls run on activity by id' do
6
+ activity_id = 1
7
+ activity = double('activity')
8
+ end
9
+ end
10
+
11
+ describe '.run' do
12
+ end
13
+ end
@@ -0,0 +1,64 @@
1
+ describe Krikri::Mapper::Agent do
2
+ opts = { name: :agent_map, generator_uri: 'http://example.org/agent/gen/1' }
3
+ it_behaves_like 'a software agent', opts, Krikri::MappingJob
4
+
5
+ subject { described_class.new(opts) }
6
+
7
+ let(:generator_uri) { 'http://example.org/agent/gen/1' }
8
+ let(:activity_uri) { 'http://example.org/agent/act/1' }
9
+ let(:mapping_name) { :agent_map }
10
+ let(:opts) { { name: mapping_name, generator_uri: generator_uri } }
11
+
12
+ describe '#run' do
13
+ let(:record_double) { double(DPLA::MAP::Aggregation) }
14
+ let(:records) do
15
+ [record_double, record_double.clone, record_double.clone]
16
+ end
17
+
18
+ before do
19
+ allow(subject).to receive(:records).and_return([:record1, :record2])
20
+ allow(record_double).to receive(:set_subject!)
21
+ allow(record_double).to receive(:save)
22
+ expect(Krikri::Mapper).to receive(:map).with(mapping_name, subject.records)
23
+ .and_return(records)
24
+ end
25
+
26
+ it 'calls mapper' do
27
+ subject.run
28
+ end
29
+
30
+ it 'sets generator' do
31
+ records.each do |rec|
32
+ statement = double
33
+ allow(RDF).to receive(:Statement)
34
+ .with(rec, RDF::PROV.wasGeneratedBy, activity_uri)
35
+ .and_return(statement)
36
+ expect(rec).to receive(:<<).with(statement)
37
+ end
38
+ subject.run(activity_uri)
39
+ end
40
+ end
41
+
42
+ # TODO: these tests are tied closely to implementation.
43
+ # This is a code smell. Consider refactor of ProvenanceQueryClient
44
+ # and #records.
45
+ describe '#records' do
46
+ let(:solutions) { double(RDF::Query::Solutions) }
47
+ let(:solution) { double(RDF::Query::Solutions) }
48
+ let(:record_double) { double(Krikri::OriginalRecord) }
49
+
50
+ it 'returns a lazy enum' do
51
+ expect(subject.records).to be_a Enumerator::Lazy
52
+ end
53
+
54
+ it 'gets records for generated by harvest_activity' do
55
+ expect_any_instance_of(Krikri::ProvenanceQueryClient)
56
+ .to receive(:find_by_activity).with(generator_uri).and_return(solutions)
57
+ expect(solutions).to receive(:lazy).and_return([solution])
58
+ expect(solution).to receive(:record).and_return(:uri)
59
+ expect(OriginalRecord).to receive(:load).with(:uri.to_s)
60
+ .and_return(:record)
61
+ expect(subject.records).to eq [:record]
62
+ end
63
+ end
64
+ end
@@ -6,11 +6,17 @@ describe Krikri::Mapper do
6
6
  Krikri::Mapper.define(:integration) do
7
7
  sourceResource :class => DPLA::MAP::SourceResource do
8
8
  title record.field('dc:title')
9
+ # test non-root methods
10
+ identifier header.field('xmlns:identifier')
9
11
 
10
12
  creator :class => DPLA::MAP::Agent do
11
13
  providedLabel record.field('dc:creator')
12
14
  end
13
15
  end
16
+
17
+ provider :class => DPLA::MAP::Agent, :each => header.field('xmlns:identifier'), :as => :ident do
18
+ providedLabel ident
19
+ end
14
20
  end
15
21
  end
16
22
 
@@ -18,8 +24,14 @@ describe Krikri::Mapper do
18
24
 
19
25
  it 'maps nested values' do
20
26
  mapped = Krikri::Mapper.map(:integration, record).first
27
+
21
28
  expect(mapped.sourceResource.first.creator.first.providedLabel)
22
29
  .to eq record.root['dc:creator'].map(&:value)
30
+
31
+ expect(mapped.sourceResource.first.identifier)
32
+ .to eq Array(record.header.first['xmlns:identifier'].first.value)
33
+ expect(mapped.provider.first.providedLabel)
34
+ .to eq Array(record.header.first['xmlns:identifier'].first.value)
23
35
  end
24
36
  end
25
37
 
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::Mapper do
4
+
5
+ end
@@ -56,20 +56,13 @@ describe Krikri::MappingDSL::ParserMethods do
56
56
  end
57
57
 
58
58
  describe 'header' do
59
- let(:record) { double }
59
+ let(:record) { double('record') }
60
+ let(:header) { double('header') }
60
61
 
61
62
  it 'gets the header from the record passed' do
62
- allow(record).to receive(:respond_to?).with(:header)
63
- .and_return(true)
64
- allow(record).to receive(:header).and_return(:header_array)
65
- expect(subject.header.call(record)).to eq (:header_array)
66
- end
67
-
68
- it 'gets the header from the record passed' do
69
- allow(record).to receive(:respond_to?).with(:header)
70
- .and_return(false)
71
- expect { subject.header.call(record) }
72
- .to raise_error "#{record} does not have a `header`"
63
+ allow(record).to receive(:header).and_return(header)
64
+ allow(header).to receive(:values).and_return(:values)
65
+ expect(subject.header.call(record)).to eq (:values)
73
66
  end
74
67
  end
75
68
  end
@@ -96,6 +89,14 @@ describe Krikri::MappingDSL::ParserMethods::RecordProxy do
96
89
  it 'shares a value class' do
97
90
  expect(duped.value_class).to eq subject.value_class
98
91
  end
92
+
93
+ context 'with non_root record' do
94
+ subject { described_class.new([], klass, true) }
95
+
96
+ it 'shares non_root status' do
97
+ expect(duped.non_root).to eq subject.non_root
98
+ end
99
+ end
99
100
  end
100
101
 
101
102
  describe '#call' do
@@ -105,8 +106,8 @@ describe Krikri::MappingDSL::ParserMethods::RecordProxy do
105
106
  end
106
107
 
107
108
  subject { described_class.new(call_chain, klass) }
108
- let(:record) { double }
109
- let(:value) { double }
109
+ let(:record) { double('record') }
110
+ let(:value) { double('value') }
110
111
 
111
112
  let(:call_chain) do
112
113
  [{ :name => :my_method,
@@ -119,6 +120,29 @@ describe Krikri::MappingDSL::ParserMethods::RecordProxy do
119
120
  }]
120
121
  end
121
122
 
123
+ context 'non root' do
124
+ before do
125
+ allow(record).to receive(:values).and_return([:my_value])
126
+ end
127
+
128
+ subject { described_class.new(call_chain, klass, true) }
129
+
130
+ it 'calls chain' do
131
+ call_chain.each do |spec|
132
+ expect(record).to receive(spec[:name]).ordered
133
+ .with(*spec[:args], &spec[:block]).and_return(record)
134
+ end
135
+ subject.call(record)
136
+ end
137
+
138
+ it 'casts result to values' do
139
+ call_chain.each do |spec|
140
+ allow(record).to receive(spec[:name]).and_return(record)
141
+ end
142
+ expect(subject.call(record)).to eq [:my_value]
143
+ end
144
+ end
145
+
122
146
  it 'calls chain' do
123
147
  call_chain.each do |spec|
124
148
  expect(value).to receive(spec[:name]).ordered
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::MappingDSL::ParserMethods do
4
+ before do
5
+ # dummy class
6
+ class DummyParserImpl
7
+ include Krikri::MappingDSL::ParserMethods
8
+ end
9
+ end
10
+
11
+ after do
12
+ Object.send(:remove_const, 'DummyParserImpl')
13
+ end
14
+
15
+ subject { DummyParserImpl.new }
16
+
17
+ it 'raises an error without parser' do
18
+ expect { subject.record }
19
+ .to raise_error 'No parser selected; set a parser with #parser(class)'
20
+ end
21
+
22
+ context 'with parser' do
23
+ before do
24
+ subject.parser parser
25
+ allow_any_instance_of(parser).to receive(:root).and_return()
26
+ end
27
+
28
+ let(:parser) { class_double("Krikri::XmlParser") }
29
+
30
+ describe '#record' do
31
+ it 'returns a parsed value instance' do
32
+ expect(subject.record)
33
+ .to be_a Krikri::MappingDSL::ParserMethods::ParsedValue
34
+ end
35
+
36
+ it 'initializes parsed value with args and parser' do
37
+ expect(Krikri::MappingDSL::ParserMethods::ParsedValue).to receive(:new)
38
+ .with(parser, :arg_1, :arg_2, :arg_3)
39
+ subject.record(:arg_1, :arg_2, :arg_3)
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ describe Krikri::MappingDSL::ParserMethods::ParsedValue do
46
+ subject { described_class.new(parser) }
47
+ let(:record) { double() }
48
+ let(:parser) { class_double("Krikri::XmlParser") }
49
+ let(:root) { instance_double("Krikri::XmlParser") }
50
+ let(:value) { instance_double("Krikri::XmlParser::Value") }
51
+
52
+ describe '#to_proc' do
53
+ # before do
54
+ # expect(parser).to receive(:new).with(record).and_return(:value)
55
+ # end
56
+
57
+ it 'resolves to a parser root' do
58
+ expect(parser).to receive(:new).with(record).and_return(root)
59
+ expect(root).to receive(:root).and_return(value)
60
+ expect(value).to receive(values).and_return(:my_value)
61
+ require 'pry'
62
+ binding.pry
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ describe Krikri::MappingDSL::PropertyDeclaration do
4
+ it_behaves_like 'a named property'
5
+ it_behaves_like 'a valued property'
6
+
7
+ subject { described_class.new(:my_property, value) }
8
+
9
+ describe '#to_proc' do
10
+ shared_context 'mapped property' do
11
+ before do
12
+ expect(mapped).to receive(:my_property=).with(value)
13
+ end
14
+ let(:mapped) { double }
15
+ end
16
+
17
+ shared_context 'property block' do
18
+ subject do
19
+ described_class.new(:my_property, start_value) do |v|
20
+ v.upcase
21
+ end
22
+ end
23
+ let(:start_value) do
24
+ return value.map(&:downcase) if value.is_a? Enumerable
25
+ value.downcase
26
+ end
27
+ end
28
+
29
+ shared_examples 'a property value' do
30
+ it 'gives a proc that sets value' do
31
+ subject.to_proc.call(mapped, '')
32
+ end
33
+ end
34
+
35
+ context 'static' do
36
+ include_context 'mapped property'
37
+ it_behaves_like 'a property value'
38
+ end
39
+
40
+ context 'with multiple values' do
41
+ include_context 'mapped property'
42
+ it_behaves_like 'a property value'
43
+
44
+ let(:value) { %w('value_1', 'value_2') }
45
+
46
+ context 'with block of arity 1' do
47
+ include_context 'property block'
48
+ it_behaves_like 'a property value'
49
+
50
+ let(:value) { %w('value_1', 'value_2').map(&:upcase) }
51
+ end
52
+ end
53
+
54
+ context 'with block of arity 1' do
55
+ include_context 'mapped property'
56
+ include_context 'property block'
57
+ it_behaves_like 'a property value'
58
+
59
+ let(:value) { 'value'.upcase }
60
+ end
61
+
62
+ context 'with callable value' do
63
+ include_context 'mapped property'
64
+ it_behaves_like 'a property value'
65
+
66
+ before do
67
+ expect(proc_value).to receive(:call).and_return(value)
68
+ end
69
+
70
+ subject { described_class.new(:my_property, proc_value) }
71
+
72
+ let(:proc_value) { ->(_) {} }
73
+ end
74
+
75
+ context 'with block of wrong arity' do
76
+ subject do
77
+ described_class.new(:my_property, value) { |v, what| v + what }
78
+ end
79
+
80
+ it 'raises error' do
81
+ expect { subject.to_proc.call(nil, nil) }
82
+ .to raise_error('Block must have arity of 1 to be applied to '\
83
+ 'property')
84
+ end
85
+ end
86
+ end
87
+ end