Sha256: 9f94d07fe50647b79422b3574084397bec92e4fe839974082b9befc6bd7ee90d
Contents?: true
Size: 908 Bytes
Versions: 1
Compression:
Stored size: 908 Bytes
Contents
# frozen_string_literal: true class Manager attr_accessor :id, :name, :email, :phone def initialize(id, name, email, phone) validate_null("name", name) validate_null("email", email) validate_null("phone", phone) @id = id @name = name @email = email @phone = phone unless valid_email? raise ArgumentError, "Invalid email format" end unless valid_phone? raise ArgumentError, "Invalid phone number format" end end def validate_null(name, value) if value.nil? raise ArgumentError, "Argument '#{name}' cannot be null" end end def valid_email? email_regex = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i !!(email =~ email_regex) end def valid_phone? phone_regex = /\A(\+7|8)\s?\(?\d{3}\)?\s?\d{3}[\s-]?\d{2}[\s-]?\d{2}\z/ !!(phone =~ phone_regex) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
papaSquidLib-0.1.0 | lib/models/manager.rb |