to_pass 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -19,7 +19,7 @@ to_pass is distributed as rubygem
19
19
  If you want to install from source, you can download a tarball or zipfile from
20
20
  github.
21
21
 
22
- $ curl -L http://github.com/kronn/to_pass/tarball/v0.5.2 -o to_pass.tar.gz
22
+ $ curl -L http://github.com/kronn/to_pass/tarball/v0.7.0 -o to_pass.tar.gz
23
23
  $ tar -xzf to_pass.tar.gz
24
24
  $ cd kronn-to_pass-HASHVALUE
25
25
  $ ./setup.rb install
@@ -88,6 +88,26 @@ The usual pattern for github-projects applies:
88
88
  I'll take a look at it and try to integrate it. If I cannot apply your changes
89
89
  or don't want to, I'll let you know.
90
90
 
91
+ == Documentation
92
+
93
+ Most of the Documentation is contained in the doc-directory.
94
+
95
+ * doc/CHANGELOG
96
+ * doc/LICENSE
97
+ * doc/RELEASE_NOTES
98
+
99
+ There is also RDoc API-Documentation inside doc/rdoc.
100
+
101
+ The Manpages are located in man/ to be compatible with setup.rb. Alongside the
102
+ roff-version (for `man to_pass`) there are HTML-version if you prefer reading
103
+ docs in the browser.
104
+
105
+ * man/man1/to_pass.1.html
106
+ * man/man5/to_pass-algorithm.5.html
107
+ * man/man5/to_pass-converter.5.html
108
+
109
+ And of course, there is a README, but I think you have found it already...
110
+
91
111
  == Copyright
92
112
 
93
- Copyright (c) 2009-2010 Matthias Viehweger. See LICENSE for details.
113
+ Copyright (c) 2009-2010 Matthias Viehweger. See doc/LICENSE for details.
data/TODO CHANGED
@@ -1,8 +1,9 @@
1
1
  CURRENT
2
2
  ============================================================================
3
+ - test on multiple rubies (1.8.7, 1.9.2, Rubinius, REE)
3
4
  - have some RELEASE-NOTES or CHANGELOG
4
5
  - GemSpec#post_install_message = filename
5
- maybe http://github.com/proutils/vclog is useful...
6
+ - maybe http://github.com/proutils/vclog is useful...
6
7
 
7
8
 
8
9
  UP NEXT
@@ -10,16 +11,16 @@ UP NEXT
10
11
  - Improve CLI-Code
11
12
  - rescue OptionParser::InvalidOption with help screen
12
13
  - add option '-c, --config PATH - Configuration Path (default is ~/.to_pass)'
13
- - add ability to execute commands
14
+ - add ability to execute commands == handle CLI with Thor ?
14
15
  - add command to generate configuration path
15
16
  - add command to output available converters
16
17
  - add command to output available algorithms
17
- - handle CLI with Thor
18
+ - make tests faster
18
19
 
19
20
 
20
21
  SOMEDAY
21
22
  ============================================================================
22
23
  - test on windows
23
- - move decision wether a string is a word or not into algorithm definition.
24
+ - move decision wether a string is a word or a sentence into algorithm definition.
24
25
  - add task to validate user supplied algorithms and converters
25
26
  - ?? replace Rake with Thor
@@ -1,4 +1,4 @@
1
- require 'md5'
1
+ require 'digest/md5'
2
2
 
3
3
  module ToPass::Converters
4
4
  class ExpandBelow
@@ -9,7 +9,7 @@ module ToPass::Converters
9
9
  # before and after the string.
10
10
  def expand_below(string, rules, threshold)
11
11
  if string.length < threshold.to_i
12
- digest = "#{MD5.hexdigest(string)}#{MD5.hexdigest(string).reverse}"
12
+ digest = "#{Digest::MD5.hexdigest(string)}#{Digest::MD5.hexdigest(string).reverse}"
13
13
  extension = 1.upto(digest.length / 2).map do |nr|
14
14
  char = digest[(nr*2-2),2].to_i(16).chr
15
15
  char if char =~ /\w/i
