blob: 8e94d0d8ae98ed4a322fcaf975538215aca4f0cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
require 'securerandom'
class Trocla
class Util
class << self
def random_str(length=12, charset='default')
_charsets = charsets[charset] || charsets['default']
_charsets_size = _charsets_size
(1..length).collect{|a| _charsets[SecureRandom.random_number(_charsets.size)] }.join.to_s
end
def salt(length=8)
alphanumeric_size = alphanumeric.size
(1..length).collect{|a| alphanumeric[SecureRandom.random_number(alphanumeric_size)] }.join.to_s
end
private
def charsets
@charsets ||= {
'default' => chars,
'alphanumeric' => alphanumeric,
'shellsafe' => shellsafe,
}
end
def chars
@chars ||= shellsafe + special_chars
end
def shellsafe
@chars ||= alphanumeric + shellsafe_chars
end
def alphanumeric
@alphanumeric ||= ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
end
def special_chars
@special_chars ||= "*()&![]{}-".split(//)
end
def shellsafe_chars
@shellsafe_chars ||= "+%/@=?_.,:".split(//)
end
end
end
end
|