Sha256: aafb18c57c461c2c307c61037e02fd3d91c9521481cbea0d6fcd3e1db76bfc8e

Contents?: true

Size: 841 Bytes

Versions: 9

Compression:

Stored size: 841 Bytes

Contents

module OpenStax::Connect
  class User < ActiveRecord::Base

    validates :username, uniqueness: true
    validates :username, presence: true
    validates :openstax_uid, presence: true

    # first and last names are not required

    def name
      (first_name || last_name) ? [first_name, last_name].compact.join(" ") : username
    end

    def casual_name
      first_name || username
    end    

    def is_anonymous?
      is_anonymous == true
    end

    attr_accessor :is_anonymous

    def self.anonymous
      @@anonymous ||= AnonymousUser.new
    end

    class AnonymousUser < User
      before_save { false } 
      def initialize(attributes=nil)
        super
        self.is_anonymous = true
        self.first_name   = 'Guest'
        self.last_name    = 'User'
        self.openstax_uid = nil
      end
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
openstax_connect-0.1.0 app/models/openstax/connect/user.rb
openstax_connect-0.0.10 app/models/openstax/connect/user.rb
openstax_connect-0.0.9 app/models/openstax/connect/user.rb
openstax_connect-0.0.8 app/models/openstax/connect/user.rb
openstax_connect-0.0.7 app/models/openstax/connect/user.rb
openstax_connect-0.0.6 app/models/openstax/connect/user.rb
openstax_connect-0.0.5 app/models/openstax/connect/user.rb
openstax_connect-0.0.4 app/models/openstax/connect/user.rb
openstax_connect-0.0.3 app/models/openstax/connect/user.rb