Sha256: 6e7552ae4354a387c216c737b8949bb8d562b1095885df1ba639c60268b413b3

Contents?: true

Size: 551 Bytes

Versions: 1

Compression:

Stored size: 551 Bytes

Contents

# frozen_string_literal: true

module PUNK
  class Identity < PUNK::Model
    alias_method :to_s, :claim

    many_to_one :user
    one_to_many :sessions

    symbolize :claim_type

    def validate
      validates_presence :claim
      validates_presence :claim_type
      validates_unique :claim
      validates_includes [:email, :phone], :claim_type
      validates_email :claim if email?
      validates_phone :claim if phone?
    end

    def email?
      claim_type == :email
    end

    def phone?
      claim_type == :phone
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
punk-0.4.1 lib/punk/models/identity.rb