blacklight-marc 6.1.1 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +10 -4
  3. data/Gemfile +12 -0
  4. data/README.md +28 -7
  5. data/Rakefile +0 -2
  6. data/app/assets/stylesheets/blacklight_marc.scss +4 -6
  7. data/app/helpers/blacklight_marc_helper.rb +5 -4
  8. data/app/models/concerns/blacklight/solr/document/marc.rb +13 -12
  9. data/app/models/concerns/blacklight/solr/document/marc_export.rb +53 -50
  10. data/app/views/bookmarks/_endnote.html.erb +1 -1
  11. data/app/views/bookmarks/_refworks.html.erb +1 -1
  12. data/app/views/catalog/_marc_view.html.erb +4 -4
  13. data/app/views/catalog/endnote.endnote.erb +1 -1
  14. data/app/views/catalog/librarian_view.html.erb +7 -4
  15. data/blacklight-marc.gemspec +7 -10
  16. data/config/routes.rb +1 -1
  17. data/lib/blacklight/marc/catalog.rb +9 -15
  18. data/lib/blacklight/marc/engine.rb +2 -0
  19. data/lib/blacklight/marc/indexer.rb +9 -39
  20. data/lib/blacklight/marc/indexer/formats.rb +13 -15
  21. data/lib/blacklight/marc/routes.rb +2 -39
  22. data/lib/blacklight/marc/routes/marc_viewable.rb +20 -0
  23. data/lib/blacklight/marc/version.rb +1 -1
  24. data/lib/generators/blacklight/marc/install_generator.rb +15 -8
  25. data/lib/generators/blacklight/marc/templates/app/models/marc_indexer.rb +59 -59
  26. data/lib/generators/blacklight/marc/templates/config/translation_maps/callnumber_map.properties +149 -11
  27. data/lib/railties/solr_marc.rake +33 -33
  28. data/solr/conf/schema.xml +326 -573
  29. data/solr/conf/solrconfig.xml +78 -294
  30. data/spec/controllers/catalog_controller_spec.rb +11 -6
  31. data/spec/features/bookmarks_spec.rb +2 -1
  32. data/spec/features/search_formats_spec.rb +3 -3
  33. data/spec/integration/solr_document_spec.rb +19 -19
  34. data/spec/lib/blacklight_solr_document_marc_spec.rb +7 -7
  35. data/spec/lib/indexer/dewey_spec.rb +4 -4
  36. data/spec/lib/indexer/formats_spec.rb +9 -1
  37. data/spec/lib/marc_export_spec.rb +46 -46
  38. data/spec/lib/tasks/solr_marc_task_spec.rb +7 -7
  39. data/spec/lib/traject_indexer_spec.rb +6 -2
  40. data/spec/routing/routes_spec.rb +0 -6
  41. data/spec/test_app_templates/Gemfile.extra +2 -0
  42. data/spec/test_app_templates/lib/generators/test_app_generator.rb +14 -13
  43. data/spec/views/bookmarks/_endnote.html.erb_spec.rb +16 -6
  44. data/spec/views/bookmarks/_refworks.html.erb_spec.rb +17 -7
  45. data/spec/views/catalog/index.atom.builder_spec.rb +12 -17
  46. data/test_support/config/translation_maps/test_formats.properties +3 -1
  47. metadata +23 -43
  48. data/app/helpers/blacklight_bookmarks_helper.rb +0 -3
  49. data/solr/sample_solr_documents.yml +0 -2692
@@ -16,15 +16,15 @@ describe "solr:marc:*" do
16
16
  ensure
17
17
  $stdout = STDOUT
18
18
  end
19
-
19
+
20
20
  before(:all) do
21
- @rake = Rake::Application.new
21
+ @rake = Rake::Application.new
22
22
  Rake.application = @rake
23
23
  Rake.application.rake_require "../lib/railties/solr_marc"
24
24
  Rake::Task.define_task(:environment)
25
25
  end
26
26
 
27
- describe 'solr:marc:index_test_data' do
27
+ describe 'solr:marc:index_test_data' do
28
28
  it 'should print out usage using NOOP=true' do
29
29
  root = Rails.root
30
30
  ENV['NOOP'] = "true"
@@ -33,9 +33,9 @@ describe "solr:marc:*" do
33
33
  end
34
34
 
35
35
  expect(o).to match(Regexp.escape("Possible environment variables, with settings as invoked"))