data/doc/CHANGELOG ADDED
@@ -0,0 +1,261 @@
1
+ RELEASE HISTORY
2
+
3
+ v0.6.0 / 2010-08-18
4
+
5
+ tag v0.6.0 (Matthias Viehweger <kronn@kronn.de>)
6
+
7
+ Changes:
8
+
9
+ * 16 General Enhancements
10
+
11
+ * check off 'use setup.rb' as this part works
12
+ * added setup.rb-leftovers to .gitignore
13
+ * updated TODO
14
+ * ronn is a development dependency
15
+ * move manpages into the right directory after creation for setup.rb compatibility
16
+ * fix typo and whitespace in setup.rb
17
+ * moved algorithms and converters into namespaced data-dirs
18
+ * added setup.rb
19
+ * moved converters into the right place
20
+ * some documentation
21
+ * refactored reader-classes to use ToPass::DIRECTORIES
22
+ * rewrote the ToPass::DIRECTORIES-Table into an anonymous Class
23
+ * prepared central lookup point for directories
24
+ * moved algorithms into data-dir (think /usr/share/to_pass)
25
+ * last maintainance steps to go to version 0.5.2 and leave jeweler behind.
26
+ * removed jeweler-part of Rakefile
27
+
28
+
29
+ v0.5.2 / 2010-08-09
30
+
31
+ tag v0.5.2 (Matthias Viehweger <kronn@kronn.de>)
32
+
33
+ Changes:
34
+
35
+ * 6 General Enhancements
36
+
37
+ * moved meta-information into version.rb
38
+ * rewrote gemspec to not depend on jeweler
39
+ * added jeweler-generated gemfile
40
+ * create a Gemfile with definitions from gemspec to install dependencies easier
41
+ * notes to TODO added
42
+ * Version bump to 0.5.1
43
+
44
+
45
+ v0.5.1 / 2010-07-26
46
+
47
+ Version bump to 0.5.1 (Matthias Viehweger kronn@kronn.de)
48
+
49
+ Changes:
50
+
51
+ * 3 General Enhancements
52
+
53
+ * changed behaviour of expand_below converter
54
+ * maintained TODO-list
55
+ * Version bump to 0.5.0
56
+
57
+
58
+ v0.5.0 / 2010-07-26
59
+
60
+ Version bump to 0.5.0 (Matthias Viehweger kronn@kronn.de)
61
+
62
+ Changes:
63
+
64
+ * 24 General Enhancements
65
+
66
+ * added tests for the bundled algorithms
67
+ * added converter "expand_below"
68
+ * added converter "reverse"
69
+ * added new converter ideas as empty tests
70
+ * refactored converters-test
71
+ * added a 'secure' algorithm which generate fairly secure passwords
72
+ * added remove_repetition converter
73
+ * moved downcase-test into converter-testcase
74
+ * pathnames in exception-messages should be readable
75
+ * added hint to password_of in manpage.
76
+ * finished to_pass-algorithm(5)
77
+ * make a different executable (`password_of`)
78
+ * make options dependent on the executable
79
+ * added "commands" to the wishlist...
80
+ * added draft for to_pass-algorithm(5)
81
+ * added to_pass-converter(5)
82
+ * add man index
83
+ * fix typos in to_pass(1)
84
+ * added Raketask to generate manpages
85
+ * added downcase converter
86
+ * added man page for to_pass(1)
87
+ * use the right binary name for the help output
88
+ * added some TODOs
89
+ * Version bump to 0.4.0
90
+
91
+
92
+ v0.4.0 / 2010-06-29
93
+
94
+ Version bump to 0.4.0 (Matthias Viehweger kronn@kronn.de)
95
+
96
+ Changes:
97
+
98
+ * 3 General Enhancements
99
+
100
+ * output available algorithms with `rake algorithms`
101
+ * output a list of available converter with `rake converters`
102
+ * Version bump to 0.3.0
103
+
104
+
105
+ v0.3.0 / 2010-06-29
106
+
107
+ Version bump to 0.3.0 (Matthias Viehweger kronn@kronn.de)
108
+
109
+ Changes:
110
+
111
+ * 18 General Enhancements
112
+
113
+ * reorganized converter to utilize the ConverterReader to find and load the conversions
114
+ * rename table to replace in algorithms
115
+ * rename StringConversions to Converters and moved individual algorithms into single files
116
+ * fix typo in documentation
117
+ * Tie ConverterReader into Converter
118
+ * add ConverterReader-class
119
+ * disable the inclusion of StringConversion-Module
120
+ * remove the current task from the "someday"-section
121
+ * extracted converters info their own classes
122
+ * improved pipe usage
123
+ * added manpage-help to TODO
124
+ * added Debian compatibility as as TODO
125
+ * move algorithms-directory into the to_pass-dir for portability
126
+ * extended TODO with some more ideas
127
+ * fixed the directory-name in the test_helper (thanks, CI)
128
+ * removed jeweler-specific code
129
+ * made sdoc optional
130
+ * Version bump to 0.2.4
131
+
132
+
133
+ v0.2.4 / 2010-06-24
134
+
135
+ Version bump to 0.2.4 (Matthias Viehweger kronn@kronn.de)
136
+
137
+ Changes:
138
+
139
+ * 3 General Enhancements
140
+
141
+ * moved CLI-interface into its own class (including some debugging along the way)
142
+ * added encoding-info to all ruby files
143
+ * Version bump to 0.2.3
144
+
145
+
146
+ v0.2.3 / 2010-06-14
147
+
148
+ Version bump to 0.2.3 (Matthias Viehweger kronn@kronn.de)
149
+
150
+ Changes:
151
+
152
+ * 2 General Enhancements
153
+
154
+ * tested integration with user-dir algorithms
155
+ * fixed directory lookup of user-dir
156
+
157
+
158
+ v0.2.2 / 2010-06-13
159
+
160
+ bumped version because of upcoming release (Matthias Viehweger kronn@kronn.de)
161
+
162
+ Changes:
163
+
164
+ * 18 General Enhancements
165
+
166
+ * renamed the library from to_pwd to to_pass
167
+ * moved string_conversion-tests into its own testcase.
168
+ * removed rcov-Tasks as it does not produce useful information
169
+ * readded TODO and some coded thoughts
170
+ * activated rcov in the Rakefile
171
+ * documented the code
172
+ * added APP_NAME constant
173
+ * added VERSION-constant
174
+ * deleted TODO as it's empty at the moment
175
+ * shortended tests
176
+ * made AlgorithmReader#load_from_file use the load_path
177
+ * removed unused tests
178
+ * added AlgorithmReader#load_path
179
+ * added an AlgorithmReader
180
+ * excluded packaged gems and documentation from project
181
+ * made dependency on sdoc explicit
182
+ * added documentation (sdoc) task and tweaked README
183
+ * Version bump to 0.2.1
184
+
185
+
186
+ v0.2.1 / 2010-06-03
187
+
188
+ Version bump to 0.2.1 (Matthias Viehweger kronn@kronn.de)
189
+
190
+ Changes:
191
+
192
+ * 1 Cleanup Enhancements
193
+
194
+ * redgreen is only needed and wanted for tests
195
+
196
+ * 1 General Enhancements
197
+
198
+ * Version bump to 0.2.0
199
+
200
+
201
+ v0.2.0 / 2010-05-30
202
+
203
+ Version bump to 0.2.0 (Matthias Viehweger kronn@kronn.de)
204
+
205
+ Changes:
206
+
207
+ * 2 Cleanup Enhancements
208
+
209
+ * deleted outdated version
210
+ * moved dependency-requirements into man lib-file
211
+
212
+ * 29 General Enhancements
213
+
214
+ * preparation for creating a gem from this library
215
+ * added Rakefile to run all tests
216
+ * added module for direct integration into existing objects.
217
+ * fixed usage with pipes
218
+ * some more integration tests and basic_en-algorithm
219
+ * baseclass and integration-test added
220
+ * refactoring
221
+ * testing if multiple rules are applied
222
+ * test extended to cover alternate scenario of case swapping
223
+ * comment out old implementation
224
+ * removed tests of methods which are neither needed nor used externally
225
+ * case swapping ignores numbers
226
+ * naming improved
227
+ * first module-definition added
228
+ * test and implementation for string converter added
229
+ * refactored executable towards OptionParser usage
230
+ * renamed lib-file
231
+ * added draft for algorithm spec
232
+ * changed indentation from tabs to spaces
233
+ * added TODO
234
+ * basic executable added and gitignore added for algorithms
235
+ * PasswordString contains a String, its not really a String
236
+ * Datei in richtiges Verzeichnis geschoben
237
+ * README updated
238
+ * Fileformat set to unix
239
+ * Moved Password in its own class
240
+ * Zeilenenden korrigiert
241
+ * README added
242
+ * Initial commit
243
+
244
+
245
+ HEAD / 2010-09-03
246
+
247
+ Version 0.7.0 is mostly a cleanup and compatibility release.
248
+
249
+ ToPass now runs seamlessly with Ruby 1.8.7, 1.9.2, REE 2010-02. Rubinius works
250
+ mostly, but has some issues.
251
+
252
+ The Metainformation like version, summary, description and the likes are now
253
+ all in the version.rb-file. This way, they can be queried easier.
254
+
255
+ The test can now be run through the test/all.rb-script. In fact, this is the
256
+ standard way and internally used by `rake test`. The Manpages are now in the
257
+ right location for setup.rb and RDocs now include the LICENSE and this
258
+ CHANGELOG.
259
+
260
+ The gemspec has the filelist now directly from git instead from the
261
+ filesystem.
File without changes
data/lib/to_pass.rb CHANGED
@@ -1,21 +1,25 @@
1
- # -*- coding: utf-8 -*-
1
+ # vim:ft=ruby:fileencoding=utf-8
2
+
3
+ # setup the LoadPath
4
+ lib_path = File.expand_path('../', __FILE__)
5
+ if File.exist?(lib_path)
6
+ $LOAD_PATH << lib_path unless $LOAD_PATH.include?(lib_path)
7
+ end
2
8
 
