Sha256: b1c9aea5ccd5d951269ed7d1d6feab5284c5ce9056eeee6a3f30dc7a7d89126c

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 KB

Contents

# typed: strict

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

		sig { returns(Example) }
		def simple
			Example.new(
				[:string],
				variants: {
					valid: "valid",
					other_type: 22,
					missing: nil
				},
			)
		end

		sig { returns(Example) }
		def email
			Example.new(
				[:string, { format: "@" }],
				variants: {
					valid: "foo@bar.com",
					invalid: "invalid"
				},
			)
		end

		sig { returns(Example) }
		def email_regexp
			Example.new(
				[:string, { format: /@/ }],
				variants: {
					valid: "foo@bar.com",
					invalid: "invalid"
				},
			)
		end

		sig { returns(Example) }
		def email_proc
			Example.new(
				[:string, { format: ->(val) { val.match?(/@/) } }],
				variants: {
					valid: "foo@bar.com",
					invalid: "invalid"
				},
			)
		end

		sig { returns(Example) }
		def optional
			Example.new(
				[:string, { optional: true }],
				variants: {
					valid: "valid",
					blank: "",
					missing: nil
				},
			)
		end

		sig { returns(Example) }
		def inclusion
			Example.new(
				[:string, { included: ["valid"] }],
				variants: {
					valid: "valid",
					outside: "invalid"
				},
			)
		end

		sig { returns(Example) }
		def exclusion
			Example.new(
				[:string, { excluded: ["invalid"] }],
				variants: {
					valid: "valid",
					inside: "invalid"
				},
			)
		end

		sig { returns(Example) }
		def allow_blank
			Example.new(
				[:string, { allow_blank: true }],
				variants: {
					blank: "",
					not_blank: "content",
					missing: nil
				},
			)
		end

		sig { returns(Example) }
		def dont_allow_blank
			Example.new(
				[:string, { allow_blank: false }],
				variants: {
					blank: ""
				},
			)
		end
	end
end

Version data entries

3 entries across 3 versions & 1 rubygems

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