blacklight-marc 8.0.0 → 8.1.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.
- checksums.yaml +4 -4
 - data/.github/workflows/ruby.yml +24 -9
 - data/README.md +1 -1
 - data/app/helpers/blacklight_marc_helper.rb +2 -2
 - data/app/models/concerns/blacklight/marc/document_export.rb +44 -36
 - data/app/views/catalog/librarian_view.html.erb +1 -1
 - data/blacklight-marc.gemspec +1 -1
 - data/lib/blacklight/marc/version.rb +1 -1
 - data/lib/railties/solr_marc.rake +2 -2
 - data/spec/features/record_view_spec.rb +5 -0
 - data/spec/helpers/blacklight_marc_helper_spec.rb +0 -19
 - data/spec/lib/marc_export_spec.rb +56 -18
 - data/spec/models/concerns/blacklight/marc/document_export_spec.rb +63 -0
 - data/spec/support/controller_level_helpers.rb +1 -3
 - data/spec/test_app_templates/Gemfile.extra +6 -0
 - metadata +7 -7
 - data/spec/views/catalog/_document_action.html.erb_spec.rb +0 -21
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 483538c623aaace602da20c35e7b3fc349ac18e06ffe4277ac9a14f14eff237e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: cfbc11131199f2895db722e609a23dfa4cec8be8e27781f542076931988aaf5c
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bc6f9437f9c3a53fe810cf7f1fe1a831e7d6c1de22e9ab04927a0702163e4ef474c4868f322ce8bf2374a4a36fd4354a748a26788001e73b46bbe7dd8e85fe9d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 41943dec1aef4930cfb7ee783dadb6ba63d097882486547f292bb14c2e1f088685f17080a60483f2f08080878ebd61020d48a4ca739a1d0b247ee6f00ad270e6
         
     | 
    
        data/.github/workflows/ruby.yml
    CHANGED
    
    | 
         @@ -1,26 +1,41 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ---
         
     | 
| 
       2 
1 
     | 
    
         
             
            name: CI
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
       4 
3 
     | 
    
         
             
            on:
         
     | 
| 
       5 
4 
     | 
    
         
             
              push:
         
     | 
| 
       6 
     | 
    
         
            -
                branches: [main]
         
     | 
| 
      
 5 
     | 
    
         
            +
                branches: [ main ]
         
     | 
| 
       7 
6 
     | 
    
         
             
              pull_request:
         
     | 
| 
       8 
     | 
    
         
            -
                branches: [main]
         
     | 
| 
      
 7 
     | 
    
         
            +
                branches: [ main ]
         
     | 
| 
       9 
8 
     | 
    
         | 
| 
       10 
9 
     | 
    
         
             
            jobs:
         
     | 
| 
       11 
10 
     | 
    
         
             
              test:
         
     | 
| 
       12 
11 
     | 
    
         
             
                runs-on: ubuntu-latest
         
     | 
| 
      
 12 
     | 
    
         
            +
                continue-on-error: ${{ matrix.experimental }}
         
     | 
| 
       13 
13 
     | 
    
         
             
                strategy:
         
     | 
| 
       14 
14 
     | 
    
         
             
                  matrix:
         
     | 
| 
       15 
     | 
    
         
            -
                     
     | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
      
 15 
     | 
    
         
            +
                    ruby: ['3.2']
         
     | 
| 
      
 16 
     | 
    
         
            +
                    rails_version: ['7.1.3']
         
     | 
| 
      
 17 
     | 
    
         
            +
                    blacklight_version: ['~> 8.1']
         
     | 
| 
      
 18 
     | 
    
         
            +
                    experimental: [false]
         
     | 
| 
       17 
19 
     | 
    
         
             
                    include:
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                       
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
                    - ruby: '2.7'
         
     | 
| 
      
 21 
     | 
    
         
            +
                      rails_version: '6.1.7.6'
         
     | 
| 
      
 22 
     | 
    
         
            +
                      blacklight_version: '~> 7.0'
         
     | 
