frasier 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ LEAVE IT TO JEEVES
2
+
3
+ JEEVES AND THE UNBIDDEN GUEST
4
+
5
+ JEEVES AND THE HARD-BOILED EGG
6
+
7
+ ABSENT TREATMENT
@@ -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
@@ -0,0 +1,11 @@
1
+ # coding: utf-8
2
+
3
+ require "minitest/autorun"
4
+ require "minitest/pride"
5
+ require "mocha"
6
+
7
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
8
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
9
+
10
+ require 'frasier'
11
+ include Frasier
@@ -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
Binary file