Sha256: 4efca491d5741710ce7bf729acc816b789c32fe83f92b324e57f66ee8601f9e5

Contents?: true

Size: 1.39 KB

Versions: 115

Compression:

Stored size: 1.39 KB

Contents

module Bolognese
  module DateUtils
    def get_date_parts(iso8601_time)
      return { "date_parts" => [[]] } if iso8601_time.nil?

      year = iso8601_time[0..3].to_i
      month = iso8601_time[5..6].to_i
      day = iso8601_time[8..9].to_i
      { 'date-parts' => [[year, month, day].reject { |part| part == 0 }] }
    end

    def get_year_month(iso8601_time)
      return [] if iso8601_time.nil?

      year = iso8601_time[0..3]
      month = iso8601_time[5..6]

      [year.to_i, month.to_i].reject { |part| part == 0 }
    end

    def get_year_month_day(iso8601_time)
      return [] if iso8601_time.nil?

      year = iso8601_time[0..3]
      month = iso8601_time[5..6]
      day = iso8601_time[8..9]

      [year.to_i, month.to_i, day.to_i].reject { |part| part == 0 }
    end

    def get_date_parts_from_parts(year, month = nil, day = nil)
      { 'date-parts' => [[year.to_i, month.to_i, day.to_i].reject { |part| part == 0 }] }
    end

    def get_date_from_parts(year, month = nil, day = nil)
      [year.to_s.rjust(4, '0'), month.to_s.rjust(2, '0'), day.to_s.rjust(2, '0')].reject { |part| part == "00" }.join("-")
    end

    # parsing of incomplete iso8601 timestamps such as 2015-04 is broken
    # in standard library
    # return nil if invalid iso8601 timestamp
    def get_datetime_from_iso8601(iso8601_time)
      ISO8601::DateTime.new(iso8601_time).to_time.utc
    rescue
      nil
    end
  end
end

Version data entries

115 entries across 115 versions & 1 rubygems

Version Path
bolognese-0.9.94 lib/bolognese/date_utils.rb
bolognese-0.9.93 lib/bolognese/date_utils.rb
bolognese-0.9.92 lib/bolognese/date_utils.rb
bolognese-0.9.91 lib/bolognese/date_utils.rb
bolognese-0.9.89 lib/bolognese/date_utils.rb
bolognese-0.9.88 lib/bolognese/date_utils.rb
bolognese-0.9.87 lib/bolognese/date_utils.rb
bolognese-0.9.86 lib/bolognese/date_utils.rb
bolognese-0.9.85 lib/bolognese/date_utils.rb
bolognese-0.9.84 lib/bolognese/date_utils.rb
bolognese-0.9.83 lib/bolognese/date_utils.rb
bolognese-0.9.82 lib/bolognese/date_utils.rb
bolognese-0.9.81 lib/bolognese/date_utils.rb
bolognese-0.9.80 lib/bolognese/date_utils.rb
bolognese-0.9.79 lib/bolognese/date_utils.rb
bolognese-0.9.78 lib/bolognese/date_utils.rb
bolognese-0.9.77 lib/bolognese/date_utils.rb
bolognese-0.9.76 lib/bolognese/date_utils.rb
bolognese-0.9.75 lib/bolognese/date_utils.rb
bolognese-0.9.74 lib/bolognese/date_utils.rb