Sha256: d201f0b94a65e1b7d00460315518a7440dd7114da9adac594dde0ce1c419fbb1

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require 'couch_potato'

module OmniAuth
  module Identity
    module Models
      # CouchPotato is an ORM adapter for CouchDB:
      #   https://github.com/langalex/couch_potato
      # NOTE: CouchPotato is based on ActiveModel.
      # NOTE: CouchPotato::Persistence must be included before OmniAuth::Identity::Models::CouchPotatoModule
      # NOTE: Includes "Module" in the name for invalid legacy reasons. Rename only with a major version bump.
      module CouchPotatoModule
        def self.included(base)
          base.class_eval do
            include ::OmniAuth::Identity::Model
            include ::OmniAuth::Identity::SecurePassword

            has_secure_password

            def self.auth_key=(key)
              super
              validates_uniqueness_of key, case_sensitive: false
            end

            def self.locate(search_hash)
              where(search_hash).first
            end

            def save
              CouchPotato.database.save(self)
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-identity-3.0.9 lib/omniauth/identity/models/couch_potato.rb