Sha256: 4357f24f7ea11d15d25cf93afa2ca630588c7f2e7b8002b47338cf61e56a06ee

Contents?: true

Size: 1.04 KB

Versions: 32

Compression:

Stored size: 1.04 KB

Contents

module Authlogic
  # Handles generating random strings. If SecureRandom is installed it will default to this and use it instead. SecureRandom comes with ActiveSupport.
  # So if you are using this in a rails app you should have this library.
  module Random
    extend self
    
    SecureRandom = (defined?(::SecureRandom) && ::SecureRandom) || (defined?(::ActiveSupport::SecureRandom) && ::ActiveSupport::SecureRandom)
    
    if SecureRandom
      def hex_token
        SecureRandom.hex(64)
      end
      
      def friendly_token
        # use base64url as defined by RFC4648
        SecureRandom.base64(15).tr('+/=', '').strip.delete("\n")
      end
    else
      def hex_token
        Authlogic::CryptoProviders::Sha512.encrypt(Time.now.to_s + (1..10).collect{ rand.to_s }.join)
      end
      
      FRIENDLY_CHARS = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a
      
      def friendly_token
        newpass = ""
        1.upto(20) { |i| newpass << FRIENDLY_CHARS[rand(FRIENDLY_CHARS.size-1)] }
        newpass
      end
    end
    
  end
end

Version data entries

32 entries across 32 versions & 10 rubygems

Version Path
authlogic-3.4.6 lib/authlogic/random.rb
authlogic-3.4.5 lib/authlogic/random.rb
authlogic-2.1.11 lib/authlogic/random.rb
authlogic-2.1.10 lib/authlogic/random.rb
authlogic-3.4.4 lib/authlogic/random.rb
authlogic-3.4.3 lib/authlogic/random.rb
authlogic-3.4.2 lib/authlogic/random.rb
authlogic-3.4.1 lib/authlogic/random.rb
authlogic-3.4.0 lib/authlogic/random.rb
authlogic-3.3.0 lib/authlogic/random.rb
authlogic-3.2.0 lib/authlogic/random.rb
authlogic-3.1.3 lib/authlogic/random.rb
authlogic-2.1.8 lib/authlogic/random.rb
authlogic-2.1.7 lib/authlogic/random.rb
authlogic-3.1.2 lib/authlogic/random.rb
authlogic-3.1.1 lib/authlogic/random.rb
nulogy-authlogic-3.1.0.1 lib/authlogic/random.rb
authlogic-3.1.0 lib/authlogic/random.rb
Empact-authlogic-3.0.3 lib/authlogic/random.rb
expertiza-authlogic-2.1.6.1 lib/authlogic/random.rb