Class: Sheetah::Types::Scalars::EmailCast

Inherits:
Object
  • Object
show all
Includes:
Cast
Defined in:
lib/sheetah/types/scalars/email_cast.rb

Instance Method Summary collapse

Methods included from Cast

#==

Constructor Details

#initialize(email_matcher: EMAIL_REGEXP) ⇒ EmailCast

Returns a new instance of EmailCast.



16
17
18
# File 'lib/sheetah/types/scalars/email_cast.rb', line 16

def initialize(email_matcher: EMAIL_REGEXP, **)
  @email_matcher = email_matcher
end

Instance Method Details

#call(value, _messenger) ⇒ Object



20
21
22
23
24
# File 'lib/sheetah/types/scalars/email_cast.rb', line 20

def call(value, _messenger)
  return value if @email_matcher.match?(value)

  throw :failure, Messaging::Messages::MustBeEmail.new(code_data: { value: value.inspect })
end