revs-utils 1.0.14 → 1.0.15
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 +8 -8
 - data/Gemfile.lock +3 -3
 - data/config/manifest_headers.yml +12 -2
 - data/lib/revs-utils/version.rb +1 -1
 - data/lib/revs-utils.rb +55 -19
 - data/spec/revs-utils_spec.rb +22 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
3 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                MDA0MDNjYzdmYThhMTQzNDNkYzdkYjY4YWE4ZGI5MDIyY2JkZGI1MQ==
         
     | 
| 
       5 
5 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                OTYwODZjNTIzN2IzZDdmMTA3Mjg3MTA0N2FjNGE0MjNiZjMwN2MwNQ==
         
     | 
| 
       7 
7 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
8 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                ZTA5MDU0OTgzNWIwNjdjZWI0M2RmOTg1OGM5MDk4Y2I3ZmU5YWE5YjVhYWQ2
         
     | 
| 
      
 10 
     | 
    
         
            +
                NTQ1NWExMmJiNmU5MGNhMzUzYTdhMzk4ZWYwNzkyNTNlYzljNTVmOTBmN2Vl
         
     | 
| 
      
 11 
     | 
    
         
            +
                OTdiMTg2MjQ3YWUxOGQ3YWMxYzk5MmVlNTA1YjkwM2U2ZjRjNzA=
         
     | 
| 
       12 
12 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                NTBmNTczNzZhZDI2YzI5OTg0YjMyOWQyOGMyMDJlYjM1ZDBmZGUxYzEzNGI1
         
     | 
| 
      
 14 
     | 
    
         
            +
                YjllMzEyMzkxZWJhNzk3MGNkZjRhNjcyZDljOGFlMDhkNDJkZDY3NjBhYTc0
         
     | 
