pwqgen.rb 0.0.1 → 0.0.2.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/.travis.yml +5 -0
  2. data/ChangeLog +5 -0
  3. data/Gemfile +1 -2
  4. data/README.md +35 -0
  5. data/Rakefile +9 -0
  6. data/bin/pwqgen.rb +4 -3
  7. data/doc/ChangeLog.html +89 -0
  8. data/doc/Gemfile.html +89 -0
  9. data/doc/Pwqgen.html +217 -0
  10. data/doc/Pwqgen/Generator.html +225 -0
  11. data/doc/created.rid +8 -0
  12. data/doc/images/add.png +0 -0
  13. data/doc/images/brick.png +0 -0
  14. data/doc/images/brick_link.png +0 -0
  15. data/doc/images/bug.png +0 -0
  16. data/doc/images/bullet_black.png +0 -0
  17. data/doc/images/bullet_toggle_minus.png +0 -0
  18. data/doc/images/bullet_toggle_plus.png +0 -0
  19. data/doc/images/date.png +0 -0
  20. data/doc/images/delete.png +0 -0
  21. data/doc/images/find.png +0 -0
  22. data/doc/images/loadingAnimation.gif +0 -0
  23. data/doc/images/macFFBgHack.png +0 -0
  24. data/doc/images/package.png +0 -0
  25. data/doc/images/page_green.png +0 -0
  26. data/doc/images/page_white_text.png +0 -0
  27. data/doc/images/page_white_width.png +0 -0
  28. data/doc/images/plugin.png +0 -0
  29. data/doc/images/ruby.png +0 -0
  30. data/doc/images/tag_blue.png +0 -0
  31. data/doc/images/tag_green.png +0 -0
  32. data/doc/images/transparent.png +0 -0
  33. data/doc/images/wrench.png +0 -0
  34. data/doc/images/wrench_orange.png +0 -0
  35. data/doc/images/zoom.png +0 -0
  36. data/doc/index.html +82 -0
  37. data/doc/js/darkfish.js +153 -0
  38. data/doc/js/jquery.js +18 -0
  39. data/doc/js/navigation.js +142 -0
  40. data/doc/js/search.js +94 -0
  41. data/doc/js/search_index.js +1 -0
  42. data/doc/js/searcher.js +228 -0
  43. data/doc/rdoc.css +543 -0
  44. data/doc/table_of_contents.html +68 -0
  45. data/lib/pwqgen.rb +0 -2
  46. data/lib/pwqgen/pwqgen.rb +31 -17
  47. data/lib/pwqgen/version.rb +1 -1
  48. data/lib/pwqgen/wordlist.rb +1 -1
  49. data/pwqgen.rb.gemspec +9 -4
  50. data/spec/lib/pwqgen_spec.rb +27 -0
  51. data/spec/spec_helper.rb +1 -0
  52. metadata +83 -6
@@ -0,0 +1,68 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>Table of Contents - RDoc Documentation</title>
8
+
9
+ <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "./";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
21
+
22
+
23
+ <body class="indexpage">
24
+ <h1>Table of Contents - RDoc Documentation</h1>
25
+
26
+ <h2>Pages</h2>
27
+ <ul>
28
+ <li class="file">
29
+ <a href="ChangeLog.html">ChangeLog</a>
30
+
31
+ <img class="toc-toggle" src="images/transparent.png" alt="" title="toggle headings">
32
+ <ul class="initially-hidden">
33
+ <li><a href="ChangeLog.html#label-0.0.1+%2F+2012-06-28">0.0.1 / 2012-06-28</a>
34
+ </ul>
35
+ </li>
36
+ <li class="file">
37
+ <a href="Gemfile.html">Gemfile</a>
38
+ </li>
39
+
40
+ </ul>
41
+
42
+ <h2 id="classes">Classes/Modules</h2>
43
+ <ul>
44
+ <li class="module">
45
+ <a href="Pwqgen.html">Pwqgen</a>
46
+ </li>
47
+ <li class="class">
48
+ <a href="Pwqgen/Generator.html">Pwqgen::Generator</a>
49
+ </li>
50
+
51
+ </ul>
52
+
53
+ <h2 id="methods">Methods</h2>
54
+ <ul>
55
+
56
+ <li class="method"><a href="Pwqgen/Generator.html#method-c-new">::new &mdash; Pwqgen::Generator</a>
57
+
58
+ <li class="method"><a href="Pwqgen/Generator.html#method-i-generate">#generate &mdash; Pwqgen::Generator</a>
59
+
60
+ </ul>
61
+
62
+
63
+ <footer id="validator-badges">
64
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
65
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.
66
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
67
+ </footer>
68
+
@@ -1,4 +1,2 @@
1
1
  require 'pwqgen/pwqgen'