| 
      
 23 
     | 
    
         
            +
                      experimental: false
         
     | 
| 
      
 24 
     | 
    
         
            +
                    - ruby: '3.0'
         
     | 
| 
      
 25 
     | 
    
         
            +
                      rails_version: '7.0.8'
         
     | 
| 
      
 26 
     | 
    
         
            +
                      blacklight_version: '~> 7.0'
         
     | 
| 
      
 27 
     | 
    
         
            +
                      experimental: false
         
     | 
| 
      
 28 
     | 
    
         
            +
                    - ruby: '3.1'
         
     | 
| 
      
 29 
     | 
    
         
            +
                      rails_version: '7.0.8'
         
     | 
| 
      
 30 
     | 
    
         
            +
                      blacklight_version: '~> 8.1'
         
     | 
| 
      
 31 
     | 
    
         
            +
                      experimental: false
         
     | 
| 
      
 32 
     | 
    
         
            +
                    - ruby: '3.2'
         
     | 
| 
      
 33 
     | 
    
         
            +
                      rails_version: '7.1.3'
         
     | 
| 
      
 34 
     | 
    
         
            +
                      blacklight_version: 'github'
         
     | 
| 
      
 35 
     | 
    
         
            +
                      experimental: true
         
     | 
| 
       22 
36 
     | 
    
         
             
                env:
         
     | 
| 
       23 
37 
     | 
    
         
             
                  RAILS_VERSION: ${{ matrix.rails_version }}
         
     | 
| 
      
 38 
     | 
    
         
            +
                  BLACKLIGHT_VERSION: ${{ matrix.blacklight_version }}
         
     | 
| 
       24 
39 
     | 
    
         
             
                steps:
         
     | 
| 
       25 
40 
     | 
    
         
             
                - uses: actions/checkout@v2
         
     | 
| 
       26 
41 
     | 
    
         
             
                - name: Set up Ruby ${{ matrix.ruby }}
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -35,7 +35,7 @@ include Blacklight::Marc::Catalog 
     | 
|
| 
       35 