36
- end
36
+ end
37
37
  end
38
-
38
+
39
39
  describe "solr:marc:index" do
40
40
  after do
41
41
  SolrMarc.indexer= nil
@@ -50,7 +50,7 @@ describe "solr:marc:*" do
50
50
  @rake['solr:marc:index:work'].invoke
51
51
  end
52
52
  end
53
-
54
- end
53
+
54
+ end
55
55
  end
56
56
 
@@ -70,7 +70,7 @@ module TestIndexer
70
70
  store "marc_source.type", "xml"
71
71
  store "writer_class_name", "TestIndexer::Writer"
72
72
  end
73
- to_field "id", trim(extract_marc("001"), :first => true)
73
+ to_field "id", extract_marc("001"), first_only, trim
74
74
  to_field "format", extract_marc('007[0-1]') do |rec, acc|
75
75
  legacy_formats = Traject::TranslationMap.new("test_formats")
76
76
  acc << rec.leader[6..7]
@@ -80,7 +80,9 @@ module TestIndexer
80
80
  acc << 'Unknown' # the default
81
81
  acc.replace Array(acc[0]) # just take the first
82
82
  end
83
- to_field "mapped", map_value(literal('k'),translation_map:"test_formats")
83
+ to_field "mapped", literal('k'), translation_map("test_formats","test_dewey")
84
+ to_field "mapped_second", literal('000'), translation_map("test_dewey","test_formats")
85
+ to_field "mapped_third", literal('000'), translation_map("test_dewey")
84
86
  end
85
87
  class Writer
86
88
  def self.accumulator=(acc)
@@ -127,6 +129,8 @@ describe Blacklight::Marc::Indexer do
127
129
  json = vals.first
128
130
  expect(json['format']).to eql(['Sound Disc'])
129
131
  expect(json['mapped']).to eql(['Image'])
132
+ expect(json['mapped_second']).to eql(['Bad Metadata'])
133
+ expect(json['mapped_third']).to eql(['000s - Computer Science, Information & General Works'])
130
134
  end
131
135
  end
132
136
  end
@@ -6,11 +6,5 @@ describe "Routing" do
6
6
  expect({ :get => "/catalog/111/librarian_view" }).to route_to(:controller => 'catalog', :action => 'librarian_view', :id => "111")
7
7
  expect({ :get => librarian_view_solr_document_path('111') }).to route_to(:controller => 'catalog', :action => 'librarian_view', :id => "111")
8
8
  end
9
- it "should map {:controller => 'catalog', :action => 'endnote'} to /catalog/endnote" do
10
- expect({ :get => "/catalog/endnote" }).to route_to(:controller => 'catalog', :action => 'endnote')
11
- expect({ :get => endnote_solr_document_path }).to route_to(:controller => 'catalog', :action => 'endnote')
12
- end
13
9
  end
14
10
  end
15
-
16
-
@@ -0,0 +1,2 @@
1
+ gem 'blacklight', github: 'projectblacklight/blacklight'
2
+ gem "traject", '~>3.0'
@@ -1,35 +1,36 @@
1
1
  require 'rails/generators'
2
2
 
3
3
  class TestAppGenerator < Rails::Generators::Base
4
- def fix_travis_rails_4
4
+ def fix_travis_rails_4
5
5
  if ENV['TRAVIS']
6
- insert_into_file 'app/assets/stylesheets/application.css', :before =>'/*' do
6
+ insert_into_file 'app/assets/stylesheets/application.css', :before =>'/*' do
7
7
  "@charset \"UTF-8\";\n"
8
8
  end
9
9
  end
10
10
  end
11
11
 
12
- def remove_index
13
- remove_file "public/index.html"
14
- end
15
-
16
- def run_blacklight_generator
17
- say_status("warning", "GENERATING BL", :yellow)
18
- gem 'blacklight'
19
- gem "traject", '~>2.0'
12
+ def add_gems
13
+ gem 'rsolr', '>= 1.0', '< 3'
20
14
  Bundler.with_clean_env do
21
- run "bundle install"
15
+ run 'bundle install'
22
16
  end
17
+ end
23
18
 
19
+ def remove_index
20
+ remove_file "public/index.html"
21
+ end
22
+
23
+ def run_blacklight_generator
24
+ say_status("warning", "GENERATING BL", :yellow)
24
25
  generate 'blacklight:install', '--devise'
25
26
  end