3
9
  # Library to convert a String into a Password
4
10
  #
5
11
  # see README.rdoc for details
6
12
  module ToPass
7
- autoload :VERSION, 'lib/to_pass/version'
8
- autoload :DATE, 'lib/to_pass/version'
9
- autoload :APP_NAME, 'lib/to_pass/version'
13
+ autoload :VERSION, 'to_pass/version'
14
+ autoload :DATE, 'to_pass/version'
15
+ autoload :APP_NAME, 'to_pass/version'
10
16
 
11
- autoload :AlgorithmReader, 'lib/to_pass/algorithm_reader'
12
- autoload :Base, 'lib/to_pass/base'
13
- autoload :Cli, 'lib/to_pass/cli.rb'
14
- autoload :Converter, 'lib/to_pass/converter'
15
- autoload :ConverterReader, 'lib/to_pass/converter_reader'
16
- autoload :Converters, 'lib/to_pass/converters'
17
- autoload :Directories, 'lib/to_pass/directories'
18
- autoload :Integration, 'lib/to_pass/integration'
17
+ autoload :AlgorithmReader, 'to_pass/algorithm_reader'
18
+ autoload :Base, 'to_pass/base'
19
+ autoload :Cli, 'to_pass/cli.rb'
20
+ autoload :Converter, 'to_pass/converter'
21
+ autoload :ConverterReader, 'to_pass/converter_reader'
22
+ autoload :Converters, 'to_pass/converters'
23
+ autoload :Directories, 'to_pass/directories'
24
+ autoload :Integration, 'to_pass/integration'
19
25
  end