| 
      
 15 
     | 
    
         
            +
                Nzg0YTJkYWU1MTlmNjViMGU2ODcyNTk1MGM5ZDVkZGQ2YmU2MWQ=
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                revs-utils (1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
                revs-utils (1.0.15)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  actionpack (~> 3)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  chronic
         
     | 
| 
       7 
7 
     | 
    
         
             
                  countries (= 0.9.2)
         
     | 
| 
         @@ -42,14 +42,14 @@ GEM 
     | 
|
| 
       42 
42 
     | 
    
         
             
                  rake (>= 0.8.7)
         
     | 
| 
       43 
43 
     | 
    
         
             
                  rest-client
         
     | 
| 
       44 
44 
     | 
    
         
             
                mime-types (2.0)
         
     | 
| 
       45 
     | 
    
         
            -
                multi_json (1. 
     | 
| 
      
 45 
     | 
    
         
            +
                multi_json (1.11.0)
         
     | 
| 
       46 
46 
     | 
    
         
             
                rack (1.4.5)
         
     | 
| 
       47 
47 
     | 
    
         
             
                rack-cache (1.2)
         
     | 
| 
       48 
48 
     | 
    
         
             
                  rack (>= 0.4)
         
     | 
| 
       49 
49 
     | 
    
         
             
                rack-test (0.6.3)
         
     | 
| 
       50 
50 
     | 
    
         
             
                  rack (>= 1.0)
         
     | 
| 
       51 
51 
     | 
    
         
             
                rake (10.1.0)
         
     | 
| 
       52 
     | 
    
         
            -
                rdf (1.1. 
     | 
| 
      
 52 
     | 
    
         
            +
                rdf (1.1.11)
         
     | 
| 
       53 
53 
     | 
    
         
             
                  link_header (~> 0.0, >= 0.0.8)
         
     | 
| 
       54 
54 
     | 
    
         
             
                rest-client (1.6.7)
         
     | 
| 
       55 
55 
     | 
    
         
             
                  mime-types (>= 1.16)
         
     | 
    
        data/config/manifest_headers.yml
    CHANGED
    
    | 
         @@ -30,5 +30,15 @@ metadata: 
     | 
|
| 
       30 
30 
     | 
    
         
             
              hide: hide
         
     | 
| 
       31 
31 
     | 
    
         
             
              format: format
         
     | 
| 
       32 
32 
     | 
    
         
             
              collection_name: collection_name
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
              
         
     | 
| 
      
 33 
     | 
    
         
            +
            known_formats: 
         
     | 
| 
      
 34 
     | 
    
         
            +
              - black-and-white film
         
     | 
| 
      
 35 
     | 
    
         
            +
              - color film
         
     | 
| 
      
 36 
     | 
    
         
            +
              - slides
         
     | 
| 
      
 37 
     | 
    
         
            +
              - foldouts
         
     | 
| 
      
 38 
     | 
    
         
            +
              - pamphlets
         
     | 
| 
      
 39 
     | 
    
         
            +
              - oversize items
         
     | 
| 
      
 40 
     | 
    
         
            +
              - photographic prints
         
     | 
| 
      
 41 
     | 
    
         
            +
              - black-and-white negatives
         
     | 
| 
      
 42 
     | 
    
         
            +
              - color negatives
         
     | 
| 
      
 43 
     | 
    
         
            +
              - black-and-white transparencies
         
     | 
| 
      
 44 
     | 
    
         
            +
              - color transparencies
         
     | 
    
        data/lib/revs-utils/version.rb
    CHANGED
    
    
    
        data/lib/revs-utils.rb
    CHANGED
    
    | 
         @@ -14,7 +14,7 @@ REVS_LC_TERMS_FILENAME=File.join(PROJECT_ROOT,'files','revs-lc-marque-terms.obj' 
     | 
|
| 
       14 
14 
     | 
    
         
             
            REVS_MANIFEST_HEADERS_FILEPATH = File.join(PROJECT_ROOT,'config',"manifest_headers.yml")
         
     | 
| 
       15 
15 
     | 
    
         
             
            REGISTER = "register"
         
     | 
| 
       16 
16 
     | 
    
         
             
            METADATA = "metadata"
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
      
 17 
     | 
    
         
            +
            FORMATS = "known_formats"
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            module Revs
         
     | 
| 
       20 
20 
     | 
    
         
             
              module Utils
         
     | 
| 
         @@ -28,6 +28,9 @@ module Revs 
     | 
|
| 
       28 
28 
     | 
    
         
             
                  REVS_MANIFEST_HEADERS_FILE = File.open(REVS_MANIFEST_HEADERS_FILEPATH)
         
     | 
| 
       29 
29 
     | 
    
         
             
                  REVS_MANIFEST_HEADERS = YAML.load( REVS_MANIFEST_HEADERS_FILE)
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
                  def revs_known_formats
         
     | 
| 
      
 32 
     | 
    
         
            +
                    get_manifest_section(FORMATS)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
       31 
34 
     | 
    
         | 
| 
       32 
35 
     | 
    
         
             
                  def get_manifest_section(section)
         
     | 
| 
       33 
36 
     | 
    
         
             
                    return REVS_MANIFEST_HEADERS[section]
         
     | 
| 
         @@ -67,40 +70,59 @@ module Revs 
     | 
|
| 
       67 
70 
     | 
    
         
             
                    sources = Array.new
         
     | 
| 
       68 
71 
     | 
    
         
             
                    files.each do |file|
         
     | 
| 
       69 
72 
     | 
    
         
             
                      file.each do |row|
         
     | 
| 
       70 
     | 
    
         
            -
                        #Make sure the  
     | 
| 
      
 73 
     | 
    
         
            +
                        #Make sure the sourceid and filename are the same
         
     | 
| 
       71 
74 
     | 
    
         
             
                        fname = row[get_manifest_section(REGISTER)['filename']].chomp(File.extname(row[get_manifest_section(REGISTER)['filename']]))
         
     | 
| 
       72 
75 
     | 
    
         
             
                        return false if row[get_manifest_section(REGISTER)['sourceid']] != fname
         
     | 
| 
       73 
76 
     | 
    
         
             
                        sources << row[get_manifest_section(REGISTER)['sourceid']]
         
     | 
| 
       74 
     | 
    
         
            -
                      end
         
     | 
| 
       75 
     | 
    
         
            -
                      
         
     | 
| 
       76 
     | 
    
         
            -
                      
         
     | 
| 
       77 
     | 
    
         
            -
                     
         
     | 
| 
      
 77 
     | 
    
         
            +
                      end         
         
     | 
| 
       78 
78 
     | 
    
         
             
                    end
         
     | 
| 
       79 
79 
     | 
    
         
             
                    return sources.uniq.size == sources.size
         
     | 
| 
       80 
80 
     | 
    
         | 
| 
       81 
81 
     | 
    
         
             
                  end
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                  
         
     | 
| 
      
 82 
     | 
    
         
            +
                        
         
     | 
| 
       84 
83 
     | 
    
         
             
                  #Pass this function a CSV file and it will return true if the proper headers are there and each entry has the required fields filled in
         
     | 
| 
       85 
84 
     | 
    
         
             
                  def valid_to_register(file_path)
         
     | 
| 
       86 
     | 
    
         
            -
                    
         
     | 
| 
       87 
85 
     | 
    
         
             
                    file = read_csv_with_headers(file_path)
         
     | 
| 
      
 86 
     | 
    
         
            +
                    return check_valid_to_register(file)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  end
         
     | 
| 
      
 88 
     | 
    
         
            +
                  
         
     | 
| 
      
 89 
     | 
    
         
            +
                  #Pass this function a CSV file and it will return true if the proper headers are there and each entry has the required fields filled in.  
         
     | 
| 
      
 90 
     | 
    
         
            +
                  def valid_for_metadata(file_path)
         
     | 
| 
      
 91 
     | 
    
         
            +
                    file = read_csv_with_headers(file_path)
         
     | 
| 
      
 92 
     | 
    
         
            +
                    return check_headers(file)
         
     | 
| 
      
 93 
     | 
    
         
            +
                  end
         
     | 
| 
      
 94 
     | 
    
         
            +
                  
         
     | 
| 
      
 95 
     | 
    
         
            +
                  # pass in csv data and it will tell if you everything is safe to register based on having labels, unique sourceIDs and filenames matching sourceIDs
         
     | 
| 
      
 96 
     | 
    
         
            +
                  def check_valid_to_register(csv_data)
         
     | 
| 
       88 
97 
     | 
    
         
             
                    #Make sure all the required headers are there
         
     | 
| 
       89 
     | 
    
         
            -
                    return false if not get_manifest_section(REGISTER).values- 
     | 
| 
       90 
     | 
    
         
            -
                    
         
     | 
| 
      
 98 
     | 
    
         
            +
                    return false if not get_manifest_section(REGISTER).values-csv_data[0].keys == []
         
     | 
| 
      
 99 
     | 
    
         
            +
                    sources=Array.new
         
     | 
| 
       91 
100 
     | 
    
         
             
                    #Make sure all files have entries for those required headers
         
     | 
| 
       92 
     | 
    
         
            -
                     
     | 
| 
      
 101 
     | 
    
         
            +
                    csv_data.each do |row|
         
     | 
| 
       93 
102 
     | 
    
         
             
                      get_manifest_section(REGISTER).keys.each do |header| # label should be there as a column but does not always need a value
         
     | 
| 
       94 
103 
     | 
    
         
             
                        return false if header.downcase !='label' && row[header].blank? #Alternatively consider row[header].class != String or row[header].size <= 0
         
     | 
| 
       95 
104 
     | 
    
         
             
                      end
         
     | 
| 
      
 105 
     | 
    
         
            +
                      fname = row[get_manifest_section(REGISTER)['filename']].chomp(File.extname(row[get_manifest_section(REGISTER)['filename']]))
         
     | 
| 
      
 106 
     | 
    
         
            +
                      return false if row[get_manifest_section(REGISTER)['sourceid']] != fname
         
     | 
| 
      
 107 
     | 
    
         
            +
                      sources << row[get_manifest_section(REGISTER)['sourceid']]
         
     | 
| 
       96 
108 
     | 
    
         
             
                    end
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
      
 109 
     | 
    
         
            +
                    return sources.uniq.size == sources.size
         
     | 
| 
       98 
110 
     | 
    
         
             
                  end
         
     | 
| 
       99 
111 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
                  # 
     | 
| 
       101 
     | 
    
         
            -
                  def  
     | 
| 
       102 
     | 
    
         
            -
                     
     | 
| 
       103 
     | 
    
         
            -
                     
     | 
| 
      
 112 
     | 
    
         
            +
                  # looks at certain metadata fields in manifest to confirm validity (such as dates and formats)
         
     | 
| 
      
 113 
     | 
    
         
            +
                  def check_metadata(csv_data)
         
     | 
| 
      
 114 
     | 
    
         
            +
                    bad_rows=0
         
     | 
| 
      
 115 
     | 
    
         
            +
                    csv_data.each do |row|
         
     | 
| 
      
 116 
     | 
    
         
            +
                      valid_date=revs_is_valid_datestring?(row[get_manifest_section(METADATA)['year']] || row[get_manifest_section(METADATA)['date']])
         
     | 
| 
      
 117 
     | 
    
         
            +
                      valid_format=revs_is_valid_format?(row[get_manifest_section(METADATA)['format']])
         
     | 
| 
      
 118 
     | 
    
         
            +
                      bad_rows+=1 unless (valid_date && valid_format)
         
     | 
| 
      
 119 
     | 
    
         
            +
                    end
         
     | 
| 
      
 120 
     | 
    
         
            +
                    return bad_rows
         
     | 
| 
      
 121 
     | 
    
         
            +
                  end
         
     | 
| 
      
 122 
     | 
    
         
            +
                  
         
     | 
| 
      
 123 
     | 
    
         
            +
                  # pass in csv data from a file read in and it will tell you if the headers are valid
         
     | 
| 
      
 124 
     | 
    
         
            +
                  def check_headers(csv_data)
         
     | 
| 
      
 125 
     | 
    
         
            +
                    file_headers=csv_data[0].keys.reject(&:blank?).collect(&:downcase)
         
     | 
| 
       104 
126 
     | 
    
         
             
                    #The file doesn't need to have all the metadata values, it just can't have headers that aren't used for metadata or registration
         
     | 
| 
       105 
127 
     | 
    
         
             
                    if file_headers.include?('date') && file_headers.include?('year') # can't have both date and year 
         
     | 
| 
       106 
128 
     | 
    
         
             
                      return false
         
     | 
| 
         @@ -110,7 +132,7 @@ module Revs 
     | 
|
| 
       110 
132 
     | 
    
         
             
                      return file_headers-get_manifest_section(METADATA).values-get_manifest_section(REGISTER).values == []
         
     | 
| 
       111 
133 
     | 
    
         
             
                    end
         
     | 
| 
       112 
134 
     | 
    
         
             
                  end
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
      
 135 
     | 
    
         
            +
                  
         
     | 
| 
       114 
136 
     | 
    
         
             
                  def clean_collection_name(name)
         
     | 
| 
       115 
137 
     | 
    
         
             
                    return "" if name.blank? || name.nil?
         
     | 
| 
       116 
138 
     | 
    
         
             
                    name=name.to_s
         
     | 
| 
         @@ -147,7 +169,13 @@ module Revs 
     | 
|
| 
       147 
169 
     | 
    
         
             
                    return row
         
     | 
| 
       148 
170 
     | 
    
         
             
                  end
         
     | 
| 
       149 
171 
     | 
    
         | 
| 
       150 
     | 
    
         
            -
                  #  
     | 
| 
      
 172 
     | 
    
         
            +
                  # checks to see if we have a valid format
         
     | 
| 
      
 173 
     | 
    
         
            +
                  def revs_is_valid_format?(format)
         
     | 
| 
      
 174 
     | 
    
         
            +
                    formats=format.split("|").collect{|f| f.strip}
         
     | 
| 
      
 175 
     | 
    
         
            +
                    !formats.collect {|f| revs_known_formats.include?(f)}.uniq.include?(false)
         
     | 
| 
      
 176 
     | 
    
         
            +
                  end
         
     | 
| 
      
 177 
     | 
    
         
            +
                  
         
     | 
| 
      
 178 
     | 
    
         
            +
                  # check a single format and fix some common issues
         
     | 
| 
       151 
179 
     | 
    
         
             
                  def revs_check_format(format)
         
     | 
| 
       152 
180 
     | 
    
         
             
                    return revs_check_formats([format]).first
         
     | 
| 
       153 
181 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -237,6 +265,14 @@ module Revs 
     | 
|
| 
       237 
265 
     | 
    
         
             
                    date_string.to_s.strip.scan(/\D/).empty? and (starting_year..Date.today.year).include?(date_string.to_i)
         
     | 
| 
       238 
266 
     | 
    
         
             
                  end
         
     | 
| 
       239 
267 
     | 
    
         | 
| 
      
 268 
     | 
    
         
            +
                  # tell us if the incoming datestring supplied in the manifest column is a valid date, year or list of years
         
     | 
| 
      
 269 
     | 
    
         
            +
                  def revs_is_valid_datestring?(date_string)
         
     | 
| 
      
 270 
     | 
    
         
            +
                    return true if date_string.nil? || date_string.empty?
         
     | 
| 
      
 271 
     | 
    
         
            +
                    is_full_date=(get_full_date(date_string) != false)
         
     | 
| 
      
 272 
     | 
    
         
            +
                    is_year=!parse_years(date_string).empty?
         
     | 
| 
      
 273 
     | 
    
         
            +
                    return is_year || is_full_date
         
     | 
| 
      
 274 
     | 
    
         
            +
                  end
         
     | 
| 
      
 275 
     | 
    
         
            +
                  
         
     | 
| 
       240 
276 
     | 
    
         
             
                  # tell us if the string passed is in is a full date of the format M/D/YYYY or m-d-yyyy or m-d-yy or M/D/YY, and returns the date object if it is valid
         
     | 
| 
       241 
277 
     | 
    
         
             
                  def get_full_date(date_string)
         
     | 
| 
       242 
278 
     | 
    
         
             
                    begin
         
     | 
    
        data/spec/revs-utils_spec.rb
    CHANGED
    
    | 
         @@ -108,7 +108,27 @@ describe "Revs-Utils" do 
     | 
|
| 
       108 
108 
     | 
    
         
             
                 @revs.is_valid_year?('1700').should be_false # too old! no cars even existed yet
         
     | 
| 
       109 
109 
     | 
    
         
             
                 @revs.is_valid_year?('1700',1600).should be_true # unless we allow it to be ok
         
     | 
| 
       110 
110 
     | 
    
         
             
              end
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
              it "should indicate if we have unknown formats" do
         
     | 
| 
      
 113 
     | 
    
         
            +
                @revs.revs_is_valid_format?('slides').should be_true
         
     | 
| 
      
 114 
     | 
    
         
            +
                @revs.revs_is_valid_format?('slide').should be_false
         
     | 
| 
      
 115 
     | 
    
         
            +
                @revs.revs_is_valid_format?('slides | slide').should be_false
         
     | 
| 
      
 116 
     | 
    
         
            +
                @revs.revs_is_valid_format?('slides | black-and-white negatives').should be_true
         
     | 
| 
      
 117 
     | 
    
         
            +
                @revs.revs_is_valid_format?('black-and-white-negatives').should be_false
         
     | 
| 
      
 118 
     | 
    
         
            +
                @revs.revs_is_valid_format?('black-and-white negatives').should be_true   
         
     | 
| 
      
 119 
     | 
    
         
            +
              end
         
     | 
| 
      
 120 
     | 
    
         
            +
              
         
     | 
| 
      
 121 
     | 
    
         
            +
              it "should indicate if we have a valid datestring" do
         
     | 
| 
      
 122 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('1959').should be_true
         
     | 
| 
      
 123 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('bogus').should be_false
         
     | 
| 
      
 124 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('').should be_true
         
     | 
| 
      
 125 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?(nil).should be_true
         
     | 
| 
      
 126 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?([]).should be_true
         
     | 
| 
      
 127 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('2/2/1950').should be_true
         
     | 
| 
      
 128 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('2/31/1950').should be_false
         
     | 
| 
      
 129 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('2/2/50').should be_true
         
     | 
| 
      
 130 
     | 
    
         
            +
                @revs.revs_is_valid_datestring?('195x').should be_true
         
     | 
| 
      
 131 
     | 
    
         
            +
             end   
         
     | 
| 
       112 
132 
     | 
    
         | 
| 
       113 
133 
     | 
    
         
             
               it "should lookup the country correctly" do
         
     | 
| 
       114 
134 
     | 
    
         
             
                 @revs.revs_get_country('USA').should == "United States"
         
     | 
| 
         @@ -137,6 +157,7 @@ describe "Revs-Utils" do 
     | 
|
| 
       137 
157 
     | 
    
         
             
              it "should parse 1950s correctly" do
         
     | 
| 
       138 
158 
     | 
    
         | 
| 
       139 
159 
     | 
    
         
             
                @revs.parse_years('1950s').should == ['1950','1951','1952','1953','1954','1955','1956','1957','1958','1959']    
         
     | 
| 
      
 160 
     | 
    
         
            +
                @revs.parse_years("1950's").should == ['1950','1951','1952','1953','1954','1955','1956','1957','1958','1959']    
         
     | 
| 
       140 
161 
     | 
    
         | 
| 
       141 
162 
     | 
    
         
             
              end
         
     | 
| 
       142 
163 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: revs-utils
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.15
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Peter Mangiafico
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-04-09 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: countries
         
     |