26
27
 
27
28
  def run_test_support_generator
28
- say_status("warning", "GENERATING test_support", :yellow)
29
+ say_status("warning", "GENERATING test_support", :yellow)
29
30
 
30
31
  generate 'blacklight:test_support'
31
32
  end
32
-
33
+
33
34
  def run_blacklight_marc_generator
34
35
  generate 'blacklight:marc:install'
35
36
  end
@@ -1,13 +1,23 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'bookmarks/_endnote.html.erb' do
3
+ RSpec.describe 'bookmarks/_endnote.html.erb' do
4
4
  before do
5
- allow(controller).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
5
+ allow(controller).to receive(:blacklight_config)
6
+ .and_return(CatalogController.blacklight_config)
7
+ assign(:response, response)
8
+ render
6
9
  end
7
10
 
8
- it "should have a link" do
9
- assign(:document_list, [mock_model(Bookmark, document_id: 7, exports_as?: true), mock_model(Bookmark, document_id: 8, exports_as?: true)])
10
- render
11
- expect(rendered).to have_link "Export to EndNote"
11
+ let(:response) do
12
+ instance_double(Blacklight::Solr::Response,
13
+ documents: documents)
14
+ end
15
+ let(:documents) do
16
+ [mock_model(Bookmark, document_id: 7, exports_as?: true),
17
+ mock_model(Bookmark, document_id: 8, exports_as?: true)]
18
+ end
19
+
20
+ it 'has a link' do
21
+ expect(rendered).to have_link 'Export to EndNote'
12
22
  end
13
23
  end
@@ -1,15 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'bookmarks/_refworks.html.erb' do
3
+ RSpec.describe 'bookmarks/_refworks.html.erb' do
4
4
  before do
5
- allow(controller).to receive(:blacklight_config).and_return(CatalogController.blacklight_config)
6
- end
7
-
8
- it "should have a link" do
5
+ allow(controller).to receive(:blacklight_config)
6
+ .and_return(CatalogController.blacklight_config)
9
7
  allow(view).to receive_messages(encrypt_user_id: 1)
10
8
  allow(view).to receive_messages(current_or_guest_user: mock_model(User))
11
- assign(:document_list, [mock_model(Bookmark, document_id: 7, exports_as?: true), mock_model(Bookmark, document_id: 8, exports_as?: true)])
9
+ assign(:response, response)
12
10
  render
13
- expect(rendered).to have_link "Export to Refworks"
11
+ end
12
+
13
+ let(:response) do
14
+ instance_double(Blacklight::Solr::Response,
15
+ documents: documents)
16
+ end
17
+ let(:documents) do
18
+ [mock_model(Bookmark, document_id: 7, exports_as?: true),
19
+ mock_model(Bookmark, document_id: 8, exports_as?: true)]
20
+ end
21
+
22
+ it 'has a link' do
23
+ expect(rendered).to have_link 'Export to Refworks'
14
24
  end
15
25
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'rexml/document'
3
3
 
4
- describe "catalog/index" do
4
+ describe "catalog/index" do
5
5
 
6
6
  before(:all) do
7
7
  @config = Blacklight::Configuration.new.configure do |config|
@@ -10,34 +10,31 @@ describe "catalog/index" do
10
10
  :rows => 10
11
11
  }
12
12
  end
13
-
14
- @params = { 'content_format' => 'marc', :f => { :format => ['Book'] }, :page => 2 }
15
13
 
16
- # run a solr query to get our data
17
- c = CatalogController.new
18
- c.blacklight_config = @config
19
- @response, @document_list = c.search_results(@params)
14
+ @params = { :content_format => 'marc', :f => { :format => ['Book'] }, :page => 2 }
20
15
 
21
- # munge the solr response to match test expectations
22
- @document_list[1] = SolrDocument.new(@document_list[1].with_indifferent_access.reject! { |k,v| k == "author_display" })
23
- @document_list[5] = SolrDocument.new(@document_list[1].with_indifferent_access.reject! { |k,v| k == "marc_display" })
16
+ # run a solr query to get our data
17
+ service = CatalogController.search_service_class.new(config: @config, user_params: @params)
18
+ @response, _ = service.search_results
19
+ @document_list = @response.documents
24
20
  end
21
+
25
22
  before(:each) do
26
23
  # Not sure what Assigns was doing here ... dhf
27
24
  # assigns[:response] = @rsolr_response
