memorable_password 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/memorable_password.rb +7 -5
- data/lib/memorable_password/version.rb +1 -1
- data/spec/lib/memorable_password_spec.rb +7 -1
- metadata +31 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 686845e65ae03624537db038c6133f0cb0b54991
|
4
|
+
data.tar.gz: acfd8e343a1d894562d1f9cb9caaa5a72bc099b1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e4be232c515c9e4b9d213bc3db017330ad4966f47e69f6f572b9737a56d262d76688c74b97c90c8498c1547072bc88f9fc4ba272166642a5e96f45bb697b0d67
|
7
|
+
data.tar.gz: 75503ce89c289cd5b269067768a76be3f51882490d0d88e4137ff86245ef36f8606db322b69187a54aea0c4a3030d2006668d7892cddf9bc40557cf04ff66954
|
data/lib/memorable_password.rb
CHANGED
@@ -30,8 +30,7 @@ require 'memorable_password/sample'
|
|
30
30
|
#
|
31
31
|
class MemorablePassword
|
32
32
|
MAX_WORD_LENGTH = 7
|
33
|
-
|
34
|
-
NON_WORD_DIGITS = (DIGITS - %w(2 4 8)).freeze
|
33
|
+
DEFAULT_DIGITS = %w[0 1 2 3 4 5 6 7 8 9].freeze
|
35
34
|
CHARACTERS = %w[! @ $ ? -].freeze
|
36
35
|
|
37
36
|
# The default paths to the various dictionary flat files
|
@@ -47,7 +46,7 @@ class MemorablePassword
|
|
47
46
|
}
|
48
47
|
|
49
48
|
attr_reader :dictionary, :blacklist, :ban_list,
|
50
|
-
:dictionary_paths, :blacklist_paths
|
49
|
+
:dictionary_paths, :blacklist_paths, :digits, :non_word_digits
|
51
50
|
|
52
51
|
def initialize(options={})
|
53
52
|
# TODO implement these lists as Sets to get Hash lookup and uniqueness for free -- matt.dressel 20120328
|
@@ -58,6 +57,9 @@ class MemorablePassword
|
|
58
57
|
@dictionary_paths = options.fetch(:dictionary_paths, DEFAULT_DICTIONARY_PATHS)
|
59
58
|
@blacklist_paths = options.fetch(:blacklist_paths, DEFAULT_BLACKLIST_PATHS)
|
60
59
|
|
60
|
+
@digits = options.fetch(:digits, DEFAULT_DIGITS).freeze
|
61
|
+
@non_word_digits = (@digits - %w(2 4 8)).freeze
|
62
|
+
|
61
63
|
@dictionary = {}
|
62
64
|
@blacklist = []
|
63
65
|
|
@@ -168,12 +170,12 @@ class MemorablePassword
|
|
168
170
|
|
169
171
|
# Returns a random digit
|
170
172
|
def digit
|
171
|
-
|
173
|
+
@digits.sample
|
172
174
|
end
|
173
175
|
|
174
176
|
# Returns a random, non-ambiguous digit (0..9 without 2, 4 and 8)
|
175
177
|
def non_word_digit
|
176
|
-
|
178
|
+
@non_word_digits.sample
|
177
179
|
end
|
178
180
|
|
179
181
|
# Ensures that the word is valid:
|
@@ -6,7 +6,8 @@ describe MemorablePassword do
|
|
6
6
|
default_path = "#{File.dirname(__FILE__)}/config"
|
7
7
|
@memorable_password ||= MemorablePassword.new(
|
8
8
|
:dictionary_paths => ["#{default_path}/custom_dictionary.txt"],
|
9
|
-
:blacklist_paths => ["#{default_path}/custom_blacklist.txt"]
|
9
|
+
:blacklist_paths => ["#{default_path}/custom_blacklist.txt"],
|
10
|
+
:digits => %w[2 3 4 5 6 7 8 9])
|
10
11
|
end
|
11
12
|
|
12
13
|
subject {memorable_password}
|
@@ -29,6 +30,11 @@ describe MemorablePassword do
|
|
29
30
|
it "should support configurable blacklist paths" do
|
30
31
|
subject.blacklist.should include 'blcklst'
|
31
32
|
end
|
33
|
+
|
34
|
+
it "should support configurable digits" do
|
35
|
+
subject.digits.should eq(%w[2 3 4 5 6 7 8 9])
|
36
|
+
subject.non_word_digits.should eq(%w[3 5 6 7 9])
|
37
|
+
end
|
32
38
|
end
|
33
39
|
|
34
40
|
describe "#to_s" do
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memorable_password
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kevin McPhillips
|
@@ -10,30 +9,36 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2015-06-23 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rspec
|
17
|
-
requirement:
|
18
|
-
none: false
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
20
|
version: 2.6.0
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
|
-
version_requirements:
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.6.0
|
26
28
|
- !ruby/object:Gem::Dependency
|
27
29
|
name: yard
|
28
|
-
requirement:
|
29
|
-
none: false
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- -
|
32
|
+
- - ">="
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '0'
|
34
35
|
type: :development
|
35
36
|
prerelease: false
|
36
|
-
version_requirements:
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
37
42
|
description: This simple gem generates a random password that is easy to read and
|
38
43
|
remember. It uses dictionary words as well as a list of proper names mixed in with
|
39
44
|
numbers and special characters.
|
@@ -44,9 +49,9 @@ executables: []
|
|
44
49
|
extensions: []
|
45
50
|
extra_rdoc_files: []
|
46
51
|
files:
|
47
|
-
- .gitignore
|
48
|
-
- .rspec
|
49
|
-
- .rvmrc
|
52
|
+
- ".gitignore"
|
53
|
+
- ".rspec"
|
54
|
+
- ".rvmrc"
|
50
55
|
- Gemfile
|
51
56
|
- README.markdown
|
52
57
|
- Rakefile
|
@@ -64,27 +69,32 @@ files:
|
|
64
69
|
- spec/support/match_any_matcher.rb
|
65
70
|
homepage: http://github.com/kmcphillips/memorable_password
|
66
71
|
licenses: []
|
72
|
+
metadata: {}
|
67
73
|
post_install_message:
|
68
74
|
rdoc_options: []
|
69
75
|
require_paths:
|
70
76
|
- lib
|
71
77
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
78
|
requirements:
|
74
|
-
- -
|
79
|
+
- - ">="
|
75
80
|
- !ruby/object:Gem::Version
|
76
81
|
version: '0'
|
77
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
83
|
requirements:
|
80
|
-
- -
|
84
|
+
- - ">="
|
81
85
|
- !ruby/object:Gem::Version
|
82
86
|
version: '0'
|
83
87
|
requirements: []
|
84
88
|
rubyforge_project: memorable_password
|
85
|
-
rubygems_version:
|
89
|
+
rubygems_version: 2.2.2
|
86
90
|
signing_key:
|
87
|
-
specification_version:
|
91
|
+
specification_version: 4
|
88
92
|
summary: Generate human readable and easy to remember passwords
|
89
|
-
test_files:
|
93
|
+
test_files:
|
94
|
+
- spec/lib/config/custom_blacklist.txt
|
95
|
+
- spec/lib/config/custom_dictionary.txt
|
96
|
+
- spec/lib/config/short_dictionary.txt
|
97
|
+
- spec/lib/memorable_password_spec.rb
|
98
|
+
- spec/spec_helper.rb
|
99
|
+
- spec/support/match_any_matcher.rb
|
90
100
|
has_rdoc:
|