Sha256: de132f1b05ea24e5b1c86883d575119e0e6187788372916872d4ba2bd9cd0481

Contents?: true

Size: 666 Bytes

Versions: 4

Compression:

Stored size: 666 Bytes

Contents

module Gollum::Auth
  class InvalidUserError < StandardError
  end

  class User
    include ActiveModel::Model

    attr_accessor :name, :password, :email

    validates_presence_of :name, :password, :email

    class << self
      def find(name)
        all.select { |u| u.name == name }.first
      end

      def all
        @all ||= []
      end
    end

    def save!
      save ? self : raise(InvalidUserError, error_message)
    end

    def save
      (self.class.all << self; self) if valid?
    end

    def valid_password?(other)
      password == other
    end

    private

    def error_message
      errors.full_messages.join(', ')
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gollum-auth-0.4.0 lib/gollum/auth/user.rb
gollum-auth-0.3.1 lib/gollum/auth/user.rb
gollum-auth-0.3.0 lib/gollum/auth/user.rb
gollum-auth-0.2.0 lib/gollum/auth/user.rb