mods_display 0.0.1.beta6 → 0.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.
- data/README.md +28 -2
 - data/lib/mods_display.rb +6 -0
 - data/lib/mods_display/configuration.rb +15 -3
 - data/lib/mods_display/configuration/base.rb +8 -0
 - data/lib/mods_display/configuration/name.rb +5 -0
 - data/lib/mods_display/configuration/note.rb +5 -0
 - data/lib/mods_display/configuration/related_item.rb +5 -0
 - data/lib/mods_display/fields/abstract.rb +3 -2
 - data/lib/mods_display/fields/audience.rb +3 -2
 - data/lib/mods_display/fields/cartographics.rb +1 -1
 - data/lib/mods_display/fields/contact.rb +39 -0
 - data/lib/mods_display/fields/contents.rb +3 -2
 - data/lib/mods_display/fields/description.rb +2 -2
 - data/lib/mods_display/fields/field.rb +1 -4
 - data/lib/mods_display/fields/format.rb +1 -0
 - data/lib/mods_display/fields/genre.rb +9 -0
 - data/lib/mods_display/fields/identifier.rb +6 -6
 - data/lib/mods_display/fields/imprint.rb +3 -3
 - data/lib/mods_display/fields/name.rb +3 -3
 - data/lib/mods_display/fields/note.rb +17 -8
 - data/lib/mods_display/fields/related_item.rb +2 -1
 - data/lib/mods_display/fields/resource_type.rb +7 -0
 - data/lib/mods_display/fields/subject.rb +1 -1
 - data/lib/mods_display/fields/title.rb +4 -4
 - data/lib/mods_display/html.rb +5 -2
 - data/lib/mods_display/version.rb +1 -1
 - data/spec/configuration/base_spec.rb +10 -0
 - data/spec/fields/abstract_spec.rb +8 -0
 - data/spec/fields/contact_spec.rb +21 -0
 - data/spec/fields/contents_spec.rb +1 -1
 - data/spec/fields/description_spec.rb +1 -1
 - data/spec/fields/genre_spec.rb +24 -0
 - data/spec/fields/identifier_spec.rb +2 -2
 - data/spec/fields/imprint_spec.rb +1 -1
 - data/spec/fields/note_spec.rb +11 -5
 - data/spec/fields/related_item_spec.rb +2 -2
 - data/spec/fields/resource_type_spec.rb +22 -0
 - data/spec/fields/title_spec.rb +1 -1
 - data/spec/integration/configuration_spec.rb +7 -2
 - metadata +22 -7
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -24,7 +24,7 @@ Include the `ModelExtension` into your model. 
     | 
|
| 
       24 
24 
     | 
    
         
             
                  include ModsDisplay::ModelExtension
         
     | 
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
            Configure the source of the MODS  
     | 
