# 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