pwqgen.rb 0.0.1 → 0.0.2.pre

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.
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