Sha256: 7404e90ecf0df3deb829de3ebca33444ed21787b80cfd7e677e73878adbbd3ca

Contents?: true

Size: 933 Bytes

Versions: 4

Compression:

Stored size: 933 Bytes

Contents

# typed: strict

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

		sig { returns(::Time) }
		def earliest_time
			return ::Time.now - 1
		end

		sig { returns(::Time) }
		def latest_time
			return ::Time.now + 1
		end

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

			{
				time: now,
				string: [now.strftime("%H:%M:%S.%6N"), now],
				invalid: "invalid",
				early: earliest_time - 1,
				late: latest_time + 1,
				missing: nil
			}
		end

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

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

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

		sig { returns(Example) }
		def latest
			Example.new([:time, { latest: latest_time }], 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/time.rb
data_model-0.3.0 lib/data_model/fixtures/time.rb
data_model-0.2.0 lib/data_model/fixtures/time.rb
data_model-0.1.0 lib/data_model/fixtures/time.rb