20
-
21
- # vim:ft=ruby:enc=utf-8
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  require 'pathname'
5
4
  require 'yaml'
data/lib/to_pass/base.rb CHANGED
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  module ToPass
5
4
  # ToPass::Base is mostly a facade for the library.
data/lib/to_pass/cli.rb CHANGED
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  require 'optparse'
5
4
 
@@ -46,7 +45,7 @@ module ToPass
46
45
  }.merge(options)
47
46
 
48
47
  OptionParser.new do |opts|
49
- opts.banner = "Usage: #{$0} [options] passphrase"
48
+ opts.banner = "Usage: #{File.basename($0)} [options] passphrase"
50
49
  opts.separator ""
51
50
 
52
51
  opts.on('-a', '--algorithm ALGORITM', "use specified algorithm for transformation") do |value|
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  module ToPass # :nodoc:
5
4
  # converts a given string into a password-like word
@@ -70,7 +69,11 @@ module ToPass # :nodoc:
70
69
 
71
70
  # apply a single rule to the password-to-be
72
71
  def apply_rule(pwd, rule)
73
- cmd, args = rule.to_a.flatten
72
+ cmd, args = if rule.respond_to?(:to_a)
73
+ rule.to_a.flatten
74
+ else
75
+ [ rule, nil ]
76
+ end
74
77
  m = @reader.load(cmd.to_sym).method(cmd.to_sym)
75
78
 
76
79
  case m.arity
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  require 'pathname'
5
4
 
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  module ToPass
5
4
  # The Converters-module is a collection of available
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  require 'rbconfig'
5
4
 
@@ -22,7 +21,7 @@ module ToPass
22
21
 
23
22
  private
24
23
 
25
- # list of all direcotries used by this project
24
+ # list of all directories used by this project
26
25
  def all