35 
     | 
    
         
             
            and the following code is generated into SolrDocument:
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
            ```ruby
         
     | 
| 
       38 
     | 
    
         
            -
            use_extension( Blacklight:: 
     | 
| 
      
 38 
     | 
    
         
            +
            use_extension( Blacklight::Marc::DocumentExtension) do |document|
         
     | 
| 
       39 
39 
     | 
    
         
             
              document.key?( :marc_display  )
         
     | 
| 
       40 
40 
     | 
    
         
             
            end
         
     | 
| 
       41 
41 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -12,8 +12,8 @@ module BlacklightMarcHelper 
     | 
|
| 
       12 
12 
     | 
    
         
             
              end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
              # For exporting a single endnote document. (endnote_catalog_path is defined by blacklight-marc and it is used for multiple document export)
         
     | 
| 
       15 
     | 
    
         
            -
              def single_endnote_catalog_path opts = {},  
     | 
| 
       16 
     | 
    
         
            -
                solr_document_path(opts.merge(format: 'endnote'))
         
     | 
| 
      
 15 
     | 
    
         
            +
              def single_endnote_catalog_path opts = {}, **kwargs
         
     | 
| 
      
 16 
     | 
    
         
            +
                solr_document_path(opts['id'], **kwargs.merge(opts).merge(format: 'endnote').except('id'))
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         | 
| 
         @@ -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 
     | 
    
         | 
| 
         @@ -299,6 +299,10 @@ module Blacklight::Marc::DocumentExport 
     | 
|
| 
       299 
299 
     | 
    
         
             
                  pub_info << clean_end_punctuation(marc["260"]["a"]).strip if marc["260"]["a"]
         
     | 
| 
       300 
300 
     | 
    
         
             
                  pub_info << ": #{clean_end_punctuation(marc["260"]["b"]).strip}" if marc["260"]["b"]
         
     | 
| 
       301 
301 
     | 
    
         
             
                  pub_info << ", #{setup_pub_date(marc)}" if marc["260"]["c"]
         
     | 
| 
      
 302 
     | 
    
         
            +
                elsif marc["264"] and (marc["264"]["a"] or marc["264"]["b"])
         
     | 
| 
      
 303 
     | 
    
         
            +
                  pub_info << clean_end_punctuation(marc["264"]["a"]).strip if marc["264"]["a"]
         
     | 
| 
      
 304 
     | 
    
         
            +
                  pub_info << ": #{clean_end_punctuation(marc["264"]["b"]).strip}" if marc["264"]["b"]
         
     | 
| 
      
 305 
     | 
    
         
            +
                  pub_info << ", #{setup_pub_date(marc)}" if marc["264"]["c"]
         
     | 
| 
       302 
306 
     | 
    
         
             
                elsif marc["502"] and marc["502"]["a"] # MARC 502 is the Dissertation Note.  This holds the correct pub info for these types of records.
         
     | 
| 
       303 
307 
     | 
    
         
             
                  pub_info << marc["502"]["a"]
         
     | 
| 
       304 
308 
     | 
    
         
             
                elsif marc["502"] and (marc["502"]["b"] or marc["502"]["c"] or marc["502"]["d"]) #sometimes the dissertation note is encoded in pieces in the $b $c and $d sub fields instead of lumped into the $a
         
     | 
| 
         @@ -414,8 +418,8 @@ module Blacklight::Marc::DocumentExport 
     | 
|
| 
       414 
418 
     | 
    
         
             
                text
         
     | 
| 
       415 
419 
     | 
    
         
             
              end
         
     | 
| 
       416 
420 
     | 
    
         
             
              def setup_pub_date(record)
         
     | 
| 
       417 
     | 
    
         
            -
                if !record.find{|f| f.tag 
     | 
| 
       418 
     | 
    
         
            -
                  pub_date = record.find{|f| f.tag 
     | 
| 
      
 421 
     | 
    
         
            +
                if !record.find{|f| ['260', '264'].include?(f.tag)}.nil?
         
     | 
| 
      
 422 
     | 
    
         
            +
                  pub_date = record.find{|f| ['260', '264'].include?(f.tag)}
         
     | 
| 
       419 
423 
     | 
    
         
             
                  if pub_date.find{|s| s.code == 'c'}
         
     | 
| 
       420 
424 
     | 
    
         
             
                    date_value = pub_date.find{|s| s.code == 'c'}.value.gsub(/[^0-9|n\.d\.]/, "")[0,4] unless pub_date.find{|s| s.code == 'c'}.value.gsub(/[^0-9|n\.d\.]/, "")[0,4].blank?
         
     | 
| 
       421 
425 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -425,7 +429,7 @@ module Blacklight::Marc::DocumentExport 
     | 
|
| 
       425 
429 
     | 
    
         
             
              end
         
     | 
| 
       426 
430 
     | 
    
         
             
              def setup_pub_info(record)
         
     | 
| 
       427 
431 
     | 
    
         
             
                text = ''
         
     | 
| 
       428 
     | 
    
         
            -
                pub_info_field = record 
     | 
| 
      
 432 
     | 
    
         
            +
                pub_info_field = get_publication_data(record)
         
     | 
| 
       429 
433 
     | 
    
         
             
                if !pub_info_field.nil?
         
     | 
| 
       430 
434 
     | 
    
         
             
                  a_pub_info = pub_info_field.find{|s| s.code == 'a'}
         
     | 
| 
       431 
435 
     | 
    
         
             
                  b_pub_info = pub_info_field.find{|s| s.code == 'b'}
         
     | 
| 
         @@ -551,6 +555,10 @@ module Blacklight::Marc::DocumentExport 
     | 
|
| 
       551 
555 
     | 
    
         
             
                {:primary_authors => primary_authors, :translators => translators, :editors => editors, :compilers => compilers}
         
     | 
| 
       552 
556 
     | 
    
         
             
              end
         
     | 
| 
       553 
557 
     | 
    
         | 
| 
      
 558 
     | 
    
         
            +
              def get_publication_data(record)
         
     | 
| 
      
 559 
     | 
    
         
            +
                publication_data = record.find{|field| field.tag == '260'} || record.find{|field| field.tag == '264'}
         
     | 
| 
      
 560 
     | 
    
         
            +
              end
         
     | 
| 
      
 561 
     | 
    
         
            +
             
     | 
| 
       554 
562 
     | 
    
         
             
              def abbreviate_name(name)
         
     | 
| 
       555 
563 
     | 
    
         
             
                name_parts = name.split(", ")
         
     | 
| 
       556 
564 
     | 
    
         
             
                first_name_parts = name_parts.last.split(" ")
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <%= render Blacklight::System::ModalComponent.new do |component| %>
         
     | 
| 
       2 
     | 
    
         
            -
              <% component. 
     | 
| 
      
 2 
     | 
    
         
            +
              <% component.with_title { t('blacklight.search.librarian_view.title') } %>
         
     | 
| 
       3 
3 
     | 
    
         
             
              <%- if @document.respond_to?(:to_marc) -%>
         
     | 
| 
       4 
4 
     | 
    
         
             
                <%= render "marc_view", document: @document %>
         
     | 
| 
       5 
5 
     | 
    
         
             
              <%- else %>
         
     | 
    
        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"
         
     | 
    
        data/lib/railties/solr_marc.rake
    CHANGED
    
    | 
         @@ -106,7 +106,7 @@ def compute_arguments 
     | 
|
| 
       106 
106 
     | 
    
         
             
                  File.join( plugin_site_path, "config-#{::Rails.env}.properties"),
         
     | 
| 
       107 
107 
     | 
    
         
             
                  File.join( plugin_site_path, "config.properties"),
         
     | 
| 
       108 
108 
     | 
    
         
             
                ].each do |file_path|
         
     | 
| 
       109 
     | 
    
         
            -
                  if File. 
     | 
| 
      
 109 
     | 
    
         
            +
                  if File.exist?(file_path)
         
     | 
| 
       110 
110 
     | 
    
         
             
                    arguments[:config_properties_path] = file_path
         
     | 
| 
       111 
111 
     | 
    
         
             
                    break
         
     | 
| 
       112 
112 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -147,7 +147,7 @@ def locate_path(*subpath_fragments) 
     | 
|
| 
       147 
147 
     | 
    
         
             
              local_root = File.expand_path File.join(File.dirname(__FILE__), '..', '..')
         
     | 
| 
       148 
148 
     | 
    
         
             
              subpath = subpath_fragments.join('/')
         
     | 
| 
       149 
149 
     | 
    
         
             
              base_match = [Rails.root, local_root].find do |base|
         
     | 
| 
       150 
     | 
    
         
            -
                File. 
     | 
| 
      
 150 
     | 
    
         
            +
                File.exist? File.join(base, subpath)
         
     | 
| 
       151 
151 
     | 
    
         
             
              end
         
     | 
| 
       152 
152 
     | 
    
         
             
              File.join(base_match.to_s, subpath) if base_match
         
     | 
| 
       153 
153 
     | 
    
         
             
            end
         
     | 
| 
         @@ -9,5 +9,10 @@ describe "Record View" do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                  link = find_link("Export to Refworks")
         
     | 
| 
       10 
10 
     | 
    
         
             
                  expect(link['href']).to include CGI.escape(solr_document_path('2008305903', format: :refworks_marc_txt))
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                it 'has an endnote link' do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  visit solr_document_path('2008305903')
         
     | 
| 
      
 15 
     | 
    
         
            +
                  expect(page).to have_link "Export to EndNote", href: solr_document_path('2008305903', format: :endnote)
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
       12 
17 
     | 
    
         
             
              end
         
     | 
| 
       13 
18 
     | 
    
         
             
            end
         
     | 
| 
         @@ -23,25 +23,6 @@ describe BlacklightMarcHelper do 
     | 
|
| 
       23 
23 
     | 
    
         
             
                  expect(helper.render_endnote_texts([one, two])).to eq "one\ntwo\n"
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
       26 
     | 
    
         
            -
              require 'spec_helper'
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
              describe '#document_action_path' do
         
     | 
| 
       29 
     | 
    
         
            -
                before do
         
     | 
| 
       30 
     | 
    
         
            -
                  allow(helper).to receive_messages(controller_name: 'catalog')
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                let(:document_action_config) { Blacklight::Configuration::ToolConfig.new(tool_config) }
         
     | 
| 
       34 
     | 
    
         
            -
                let(:document) { SolrDocument.new(id: '123') }
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                subject { helper.document_action_path(document_action_config, id: document) }
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                context "for endnote" do
         
     | 
| 
       39 
     | 
    
         
            -
                  let(:tool_config) { { if: :render_refworks_action?, partial: "document_action",
         
     | 
| 
       40 
     | 
    
         
            -
                    name: :endnote, key: :endnote, path: :single_endnote_catalog_path } }
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                  it { is_expected.to eq '/catalog/123.endnote' }
         
     | 
| 
       43 
     | 
    
         
            -
                end
         
     | 
| 
       44 
     | 
    
         
            -
              end
         
     | 
| 
       45 
26 
     | 
    
         | 
| 
       46 
27 
     | 
    
         
             
              describe "#bookmarks_export_url" do
         
     | 
| 
       47 
28 
     | 
    
         
             
                it "is the bookmark url with an encrypted user token" do
         
     | 
| 
         @@ -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 
     | 
    
         | 
| 
         @@ -0,0 +1,63 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class MockClass260
         
     | 
| 
      
 4 
     | 
    
         
            +
              include Blacklight::Marc::DocumentExport
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              def to_marc
         
     | 
| 
      
 7 
     | 
    
         
            +
                fields = [
         
     | 
| 
      
 8 
     | 
    
         
            +
                  { "100" => { "subfields" => [{ "a" => "Borja, Ronaldo I." }]}},
         
     | 
| 
      
 9 
     | 
    
         
            +
                  { "245" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => "Plasticity : ", "b" => "modeling & computation /", "c" => "Ronaldo I. Borja." }] } },
         
     | 
| 
      
 10 
     | 
    
         
            +
                  { "260" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => "Berlin :", "b" => "Springer,", "c" => "[2013]" }] } }
         
     | 
| 
      
 11 
     | 
    
         
            +
                ]
         
     | 
| 
      
 12 
     | 
    
         
            +
                MARC::Record.new_from_hash('fields' => fields)
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            class MockClass264
         
     | 
| 
      
 17 
     | 
    
         
            +
              include Blacklight::Marc::DocumentExport
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              def to_marc
         
     | 
| 
      
 20 
     | 
    
         
            +
                fields = [
         
     | 
| 
      
 21 
     | 
    
         
            +
                  { "100" => { "subfields" => [{ "a" => "Borja, Ronaldo I." }]}},
         
     | 
| 
      
 22 
     | 
    
         
            +
                  { "245" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => "Plasticity : ", "b" => "modeling & computation /", "c" => "Ronaldo I. Borja." }] } },
         
     | 
| 
      
 23 
     | 
    
         
            +
                  { "264" => { "ind1" => " ", "ind2" => " ", "subfields" => [{ "a" => "Berlin :", "b" => "Springer,", "c" => "[2013]" }] } }
         
     | 
| 
      
 24 
     | 
    
         
            +
                ]
         
     | 
| 
      
 25 
     | 
    
         
            +
                MARC::Record.new_from_hash('fields' => fields)
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            RSpec.describe Blacklight::Marc::DocumentExport do
         
     | 
| 
      
 30 
     | 
    
         
            +
              describe 'export citiations from 260 field' do
         
     | 
| 
      
 31 
     | 
    
         
            +
                it 'exports citations in apa format' do
         
     | 
| 
      
 32 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_apa_citation_txt).to include('(2013)')
         
     | 
| 
      
 33 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_apa_citation_txt).to include('Berlin: Springer.')
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                it 'exports citations in mla format' do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_mla_citation_txt).to include('2013.')
         
     | 
| 
      
 38 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_mla_citation_txt).to include('Berlin: Springer,')
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                it 'exports citations in Chicago format' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_chicago_citation_txt).to include('2013.')
         
     | 
| 
      
 43 
     | 
    
         
            +
                  expect(MockClass260.new.export_as_chicago_citation_txt).to include('Berlin: Springer,')
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              describe 'export citations from 264 field' do
         
     | 
| 
      
 48 
     | 
    
         
            +
                it 'exports citations in apa format' do
         
     | 
| 
      
 49 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_apa_citation_txt).to include('(2013)')
         
     | 
| 
      
 50 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_apa_citation_txt).to include('Berlin: Springer.')
         
     | 
| 
      
 51 
     | 
    
         
            +
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                it 'exports citations in mla format' do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_mla_citation_txt).to include('2013.')
         
     | 
| 
      
 55 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_mla_citation_txt).to include('Berlin: Springer,')
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                it 'exports citations in Chicago format' do
         
     | 
| 
      
 59 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_chicago_citation_txt).to include('2013.')
         
     | 
| 
      
 60 
     | 
    
         
            +
                  expect(MockClass264.new.export_as_chicago_citation_txt).to include('Berlin: Springer,')
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -1,7 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module ControllerLevelHelpers
         
     | 
| 
       2 
2 
     | 
    
         
             
              module ControllerViewHelpers
         
     | 
| 
       3 
     | 
    
         
            -
                include Blacklight::Facet
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
3 
     | 
    
         
             
                def blacklight_config
         
     | 
| 
       6 
4 
     | 
    
         
             
                  controller.blacklight_config
         
     | 
| 
       7 
5 
     | 
    
         
             
                end
         
     | 
| 
         @@ -18,4 +16,4 @@ module ControllerLevelHelpers 
     | 
|
| 
       18 
16 
     | 
    
         
             
              def initialize_controller_helpers(helper)
         
     | 
| 
       19 
17 
     | 
    
         
             
                helper.extend ControllerViewHelpers
         
     | 
| 
       20 
18 
     | 
    
         
             
              end
         
     | 
| 
       21 
     | 
    
         
            -
            end
         
     | 
| 
      
 19 
     | 
    
         
            +
            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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 8.1.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:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-02-05 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
         
     | 
| 
         @@ -300,6 +300,7 @@ files: 
     | 
|
| 
       300 
300 
     | 
    
         
             
            - spec/lib/marc_export_spec.rb
         
     | 
| 
       301 
301 
     | 
    
         
             
            - spec/lib/tasks/solr_marc_task_spec.rb
         
     | 
| 
       302 
302 
     | 
    
         
             
            - spec/lib/traject_indexer_spec.rb
         
     | 
| 
      
 303 
     | 
    
         
            +
            - spec/models/concerns/blacklight/marc/document_export_spec.rb
         
     | 
| 
       303 
304 
     | 
    
         
             
            - spec/routing/routes_spec.rb
         
     | 
| 
       304 
305 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       305 
306 
     | 
    
         
             
            - spec/support/controller_level_helpers.rb
         
     | 
| 
         @@ -307,7 +308,6 @@ files: 
     | 
|
| 
       307 
308 
     | 
    
         
             
            - spec/test_app_templates/lib/generators/test_app_generator.rb
         
     | 
| 
       308 
309 
     | 
    
         
             
            - spec/views/bookmarks/_endnote.html.erb_spec.rb
         
     | 
| 
       309 
310 
     | 
    
         
             
            - spec/views/bookmarks/_refworks.html.erb_spec.rb
         
     | 
| 
       310 
     | 
    
         
            -
            - spec/views/catalog/_document_action.html.erb_spec.rb
         
     | 
| 
       311 
311 
     | 
    
         
             
            - spec/views/catalog/index.atom.builder_spec.rb
         
     | 
| 
       312 
312 
     | 
    
         
             
            - test_support/config/translation_maps/test_dewey.properties
         
     | 
| 
       313 
313 
     | 
    
         
             
            - test_support/config/translation_maps/test_formats.properties
         
     | 
| 
         @@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       331 
331 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       332 
332 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       333 
333 
     | 
    
         
             
            requirements: []
         
     | 
| 
       334 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 334 
     | 
    
         
            +
            rubygems_version: 3.5.4
         
     | 
| 
       335 
335 
     | 
    
         
             
            signing_key:
         
     | 
| 
       336 
336 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       337 
337 
     | 
    
         
             
            summary: MARC support for Blacklight
         
     | 
| 
         @@ -349,6 +349,7 @@ test_files: 
     | 
|
| 
       349 
349 
     | 
    
         
             
            - spec/lib/marc_export_spec.rb
         
     | 
| 
       350 
350 
     | 
    
         
             
            - spec/lib/tasks/solr_marc_task_spec.rb
         
     | 
| 
       351 
351 
     | 
    
         
             
            - spec/lib/traject_indexer_spec.rb
         
     | 
| 
      
 352 
     | 
    
         
            +
            - spec/models/concerns/blacklight/marc/document_export_spec.rb
         
     | 
| 
       352 
353 
     | 
    
         
             
            - spec/routing/routes_spec.rb
         
     | 
| 
       353 
354 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       354 
355 
     | 
    
         
             
            - spec/support/controller_level_helpers.rb
         
     | 
| 
         @@ -356,5 +357,4 @@ test_files: 
     | 
|
| 
       356 
357 
     | 
    
         
             
            - spec/test_app_templates/lib/generators/test_app_generator.rb
         
     | 
| 
       357 
358 
     | 
    
         
             
            - spec/views/bookmarks/_endnote.html.erb_spec.rb
         
     | 
| 
       358 
359 
     | 
    
         
             
            - spec/views/bookmarks/_refworks.html.erb_spec.rb
         
     | 
| 
       359 
     | 
    
         
            -
            - spec/views/catalog/_document_action.html.erb_spec.rb
         
     | 
| 
       360 
360 
     | 
    
         
             
            - spec/views/catalog/index.atom.builder_spec.rb
         
     | 
| 
         @@ -1,21 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'spec_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            describe 'catalog/_document_action' do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:document_action_config) { Blacklight::Configuration::ToolConfig.new(tool_config) }
         
     | 
| 
       5 
     | 
    
         
            -
              let(:document) { SolrDocument.new(id: '123') }
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              before do
         
     | 
| 
       8 
     | 
    
         
            -
                allow(view).to receive_messages(controller_name: 'catalog')
         
     | 
| 
       9 
     | 
    
         
            -
                render 'catalog/document_action', document_action_config: document_action_config, document: document
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
              context "for refworks" do
         
     | 
| 
       13 
     | 
    
         
            -
                let(:tool_config) { { if: :render_refworks_action?, partial: "document_action",
         
     | 
| 
       14 
     | 
    
         
            -
                  name: :refworks, key: :refworks, modal: false } }
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                it "should not be modal" do
         
     | 
| 
       17 
     | 
    
         
            -
                  expect(rendered).to have_link('Export to Refworks')
         
     | 
| 
       18 
     | 
    
         
            -
                  expect(rendered).not_to have_selector('a[data-ajax-modal]')
         
     | 
| 
       19 
     | 
    
         
            -
                end
         
     | 
| 
       20 
     | 
    
         
            -
              end
         
     | 
| 
       21 
     | 
    
         
            -
            end
         
     |