Sha256: 38a55749b0adcd130f73d0ff89a0f97f36505bbee4c01e3e7cf457e4d04edd44

Contents?: true

Size: 928 Bytes

Versions: 35

Compression:

Stored size: 928 Bytes

Contents

module Krikri::Enrichments
  ##
  # Normalizes date strings to EDTF or Date objects.
  #
  # Attempts to convert a string value to a Date object:
  #
  #   - Parses EDTF values, returns an appropriate EDTF object if
  #     a match is found; then...
  #   - Parses values in %m*%d*%Y format and returns a Date object if
  #     appropriate.
  #   - Parses values that match any of Date#parse's supported formats.
  #
  # If the value is not a `String` or is parsed as invalid by all
  # parsers, the original value is returned unaltered.
  #
  # @see Date#parse
  # @see https://github.com/inukshuk/edtf-ruby/blob/master/README.md Ruby EDTF
  # @see http://www.loc.gov/standards/datetime/pre-submission.html EDTF Draft
  class ParseDate
    include Audumbla::FieldEnrichment

    def enrich_value(value)
      return value unless value.is_a? String
      Krikri::Util::ExtendedDateParser.parse(value) || value
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
krikri-0.15.2 lib/krikri/enrichments/parse_date.rb
krikri-0.15.1 lib/krikri/enrichments/parse_date.rb
krikri-0.15.0 lib/krikri/enrichments/parse_date.rb
krikri-0.14.0 lib/krikri/enrichments/parse_date.rb
krikri-0.13.2 lib/krikri/enrichments/parse_date.rb
krikri-0.13.1 lib/krikri/enrichments/parse_date.rb
krikri-0.13.0 lib/krikri/enrichments/parse_date.rb
krikri-0.12.4 lib/krikri/enrichments/parse_date.rb
krikri-0.12.3 lib/krikri/enrichments/parse_date.rb
krikri-0.12.1 lib/krikri/enrichments/parse_date.rb
krikri-0.12.0 lib/krikri/enrichments/parse_date.rb
krikri-0.12.0.pre.rc.1 lib/krikri/enrichments/parse_date.rb
krikri-0.11.2 lib/krikri/enrichments/parse_date.rb
krikri-0.11.1 lib/krikri/enrichments/parse_date.rb
krikri-0.11.0 lib/krikri/enrichments/parse_date.rb
krikri-0.10.1 lib/krikri/enrichments/parse_date.rb
krikri-0.10.0 lib/krikri/enrichments/parse_date.rb
krikri-0.9.0 lib/krikri/enrichments/parse_date.rb
krikri-0.8.9 lib/krikri/enrichments/parse_date.rb
krikri-0.8.8 lib/krikri/enrichments/parse_date.rb