28
25
  # assigns[:document_list] = @document_list
29
26
  # not sure why we can't use assigns for 'params', instead this weird way,
30
- # but okay.
27
+ # but okay.
31
28
 
32
29
  params.merge!( @params )
33
30
  allow(view).to receive(:blacklight_config).and_return(@config)
34
31
  allow(view).to receive(:search_field_options_for_select).and_return([])
35
32
 
36
- render :template => 'catalog/index', :formats => [:atom]
33
+ render :template => 'catalog/index', :formats => [:atom]
37
34
 
38
- # We need to use rexml to test certain things that have_tag wont' test
39
- # note that response is depricated rails 3, use "redered" instead.
40
- @response_xml = REXML::Document.new(rendered)
35
+ # We need to use rexml to test certain things that have_tag wont' test
36
+ # note that response is depricated rails 3, use "redered" instead.
37
+ @response_xml = REXML::Document.new(rendered)
41
38
  end
42
39
 
43
40
  describe "when content_format is specified" do
@@ -54,5 +51,3 @@ describe "catalog/index" do
54
51
  end
55
52
  end
56
53
  end
57
-
58
-
@@ -19,4 +19,6 @@ m = Computer File
19
19
  # 007[0] when it doesn't clash with above
20
20
  h = Microform
21
21
  q = Musical Score
22
- v = Video
22
+ v = Video
23
+ # a check to make sure precedence works
24
+ 000 = Bad Metadata
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight-marc
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.1
4
+ version: 7.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-10 00:00:00.000000000 Z
11
+ date: 2021-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blacklight
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
18
- - !ruby/object:Gem::Version
19
- version: '6.1'
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: 8.a
19
+ version: '7.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">"
28
- - !ruby/object:Gem::Version
29
- version: '6.1'
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: 8.a
26
+ version: '7.0'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: library_stdnums
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +61,7 @@ dependencies:
67
61
  version: 0.4.3
68
62
  - - "<"
69
63
  - !ruby/object:Gem::Version
70
- version: '1.1'
64
+ version: '2.0'
71
65
  type: :runtime
72
66
  prerelease: false
73
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -77,21 +71,21 @@ dependencies:
77
71
  version: 0.4.3
78
72
  - - "<"
79
73
  - !ruby/object:Gem::Version
80
- version: '1.1'
74
+ version: '2.0'
81
75
  - !ruby/object:Gem::Dependency
82
76
  name: traject
83
77
  requirement: !ruby/object:Gem::Requirement
84
78
  requirements:
85
79
  - - "~>"
86
80
  - !ruby/object:Gem::Version
87
- version: '2.1'
81
+ version: '3.0'
88
82
  type: :runtime
89
83
  prerelease: false
90
84
  version_requirements: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - "~>"
93
87
  - !ruby/object:Gem::Version
94
- version: '2.1'
88
+ version: '3.0'
95
89
  - !ruby/object:Gem::Dependency
96
90
  name: marc-fastxmlwriter
97
91
  requirement: !ruby/object:Gem::Requirement
@@ -110,16 +104,16 @@ dependencies:
110
104
  name: bundler
111
105
  requirement: !ruby/object:Gem::Requirement
112
106
  requirements:
113
- - - "~>"
107
+ - - ">="
114
108
  - !ruby/object:Gem::Version
115
- version: '1.3'
109
+ version: '0'
116
110
  type: :development
117
111
  prerelease: false
118
112
  version_requirements: !ruby/object:Gem::Requirement
119
113
  requirements:
120
- - - "~>"
114
+ - - ">="
121
115
  - !ruby/object:Gem::Version
122
- version: '1.3'
116
+ version: '0'
123
117
  - !ruby/object:Gem::Dependency
124
118
  name: rake
125
119
  requirement: !ruby/object:Gem::Requirement
@@ -140,14 +134,14 @@ dependencies:
140
134
  requirements:
141
135
  - - "~>"
142
136
  - !ruby/object:Gem::Version
143
- version: '3.0'
137
+ version: '4.0'
144
138
  type: :development
145
139
  prerelease: false
146
140
  version_requirements: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - "~>"
149
143
  - !ruby/object:Gem::Version
150
- version: '3.0'
144
+ version: '4.0'
151
145
  - !ruby/object:Gem::Dependency
152
146
  name: rspec-activemodel-mocks
153
147
  requirement: !ruby/object:Gem::Requirement
