Sha256: 71d242b93104088e1364e84be434e33093f57fc71577c35a69050b8e6552b272

Contents?: true

Size: 541 Bytes

Versions: 7

Compression:

Stored size: 541 Bytes

Contents

# frozen_string_literal: true

module PUNK
  class Identity < PUNK::Model
    alias 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

7 entries across 7 versions & 1 rubygems

Version Path
punk-0.3.6 lib/punk/models/identity.rb
punk-0.3.5 lib/punk/models/identity.rb
punk-0.3.4 lib/punk/models/identity.rb
punk-0.3.3 lib/punk/models/identity.rb
punk-0.3.2 lib/punk/models/identity.rb
punk-0.3.1 lib/punk/models/identity.rb
punk-0.2.0 lib/punk/models/identity.rb