Sha256: 4fdd84f95f3598aae8db0416f4faca1b203ee606aef9440e6e8dcd9281b761a3

Contents?: true

Size: 488 Bytes

Versions: 9

Compression:

Stored size: 488 Bytes

Contents

require 'date'

module GS1
  module Extensions
    # Extension for a GS1 date. Ensures correct formating and validation.
    #
    module Date
      def self.included(base)
        base.define :date
        base.define :length, barcode: 6
      end

      def initialize(date)
        if date.respond_to?(:strftime)
          super(date.strftime('%y%m%d'))
        else
          super(date)
        end
      end

      def to_date
        ::Date.parse(data)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gs1-1.1.0 lib/gs1/extensions/date.rb
gs1-1.0.0 lib/gs1/extensions/date.rb
gs1-0.1.8 lib/gs1/extensions/date.rb
gs1-0.1.7 lib/gs1/extensions/date.rb
gs1-0.1.6 lib/gs1/extensions/date.rb
gs1-0.1.5 lib/gs1/extensions/date.rb
gs1-0.1.3 lib/gs1/extensions/date.rb
gs1-0.1.2 lib/gs1/extensions/date.rb
gs1-0.1.1 lib/gs1/extensions/date.rb