| 
      
 27 
     | 
    
         
            +
            Configure the source of the MODS XML in your model.  You can pass a string of XML to the mods_xml_source method, however it will also accept a block where you can call methods on self (so if the MODS XML string is held in MyClass#mods):
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                class MyClass
         
     | 
| 
       30 
30 
     | 
    
         
             
                  ....
         
     | 
| 
         @@ -56,6 +56,7 @@ In the class that you include the `ModsDisplay::ControllerExtension` you can con 
     | 
|
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
            * label_class
         
     | 
| 
       58 
58 
     | 
    
         
             
            * value_class
         
     | 
| 
      
 59 
     | 
    
         
            +
            * ignore!
         
     | 
| 
       59 
60 
     | 
    
         
             
            * delimiter
         
     | 
| 
       60 
61 
     | 
    
         
             
            * link
         
     | 
| 
       61 
62 
     | 
    
         | 
| 
         @@ -74,6 +75,20 @@ Both label_ and value_class accept strings to put in as a class. 
     | 
|
| 
       74 
75 
     | 
    
         
             
                  end
         
     | 
| 
       75 
76 
     | 
    
         
             
                end
         
     | 
| 
       76 
77 
     | 
    
         | 
| 
      
 78 
     | 
    
         
            +
            ### Ignore!
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            In certain cases an application may need to explicitly remove a portion of the MODS metadata from the display (Contact being a prime example).  You can accomplish this by using the ignore! option.
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                class MyController
         
     | 
| 
      
 83 
     | 
    
         
            +
                  include ModsDisplay::ControllerExtension
         
     | 
| 
      
 84 
     | 
    
         
            +
                  
         
     | 
| 
      
 85 
     | 
    
         
            +
                  configure_mods_display do
         
     | 
| 
      
 86 
     | 
    
         
            +
                    contact do
         
     | 
| 
      
 87 
     | 
    
         
            +
                      ignore!
         
     | 
| 
      
 88 
     | 
    
         
            +
                    end
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
       77 
92 
     | 
    
         
             
            ### Delimiter
         
     | 
| 
       78 
93 
     | 
    
         | 
| 
       79 
94 
     | 
    
         
             
            The delimiter configuration option accepts a string which will be used to delimit multiple multiple values within a single label.
         
     | 
| 
         @@ -84,7 +99,7 @@ The delimiter configuration option accepts a string which will be used to delimi 
     | 
|
| 
       84 
99 
     | 
    
         
             
                  end
         
     | 
| 
       85 
100 
     | 
    
         
             
                end
         
     | 
| 
       86 
101 
     | 
    
         | 
| 
       87 
     | 
    
         
            -
            Note:  
     | 
| 
      
 102 
     | 
    
         
            +
            Note: Different MODS elements will have different default delimiters (mainly varying between a comma+space or a HTML line-break).
         
     | 
| 
       88 
103 
     | 
    
         | 
| 
       89 
104 
     | 
    
         
             
            ### Link
         
     | 
| 
       90 
105 
     | 
    
         | 
| 
         @@ -126,6 +141,17 @@ Once installed, the class that included the `ControllerExtension` (`MyController 
     | 
|
| 
       126 
141 
     | 
    
         | 
| 
       127 
142 
     | 
    
         
             
                render_mods_display(@model) # where @model.is_a?(MyClass)
         
     | 
| 
       128 
143 
     | 
    
         | 
| 
      
 144 
     | 
    
         
            +
            The basic render call will return the top-level ModsDisplay::HTML class object.  Any String method (e.g. #html_safe) you call on this top-level object will be sent down to the #to_html method which will return the HTML for all the metadata in the MODS document.
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                render_mods_display(@model).to_html
         
     | 
| 
      
 147 
     | 
    
         
            +
                
         
     | 
| 
      
 148 
     | 
    
         
            +
            You can abstract the main title by calling #title on the top-level HTML method
         
     | 
| 
      
 149 
     | 
    
         
            +
             
     | 
| 
      
 150 
     | 
    
         
            +
                render_mods_display(@model).title
         
     | 
| 
      
 151 
     | 
    
         
            +
                
         
     | 
| 
      
 152 
     | 
    
         
            +
            When getting JUST the main title out of the metadata, it will be useful to get the rest of the metadata without the main title.  You can accomplish this by calling #body on the top-level HTML object.
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
                render_mods_display(@model).body
         
     | 
| 
       129 
155 
     | 
    
         | 
| 
       130 
156 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       131 
157 
     | 
    
         | 
    
        data/lib/mods_display.rb
    CHANGED
    
    | 
         @@ -4,15 +4,20 @@ require "mods_display/html" 
     | 
|
| 
       4 
4 
     | 
    
         
             
            require "mods_display/model_extension"
         
     | 
| 
       5 
5 
     | 
    
         
             
            require "mods_display/configuration"
         
     | 
| 
       6 
6 
     | 
    
         
             
            require "mods_display/configuration/base"
         
     | 
| 
      
 7 
     | 
    
         
            +
            require "mods_display/configuration/name"
         
     | 
| 
      
 8 
     | 
    
         
            +
            require "mods_display/configuration/note"
         
     | 
| 
      
 9 
     | 
    
         
            +
            require "mods_display/configuration/related_item"
         
     | 
| 
       7 
10 
     | 
    
         
             
            require "mods_display/configuration/subject"
         
     | 
| 
       8 
11 
     | 
    
         
             
            require "mods_display/fields/field"
         
     | 
| 
       9 
12 
     | 
    
         
             
            require "mods_display/fields/abstract"
         
     | 
| 
       10 
13 
     | 
    
         
             
            require "mods_display/fields/audience"
         
     | 
| 
       11 
14 
     | 
    
         
             
            require "mods_display/fields/collection"
         
     | 
| 
      
 15 
     | 
    
         
            +
            require "mods_display/fields/contact"
         
     | 
| 
       12 
16 
     | 
    
         
             
            require "mods_display/fields/contents"
         
     | 
| 
       13 
17 
     | 
    
         
             
            require "mods_display/fields/cartographics"
         
     | 
| 
       14 
18 
     | 
    
         
             
            require "mods_display/fields/description"
         
     | 
| 
       15 
19 
     | 
    
         
             
            require "mods_display/fields/format"
         
     | 
| 
      
 20 
     | 
    
         
            +
            require "mods_display/fields/genre"
         
     | 
| 
       16 
21 
     | 
    
         
             
            require "mods_display/fields/identifier"
         
     | 
| 
       17 
22 
     | 
    
         
             
            require "mods_display/fields/imprint"
         
     | 
| 
       18 
23 
     | 
    
         
             
            require "mods_display/fields/language"
         
     | 
| 
         @@ -21,6 +26,7 @@ require "mods_display/fields/name" 
     | 
|
| 
       21 
26 
     | 
    
         
             
            require "mods_display/fields/note"
         
     | 
| 
       22 
27 
     | 
    
         
             
            require "mods_display/fields/related_item"
         
     | 
| 
       23 
28 
     | 
    
         
             
            require "mods_display/fields/related_location"
         
     | 
| 
      
 29 
     | 
    
         
            +
            require "mods_display/fields/resource_type"
         
     | 
| 
       24 
30 
     | 
    
         
             
            require "mods_display/fields/subject"
         
     | 
| 
       25 
31 
     | 
    
         
             
            require "mods_display/fields/sub_title"
         
     | 
| 
       26 
32 
     | 
    
         
             
            require "mods_display/fields/title"
         
     | 
| 
         @@ -14,7 +14,15 @@ class ModsDisplay::Configuration 
     | 
|
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
              def name &name
         
     | 
| 
       17 
     | 
    
         
            -
                @name ||= ModsDisplay::Configuration:: 
     | 
| 
      
 17 
     | 
    
         
            +
                @name ||= ModsDisplay::Configuration::Name.new(&name || Proc.new{})
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              def type_of_resource &type_of_resource
         
     | 
| 
      
 21 
     | 
    
         
            +
                @type_of_resource ||= ModsDisplay::Configuration::Base.new(&type_of_resource || Proc.new{})
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              def genre &genre
         
     | 
| 
      
 25 
     | 
    
         
            +
                @genre ||= ModsDisplay::Configuration::Base.new(&genre || Proc.new{})
         
     | 
| 
       18 
26 
     | 
    
         
             
              end
         
     | 
| 
       19 
27 
     | 
    
         | 
| 
       20 
28 
     | 
    
         
             
              def format &format
         
     | 
| 
         @@ -50,7 +58,11 @@ class ModsDisplay::Configuration 
     | 
|
| 
       50 
58 
     | 
    
         
             
              end
         
     | 
| 
       51 
59 
     | 
    
         | 
| 
       52 
60 
     | 
    
         
             
              def note ¬e
         
     | 
| 
       53 
     | 
    
         
            -
                @note ||= ModsDisplay::Configuration:: 
     | 
| 
      
 61 
     | 
    
         
            +
                @note ||= ModsDisplay::Configuration::Note.new(¬e || Proc.new{})
         
     | 
| 
      
 62 
     | 
    
         
            +
              end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
              def contact &contact
         
     | 
| 
      
 65 
     | 
    
         
            +
                @contact ||= ModsDisplay::Configuration::Base.new(&contact || Proc.new{})
         
     | 
| 
       54 
66 
     | 
    
         
             
              end
         
     | 
| 
       55 
67 
     | 
    
         | 
| 
       56 
68 
     | 
    
         
             
              def collection &collection
         
     | 
| 
         @@ -62,7 +74,7 @@ class ModsDisplay::Configuration 
     | 
|
| 
       62 
74 
     | 
    
         
             
              end
         
     | 
| 
       63 
75 
     | 
    
         | 
| 
       64 
76 
     | 
    
         
             
              def related_item &related_item
         
     | 
| 
       65 
     | 
    
         
            -
                @related_item ||= ModsDisplay::Configuration:: 
     | 
| 
      
 77 
     | 
    
         
            +
                @related_item ||= ModsDisplay::Configuration::RelatedItem.new(&related_item || Proc.new{})
         
     | 
| 
       66 
78 
     | 
    
         
             
              end
         
     | 
| 
       67 
79 
     | 
    
         | 
| 
       68 
80 
     | 
    
         
             
              def subject &subject
         
     | 
| 
         @@ -10,7 +10,7 @@ class ModsDisplay::Cartographics < ModsDisplay::Field 
     | 
|
| 
       10 
10 
     | 
    
         
             
                      projection = field.projection.empty? ? nil : field.projection.text
         
     | 
| 
       11 
11 
     | 
    
         
             
                      coordinates = field.coordinates.empty? ? nil : field.coordinates.text
         
     | 
| 
       12 
12 
     | 
    
         
             
                      post_scale = [projection, coordinates].compact.length > 0 ? [projection, coordinates].compact.join(" ") : nil
         
     | 
| 
       13 
     | 
    
         
            -
                      return_values << ModsDisplay::Values.new({:label => (displayLabel(field) || label || "Map  
     | 
| 
      
 13 
     | 
    
         
            +
                      return_values << ModsDisplay::Values.new({:label => (displayLabel(field) || label || "Map data"),
         
     | 
| 
       14 
14 
     | 
    
         
             
                                                                :values => [[scale, post_scale].compact.join(" ; ")]})
         
     | 
| 
       15 
15 
     | 
    
         
             
                    end
         
     | 
| 
       16 
16 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class ModsDisplay::Contact < ModsDisplay::Field
         
     | 
| 
      
 2 
     | 
    
         
            +
              def fields
         
     | 
| 
      
 3 
     | 
    
         
            +
                return_values = []
         
     | 
| 
      
 4 
     | 
    
         
            +
                current_label = nil
         
     | 
| 
      
 5 
     | 
    
         
            +
                prev_label = nil
         
     | 
| 
      
 6 
     | 
    
         
            +
                buffer = []
         
     | 
| 
      
 7 
     | 
    
         
            +
                contact_fields.each_with_index do |val, index|
         
     | 
| 
      
 8 
     | 
    
         
            +
                  current_label = (displayLabel(val) || "Contact")
         
     | 
| 
      
 9 
     | 
    
         
            +
                  if contact_fields.length == 1
         
     | 
| 
      
 10 
     | 
    
         
            +
                    return_values << ModsDisplay::Values.new(:label => current_label, :values => [val.text])
         
     | 
| 
      
 11 
     | 
    
         
            +
                  elsif index == (contact_fields.length-1)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    # need to deal w/ when we have a last element but we have separate labels in the buffer.
         
     | 
| 
      
 13 
     | 
    
         
            +
                    if current_label != prev_label
         
     | 
| 
      
 14 
     | 
    
         
            +
                      return_values << ModsDisplay::Values.new(:label => prev_label, :values => buffer.flatten)
         
     | 
| 
      
 15 
     | 
    
         
            +
                      return_values << ModsDisplay::Values.new(:label => current_label, :values => [val.text])
         
     | 
| 
      
 16 
     | 
    
         
            +
                    else
         
     | 
| 
      
 17 
     | 
    
         
            +
                      buffer << val.text
         
     | 
| 
      
 18 
     | 
    
         
            +
                      return_values << ModsDisplay::Values.new(:label => current_label, :values => buffer.flatten)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
                  elsif prev_label and (current_label != prev_label)
         
     | 
| 
      
 21 
     | 
    
         
            +
                    return_values << ModsDisplay::Values.new(:label => prev_label, :values => buffer.flatten)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    buffer = []
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  buffer << val.text
         
     | 
| 
      
 25 
     | 
    
         
            +
                  prev_label = current_label
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
                return_values
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              private
         
     | 
| 
      
 32 
     | 
    
         
            +
              def contact_fields
         
     | 
| 
      
 33 
     | 
    
         
            +
                @value.select do |val|
         
     | 
| 
      
 34 
     | 
    
         
            +
                  val.attributes["type"].respond_to?(:value) and
         
     | 
| 
      
 35 
     | 
    
         
            +
                    val.attributes["type"].value.downcase == "contact"
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -29,7 +29,7 @@ class ModsDisplay::Description < ModsDisplay::Field 
     | 
|
| 
       29 
29 
     | 
    
         
             
              end
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         
             
              def description_label(element)
         
     | 
| 
       32 
     | 
    
         
            -
                label || displayLabel(element) || labels[element.name.to_sym] || "Physical  
     | 
| 
      
 32 
     | 
    
         
            +
                label || displayLabel(element) || labels[element.name.to_sym] || "Physical description"
         
     | 
| 
       33 
33 
     | 
    
         
             
              end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
              private
         
     | 
| 
         @@ -43,7 +43,7 @@ class ModsDisplay::Description < ModsDisplay::Field 
     | 
|
| 
       43 
43 
     | 
    
         
             
              def labels
         
     | 
| 
       44 
44 
     | 
    
         
             
                {:form          => "Form",
         
     | 
| 
       45 
45 
     | 
    
         
             
                 :extent        => "Extent",
         
     | 
| 
       46 
     | 
    
         
            -
                 :digitalOrigin => "Digital  
     | 
| 
      
 46 
     | 
    
         
            +
                 :digitalOrigin => "Digital origin",
         
     | 
| 
       47 
47 
     | 
    
         
             
                 :note          => "Note"
         
     | 
| 
       48 
48 
     | 
    
         
             
                 }
         
     | 
| 
       49 
49 
     | 
    
         
             
              end
         
     | 
| 
         @@ -33,9 +33,6 @@ class ModsDisplay::Field 
     | 
|
| 
       33 
33 
     | 
    
         
             
                  prev_label = current_label
         
     | 
| 
       34 
34 
     | 
    
         
             
                end
         
     | 
| 
       35 
35 
     | 
    
         
             
                return_values
         
     | 
| 
       36 
     | 
    
         
            -
                @value.map do |val|
         
     | 
| 
       37 
     | 
    
         
            -
                  ModsDisplay::Values.new(:label => displayLabel(val) || label, :values => [text || val.text].flatten)
         
     | 
| 
       38 
     | 
    
         
            -
                end
         
     | 
| 
       39 
36 
     | 
    
         
             
              end
         
     | 
| 
       40 
37 
     | 
    
         | 
| 
       41 
38 
     | 
    
         
             
              def label
         
     | 
| 
         @@ -51,7 +48,7 @@ class ModsDisplay::Field 
     | 
|
| 
       51 
48 
     | 
    
         
             
              end
         
     | 
| 
       52 
49 
     | 
    
         | 
| 
       53 
50 
     | 
    
         
             
              def to_html
         
     | 
| 
       54 
     | 
    
         
            -
                return nil if fields.empty?
         
     | 
| 
      
 51 
     | 
    
         
            +
                return nil if fields.empty? or @config.ignore?
         
     | 
| 
       55 
52 
     | 
    
         
             
                output = ""
         
     | 
| 
       56 
53 
     | 
    
         
             
                fields.each do |field|
         
     | 
| 
       57 
54 
     | 
    
         
             
                  if field.values.any?{|f| !f.empty? }
         
     | 
| 
         @@ -46,15 +46,15 @@ class ModsDisplay::Identifier < ModsDisplay::Field 
     | 
|
| 
       46 
46 
     | 
    
         
             
                 "hdl"                       => "Handle",
         
     | 
| 
       47 
47 
     | 
    
         
             
                 "isrc"                      => "ISRC",
         
     | 
| 
       48 
48 
     | 
    
         
             
                 "ismn"                      => "ISMN",
         
     | 
| 
       49 
     | 
    
         
            -
                 "issue number"              => "Issue  
     | 
| 
      
 49 
     | 
    
         
            +
                 "issue number"              => "Issue number",
         
     | 
| 
       50 
50 
     | 
    
         
             
                 "lccn"                      => "LCCN",
         
     | 
| 
       51 
     | 
    
         
            -
                 "matrix number"             => "Matrix  
     | 
| 
       52 
     | 
    
         
            -
                 "music publisher"           => "Music  
     | 
| 
       53 
     | 
    
         
            -
                 "music plate"               => "Music  
     | 
| 
      
 51 
     | 
    
         
            +
                 "matrix number"             => "Matrix number",
         
     | 
| 
      
 52 
     | 
    
         
            +
                 "music publisher"           => "Music publisher",
         
     | 
| 
      
 53 
     | 
    
         
            +
                 "music plate"               => "Music plate",
         
     | 
| 
       54 
54 
     | 
    
         
             
                 "sici"                      => "SICI",
         
     | 
| 
       55 
55 
     | 
    
         
             
                 "upc"                       => "UPC",
         
     | 
| 
       56 
     | 
    
         
            -
                 "videorecording identifier" => "Videorecording  
     | 
| 
       57 
     | 
    
         
            -
                 "stock number"              => "Stock  
     | 
| 
      
 56 
     | 
    
         
            +
                 "videorecording identifier" => "Videorecording identifier",
         
     | 
| 
      
 57 
     | 
    
         
            +
                 "stock number"              => "Stock number"}
         
     | 
| 
       58 
58 
     | 
    
         
             
              end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
            end
         
     | 
| 
         @@ -56,9 +56,9 @@ class ModsDisplay::Imprint < ModsDisplay::Field 
     | 
|
| 
       56 
56 
     | 
    
         
             
              end
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
              def pub_info_labels
         
     | 
| 
       59 
     | 
    
         
            -
                {:dateValid     => "Date  
     | 
| 
       60 
     | 
    
         
            -
                 :dateModified  => "Date  
     | 
| 
       61 
     | 
    
         
            -
                 :copyrightDate => "Copyright  
     | 
| 
      
 59 
     | 
    
         
            +
                {:dateValid     => "Date valid",
         
     | 
| 
      
 60 
     | 
    
         
            +
                 :dateModified  => "Date modified",
         
     | 
| 
      
 61 
     | 
    
         
            +
                 :copyrightDate => "Copyright date",
         
     | 
| 
       62 
62 
     | 
    
         
             
                 :edition       => "Edition",
         
     | 
| 
       63 
63 
     | 
    
         
             
                 :issuance      => "Issuance",
         
     | 
| 
       64 
64 
     | 
    
         
             
                 :frequency     => "Frequency"
         
     | 
| 
         @@ -45,7 +45,7 @@ class ModsDisplay::Name < ModsDisplay::Field 
     | 
|
| 
       45 
45 
     | 
    
         
             
              end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
              def to_html
         
     | 
| 
       48 
     | 
    
         
            -
                return nil if fields.empty?
         
     | 
| 
      
 48 
     | 
    
         
            +
                return nil if fields.empty? or @config.ignore?
         
     | 
| 
       49 
49 
     | 
    
         
             
                output = ""
         
     | 
| 
       50 
50 
     | 
    
         
             
                fields.each do |field|
         
     | 
| 
       51 
51 
     | 
    
         
             
                  output << "<dt#{label_class} title='#{field.label}'>#{field.label}:</dt>"
         
     | 
| 
         @@ -87,9 +87,9 @@ class ModsDisplay::Name < ModsDisplay::Field 
     | 
|
| 
       87 
87 
     | 
    
         | 
| 
       88 
88 
     | 
    
         
             
              def name_labels
         
     | 
| 
       89 
89 
     | 
    
         
             
                {"personal"   => "Author/Creator",
         
     | 
| 
       90 
     | 
    
         
            -
                 "corporate"  => "Corporate  
     | 
| 
      
 90 
     | 
    
         
            +
                 "corporate"  => "Corporate author",
         
     | 
| 
       91 
91 
     | 
    
         
             
                 "conference" => "Meeting",
         
     | 
| 
       92 
     | 
    
         
            -
                 "family"     => "Family  
     | 
| 
      
 92 
     | 
    
         
            +
                 "family"     => "Family author"}
         
     | 
| 
       93 
93 
     | 
    
         
             
              end
         
     | 
| 
       94 
94 
     | 
    
         | 
| 
       95 
95 
     | 
    
         
             
              class Person
         
     | 
| 
         @@ -5,11 +5,11 @@ class ModsDisplay::Note < ModsDisplay::Field 
     | 
|
| 
       5 
5 
     | 
    
         
             
                current_label = nil
         
     | 
| 
       6 
6 
     | 
    
         
             
                prev_label = nil
         
     | 
| 
       7 
7 
     | 
    
         
             
                buffer = []
         
     | 
| 
       8 
     | 
    
         
            -
                 
     | 
| 
      
 8 
     | 
    
         
            +
                note_fields.each_with_index do |val, index|
         
     | 
| 
       9 
9 
     | 
    
         
             
                  current_label = (displayLabel(val) || note_label(val))
         
     | 
| 
       10 
     | 
    
         
            -
                  if  
     | 
| 
      
 10 
     | 
    
         
            +
                  if note_fields.length == 1
         
     | 
| 
       11 
11 
     | 
    
         
             
                    return_values << ModsDisplay::Values.new(:label => current_label, :values => [val.text])
         
     | 
| 
       12 
     | 
    
         
            -
                  elsif index == ( 
     | 
| 
      
 12 
     | 
    
         
            +
                  elsif index == (note_fields.length-1)
         
     | 
| 
       13 
13 
     | 
    
         
             
                    # need to deal w/ when we have a last element but we have separate labels in the buffer.
         
     | 
| 
       14 
14 
     | 
    
         
             
                    if current_label != prev_label
         
     | 
| 
       15 
15 
     | 
    
         
             
                      return_values << ModsDisplay::Values.new(:label => prev_label, :values => buffer.flatten)
         
     | 
| 
         @@ -30,17 +30,26 @@ class ModsDisplay::Note < ModsDisplay::Field 
     | 
|
| 
       30 
30 
     | 
    
         | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
              private
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
              def note_fields
         
     | 
| 
      
 35 
     | 
    
         
            +
                @value.select do |val|
         
     | 
| 
      
 36 
     | 
    
         
            +
                  (!val.attributes["type"].respond_to?(:value) or
         
     | 
| 
      
 37 
     | 
    
         
            +
                     (val.attributes["type"].respond_to?(:value) and
         
     | 
| 
      
 38 
     | 
    
         
            +
                        val.attributes["type"].value.downcase != "contact"))
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
      
 40 
     | 
    
         
            +
              end
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
       34 
42 
     | 
    
         
             
              def note_label(element)
         
     | 
| 
       35 
43 
     | 
    
         
             
                if element.attributes["type"].respond_to?(:value)
         
     | 
| 
       36 
     | 
    
         
            -
                  return note_labels[element.attributes["type"].value] || element.attributes["type"].value
         
     | 
| 
      
 44 
     | 
    
         
            +
                  return note_labels[element.attributes["type"].value] || element.attributes["type"].value.capitalize
         
     | 
| 
       37 
45 
     | 
    
         
             
                end
         
     | 
| 
       38 
46 
     | 
    
         
             
                "Note"
         
     | 
| 
       39 
47 
     | 
    
         
             
              end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       41 
49 
     | 
    
         
             
              def note_labels
         
     | 
| 
       42 
     | 
    
         
            -
                {"statement of responsibility" => "Statement of  
     | 
| 
       43 
     | 
    
         
            -
                 "date/sequential designation" => "Date/Sequential  
     | 
| 
      
 50 
     | 
    
         
            +
                {"statement of responsibility" => "Statement of responsibility",
         
     | 
| 
      
 51 
     | 
    
         
            +
                 "date/sequential designation" => "Date/Sequential designation",
         
     | 
| 
      
 52 
     | 
    
         
            +
                 "publications"                => "Publications",
         
     | 
| 
       44 
53 
     | 
    
         
             
                 "references"                  => "References",
         
     | 
| 
       45 
54 
     | 
    
         
             
                 "bibliography"                => "Bibliography",
         
     | 
| 
       46 
55 
     | 
    
         
             
                 "preferred citation"          => "Preferred citation"}
         
     | 
| 
         @@ -5,8 +5,9 @@ class ModsDisplay::RelatedItem < ModsDisplay::Field 
     | 
|
| 
       5 
5 
     | 
    
         
             
                current_label = nil
         
     | 
| 
       6 
6 
     | 
    
         
             
                prev_label = nil
         
     | 
| 
       7 
7 
     | 
    
         
             
                buffer = []
         
     | 
| 
      
 8 
     | 
    
         
            +
                return_text = ""
         
     | 
| 
       8 
9 
     | 
    
         
             
                @value.each_with_index do |val, index|
         
     | 
| 
       9 
     | 
    
         
            -
                  current_label = (displayLabel(val) || "Related  
     | 
| 
      
 10 
     | 
    
         
            +
                  current_label = (displayLabel(val) || "Related item")
         
     | 
| 
       10 
11 
     | 
    
         
             
                  unless (val.typeOfResource.length > 0 and
         
     | 
| 
       11 
12 
     | 
    
         
             
                          val.typeOfResource.attributes.length > 0 and
         
     | 
| 
       12 
13 
     | 
    
         
             
                          val.typeOfResource.attributes.first.has_key?("collection") and
         
     | 
| 
         @@ -25,7 +25,7 @@ class ModsDisplay::Subject < ModsDisplay::Field 
     | 
|
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
              # Would really like to clean this up, but it works and is tested for now.
         
     | 
| 
       27 
27 
     | 
    
         
             
              def to_html
         
     | 
| 
       28 
     | 
    
         
            -
                return nil if fields.empty?
         
     | 
| 
      
 28 
     | 
    
         
            +
                return nil if fields.empty? or @config.ignore?
         
     | 
| 
       29 
29 
     | 
    
         
             
                output = ""
         
     | 
| 
       30 
30 
     | 
    
         
             
                fields.each do |field|
         
     | 
| 
       31 
31 
     | 
    
         
             
                  output << "<dt#{label_class} title='#{field.label}'>#{field.label}:</dt>"
         
     | 
| 
         @@ -40,10 +40,10 @@ class ModsDisplay::Title < ModsDisplay::Field 
     | 
|
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
              def title_labels
         
     | 
| 
       43 
     | 
    
         
            -
                {"abbreviated" => "Abbreviated  
     | 
| 
       44 
     | 
    
         
            -
                 "translated"  => "Translated  
     | 
| 
       45 
     | 
    
         
            -
                 "alternative" => "Alternative  
     | 
| 
       46 
     | 
    
         
            -
                 "uniform"     => "Uniform  
     | 
| 
      
 43 
     | 
    
         
            +
                {"abbreviated" => "Abbreviated title",
         
     | 
| 
      
 44 
     | 
    
         
            +
                 "translated"  => "Translated title",
         
     | 
| 
      
 45 
     | 
    
         
            +
                 "alternative" => "Alternative title",
         
     | 
| 
      
 46 
     | 
    
         
            +
                 "uniform"     => "Uniform title"}
         
     | 
| 
       47 
47 
     | 
    
         
             
              end
         
     | 
| 
       48 
48 
     | 
    
         | 
| 
       49 
49 
     | 
    
         
             
            end
         
     | 
    
        data/lib/mods_display/html.rb
    CHANGED
    
    | 
         @@ -64,14 +64,15 @@ class ModsDisplay::HTML 
     | 
|
| 
       64 
64 
     | 
    
         
             
              end
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
              def mods_display_fields
         
     | 
| 
       67 
     | 
    
         
            -
                [:title, :name, : 
     | 
| 
      
 67 
     | 
    
         
            +
                [:title, :name, :language, :imprint, :resourceType, :genre, :description, :cartographics, :abstract, :contents, :audience, :note, :contact, :collection, :relatedLocation, :relatedItem, :subject, :identifier, :location]
         
     | 
| 
       68 
68 
     | 
    
         
             
              end
         
     | 
| 
       69 
69 
     | 
    
         | 
| 
       70 
70 
     | 
    
         
             
              def mods_display_field_mapping
         
     | 
| 
       71 
71 
     | 
    
         
             
               {:title           => :title_info,
         
     | 
| 
       72 
72 
     | 
    
         
             
                :subTitle        => :title_info,
         
     | 
| 
       73 
73 
     | 
    
         
             
                :name            => :plain_name,
         
     | 
| 
       74 
     | 
    
         
            -
                : 
     | 
| 
      
 74 
     | 
    
         
            +
                :resourceType    => :typeOfResource,
         
     | 
| 
      
 75 
     | 
    
         
            +
                :genre           => :genre,
         
     | 
| 
       75 
76 
     | 
    
         
             
                :imprint         => :origin_info,
         
     | 
| 
       76 
77 
     | 
    
         
             
                :language        => :language,
         
     | 
| 
       77 
78 
     | 
    
         
             
                :description     => :physical_description,
         
     | 
| 
         @@ -80,6 +81,7 @@ class ModsDisplay::HTML 
     | 
|
| 
       80 
81 
     | 
    
         
             
                :contents        => :tableOfContents,
         
     | 
| 
       81 
82 
     | 
    
         
             
                :audience        => :targetAudience,
         
     | 
| 
       82 
83 
     | 
    
         
             
                :note            => :note,
         
     | 
| 
      
 84 
     | 
    
         
            +
                :contact         => :note,
         
     | 
| 
       83 
85 
     | 
    
         
             
                :collection      => :related_item,
         
     | 
| 
       84 
86 
     | 
    
         
             
                :relatedLocation => :related_item,
         
     | 
| 
       85 
87 
     | 
    
         
             
                :relatedItem     => :related_item,
         
     | 
| 
         @@ -90,6 +92,7 @@ class ModsDisplay::HTML 
     | 
|
| 
       90 
92 
     | 
    
         | 
| 
       91 
93 
     | 
    
         
             
              def field_key_translation
         
     | 
| 
       92 
94 
     | 
    
         
             
                {:subTitle        => :sub_title,
         
     | 
| 
      
 95 
     | 
    
         
            +
                 :resourceType    => :resource_type,
         
     | 
| 
       93 
96 
     | 
    
         
             
                 :relatedLocation => :related_location,
         
     | 
| 
       94 
97 
     | 
    
         
             
                 :relatedItem     => :related_item
         
     | 
| 
       95 
98 
     | 
    
         
             
                }
         
     | 
    
        data/lib/mods_display/version.rb
    CHANGED
    
    
| 
         @@ -26,4 +26,14 @@ describe ModsDisplay::Configuration::Base do 
     | 
|
| 
       26 
26 
     | 
    
         
             
                  ModsDisplay::Configuration::Base.new.delimiter.should == ", "
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         
             
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
              describe "ignore" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                it "should be set to true if the #ignore! method is called" do
         
     | 
| 
      
 31 
     | 
    
         
            +
                  ModsDisplay::Configuration::Base.new do
         
     | 
| 
      
 32 
     | 
    
         
            +
                    ignore!
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end.ignore?.should be_true
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
                it "should be false by default" do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  ModsDisplay::Configuration::Base.new.ignore?.should be_false
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
       29 
39 
     | 
    
         
             
            end
         
     | 
| 
         @@ -9,6 +9,14 @@ describe ModsDisplay::Abstract do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                @link = Stanford::Mods::Record.new.from_str("<mods><abstract>A link to the library (http://library.stanford.edu) should appear here</abstract></mods>", false).abstract
         
     | 
| 
       10 
10 
     | 
    
         
             
                @email = Stanford::Mods::Record.new.from_str("<mods><abstract>A link to an email address jdoe@example.com should appear here</abstract></mods>", false).abstract
         
     | 
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
              
         
     | 
| 
      
 13 
     | 
    
         
            +
              describe "labels" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                it "should get a default 'Abstract' label" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  fields = mods_display_abstract(@link).fields
         
     | 
| 
      
 16 
     | 
    
         
            +
                  fields.length.should == 1
         
     | 
| 
      
 17 
     | 
    
         
            +
                  fields.first.label.should == "Abstract"
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
       12 
20 
     | 
    
         | 
| 
       13 
21 
     | 
    
         
             
              describe "links" do
         
     | 
| 
       14 
22 
     | 
    
         
             
                it "should turn URLs into links" do
         
     | 
| 
         @@ -0,0 +1,21 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            def mods_display_contact(mods_record)
         
     | 
| 
      
 4 
     | 
    
         
            +
              ModsDisplay::Contact.new(mods_record, ModsDisplay::Configuration::Base.new, mock("controller"))
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            describe ModsDisplay::Contact do
         
     | 
| 
      
 8 
     | 
    
         
            +
              before(:all) do
         
     | 
| 
      
 9 
     | 
    
         
            +
                @contact_note = Stanford::Mods::Record.new.from_str("<mods><note type='contact'>jdoe@example.com</note><note>Note Field</note></mods>", false).note
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
              it "should only get contact fields" do
         
     | 
| 
      
 12 
     | 
    
         
            +
                fields = mods_display_contact(@contact_note).fields
         
     | 
| 
      
 13 
     | 
    
         
            +
                fields.length.should == 1
         
     | 
| 
      
 14 
     | 
    
         
            +
                fields.first.values.should include("jdoe@example.com")
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
              it "should not get any non-contact fields" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                fields = mods_display_contact(@contact_note).fields
         
     | 
| 
      
 18 
     | 
    
         
            +
                fields.length.should == 1
         
     | 
| 
      
 19 
     | 
    
         
            +
                fields.first.values.should_not include("Note Field")
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -11,7 +11,7 @@ describe ModsDisplay::Contents do 
     | 
|
| 
       11 
11 
     | 
    
         
             
              end
         
     | 
| 
       12 
12 
     | 
    
         
             
              describe "label" do
         
     | 
| 
       13 
13 
     | 
    
         
             
                it "should have a default label" do
         
     | 
| 
       14 
     | 
    
         
            -
                  mods_display_contents(@contents).label.should == "Table of  
     | 
| 
      
 14 
     | 
    
         
            +
                  mods_display_contents(@contents).label.should == "Table of contents"
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
       16 
16 
     | 
    
         
             
                it "should use the displayLabel attribute when one is available" do
         
     | 
| 
       17 
17 
     | 
    
         
             
                  mods_display_contents(@display_label).label.should == "Special Label"
         
     | 
| 
         @@ -12,7 +12,7 @@ describe ModsDisplay::Description do 
     | 
|
| 
       12 
12 
     | 
    
         
             
                @mixed = Stanford::Mods::Record.new.from_str("<mods><physicalDescription><form>Form Note</form><extent>Extent Note</extent></physicalDescription></mods>", false).physical_description
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         
             
              describe "labels" do
         
     | 
| 
       15 
     | 
    
         
            -
                it "should use the  
     | 
| 
      
 15 
     | 
    
         
            +
                it "should use the displayLabel if one is provided" do
         
     | 
| 
       16 
16 
     | 
    
         
             
                  mods_display_description(@display_label).fields.first.label.should == "SpecialLabel"
         
     | 
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
| 
       18 
18 
     | 
    
         
             
                it "should get the default label for a child element" do
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            def mods_display_genre(mods_record)
         
     | 
| 
      
 4 
     | 
    
         
            +
              ModsDisplay::Genre.new(mods_record, ModsDisplay::Configuration::Base.new, mock("controller"))
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            describe ModsDisplay::Abstract do
         
     | 
| 
      
 8 
     | 
    
         
            +
              before(:all) do
         
     | 
| 
      
 9 
     | 
    
         
            +
                @genre = Stanford::Mods::Record.new.from_str("<mods><genre>Map Data</abstract></genre>", false).genre
         
     | 
| 
      
 10 
     | 
    
         
            +
                @display_label = Stanford::Mods::Record.new.from_str("<mods><genre displayLabel='Special label'>Catographic</genre></mods>", false).genre
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
              describe "labels" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                it "should return a default 'Genre' label" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  fields = mods_display_genre(@genre).fields
         
     | 
| 
      
 15 
     | 
    
         
            +
                  fields.length.should == 1
         
     | 
| 
      
 16 
     | 
    
         
            +
                  fields.first.label.should == "Genre"
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
                it "should use a display label when one is available" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  fields = mods_display_genre(@display_label).fields
         
     | 
| 
      
 20 
     | 
    
         
            +
                  fields.length.should == 1
         
     | 
| 
      
 21 
     | 
    
         
            +
                  fields.first.label.should == "Special label"
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -20,7 +20,7 @@ describe ModsDisplay::Note do 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  mods_display_id(@display_label).fields.first.label.should == "Special Label"
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
22 
     | 
    
         
             
                it "should use get a label from a list of translations" do
         
     | 
| 
       23 
     | 
    
         
            -
                  mods_display_id(@issue_label).fields.first.label.should == "Issue  
     | 
| 
      
 23 
     | 
    
         
            +
                  mods_display_id(@issue_label).fields.first.label.should == "Issue number"
         
     | 
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         
             
                it "should use use the raw type attribute if one is present" do
         
     | 
| 
       26 
26 
     | 
    
         
             
                  mods_display_id(@type_label).fields.first.label.should == "Some other Type"
         
     | 
| 
         @@ -36,7 +36,7 @@ describe ModsDisplay::Note do 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  fields.first.values.length.should == 2
         
     | 
| 
       37 
37 
     | 
    
         
             
                  fields.first.values.should == ["12345", "54321"]
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
                  fields[1].label.should == "Issue  
     | 
| 
      
 39 
     | 
    
         
            +
                  fields[1].label.should == "Issue number"
         
     | 
| 
       40 
40 
     | 
    
         
             
                  fields[1].values.length.should == 1
         
     | 
| 
       41 
41 
     | 
    
         
             
                  fields[1].values.should == ["12345"]
         
     | 
| 
       42 
42 
     | 
    
         | 
    
        data/spec/fields/imprint_spec.rb
    CHANGED
    
    | 
         @@ -25,7 +25,7 @@ describe ModsDisplay::Imprint do 
     | 
|
| 
       25 
25 
     | 
    
         
             
                end
         
     | 
| 
       26 
26 
     | 
    
         
             
                it "should get the label from non-imprint origin info fields" do
         
     | 
| 
       27 
27 
     | 
    
         
             
                  fields = mods_display_imprint(@edition_and_date).fields
         
     | 
| 
       28 
     | 
    
         
            -
                  fields.first.label.should == "Date  
     | 
| 
      
 28 
     | 
    
         
            +
                  fields.first.label.should == "Date valid"
         
     | 
| 
       29 
29 
     | 
    
         
             
                  fields.last.label.should == "Edition"
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
31 
     | 
    
         
             
                it "should get multiple labels when we have mixed content" do
         
     | 
    
        data/spec/fields/note_spec.rb
    CHANGED
    
    | 
         @@ -9,7 +9,8 @@ describe ModsDisplay::Note do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                @note = Stanford::Mods::Record.new.from_str("<mods><note>Note Field</note></mods>", false).note
         
     | 
| 
       10 
10 
     | 
    
         
             
                @display_label = Stanford::Mods::Record.new.from_str("<mods><note displayLabel='Special Label'>Note Field</note></mods>", false).note
         
     | 
| 
       11 
11 
     | 
    
         
             
                @sor_label = Stanford::Mods::Record.new.from_str("<mods><note type='statement of responsibility'>Note Field</note></mods>", false).note
         
     | 
| 
       12 
     | 
    
         
            -
                @ 
     | 
| 
      
 12 
     | 
    
         
            +
                @contact_note = Stanford::Mods::Record.new.from_str("<mods><note type='contact'>jdoe@example.com</note><note>Note Field</note></mods>", false).note
         
     | 
| 
      
 13 
     | 
    
         
            +
                @type_label = Stanford::Mods::Record.new.from_str("<mods><note type='some other Type'>Note Field</note></mods>", false).note
         
     | 
| 
       13 
14 
     | 
    
         
             
                @complex_label = Stanford::Mods::Record.new.from_str("<mods><note>Note Field</note><note>2nd Note Field</note><note type='statement of responsibility'>SoR</note><note>Another Note</note></mods>", false).note
         
     | 
| 
       14 
15 
     | 
    
         
             
              end
         
     | 
| 
       15 
16 
     | 
    
         
             
              describe "label" do
         
     | 
| 
         @@ -20,10 +21,10 @@ describe ModsDisplay::Note do 
     | 
|
| 
       20 
21 
     | 
    
         
             
                  mods_display_note(@display_label).fields.first.label.should == "Special Label"
         
     | 
| 
       21 
22 
     | 
    
         
             
                end
         
     | 
| 
       22 
23 
     | 
    
         
             
                it "should use get a label from a list of translations" do
         
     | 
| 
       23 
     | 
    
         
            -
                  mods_display_note(@sor_label).fields.first.label.should == "Statement of  
     | 
| 
      
 24 
     | 
    
         
            +
                  mods_display_note(@sor_label).fields.first.label.should == "Statement of responsibility"
         
     | 
| 
       24 
25 
     | 
    
         
             
                end
         
     | 
| 
       25 
     | 
    
         
            -
                it "should use use the  
     | 
| 
       26 
     | 
    
         
            -
                  mods_display_note(@type_label).fields.first.label.should == "Some other  
     | 
| 
      
 26 
     | 
    
         
            +
                it "should use use the capitalized type attribute if one is present" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  mods_display_note(@type_label).fields.first.label.should == "Some other type"
         
     | 
| 
       27 
28 
     | 
    
         
             
                end
         
     | 
| 
       28 
29 
     | 
    
         
             
              end
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
         @@ -40,7 +41,7 @@ describe ModsDisplay::Note do 
     | 
|
| 
       40 
41 
     | 
    
         
             
                  fields.first.values.length == 2
         
     | 
| 
       41 
42 
     | 
    
         
             
                  fields.first.values.should == ["Note Field", "2nd Note Field"]
         
     | 
| 
       42 
43 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                  fields[1].label == "Statement of  
     | 
| 
      
 44 
     | 
    
         
            +
                  fields[1].label == "Statement of responsibility"
         
     | 
| 
       44 
45 
     | 
    
         
             
                  fields[1].values.length == 1
         
     | 
| 
       45 
46 
     | 
    
         
             
                  fields[1].values.should == ["SoR"]
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
         @@ -48,6 +49,11 @@ describe ModsDisplay::Note do 
     | 
|
| 
       48 
49 
     | 
    
         
             
                  fields.last.values.length == 1
         
     | 
| 
       49 
50 
     | 
    
         
             
                  fields.last.values.should == ["Another Note"]
         
     | 
| 
       50 
51 
     | 
    
         
             
                end
         
     | 
| 
      
 52 
     | 
    
         
            +
                it "should not include any contact fields" do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  fields = mods_display_note(@contact_note).fields
         
     | 
| 
      
 54 
     | 
    
         
            +
                  fields.length.should == 1
         
     | 
| 
      
 55 
     | 
    
         
            +
                  fields.first.values.should == ["Note Field"]
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
       51 
57 
     | 
    
         
             
              end
         
     | 
| 
       52 
58 
     | 
    
         | 
| 
       53 
59 
     | 
    
         
             
            end
         
     | 
| 
         @@ -15,7 +15,7 @@ describe ModsDisplay::RelatedItem do 
     | 
|
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         
             
              describe "label" do
         
     | 
| 
       17 
17 
     | 
    
         
             
                it "should default to Related Item" do
         
     | 
| 
       18 
     | 
    
         
            -
                  mods_display_item(@item).fields.first.label.should == "Related  
     | 
| 
      
 18 
     | 
    
         
            +
                  mods_display_item(@item).fields.first.label.should == "Related item"
         
     | 
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         
             
                it "should get the displayLabel if available" do
         
     | 
| 
       21 
21 
     | 
    
         
             
                  mods_display_item(@display_label).fields.first.label.should == "Special Item"
         
     | 
| 
         @@ -41,7 +41,7 @@ describe ModsDisplay::RelatedItem do 
     | 
|
| 
       41 
41 
     | 
    
         
             
                it "should collapse labels down into the same record" do
         
     | 
| 
       42 
42 
     | 
    
         
             
                  fields = mods_display_item(@multi_items).fields
         
     | 
| 
       43 
43 
     | 
    
         
             
                  fields.length.should == 1
         
     | 
| 
       44 
     | 
    
         
            -
                  fields.first.label.should == "Related  
     | 
| 
      
 44 
     | 
    
         
            +
                  fields.first.label.should == "Related item"
         
     | 
| 
       45 
45 
     | 
    
         
             
                  fields.first.values.length.should == 2
         
     | 
| 
       46 
46 
     | 
    
         
             
                  fields.first.values.first.should =~ /<a href=.*>Library<\/a>/ or
         
     | 
| 
       47 
47 
     | 
    
         
             
                  fields.first.values.last.should =~ /<a href=.*>SDR<\/a>/
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            def mods_display_resource_type(mods_record)
         
     | 
| 
      
 4 
     | 
    
         
            +
              ModsDisplay::ResourceType.new(mods_record, ModsDisplay::Configuration::Base.new, mock("controller"))
         
     | 
| 
      
 5 
     | 
    
         
            +
            end
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            describe ModsDisplay::ResourceType do
         
     | 
| 
      
 8 
     | 
    
         
            +
              before(:all) do
         
     | 
| 
      
 9 
     | 
    
         
            +
                @type = Stanford::Mods::Record.new.from_str("<mods><typeOfResource>Resource Type</typeOfResource></mods>", false).typeOfResource
         
     | 
| 
      
 10 
     | 
    
         
            +
                @display_label = Stanford::Mods::Record.new.from_str("<mods><typeOfResource displayLabel='Special label'>Resource Type</typeOfResource></mods>", false).typeOfResource
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
              it "should default to a label of 'Type of resource'" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                fields = mods_display_resource_type(@type).fields
         
     | 
| 
      
 14 
     | 
    
         
            +
                fields.length.should == 1
         
     | 
| 
      
 15 
     | 
    
         
            +
                fields.first.label.should == "Type of resource"
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
              it "should use the displayLabel attribute when present" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                fields = mods_display_resource_type(@display_label).fields
         
     | 
| 
      
 19 
     | 
    
         
            +
                fields.length.should == 1
         
     | 
| 
      
 20 
     | 
    
         
            +
                fields.first.label.should == "Special label"
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/fields/title_spec.rb
    CHANGED
    
    | 
         @@ -17,7 +17,7 @@ describe ModsDisplay::Title do 
     | 
|
| 
       17 
17 
     | 
    
         
             
                  mods_display_title(@title).fields.first.label.should == "Title"
         
     | 
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         
             
                it "should return an appropriate label from the type attribute" do
         
     | 
| 
       20 
     | 
    
         
            -
                  mods_display_title(@alt_title).fields.first.label.should == "Alternative  
     | 
| 
      
 20 
     | 
    
         
            +
                  mods_display_title(@alt_title).fields.first.label.should == "Alternative title"
         
     | 
| 
       21 
21 
     | 
    
         
             
                end
         
     | 
| 
       22 
22 
     | 
    
         
             
                it "should return the label held in the displayLabel attribute of the titleInfo element when available" do
         
     | 
| 
       23 
23 
     | 
    
         
             
                  mods_display_title(@display_label).fields.first.label.should == "MyTitle"
         
     | 
| 
         @@ -9,6 +9,9 @@ class TestConfigController 
     | 
|
| 
       9 
9 
     | 
    
         
             
                  value_class 'value-class'
         
     | 
| 
       10 
10 
     | 
    
         
             
                  link :link_to_title, "%value%"
         
     | 
| 
       11 
11 
     | 
    
         
             
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
                contact do
         
     | 
| 
      
 13 
     | 
    
         
            +
                  ignore!
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
       12 
15 
     | 
    
         
             
              end
         
     | 
| 
       13 
16 
     | 
    
         | 
| 
       14 
17 
     | 
    
         
             
              def link_to_title(title)
         
     | 
| 
         @@ -18,7 +21,7 @@ end 
     | 
|
| 
       18 
21 
     | 
    
         | 
| 
       19 
22 
     | 
    
         
             
            describe "Configuration" do
         
     | 
| 
       20 
23 
     | 
    
         
             
              before(:all) do
         
     | 
| 
       21 
     | 
    
         
            -
                xml = "<mods><titleInfo><title>The Title of this Item</title></titleInfo></mods>"
         
     | 
| 
      
 24 
     | 
    
         
            +
                xml = "<mods><titleInfo><title>The Title of this Item</title></titleInfo><note type='contact'>jdoe@example.com</note></mods>"
         
     | 
| 
       22 
25 
     | 
    
         
             
                model = TestModel.new
         
     | 
| 
       23 
26 
     | 
    
         
             
                model.modsxml = xml
         
     | 
| 
       24 
27 
     | 
    
         
             
                controller = TestConfigController.new
         
     | 
| 
         @@ -33,5 +36,7 @@ describe "Configuration" do 
     | 
|
| 
       33 
36 
     | 
    
         
             
              it "should apply the link" do
         
     | 
| 
       34 
37 
     | 
    
         
             
                @html.scan(/<a href='\/path\/to\/title\?The Title of this Item'>The Title of this Item<\a>/)
         
     | 
| 
       35 
38 
     | 
    
         
             
              end
         
     | 
| 
       36 
     | 
    
         
            -
              
         
     | 
| 
      
 39 
     | 
    
         
            +
              it "should ignore fields if requested" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                @html.scan(/jdoe@example\.com/).length.should == 0
         
     | 
| 
      
 41 
     | 
    
         
            +
              end
         
     | 
| 
       37 
42 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: mods_display
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0.1 
     | 
| 
       5 
     | 
    
         
            -
              prerelease:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.1
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
       8 
8 
     | 
    
         
             
            - Jessie Keck
         
     | 
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2013-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2013-06-26 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: stanford-mods
         
     | 
| 
         @@ -75,16 +75,21 @@ files: 
     | 
|
| 
       75 
75 
     | 
    
         
             
            - lib/mods_display.rb
         
     | 
| 
       76 
76 
     | 
    
         
             
            - lib/mods_display/configuration.rb
         
     | 
| 
       77 
77 
     | 
    
         
             
            - lib/mods_display/configuration/base.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - lib/mods_display/configuration/name.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            - lib/mods_display/configuration/note.rb
         
     | 
| 
      
 80 
     | 
    
         
            +
            - lib/mods_display/configuration/related_item.rb
         
     | 
| 
       78 
81 
     | 
    
         
             
            - lib/mods_display/configuration/subject.rb
         
     | 
| 
       79 
82 
     | 
    
         
             
            - lib/mods_display/controller_extension.rb
         
     | 
| 
       80 
83 
     | 
    
         
             
            - lib/mods_display/fields/abstract.rb
         
     | 
| 
       81 
84 
     | 
    
         
             
            - lib/mods_display/fields/audience.rb
         
     | 
| 
       82 
85 
     | 
    
         
             
            - lib/mods_display/fields/cartographics.rb
         
     | 
| 
       83 
86 
     | 
    
         
             
            - lib/mods_display/fields/collection.rb
         
     | 
| 
      
 87 
     | 
    
         
            +
            - lib/mods_display/fields/contact.rb
         
     | 
| 
       84 
88 
     | 
    
         
             
            - lib/mods_display/fields/contents.rb
         
     | 
| 
       85 
89 
     | 
    
         
             
            - lib/mods_display/fields/description.rb
         
     | 
| 
       86 
90 
     | 
    
         
             
            - lib/mods_display/fields/field.rb
         
     | 
| 
       87 
91 
     | 
    
         
             
            - lib/mods_display/fields/format.rb
         
     | 
| 
      
 92 
     | 
    
         
            +
            - lib/mods_display/fields/genre.rb
         
     | 
| 
       88 
93 
     | 
    
         
             
            - lib/mods_display/fields/identifier.rb
         
     | 
| 
       89 
94 
     | 
    
         
             
            - lib/mods_display/fields/imprint.rb
         
     | 
| 
       90 
95 
     | 
    
         
             
            - lib/mods_display/fields/language.rb
         
     | 
| 
         @@ -93,6 +98,7 @@ files: 
     | 
|
| 
       93 
98 
     | 
    
         
             
            - lib/mods_display/fields/note.rb
         
     | 
| 
       94 
99 
     | 
    
         
             
            - lib/mods_display/fields/related_item.rb
         
     | 
| 
       95 
100 
     | 
    
         
             
            - lib/mods_display/fields/related_location.rb
         
     | 
| 
      
 101 
     | 
    
         
            +
            - lib/mods_display/fields/resource_type.rb
         
     | 
| 
       96 
102 
     | 
    
         
             
            - lib/mods_display/fields/sub_title.rb
         
     | 
| 
       97 
103 
     | 
    
         
             
            - lib/mods_display/fields/subject.rb
         
     | 
| 
       98 
104 
     | 
    
         
             
            - lib/mods_display/fields/title.rb
         
     | 
| 
         @@ -106,9 +112,11 @@ files: 
     | 
|
| 
       106 
112 
     | 
    
         
             
            - spec/fields/audience_spec.rb
         
     | 
| 
       107 
113 
     | 
    
         
             
            - spec/fields/cartographics_spec.rb
         
     | 
| 
       108 
114 
     | 
    
         
             
            - spec/fields/collection_spec.rb
         
     | 
| 
      
 115 
     | 
    
         
            +
            - spec/fields/contact_spec.rb
         
     | 
| 
       109 
116 
     | 
    
         
             
            - spec/fields/contents_spec.rb
         
     | 
| 
       110 
117 
     | 
    
         
             
            - spec/fields/description_spec.rb
         
     | 
| 
       111 
118 
     | 
    
         
             
            - spec/fields/format_spec.rb
         
     | 
| 
      
 119 
     | 
    
         
            +
            - spec/fields/genre_spec.rb
         
     | 
| 
       112 
120 
     | 
    
         
             
            - spec/fields/identifier_spec.rb
         
     | 
| 
       113 
121 
     | 
    
         
             
            - spec/fields/imprint_spec.rb
         
     | 
| 
       114 
122 
     | 
    
         
             
            - spec/fields/language_spec.rb
         
     | 
| 
         @@ -117,6 +125,7 @@ files: 
     | 
|
| 
       117 
125 
     | 
    
         
             
            - spec/fields/note_spec.rb
         
     | 
| 
       118 
126 
     | 
    
         
             
            - spec/fields/related_item_spec.rb
         
     | 
| 
       119 
127 
     | 
    
         
             
            - spec/fields/related_location_spec.rb
         
     | 
| 
      
 128 
     | 
    
         
            +
            - spec/fields/resource_type_spec.rb
         
     | 
| 
       120 
129 
     | 
    
         
             
            - spec/fields/sub_title_spec.rb
         
     | 
| 
       121 
130 
     | 
    
         
             
            - spec/fields/subject_spec.rb
         
     | 
| 
       122 
131 
     | 
    
         
             
            - spec/fields/title_spec.rb
         
     | 
| 
         @@ -142,16 +151,19 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       142 
151 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       143 
152 
     | 
    
         
             
                  segments:
         
     | 
| 
       144 
153 
     | 
    
         
             
                  - 0
         
     | 
| 
       145 
     | 
    
         
            -
                  hash: - 
     | 
| 
      
 154 
     | 
    
         
            +
                  hash: -2016190750318240142
         
     | 
| 
       146 
155 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       147 
156 
     | 
    
         
             
              none: false
         
     | 
| 
       148 
157 
     | 
    
         
             
              requirements:
         
     | 
| 
       149 
     | 
    
         
            -
              - - ! ' 
     | 
| 
      
 158 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
       150 
159 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       151 
     | 
    
         
            -
                  version:  
     | 
| 
      
 160 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 161 
     | 
    
         
            +
                  segments:
         
     | 
| 
      
 162 
     | 
    
         
            +
                  - 0
         
     | 
| 
      
 163 
     | 
    
         
            +
                  hash: -2016190750318240142
         
     | 
| 
       152 
164 
     | 
    
         
             
            requirements: []
         
     | 
| 
       153 
165 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       154 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 166 
     | 
    
         
            +
            rubygems_version: 1.8.25
         
     | 
| 
       155 
167 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       156 
168 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       157 
169 
     | 
    
         
             
            summary: The MODS Display gem allows implementers to configure a customized display
         
     | 
| 
         @@ -163,9 +175,11 @@ test_files: 
     | 
|
| 
       163 
175 
     | 
    
         
             
            - spec/fields/audience_spec.rb
         
     | 
| 
       164 
176 
     | 
    
         
             
            - spec/fields/cartographics_spec.rb
         
     | 
| 
       165 
177 
     | 
    
         
             
            - spec/fields/collection_spec.rb
         
     | 
| 
      
 178 
     | 
    
         
            +
            - spec/fields/contact_spec.rb
         
     | 
| 
       166 
179 
     | 
    
         
             
            - spec/fields/contents_spec.rb
         
     | 
| 
       167 
180 
     | 
    
         
             
            - spec/fields/description_spec.rb
         
     | 
| 
       168 
181 
     | 
    
         
             
            - spec/fields/format_spec.rb
         
     | 
| 
      
 182 
     | 
    
         
            +
            - spec/fields/genre_spec.rb
         
     | 
| 
       169 
183 
     | 
    
         
             
            - spec/fields/identifier_spec.rb
         
     | 
| 
       170 
184 
     | 
    
         
             
            - spec/fields/imprint_spec.rb
         
     | 
| 
       171 
185 
     | 
    
         
             
            - spec/fields/language_spec.rb
         
     | 
| 
         @@ -174,6 +188,7 @@ test_files: 
     | 
|
| 
       174 
188 
     | 
    
         
             
            - spec/fields/note_spec.rb
         
     | 
| 
       175 
189 
     | 
    
         
             
            - spec/fields/related_item_spec.rb
         
     | 
| 
       176 
190 
     | 
    
         
             
            - spec/fields/related_location_spec.rb
         
     | 
| 
      
 191 
     | 
    
         
            +
            - spec/fields/resource_type_spec.rb
         
     | 
| 
       177 
192 
     | 
    
         
             
            - spec/fields/sub_title_spec.rb
         
     | 
| 
       178 
193 
     | 
    
         
             
            - spec/fields/subject_spec.rb
         
     | 
| 
       179 
194 
     | 
    
         
             
            - spec/fields/title_spec.rb
         
     |