frasier 0.5.1
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.
- data.tar.gz.sig +1 -0
- data/.gitignore +18 -0
- data/.travis.yml +6 -0
- data/Gemfile +15 -0
- data/LICENSE.txt +22 -0
- data/README.md +71 -0
- data/Rakefile +31 -0
- data/bin/frasier +8 -0
- data/certs/pjaspers.pem +19 -0
- data/checksum/frasier-0.5.1.gem.sha512 +1 -0
- data/frasier.gemspec +26 -0
- data/lib/frasier.rb +20 -0
- data/lib/frasier/book.rb +22 -0
- data/lib/frasier/cli.rb +108 -0
- data/lib/frasier/dice_list.rb +59 -0
- data/lib/frasier/generator.rb +44 -0
- data/lib/frasier/library.rb +40 -0
- data/lib/frasier/version.rb +3 -0
- data/test/book_test.rb +23 -0
- data/test/dice_list_test.rb +44 -0
- data/test/files/my_man_jeeves +7295 -0
- data/test/files/small_sample +7 -0
- data/test/generator_test.rb +29 -0
- data/test/helper.rb +11 -0
- data/test/library_test.rb +37 -0
- metadata +144 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe 'generating a passphrase' do
|
4
|
+
before do
|
5
|
+
@g = Generator.new({'11111' => 'aaa',
|
6
|
+
'11112' => 'bbb',
|
7
|
+
'11113' => 'ccc'}, 3)
|
8
|
+
|
9
|
+
def @g.roll
|
10
|
+
1
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'picks random words based on roll' do
|
15
|
+
assert_match /aaa|^bbb|^ccc/, @g.passphrase
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'respects number_of_words' do
|
19
|
+
assert 3 == @g.passphrase.split(" ").length, "#{@g.passphrase} has a length of 3"
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'calculates entropy' do
|
23
|
+
assert_equal 3 ** 3, @g.entropy
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'understands bits of entropy' do
|
27
|
+
assert_equal 4.75, @g.bits_of_entropy
|
28
|
+
end
|
29
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require "helper"
|
2
|
+
|
3
|
+
describe Library do
|
4
|
+
|
5
|
+
it 'lists all books in the library' do
|
6
|
+
test_dir = File.join(File.dirname(__FILE__), "files")
|
7
|
+
Library.stub :library_path, test_dir do
|
8
|
+
assert Library.new.books.length, Dir.glob(File.join(test_dir, "*")).length
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'creates a place for the library' do
|
13
|
+
test_dir = File.join(File.dirname(__FILE__), "tmplib")
|
14
|
+
FileUtils.rmdir(test_dir)
|
15
|
+
Library.stub :library_path, test_dir do
|
16
|
+
Library.new
|
17
|
+
assert File.exist?(test_dir)
|
18
|
+
FileUtils.rmdir(test_dir)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'finds a book based on title' do
|
23
|
+
test_dir = File.join(File.dirname(__FILE__), "files")
|
24
|
+
Library.stub :library_path, test_dir do
|
25
|
+
lib = Library.new
|
26
|
+
assert_equal "My Man Jeeves", lib.book_with_name("My Man Jeeves").title
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'find a book based on path part' do
|
31
|
+
test_dir = File.join(File.dirname(__FILE__), "files")
|
32
|
+
Library.stub :library_path, test_dir do
|
33
|
+
lib = Library.new
|
34
|
+
assert_equal "My Man Jeeves", lib.book_with_name("_jeeves").title
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: frasier
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- pjaspers
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain:
|
12
|
+
- !binary |-
|
13
|
+
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLRENDQWhDZ0F3SUJB
|
14
|
+
Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREE2TVEwd0N3WURWUVFEREFSd2FX
|
15
|
+
VjAKTVJVd0V3WUtDWkltaVpQeUxHUUJHUllGYW1GemNHVXhFakFRQmdvSmtp
|
16
|
+
YUprL0lzWkFFWkZnSnljekFlRncweApOREEwTURjeU1UUXlNRE5hRncweE5U
|
17
|
+
QTBNRGN5TVRReU1ETmFNRG94RFRBTEJnTlZCQU1NQkhCcFpYUXhGVEFUCkJn
|
18
|
+
b0praWFKay9Jc1pBRVpGZ1ZxWVhOd1pURVNNQkFHQ2dtU0pvbVQ4aXhrQVJr
|
19
|
+
V0FuSnpNSUlCSWpBTkJna3EKaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dL
|
20
|
+
Q0FRRUErU1E1SXpoTWFVTS9qclVCQVA1bDAvWjV0dExRYjJsVApob3RTMVly
|
21
|
+
YXozaGNsYkdoQmhEY1FpbFcxMUdTZnRVYldoYWlNUXdOWHFhRU45Y3RtekU1
|
22
|
+
SnVrT2R3aHROU0xxCklEdytURUVYYmcvVkltbEZocnlnOXZ1bmZmUGVPQlVs
|
23
|
+
bnhkWTQ4NERPdXNoTk41MEgvTEErakFvRlNUMytvWnEKQ1h1QTN5Rmk4WlRQ
|
24
|
+
cWhIckVuMWJreWNVZkxYK1RPbTA3WmZDUGx5OWZBVlloT1lhVmFQZVlrSEFP
|
25
|
+
ODMrSWM2Mwo5WUdxRDFzRmVaN2hmU3hxZllFQnhwaU0wK3F6dHFIQ1ZOcmVo
|
26
|
+
a3pYMm9VbVkwNmVWcFN1Mm16TFltY0NENThmCmluVkRSQmUvM3lna0FDeFpD
|
27
|
+
QTdwakl1cUhPcEt4U2JZTXJnRWtyQXRwQTdsa0lNYXZlTVk5UUlEQVFBQm96
|
28
|
+
a3cKTnpBSkJnTlZIUk1FQWpBQU1CMEdBMVVkRGdRV0JCU1NKYktTai82MkJZ
|
29
|
+
cS8xdXR4eXFzU2hSdW04akFMQmdOVgpIUThFQkFNQ0JMQXdEUVlKS29aSWh2
|
30
|
+
Y05BUUVGQlFBRGdnRUJBSmtHNjB2RnQvR0J1TXZUZE10RkN3NGpKaVJvCjhu
|
31
|
+
NmRNUXJMMmtaZEQwWk5laWRMZlRNemhmbHYrOVpyV2ZjRld6ZnFhR2dLSmNr
|
32
|
+
QmQyd2xmUWlSNzh0czl6b20KYlg5QjluL0FkMzJ3b21MbmIwYWVUdUVIWDZW
|
33
|
+
eTRxczR6bCtWblh5NGcxTlEybGZjbmtzVXNqQk04djhHWVRqeQpzc2lPUW56
|
34
|
+
cld4TnlqUjAxdVk1Zy9PTi9JbFJLTnBpaGU3UXplMW9HV2RvcFpQNkx3Zmhp
|
35
|
+
cjVTaGJERVRDS1F2CkN1SldVT2RCUnNIYlNyYUxXOG4vdmMvZlpHcVZ6REFn
|
36
|
+
aHMyNmJ4bXdpY3crNC9WZ08yc29Za2E4MXQ4cFV1RzYKdkxXV3J0bUl2OCtj
|
37
|
+
bU1ndmx0UDVBUjVqMm9ZSFlQUEE5WUZYdU85dDFKVnFKaU5IbTlKTlJzZUVv
|
38
|
+
QmM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
39
|
+
date: 2014-04-07 00:00:00.000000000 Z
|
40
|
+
dependencies:
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '1.3'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.3'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: rake
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
type: :development
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
description: Passphrase generator using plain text books
|
74
|
+
email:
|
75
|
+
- piet@jaspe.rs
|
76
|
+
executables:
|
77
|
+
- frasier
|
78
|
+
extensions: []
|
79
|
+
extra_rdoc_files: []
|
80
|
+
files:
|
81
|
+
- .gitignore
|
82
|
+
- .travis.yml
|
83
|
+
- Gemfile
|
84
|
+
- LICENSE.txt
|
85
|
+
- README.md
|
86
|
+
- Rakefile
|
87
|
+
- bin/frasier
|
88
|
+
- certs/pjaspers.pem
|
89
|
+
- checksum/frasier-0.5.1.gem.sha512
|
90
|
+
- frasier.gemspec
|
91
|
+
- lib/frasier.rb
|
92
|
+
- lib/frasier/book.rb
|
93
|
+
- lib/frasier/cli.rb
|
94
|
+
- lib/frasier/dice_list.rb
|
95
|
+
- lib/frasier/generator.rb
|
96
|
+
- lib/frasier/library.rb
|
97
|
+
- lib/frasier/version.rb
|
98
|
+
- test/book_test.rb
|
99
|
+
- test/dice_list_test.rb
|
100
|
+
- test/files/my_man_jeeves
|
101
|
+
- test/files/small_sample
|
102
|
+
- test/generator_test.rb
|
103
|
+
- test/helper.rb
|
104
|
+
- test/library_test.rb
|
105
|
+
homepage: https://github.com/pjaspers/frasier
|
106
|
+
licenses:
|
107
|
+
- MIT
|
108
|
+
post_install_message:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
111
|
+
- lib
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
hash: -3443358708555301380
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
segments:
|
128
|
+
- 0
|
129
|
+
hash: -3443358708555301380
|
130
|
+
requirements: []
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 1.8.23
|
133
|
+
signing_key:
|
134
|
+
specification_version: 3
|
135
|
+
summary: Inspired by Diceware™, except instead of being cryptogaphically sound, this
|
136
|
+
uses not a carefully created word list but uses text from books.
|
137
|
+
test_files:
|
138
|
+
- test/book_test.rb
|
139
|
+
- test/dice_list_test.rb
|
140
|
+
- test/files/my_man_jeeves
|
141
|
+
- test/files/small_sample
|
142
|
+
- test/generator_test.rb
|
143
|
+
- test/helper.rb
|
144
|
+
- test/library_test.rb
|
metadata.gz.sig
ADDED
Binary file
|