password_mate 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/password_mate.rb +40 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 67943629acbccc5cff0e79f6d9a20ed9c1f1c03b
4
+ data.tar.gz: b17e1a69182d073237ddeafa943ce6f0db45e169
5
+ SHA512:
6
+ metadata.gz: 9aeb4cb55c606625d0f95a5feada4830d21391e93794766fbc0635ccbb25fa0e799d7d312046afa4158d6aeb03811ce2f3458db614480a8fbbcfd4382413ea2f
7
+ data.tar.gz: 741d573749a8afeea6acce5f4d61978a47a9cec820d4dac4bbb9ff4b495922fc53e3c41f4962686d39a5a46e3654bc0beb48d9712e7fcdabd11c3ab45912373a
@@ -0,0 +1,40 @@
1
+ module PasswordMate
2
+ extend self
3
+
4
+ SpecialCharacters = %w(! @ # $ % ^ & + = * ( ) _ -)
5
+ LowercaseLetters = ('a'..'z').to_a
6
+ UppercaseLetters = ('A'..'Z').to_a
7
+ Numbers = ('0'..'9').to_a
8
+ PasswordLength = 8
9
+
10
+ def strong?(str)
11
+ return false if str.blank?
12
+ return false unless str =~ Regexp.union(*SpecialCharacters)
13
+ return false unless str =~ Regexp.union(*LowercaseLetters)
14
+ return false unless str =~ Regexp.union(*UppercaseLetters)
15
+ return false unless str =~ Regexp.union(*Numbers)
16
+ true
17
+ end
18
+
19
+ def generate_random_password
20
+ password = generate_random(PasswordLength) until strong?(password)
21
+ password
22
+ end
23
+
24
+ private
25
+ def generate_random(length)
26
+ "".tap do |str|
27
+ length.times { str << random_character }
28
+ end
29
+ end
30
+
31
+ def random_character
32
+ all_possible_characters.sample
33
+ end
34
+
35
+ def all_possible_characters
36
+ SpecialCharacters + LowercaseLetters +
37
+ UppercaseLetters + Numbers
38
+ end
39
+
40
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: password_mate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Amit Suryavanshi, Yashasree Barve, Souranil Sen, Twinkal Savani, Priya Joshi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-21 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A gem to Create Random Password
14
+ email: 'amitbsuryavanshi@gmail.com, yashasree.barve@gmail.com, souranil.sen@gmail.com,
15
+ svnsavani0@gmail.com, priya.joshi@gmail.com '
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/password_mate.rb
21
+ homepage: http://rubygems.org/gems/password_mate
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.0.14
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: A gem to Create Random Password
45
+ test_files: []