2
2
 
3
- module Pwqgen
4
- end
@@ -1,25 +1,39 @@
1
- require 'rubygems'
2
1
  require 'pwqgen/wordlist'
3
2
 
3
+ # Public: Pwqgen is a Ruby implementation of passwdqc's pwqgen password
4
+ # generator.
5
+ #
6
+ # Example
7
+ #
8
+ # Pwqgen::Generator.new.generate
9
+ # # => "Crime2Behave=growth"
10
+ #
11
+ # Pwqgen::Generator.new.generate 4
12
+ # # => "Caesar-Madam7draft8choose"
13
+ #
4
14
  module Pwqgen
5
- class Generator
6
- def initialize
7
- @@wordlist_size = @@wordlist.length
8
- @@separators = "-_!$&*+=23456789".split(//)
9
- @@separators_size = @@separators.length
10
- @length = 3
11
- @rand = Random.new
12
- end
13
15
 
14
- def generate(length = @length)
15
- output = Array.new
16
- for i in 1..length
17
- output << @@wordlist[@rand.rand(@@wordlist_size)]
18
- output[i-1] = output[i-1].capitalize if @rand.rand(2)
16
+ def self.generate(length = 3)
17
+ self::Generator.new.generate length
18
+ end
19
+
20
+ class Generator
21
+ def initialize
22
+ @@wordlist_size = @@wordlist.length
23
+ @@separators = "-_!$&*+=23456789".split(//)
24
+ @@separators_size = @@separators.length
25
+ @rand = Random.new
26
+ end
27
+
28
+ def generate(length = 3)
29
+ output = Array.new
30
+ for i in 1..length
31
+ output << @@wordlist[@rand.rand(@@wordlist_size)]
32
+ output[i-1] = output[i-1].capitalize if @rand.rand(2)
19
33
 
20
- output << @@separators[@rand.rand(@@separators_size)] unless i == length
21
- end
22
- output.join
34
+ output << @@separators[@rand.rand(@@separators_size)] unless i == length
23
35
  end
36
+ output.join
24
37
  end
38
+ end
25
39
  end
@@ -1,3 +1,3 @@
1
1
  module Pwqgen
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2.pre"
3
3
  end
@@ -1,4 +1,4 @@
1
- # Stolen from passwdqc's wordset_4k.c.
1
+ # Private: Wordlist stolen from passwdqc's wordset_4k.c.
2
2
  # http://www.openwall.com/passwdqc/
3
3
  #
4
4
  # 4096 English words for generation of easy to memorize random passphrases.
@@ -9,11 +9,16 @@ Gem::Specification.new do |s|
9
9
  s.description = "pwqgen.rb implements passwdqc's pwqgen in Ruby."
10
10
  s.authors = ["Ronald Ip"]
11
11
  s.email = 'myself@iphoting.com'
12
- s.require_paths = ['lib']
13
- s.files = `git ls-files`.split("\n")
14
12
  s.homepage = 'https://github.com/iphoting/pwqgen.rb'
15
- s.has_rdoc = false
16
- s.executables << 'pwqgen.rb'
17
13
 
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ['lib']
18
+
19
+ s.required_ruby_version = '>=1.9.2'
18
20
  s.add_runtime_dependency('docopt', "~>0.0.4")
21
+
22
+ s.add_development_dependency 'rake'
23
+ s.add_development_dependency 'rspec'
19
24
  end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pwqgen do
4
+ it "should return a random password" do
5
+ password = Pwqgen.generate
6
+ password.should_not be_nil
7
+ password.should_not be_empty
8
+ password.should be_kind_of(String)
9
+ password.length.should be_within(5).of(15)
10
+ end
11
+
12
+ it "should return a short random password when given a length of 1" do
13
+ password = Pwqgen.generate 1
14
+ password.should_not be_nil
15
+ password.should_not be_empty
16
+ password.should be_kind_of(String)
17
+ password.length.should be_within(2).of(4)
18
+ end
19
+
20
+ it "should return a longer random password when given a length of 5" do
21
+ password = Pwqgen.generate 5
22
+ password.should_not be_nil
23
+ password.should_not be_empty
24
+ password.should be_kind_of(String)
25
+ password.length.should be_within(8).of(27)
26
+ end
27
+ end
@@ -0,0 +1 @@
1
+ require 'pwqgen'
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwqgen.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2.pre
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ronald Ip
@@ -27,6 +27,38 @@ dependencies:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.0.4
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
30
62
  description: pwqgen.rb implements passwdqc's pwqgen in Ruby.
31
63
  email: myself@iphoting.com
32
64
  executables:
@@ -35,14 +67,57 @@ extensions: []
35
67
  extra_rdoc_files: []
36
68
  files:
37
69
  - .gitignore
70
+ - .travis.yml
38
71
  - ChangeLog
39
72
  - Gemfile
73
+ - README.md
74
+ - Rakefile
40
75
  - bin/pwqgen.rb
76
+ - doc/ChangeLog.html
77
+ - doc/Gemfile.html
78
+ - doc/Pwqgen.html
79
+ - doc/Pwqgen/Generator.html
80
+ - doc/created.rid
81
+ - doc/images/add.png
82
+ - doc/images/brick.png
83
+ - doc/images/brick_link.png
84
+ - doc/images/bug.png
85
+ - doc/images/bullet_black.png
86
+ - doc/images/bullet_toggle_minus.png
87
+ - doc/images/bullet_toggle_plus.png
88
+ - doc/images/date.png
89
+ - doc/images/delete.png
90
+ - doc/images/find.png
91
+ - doc/images/loadingAnimation.gif
92
+ - doc/images/macFFBgHack.png
93
+ - doc/images/package.png
94
+ - doc/images/page_green.png
95
+ - doc/images/page_white_text.png
96
+ - doc/images/page_white_width.png
97
+ - doc/images/plugin.png
98
+ - doc/images/ruby.png
99
+ - doc/images/tag_blue.png
100
+ - doc/images/tag_green.png
101
+ - doc/images/transparent.png
102
+ - doc/images/wrench.png
103
+ - doc/images/wrench_orange.png
104
+ - doc/images/zoom.png
105
+ - doc/index.html
106
+ - doc/js/darkfish.js
107
+ - doc/js/jquery.js
108
+ - doc/js/navigation.js
109
+ - doc/js/search.js
110
+ - doc/js/search_index.js
111
+ - doc/js/searcher.js
112
+ - doc/rdoc.css
113
+ - doc/table_of_contents.html
41
114
  - lib/pwqgen.rb
42
115
  - lib/pwqgen/pwqgen.rb
43
116
  - lib/pwqgen/version.rb
44
117
  - lib/pwqgen/wordlist.rb
45
118
  - pwqgen.rb.gemspec
119
+ - spec/lib/pwqgen_spec.rb
120
+ - spec/spec_helper.rb
46
121
  homepage: https://github.com/iphoting/pwqgen.rb
47
122
  licenses: []
48
123
  post_install_message:
@@ -54,17 +129,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
54
129
  requirements:
55
130
  - - ! '>='
56
131
  - !ruby/object:Gem::Version
57
- version: '0'
132
+ version: 1.9.2
58
133
  required_rubygems_version: !ruby/object:Gem::Requirement
59
134
  none: false
60
135
  requirements:
61
- - - ! '>='
136
+ - - ! '>'
62
137
  - !ruby/object:Gem::Version
63
- version: '0'
138
+ version: 1.3.1
64
139
  requirements: []
65
140
  rubyforge_project:
66
141
  rubygems_version: 1.8.23
67
142
  signing_key:
68
143
  specification_version: 3
69
144
  summary: pwqgen in Ruby
70
- test_files: []
145
+ test_files:
146
+ - spec/lib/pwqgen_spec.rb
147
+ - spec/spec_helper.rb