blacklight-marc 8.1.0 → 8.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +13 -9
- data/Gemfile +11 -15
- data/app/models/concerns/blacklight/marc/document_export.rb +35 -34
- data/blacklight-marc.gemspec +1 -1
- data/lib/blacklight/marc/version.rb +1 -1
- data/spec/lib/marc_export_spec.rb +56 -18
- data/spec/models/concerns/blacklight/marc/document_export_spec.rb +30 -0
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ddc8931784772b5088a18b2d969c2039cff9e0897785a0b40094ef6acbb35135
|
|
4
|
+
data.tar.gz: 8ad3d91c571774c588ccc2d94d74220c5685117544dabd5b18c3954efec8cc05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2f7f6a477a2851319cc6922086e384156c2e0389c62052b77c4779d42012746c0608250b0fcb27d33f6ab7f61ab9591bf00258cec3b3d308a8905cf17c76864e
|
|
7
|
+
data.tar.gz: a9ce0202761b05216a1d31b3e5a95cf6034f7d3c9667937cc129a7fa6867eb1f4fb930a4cc72ae87432c850bea42e7553d9fac127d56a9ad6e78611ca77f7cb7
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -12,21 +12,25 @@ jobs:
|
|
|
12
12
|
continue-on-error: ${{ matrix.experimental }}
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
ruby: [
|
|
16
|
-
rails_version: ['
|
|
17
|
-
blacklight_version: ['~>
|
|
15
|
+
ruby: ['3.2']
|
|
16
|
+
rails_version: ['7.1.3']
|
|
17
|
+
blacklight_version: ['~> 8.1']
|
|
18
18
|
experimental: [false]
|
|
19
19
|
include:
|
|
20
|
-
- ruby: '
|
|
21
|
-
rails_version: '7.
|
|
20
|
+
- ruby: '2.7'
|
|
21
|
+
rails_version: '6.1.7.6'
|
|
22
22
|
blacklight_version: '~> 7.0'
|
|
23
23
|
experimental: false
|
|
24
|
-
- ruby: '3.
|
|
25
|
-
rails_version: '7.0.
|
|
26
|
-
blacklight_version: '
|
|
24
|
+
- ruby: '3.0'
|
|
25
|
+
rails_version: '7.0.8'
|
|
26
|
+
blacklight_version: '~> 7.0'
|
|
27
27
|
experimental: false
|
|
28
28
|
- ruby: '3.1'
|
|
29
|
-
rails_version: '7.0.
|
|
29
|
+
rails_version: '7.0.8'
|
|
30
|
+
blacklight_version: '~> 8.1'
|
|
31
|
+
experimental: false
|
|
32
|
+
- ruby: '3.2'
|
|
33
|
+
rails_version: '7.1.3'
|
|
30
34
|
blacklight_version: 'github'
|
|
31
35
|
experimental: true
|
|
32
36
|
env:
|
data/Gemfile
CHANGED
|
@@ -9,8 +9,8 @@ end
|
|
|
9
9
|
gemspec path: File.expand_path('..', __FILE__)
|
|
10
10
|
|
|
11
11
|
# BEGIN ENGINE_CART BLOCK
|
|
12
|
-
# engine_cart:
|
|
13
|
-
# engine_cart stanza:
|
|
12
|
+
# engine_cart: 2.6.0
|
|
13
|
+
# engine_cart stanza: 2.5.0
|
|
14
14
|
# the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
|
|
15
15
|
file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
|
|
16
16
|
if File.exist?(file)
|
|
@@ -30,20 +30,16 @@ else
|
|
|
30
30
|
else
|
|
31
31
|
gem 'rails', ENV['RAILS_VERSION']
|
|
32
32
|
end
|
|
33
|
-
end
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
gem 'coffee-rails', '~> 4.1.0'
|
|
45
|
-
when /^4.[01]/
|
|
46
|
-
gem 'sass-rails', '< 5.0'
|
|
34
|
+
case ENV['RAILS_VERSION']
|
|
35
|
+
when /^6.0/
|
|
36
|
+
gem 'sass-rails', '>= 6'
|
|
37
|
+
gem 'webpacker', '~> 4.0'
|
|
38
|
+
when /^5.[12]/
|
|
39
|
+
gem 'sass-rails', '~> 5.0'
|
|
40
|
+
gem 'sprockets', '~> 3.7'
|
|
41
|
+
gem 'thor', '~> 0.20'
|
|
42
|
+
end
|
|
47
43
|
end
|
|
48
44
|
end
|
|
49
45
|
# END ENGINE_CART BLOCK
|
|
@@ -62,40 +62,40 @@ module Blacklight::Marc::DocumentExport
|
|
|
62
62
|
edition = to_marc.find{|field| field.tag == '250'}
|
|
63
63
|
isbn = to_marc.find{|field| field.tag == '020'}
|
|
64
64
|
issn = to_marc.find{|field| field.tag == '022'}
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
format = format.first if format.is_a?(Array)
|
|
66
|
+
format = format.downcase.strip unless format.nil?
|
|
67
|
+
|
|
68
|
+
export_text = ""
|
|
69
|
+
if format == 'book'
|
|
70
|
+
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=book&"
|
|
71
|
+
export_text << "rft.btitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
72
|
+
export_text << "rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
73
|
+
export_text << "rft.au=#{(author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a'])}&"
|
|
74
|
+
export_text << "rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}&" unless corp_author.blank?
|
|
75
|
+
export_text << "rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&"
|
|
76
|
+
export_text << "rft.place=#{(publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a'])}&"
|
|
77
|
+
export_text << "rft.pub=#{(publisher_info.nil? or publisher_info['b'].nil?) ? "" : CGI::escape(publisher_info['b'])}&"
|
|
78
|
+
export_text << "rft.edition=#{(edition.nil? or edition['a'].nil?) ? "" : CGI::escape(edition['a'])}&"
|
|
79
|
+
export_text << "rft.isbn=#{(isbn.nil? or isbn['a'].nil?) ? "" : isbn['a']}"
|
|
80
|
+
elsif (format =~ /journal/i) # checking using include because institutions may use formats like Journal or Journal/Magazine
|
|
81
|
+
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=article&"
|
|
82
|
+
export_text << "rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
83
|
+
export_text << "rft.atitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
84
|
+
export_text << "rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}&" unless corp_author.blank?
|
|
85
|
+
export_text << "rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&"
|
|
86
|
+
export_text << "rft.issn=#{(issn.nil? or issn['a'].nil?) ? "" : issn['a']}"
|
|
87
|
+
else
|
|
88
|
+
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&"
|
|
89
|
+
export_text << "rft.title=" + ((title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a']))
|
|
90
|
+
export_text << ((title.nil? or title['b'].nil?) ? "" : CGI.escape(" ") + CGI::escape(title['b']))
|
|
91
|
+
export_text << "&rft.creator=" + ((author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a']))
|
|
92
|
+
export_text << "&rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}" unless corp_author.blank?
|
|
93
|
+
export_text << "&rft.date=" + ((publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c']))
|
|
94
|
+
export_text << "&rft.place=" + ((publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a']))
|
|
95
|
+
export_text << "&rft.pub=" + ((publisher_info.nil? or publisher_info['b'].nil?) ? "" : CGI::escape(publisher_info['b']))
|
|
96
|
+
export_text << "&rft.format=" + (format.nil? ? "" : CGI::escape(format))
|
|
67
97
|
end
|
|
68
|
-
|
|
69
|
-
if format == 'book'
|
|
70
|
-
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=book&"
|
|
71
|
-
export_text << "rft.btitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
72
|
-
export_text << "rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
73
|
-
export_text << "rft.au=#{(author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a'])}&"
|
|
74
|
-
export_text << "rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}&" unless corp_author.blank?
|
|
75
|
-
export_text << "rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&"
|
|
76
|
-
export_text << "rft.place=#{(publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a'])}&"
|
|
77
|
-
export_text << "rft.pub=#{(publisher_info.nil? or publisher_info['b'].nil?) ? "" : CGI::escape(publisher_info['b'])}&"
|
|
78
|
-
export_text << "rft.edition=#{(edition.nil? or edition['a'].nil?) ? "" : CGI::escape(edition['a'])}&"
|
|
79
|
-
export_text << "rft.isbn=#{(isbn.nil? or isbn['a'].nil?) ? "" : isbn['a']}"
|
|
80
|
-
elsif (format =~ /journal/i) # checking using include because institutions may use formats like Journal or Journal/Magazine
|
|
81
|
-
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&rft.genre=article&"
|
|
82
|
-
export_text << "rft.title=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
83
|
-
export_text << "rft.atitle=#{(title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a'])}+#{(title.nil? or title['b'].nil?) ? "" : CGI::escape(title['b'])}&"
|
|
84
|
-
export_text << "rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}&" unless corp_author.blank?
|
|
85
|
-
export_text << "rft.date=#{(publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c'])}&"
|
|
86
|
-
export_text << "rft.issn=#{(issn.nil? or issn['a'].nil?) ? "" : issn['a']}"
|
|
87
|
-
else
|
|
88
|
-
export_text << "ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fblacklight.rubyforge.org%3Agenerator&"
|
|
89
|
-
export_text << "rft.title=" + ((title.nil? or title['a'].nil?) ? "" : CGI::escape(title['a']))
|
|
90
|
-
export_text << ((title.nil? or title['b'].nil?) ? "" : CGI.escape(" ") + CGI::escape(title['b']))
|
|
91
|
-
export_text << "&rft.creator=" + ((author.nil? or author['a'].nil?) ? "" : CGI::escape(author['a']))
|
|
92
|
-
export_text << "&rft.aucorp=#{CGI::escape(corp_author['a']) if corp_author['a']}+#{CGI::escape(corp_author['b']) if corp_author['b']}" unless corp_author.blank?
|
|
93
|
-
export_text << "&rft.date=" + ((publisher_info.nil? or publisher_info['c'].nil?) ? "" : CGI::escape(publisher_info['c']))
|
|
94
|
-
export_text << "&rft.place=" + ((publisher_info.nil? or publisher_info['a'].nil?) ? "" : CGI::escape(publisher_info['a']))
|
|
95
|
-
export_text << "&rft.pub=" + ((publisher_info.nil? or publisher_info['b'].nil?) ? "" : CGI::escape(publisher_info['b']))
|
|
96
|
-
export_text << "&rft.format=" + (format.nil? ? "" : CGI::escape(format))
|
|
97
|
-
end
|
|
98
|
-
export_text.html_safe unless export_text.blank?
|
|
98
|
+
export_text.html_safe unless export_text.blank?
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
|
|
@@ -561,6 +561,7 @@ module Blacklight::Marc::DocumentExport
|
|
|
561
561
|
|
|
562
562
|
def abbreviate_name(name)
|
|
563
563
|
name_parts = name.split(", ")
|
|
564
|
+
return "" if name_parts.empty?
|
|
564
565
|
first_name_parts = name_parts.last.split(" ")
|
|
565
566
|
temp_name = name_parts.first + ", " + first_name_parts.first[0,1] + "."
|
|
566
567
|
first_name_parts.shift
|
|
@@ -570,7 +571,7 @@ module Blacklight::Marc::DocumentExport
|
|
|
570
571
|
|
|
571
572
|
def name_reverse(name)
|
|
572
573
|
name = clean_end_punctuation(name)
|
|
573
|
-
return name
|
|
574
|
+
return name if name == ", " || !(name =~ /,/)
|
|
574
575
|
temp_name = name.split(", ")
|
|
575
576
|
return temp_name.last + " " + temp_name.first
|
|
576
577
|
end
|
data/blacklight-marc.gemspec
CHANGED
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
|
|
28
28
|
spec.add_development_dependency "bundler"
|
|
29
29
|
spec.add_development_dependency "rake"
|
|
30
|
-
spec.add_development_dependency "rspec-rails", '~>
|
|
30
|
+
spec.add_development_dependency "rspec-rails", '~> 6.1'
|
|
31
31
|
spec.add_development_dependency "rspec-activemodel-mocks"
|
|
32
32
|
spec.add_development_dependency "solr_wrapper"
|
|
33
33
|
spec.add_development_dependency "capybara"
|
|
@@ -629,24 +629,62 @@ describe Blacklight::Solr::Document::MarcExport do
|
|
|
629
629
|
end
|
|
630
630
|
end
|
|
631
631
|
|
|
632
|
-
describe "export_as_openurl_ctx_kev" do
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
632
|
+
describe "#export_as_openurl_ctx_kev" do
|
|
633
|
+
subject(:record) { @typical_record.export_as_openurl_ctx_kev(format) }
|
|
634
|
+
|
|
635
|
+
context 'with a Book' do
|
|
636
|
+
let(:format) { 'Book' }
|
|
637
|
+
it "creates the appropriate context object" do
|
|
638
|
+
expect(record).to match(/.*mtx%3Abook.*rft.genre=book.*rft.btitle=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.place=Oxon%2C\+U.K.*rft.pub=CABI\+Pub.*rft.isbn=/)
|
|
639
|
+
expect(record).not_to match(/.*rft.genre=article.*rft.issn=.*/)
|
|
640
|
+
end
|
|
641
|
+
end
|
|
642
|
+
|
|
643
|
+
context 'with a Journal' do
|
|
644
|
+
let(:format) { 'Journal' }
|
|
645
|
+
it "creates the appropriate context object" do
|
|
646
|
+
expect(record).to match(/.*mtx%3Ajournal.*rft.genre=article.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.atitle=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.issn=/)
|
|
647
|
+
expect(record).not_to match(/.*rft.genre=book.*rft.isbn=.*/)
|
|
648
|
+
end
|
|
649
|
+
end
|
|
650
|
+
|
|
651
|
+
context 'with a Journal/Magazine' do
|
|
652
|
+
let(:format) { 'Journal/Magazine' }
|
|
653
|
+
it "creates the appropriate context object" do
|
|
654
|
+
expect(record).to match(/.*mtx%3Ajournal.*rft.genre=article.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.atitle=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.issn=/)
|
|
655
|
+
expect(record).not_to match(/.*rft.genre=book.*rft.isbn=.*/)
|
|
656
|
+
end
|
|
657
|
+
end
|
|
658
|
+
|
|
659
|
+
context 'with other formats' do
|
|
660
|
+
let(:format) { 'NotARealFormat' }
|
|
661
|
+
it "creates the appropriate context object" do
|
|
662
|
+
expect(record).to match(/.*mtx%3Adc.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.creator=.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.place=Oxon%2C\+U.K.*rft.pub=CABI\+Pub.*rft.format=notarealformat/)
|
|
663
|
+
expect(record).not_to match(/.*rft.isbn=.*/)
|
|
664
|
+
expect(record).not_to match(/.*rft.issn=.*/)
|
|
665
|
+
end
|
|
666
|
+
end
|
|
667
|
+
|
|
668
|
+
context 'with an array' do
|
|
669
|
+
let(:format) { ['Journal'] }
|
|
670
|
+
it "creates the appropriate context object" do
|
|
671
|
+
expect(record).to match(/.*mtx%3Ajournal.*rft.genre=article.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.atitle=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.issn=/)
|
|
672
|
+
expect(record).not_to match(/.*rft.genre=book.*rft.isbn=.*/)
|
|
673
|
+
end
|
|
674
|
+
end
|
|
675
|
+
|
|
676
|
+
context 'with a nil format' do
|
|
677
|
+
let(:format) { nil }
|
|
678
|
+
it "creates the appropriate context object" do
|
|
679
|
+
expect(record).to match(/.*mtx%3Adc.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.creator=.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.place=Oxon%2C\+U.K.*rft.pub=CABI\+Pub.*rft.format=/)
|
|
680
|
+
end
|
|
681
|
+
end
|
|
682
|
+
|
|
683
|
+
context 'with an empty array' do
|
|
684
|
+
let(:format) { [] }
|
|
685
|
+
it "creates the appropriate context object" do
|
|
686
|
+
expect(record).to match(/.*mtx%3Adc.*rft.title=Apples\+%3A\+botany%2C\+production%2C\+and\+uses.*rft.creator=.*rft.aucorp=Bobs\+Your\+Uncle.*rft.date=c2003.*rft.place=Oxon%2C\+U.K.*rft.pub=CABI\+Pub.*rft.format=/)
|
|
687
|
+
end
|
|
650
688
|
end
|
|
651
689
|
end
|
|
652
690
|
|
|
@@ -26,6 +26,19 @@ class MockClass264
|
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
class MockClassInvalid700
|
|
30
|
+
include Blacklight::Marc::DocumentExport
|
|
31
|
+
|
|
32
|
+
def to_marc
|
|
33
|
+
fields = [
|
|
34
|
+
{ "100" => { "subfields" => [{ "a" => "Borja, Ronaldo I." }]}},
|
|
35
|
+
{ "245" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => "Plasticity : ", "b" => "modeling & computation /", "c" => "Ronaldo I. Borja." }] } },
|
|
36
|
+
{ "700" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => ", ." }] } }
|
|
37
|
+
]
|
|
38
|
+
MARC::Record.new_from_hash('fields' => fields)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
29
42
|
RSpec.describe Blacklight::Marc::DocumentExport do
|
|
30
43
|
describe 'export citiations from 260 field' do
|
|
31
44
|
it 'exports citations in apa format' do
|
|
@@ -60,4 +73,21 @@ RSpec.describe Blacklight::Marc::DocumentExport do
|
|
|
60
73
|
expect(MockClass264.new.export_as_chicago_citation_txt).to include('Berlin: Springer,')
|
|
61
74
|
end
|
|
62
75
|
end
|
|
76
|
+
|
|
77
|
+
describe 'when the 700 only has punctuation and spaces' do
|
|
78
|
+
it 'exports citations in apa format' do
|
|
79
|
+
expect(MockClassInvalid700.new.export_as_apa_citation_txt).to include('Borja, R. I')
|
|
80
|
+
expect(MockClassInvalid700.new.export_as_apa_citation_txt).to include('Plasticity')
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'exports citations in mla format' do
|
|
84
|
+
expect(MockClassInvalid700.new.export_as_mla_citation_txt).to include('Borja, Ronaldo I')
|
|
85
|
+
expect(MockClassInvalid700.new.export_as_mla_citation_txt).to include('Plasticity')
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it 'exports citations in Chicago format' do
|
|
89
|
+
expect(MockClassInvalid700.new.export_as_chicago_citation_txt).to include('Borja, Ronaldo I')
|
|
90
|
+
expect(MockClassInvalid700.new.export_as_chicago_citation_txt).to include('Plasticity')
|
|
91
|
+
end
|
|
92
|
+
end
|
|
63
93
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blacklight-marc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.1.
|
|
4
|
+
version: 8.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Coyne
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-03-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: blacklight
|
|
@@ -140,14 +140,14 @@ dependencies:
|
|
|
140
140
|
requirements:
|
|
141
141
|
- - "~>"
|
|
142
142
|
- !ruby/object:Gem::Version
|
|
143
|
-
version: '
|
|
143
|
+
version: '6.1'
|
|
144
144
|
type: :development
|
|
145
145
|
prerelease: false
|
|
146
146
|
version_requirements: !ruby/object:Gem::Requirement
|
|
147
147
|
requirements:
|
|
148
148
|
- - "~>"
|
|
149
149
|
- !ruby/object:Gem::Version
|
|
150
|
-
version: '
|
|
150
|
+
version: '6.1'
|
|
151
151
|
- !ruby/object:Gem::Dependency
|
|
152
152
|
name: rspec-activemodel-mocks
|
|
153
153
|
requirement: !ruby/object:Gem::Requirement
|