@@ -190,20 +184,6 @@ dependencies:
190
184
  - - ">="
191
185
  - !ruby/object:Gem::Version
192
186
  version: '0'
193
- - !ruby/object:Gem::Dependency
194
- name: coveralls
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: '0'
200
- type: :development
201
- prerelease: false
202
- version_requirements: !ruby/object:Gem::Requirement
203
- requirements:
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: '0'
207
187
  - !ruby/object:Gem::Dependency
208
188
  name: simplecov
209
189
  requirement: !ruby/object:Gem::Requirement
@@ -224,14 +204,14 @@ dependencies:
224
204
  requirements:
225
205
  - - "~>"
226
206
  - !ruby/object:Gem::Version
227
- version: '1.0'
207
+ version: '2.0'
228
208
  type: :development
229
209
  prerelease: false
230
210
  version_requirements: !ruby/object:Gem::Requirement
231
211
  requirements:
232
212
  - - "~>"
233
213
  - !ruby/object:Gem::Version
234
- version: '1.0'
214
+ version: '2.0'
235
215
  description: MARC support for Blacklight
236
216
  email:
237
217
  - justin@curationexperts.com
@@ -247,7 +227,6 @@ files:
247
227
  - README.md
248
228
  - Rakefile
249
229
  - app/assets/stylesheets/blacklight_marc.scss
250
- - app/helpers/blacklight_bookmarks_helper.rb
251
230
  - app/helpers/blacklight_marc_helper.rb
252
231
  - app/models/concerns/blacklight/solr/document/marc.rb
253
232
  - app/models/concerns/blacklight/solr/document/marc_export.rb
@@ -274,6 +253,7 @@ files:
274
253
  - lib/blacklight/marc/indexer/dewey.rb
275
254
  - lib/blacklight/marc/indexer/formats.rb
276
255
  - lib/blacklight/marc/routes.rb
256
+ - lib/blacklight/marc/routes/marc_viewable.rb
277
257
  - lib/blacklight/marc/version.rb
278
258
  - lib/generators/blacklight/marc/install_generator.rb
279
259
  - lib/generators/blacklight/marc/templates/app/models/marc_indexer.rb
@@ -301,7 +281,6 @@ files:
301
281
  - solr/conf/xslt/example_atom.xsl
302
282
  - solr/conf/xslt/example_rss.xsl
303
283
  - solr/conf/xslt/luke.xsl
304
- - solr/sample_solr_documents.yml
305
284
  - spec/controllers/catalog_controller_spec.rb
306
285
  - spec/features/bookmarks_spec.rb
307
286
  - spec/features/librarian_view_spec.rb
@@ -318,6 +297,7 @@ files:
318
297
  - spec/routing/routes_spec.rb
319
298
  - spec/spec_helper.rb
320
299
  - spec/support/controller_level_helpers.rb
300
+ - spec/test_app_templates/Gemfile.extra
321
301
  - spec/test_app_templates/lib/generators/test_app_generator.rb
322
302
  - spec/views/bookmarks/_endnote.html.erb_spec.rb
323
303
  - spec/views/bookmarks/_refworks.html.erb_spec.rb
@@ -328,7 +308,7 @@ files:
328
308
  - test_support/data/test_data.utf8.mrc
329
309
  homepage: https://github.com/projectblacklight/blacklight-marc
330
310
  licenses:
331
- - Apache 2.0
311
+ - Apache-2.0
332
312
  metadata: {}
333
313
  post_install_message:
334
314
  rdoc_options: []
@@ -345,8 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
325
  - !ruby/object:Gem::Version
346
326
  version: '0'
347
327
  requirements: []
348
- rubyforge_project:
349
- rubygems_version: 2.5.1
328
+ rubygems_version: 3.1.2
350
329
  signing_key:
351
330
  specification_version: 4
352
331
  summary: MARC support for Blacklight
@@ -367,6 +346,7 @@ test_files:
367
346
  - spec/routing/routes_spec.rb
368
347
  - spec/spec_helper.rb
369
348
  - spec/support/controller_level_helpers.rb
349
+ - spec/test_app_templates/Gemfile.extra
370
350
  - spec/test_app_templates/lib/generators/test_app_generator.rb
371
351
  - spec/views/bookmarks/_endnote.html.erb_spec.rb
372
352
  - spec/views/bookmarks/_refworks.html.erb_spec.rb