Sha256: 3e2a674fb0b3b94beb3f035868c0c2f3ded438b9f62d8e2c117d3eca3292f1cd

Contents?: true

Size: 867 Bytes

Versions: 1

Compression:

Stored size: 867 Bytes

Contents

require "pwm/version"

module Pwm

  # Internal: The set of characters from which passwords will be assembled.
  # This could be overridden if you don't like the default.
  #
  # Returns the set of characters as an Array.
  def self.characters
    (('A'..'Z').to_a  + ('a'..'z').to_a +
     ('2'..'9').to_a) - ['I', 'O', 'l']
  end

  # Public: Generate a password.
  #
  # length - The length of the password.
  #
  # Examples
  #
  #   Pwm.password
  #   # => 'SPdHeZnn9rut4AUz'
  #
  #   Pwm.password(8)
  #   # => 'oUX4fmqr'
  #
  # Returns the generated password as a String.
  def self.password(length = 16)
    password = ''
    until (password.match(/[A-Z]/) && password.match(/[a-z]/) && password.match(/[0-9]/))
      password = (0..length - 1).inject('') do |pw, n|
        pw + characters[rand(characters.length)]
      end
    end
    password
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pwm-1.1.0 lib/pwm.rb