27
26
  {
28
27
  :user => "~/.#{APP_NAME}",
@@ -1,5 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
3
  # Any Object can be a password, as long as it has a string representation.
5
4
  #
@@ -1,13 +1,34 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- module ToPass
5
- # version of gem, read directly from the VERSION-File
6
- VERSION = File.read(File.join(File.dirname(__FILE__), '../../VERSION')).strip
3
+ unless defined?(ToPass::VERSION)
4
+ module ToPass
5
+ # version of gem
6
+ VERSION = '0.7.0'
7
7
 
8
- # name of gem
9
- APP_NAME = 'to_pass'
8
+ # name of gem
9
+ APP_NAME = 'to_pass'
10
10
 
11
- # date of last modification of the version
12
- DATE = File.mtime(File.join(File.dirname(__FILE__), '../../VERSION'))
11
+ # date of last modification of the version
12
+ DATE = File.mtime(__FILE__)
13
+
14
+ # Purpose in one sentence
15
+ SUMMARY = 'generate password from words or sentences'
16
+
17
+ # short description, see README for details
18
+ DESCRIPTION = <<-EOD
19
+ Passwords should be easy to remember and hard to guess.
20
+ One technique is to have a sentence which can be easily remembered transformed to a password.
21
+
22
+ Pluggable algorithms and converters allow customization of the transformation process.
23
+ EOD
24
+
25
+ # list of file which should be included in rdoc
26
+ EXTRA_RDOC_FILES = ['doc/CHANGELOG', 'doc/LICENSE', 'README.rdoc', 'TODO']
27
+
28
+ # easy access to the RELEASE_NOTES
29
+ RELEASE_NOTES = begin
30
+ fn = File.expand_path('../../../doc/RELEASE_NOTES', __FILE__)
31
+ File.read(fn) if File.size?(fn)
32
+ end
33
+ end
13
34
  end
data/man/index.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  # manuals included in this project
2
- to_pass(1) to_pass.1.ronn
3
- to_pass-converter(5) to_pass-converter.5.ronn
4
- to_pass-algorithm(5) to_pass-algorithm.5.ronn
2
+ to_pass(1) ../man1/to_pass.1.ronn
3
+ to_pass-converter(5) ../man5/to_pass-converter.5.ronn
4
+ to_pass-algorithm(5) ../man5/to_pass-algorithm.5.ronn
5
5
 
6
6
  # external documentation
7
7
  yaml(3pm) http://man.cx/yaml(3pm)
@@ -98,7 +98,7 @@ a list of conversion steps.</p>
98
98
  User supplied Algorithms are searched in <code>~/.to_pass/algorithms/</code>, converter
99
99
  classes are searched in <code>~/.to_pass/converters/</code>.</p>
100
100
 
101
- <p><a href="to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a> files are written in <a href="http://man.cx/yaml(3pm)" class="man-ref">yaml<span class="s">(3pm)</span></a>, <a href="to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a> classes are
101
+ <p><a href="../man5/to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a> files are written in <a href="http://man.cx/yaml(3pm)" class="man-ref">yaml<span class="s">(3pm)</span></a>, <a href="../man5/to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a> classes are
102
102
  <a href="http://man.cx/ruby(1)" class="man-ref">ruby<span class="s">(1)</span></a> classes.</p>
103
103
 
104
104
  <h2 id="FILES">FILES</h2>
@@ -110,7 +110,7 @@ load them. Search locations are the user-directory ~/.to_pass/algorithm/ and
110
110
  the bundled algorithms. The file is expected to have a ".yml"-extension</p>
111
111
 
112
112
  <p>Converters should be named like the method they provide. Details about the
113
- expected class can be found in <a href="to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>.</p>
113
+ expected class can be found in <a href="../man5/to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>.</p>
114
114
 
115
115
  <h2 id="OPTIONS">OPTIONS</h2>
116
116
 
@@ -146,7 +146,7 @@ ti1pwtsi2ltti@pf
146
146
 
147
147
  <h2 id="SEE-ALSO">SEE ALSO</h2>
148
148
 
149
- <p><a href="to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>, <a href="to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a></p>
149
+ <p><a href="../man5/to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>, <a href="../man5/to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a></p>
150
150
 
151
151
 
152
152
  <ol class='man-decor man-foot man foot'>
@@ -75,7 +75,7 @@
75
75
 
76
76
  <h2 id="NAME">NAME</h2>
77
77
  <p class="man-name">
78
- <code>to_pass-algorithm</code> - <span class="man-whatis">algorithm-description for <a href="to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a></span>
78
+ <code>to_pass-algorithm</code> - <span class="man-whatis">algorithm-description for <a href="../man1/to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a></span>
79
79
  </p>
80
80
 
81
81
  <h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -171,7 +171,7 @@ design however is intentionally simple and constrained.</p>
171
171
 
172
172
  <h2 id="SEE-ALSO">SEE ALSO</h2>
173
173
 
174
- <p><a href="to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a>, <a href="to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>, <a href="http://man.cx/yaml(3pm)" class="man-ref">yaml<span class="s">(3pm)</span></a></p>
174
+ <p><a href="../man1/to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a>, <a href="../man5/to_pass-converter.5.html" class="man-ref">to_pass-converter<span class="s">(5)</span></a>, <a href="http://man.cx/yaml(3pm)" class="man-ref">yaml<span class="s">(3pm)</span></a></p>
175
175
 
176
176
 
177
177
  <ol class='man-decor man-foot man foot'>
@@ -75,7 +75,7 @@
75
75
 
76
76
  <h2 id="NAME">NAME</h2>
77
77
  <p class="man-name">
78
- <code>to_pass-converter</code> - <span class="man-whatis">converter-class for <a href="to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a></span>
78
+ <code>to_pass-converter</code> - <span class="man-whatis">converter-class for <a href="../man1/to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a></span>
79
79
  </p>
80
80
 
81
81
  <h2 id="DESCRIPTION">DESCRIPTION</h2>
@@ -150,7 +150,7 @@ end
150
150
 
151
151
  <h2 id="SEE-ALSO">SEE ALSO</h2>
152
152
 
153
- <p><a href="to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a>, <a href="to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a>, <a href="http://man.cx/ruby(1)" class="man-ref">ruby<span class="s">(1)</span></a></p>
153
+ <p><a href="../man1/to_pass.1.html" class="man-ref">to_pass<span class="s">(1)</span></a>, <a href="../man5/to_pass-algorithm.5.html" class="man-ref">to_pass-algorithm<span class="s">(5)</span></a>, <a href="http://man.cx/ruby(1)" class="man-ref">ruby<span class="s">(1)</span></a></p>
154
154
 
155
155
 
156
156
  <ol class='man-decor man-foot man foot'>
data/test/all.rb ADDED
@@ -0,0 +1,3 @@
1
+ Dir[File.expand_path('../test_*.rb', __FILE__)].each do |file|
2
+ require file
3
+ end
@@ -1,17 +1,18 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- module ToPass::Converters
5
- # replace the string "USER" with the current username
6
- class Userize
7
- def self.convert(string) # :nodoc:
8
- username = if `which whoami`
9
- `whoami`.chomp
10
- else
11
- "thecurrentuser"
12
- end
3
+ module ToPass
4
+ module Converters
5
+ # replace the string "USER" with the current username
6
+ class Userize
7
+ def self.convert(string) # :nodoc:
8
+ username = if `which whoami`
9
+ `whoami`.chomp
10
+ else
11
+ "thecurrentuser"
12
+ end
13
13
 
14
- string.gsub("USER",username)
14
+ string.gsub("USER",username)
15
+ end
15
16
  end
16
17
  end
17
18
  end
data/test/helper.rb CHANGED
@@ -1,14 +1,24 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require 'test/unit/testcase'
5
- require 'test/unit' unless defined?(Test::Unit)
3
+ require 'test/unit'
6
4
  require 'mocha'
7
5
  require 'rbconfig'
8
6
 
9
- base_path = ( File.expand_path(File.dirname(__FILE__)+'/..') )
10
- if File.exist?(base_path + '/lib/to_pass')
11
- $LOAD_PATH << base_path unless $LOAD_PATH.include?(base_path)
7
+ # optional libraries
8
+ begin
9
+ require 'redgreen'
10
+ rescue LoadError
11
+ end
12
+
13
+ begin
14
+ require 'test_benchmark' if ENV['BENCHMARK']
15
+ rescue LoadError
16
+ end
17
+
18
+ # setup the LoadPath
19
+ lib_path = File.expand_path('../../lib', __FILE__)
20
+ if File.exist?(lib_path)
21
+ $LOAD_PATH << lib_path unless $LOAD_PATH.include?(lib_path)
12
22
  end
13
23
 
14
24
  Test::Unit::TestCase.class_eval do
@@ -49,4 +59,4 @@ Test::Unit::TestCase.class_eval do
49
59
  end
50
60
  end
51
61
 
52
- require 'lib/to_pass'
62
+ require 'to_pass'
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestAlgorithmReader < Test::Unit::TestCase
7
6
  test_presence ToPass::AlgorithmReader
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestAlgorithms < Test::Unit::TestCase
7
6
  def test_basic_de
data/test/test_base.rb CHANGED
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestBase < Test::Unit::TestCase
7
6
  test_presence ToPass::Base
@@ -14,11 +13,11 @@ class TestBase < Test::Unit::TestCase
14
13
  end
15
14
 
16
15
  def test_version
17
- assert_equal Pathname.new("#{File.dirname(__FILE__)}/../VERSION").expand_path.read.chomp, ToPass::VERSION
16
+ assert_match /\d+.\d+.\d+/, ToPass::VERSION
18
17
  end
19
18
 
20
19
  def test_date
21
- assert_equal Pathname.new("#{File.dirname(__FILE__)}/../VERSION").expand_path.mtime, ToPass::DATE
20
+ assert_equal Pathname.new("#{File.dirname(__FILE__)}/../lib/to_pass/version.rb").expand_path.mtime, ToPass::DATE
22
21
  end
23
22
 
24
23
  def test_appname
@@ -44,4 +43,14 @@ class TestBase < Test::Unit::TestCase
44
43
 
45
44
  assert_equal [ dirs[:user], dirs[:data], dirs[:source_data] ], dirs[:standard]
46
45
  end
46
+
47
+ def test_release_notes
48
+ fn = File.expand_path('../../doc/RELEASE_NOTES', __FILE__)
49
+
50
+ if File.size?(fn)
51
+ assert_equal File.read(fn), ToPass::RELEASE_NOTES
52
+ else
53
+ assert_nil ToPass::RELEASE_NOTES
54
+ end
55
+ end
47
56
  end
data/test/test_cli.rb CHANGED
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestCli < Test::Unit::TestCase
7
6
  test_presence ToPass::Cli
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestConverter < Test::Unit::TestCase
7
6
  def teardown
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestConverterReader < Test::Unit::TestCase
7
6
  test_presence ToPass::ConverterReader
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestConverters < Test::Unit::TestCase
7
6
  def test_presence
@@ -21,7 +20,6 @@ class TestConverters < Test::Unit::TestCase
21
20
  def test_expand_below
22
21
  assert_converter 'kFsNotestKrb87d', { 'expand_below' => 5 }, 'test'
23
22
  assert_converter 'testtest', { 'expand_below' => 5 }, 'testtest'
24
-
25
23
  end
26
24
 
27
25
  def test_reverse
@@ -1,7 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
1
+ # vim:ft=ruby:fileencoding=utf-8
3
2
 
4
- require File.dirname(__FILE__)+'/helper'
3
+ require File.expand_path('../helper', __FILE__)
5
4
 
6
5
  class TestIntegration < Test::Unit::TestCase
7
6
  def test_module_integration
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_pass
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 6
8
+ - 7
9
9
  - 0
10
- version: 0.6.0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matthias Viehweger
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-18 00:00:00 +02:00
18
+ date: 2010-10-13 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -47,7 +47,7 @@ dependencies:
47
47
  type: :development
48
48
  version_requirements: *id002
49
49
  - !ruby/object:Gem::Dependency
50
- name: gem-release
50
+ name: sdoc
51
51
  prerelease: false
52
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
53
  none: false
@@ -60,20 +60,6 @@ dependencies:
60
60
  version: "0"
61
61
  type: :development
62
62
  version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: sdoc
65
- prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
75
- type: :development
76
- version_requirements: *id004
77
63
  description: " Passwords should be easy to remember and hard to guess.\n One technique is to have a sentence which can be easily remembered transformed to a password.\n\n Pluggable algorithms and converters allow customization of the transformation process.\n"
78
64
  email: kronn@kronn.de
79
65
  executables:
@@ -82,27 +68,13 @@ executables:
82
68
  extensions: []
83
69
 
84
70
  extra_rdoc_files:
71
+ - doc/CHANGELOG
72
+ - doc/LICENSE
85
73
  - README.rdoc
86
74
  - TODO
87
75
  files:
88
- - LICENSE
89
- - README.rdoc
90
- - TODO
91
- - VERSION
92
- - Rakefile
93
- - Gemfile
94
76
  - bin/password_of
95
77
  - bin/to_pass
96
- - lib/to_pass/algorithm_reader.rb
97
- - lib/to_pass/base.rb
98
- - lib/to_pass/cli.rb
99
- - lib/to_pass/converter.rb
100
- - lib/to_pass/converter_reader.rb
101
- - lib/to_pass/converters.rb
102
- - lib/to_pass/directories.rb
103
- - lib/to_pass/integration.rb
104
- - lib/to_pass/version.rb
105
- - lib/to_pass.rb
106
78
  - data/to_pass/algorithms/basic_de.yml
107
79
  - data/to_pass/algorithms/basic_en.yml
108
80
  - data/to_pass/algorithms/secure.yml
@@ -114,6 +86,18 @@ files:
114
86
  - data/to_pass/converters/replace.rb
115
87
  - data/to_pass/converters/reverse.rb
116
88
  - data/to_pass/converters/swapcase.rb
89
+ - doc/CHANGELOG
90
+ - doc/LICENSE
91
+ - lib/to_pass.rb
92
+ - lib/to_pass/algorithm_reader.rb
93
+ - lib/to_pass/base.rb
94
+ - lib/to_pass/cli.rb
95
+ - lib/to_pass/converter.rb
96
+ - lib/to_pass/converter_reader.rb
97
+ - lib/to_pass/converters.rb
98
+ - lib/to_pass/directories.rb
99
+ - lib/to_pass/integration.rb
100
+ - lib/to_pass/version.rb
117
101
  - man/index.txt
118
102
  - man/man1/to_pass.1
119
103
  - man/man1/to_pass.1.html
@@ -124,6 +108,7 @@ files:
124
108
  - man/to_pass-algorithm.5.ronn
125
109
  - man/to_pass-converter.5.ronn
126
110
  - man/to_pass.1.ronn
111
+ - test/all.rb
127
112
  - test/fixtures/user_alg.yml
128
113
  - test/fixtures/user_converter.rb
129
114
  - test/helper.rb
@@ -135,6 +120,8 @@ files:
135
120
  - test/test_converter_reader.rb
136
121
  - test/test_converters.rb
137
122
  - test/test_integration.rb
123
+ - README.rdoc
124
+ - TODO
138
125
  has_rdoc: true
139
126
  homepage: http://github.com/kronn/to_pass
140
127
  licenses: []
@@ -173,6 +160,7 @@ signing_key:
173
160
  specification_version: 3
174
161
  summary: generate password from words or sentences
175
162
  test_files:
163
+ - test/all.rb
176
164
  - test/fixtures/user_alg.yml
177
165
  - test/fixtures/user_converter.rb
178
166
  - test/helper.rb
data/Gemfile DELETED
@@ -1,2 +0,0 @@
1
- source :rubygems
2
- gemspec
data/Rakefile DELETED
@@ -1,82 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # vim:ft=ruby:enc=utf-8
3
-
4
- # # enable trace to get better error output
5
- # Rake.application.options.trace = true
6
-
7
- # documentation tasks
8
- begin
9
- %w[ rake/rdoctask sdoc ].each { |lib| require lib }
10
- Rake::RDocTask.new do |rdoc|
11
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
12
-
13
- rdoc.rdoc_dir = 'doc/rdoc'
14
- rdoc.title = "to_pass #{version}"
15
- rdoc.options << '--fmt=shtml'
16
- rdoc.options << '--all'
17
- rdoc.options << '--charset=utf-8'
18
- rdoc.template = 'direct'
19
- rdoc.rdoc_files.include('README*')
20
- # rdoc.rdoc_files.include('LICENSE')
21
- rdoc.rdoc_files.include('TODO')
22
- rdoc.rdoc_files.include('lib/**/*.rb')
23
- rdoc.rdoc_files.include('data/**/*.rb')
24
- end
25
- rescue LoadError
26
- end
27
- begin
28
- desc 'generate manpages for project'
29
- task :man do
30
- [1,5].each do |section|
31
- files = Dir["./man/*#{section}.ronn"]
32
- `ronn --html --roff --style=toc #{files.join(' ')}`
33
- FileUtils.mkdir "./man/man#{section}/"
34
- FileUtils.mv Dir["./man/*.#{section}.html"], "./man/man#{section}/"
35
- FileUtils.mv Dir["./man/*.#{section}"], "./man/man#{section}/"
36
- end
37
- end
38
- end
39
-
40
- desc "run tests"
41
- task :test do
42
- # optional libraries
43
- %w[ redgreen ].each do |lib|
44
- begin
45
- require lib
46
- rescue LoadError
47
- end
48
- end
49
- ( ['test/unit', 'test/helper'] + Dir['test/test_*.rb'] ).each do |file|
50
- require file
51
- end
52
- end
53
-
54
- desc "list available algorithms"
55
- task :algorithms, :needs => [:to_pass] do
56
- puts ""
57
- puts " available password algorithms"
58
- puts " ============================================"
59
- ToPass::AlgorithmReader.discover.each do |algorithm|
60
- puts " - #{algorithm}"
61
- end
62
- puts " ============================================"
63
- puts ""
64
- end
65
-
66
- desc "list available converters"
67
- task :converters, :needs => [:to_pass] do
68
- puts ""
69
- puts " available converters for password algorithms"
70
- puts " ============================================"
71
- ToPass::ConverterReader.new.discover.each do |converter|
72
- puts " - #{converter}"
73
- end
74
- puts " ============================================"
75
- puts ""
76
- end
77
-
78
- task :to_pass do
79
- require 'lib/to_pass'
80
- end
81
-
82
- task :default => :test
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.6.0