Sha256: f0a93345a09646109242c03c86a3556bc29d625ef3086ec7c26d32344c5ccdef
Contents?: true
Size: 876 Bytes
Versions: 1
Compression:
Stored size: 876 Bytes
Contents
class Customer EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i attr_reader :customer_id, :name, :email def initialize(customer_id, name, email = nil) validate_null('customer_id', customer_id) validate_null('name', name) validate_name_length(name) validate_email(email) @customer_id = customer_id @name = name @email = email end private def validate_null(name, value) if value.nil? raise ArgumentError, "The argument '#{name}' cannot be null" end end def validate_name_length(name) if name.length > 100 raise ArgumentError, "The number of characters in the name exceeds 100: #{name}" end end def validate_email(email) if email && !email.match?(EMAIL_REGEX) raise ArgumentError, "Invalid email format: #{email}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jewerly_system-1.0.0 | lib/source/models/customer.rb |