Sha256: 1c7c27fb601e3906e3102acb2c6508e7e77a17a411530771c6864cf10dae8064

Contents?: true

Size: 927 Bytes

Versions: 4

Compression:

Stored size: 927 Bytes

Contents

# typed: strict

module DataModel
	module Fixtures::Date
		extend T::Sig
		extend self
		include Fixtures

		sig { returns(::Date) }
		def earliest_date
			return ::Date.today - 1
		end

		sig { returns(::Date) }
		def latest_date
			return ::Date.today + 1
		end

		sig { returns(T::Hash[Symbol, Object]) }
		def variants
			today = ::Date.today

			{
				date: today,
				string: [today.to_s, today],
				invalid: "invalid",
				early: earliest_date - 1,
				late: latest_date + 1,
				missing: nil
			}
		end

		sig { returns(Example) }
		def simple
			Example.new([:date], variants:)
		end

		sig { returns(Example) }
		def optional
			Example.new([:date, { optional: true }], variants:)
		end

		sig { returns(Example) }
		def earliest
			Example.new([:date, { earliest: earliest_date }], variants:)
		end

		sig { returns(Example) }
		def latest
			Example.new([:date, { latest: latest_date }], variants:)
		end
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
data_model-0.4.0 lib/data_model/fixtures/date.rb
data_model-0.3.0 lib/data_model/fixtures/date.rb
data_model-0.2.0 lib/data_model/fixtures/date.rb
data_model-0.1.0 lib/data_model/fixtures/date.rb